综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告

上传人:第*** 文档编号:33884486 上传时间:2018-02-18 格式:DOC 页数:11 大小:169KB
返回 下载 相关 举报
综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告_第1页
第1页 / 共11页
综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告_第2页
第2页 / 共11页
综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告_第3页
第3页 / 共11页
综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告_第4页
第4页 / 共11页
综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告》由会员分享,可在线阅读,更多相关《综合运用面向对象程序设计语言的相关知识-高等程序设计实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 11 页高等程序设计实验报告实验名称 实验 16 综合实验 系 别姓 名 学 号 班 级实验时间 实验地点 实验成绩一、 实验目的及要求1.综合运用面向对象程序设计语言的相关知识。二、 实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)硬件设备:联网的个人计算机操作系统:Windows 2000编译系统:Visual C+ 6.0第 2 页 共 11 页三、 实验内容及步骤(包含简要的实验步骤流程)题目一:实验内容:设计基类 People,表示一般人员的信息,含姓名、年龄信息;再设计一个表示工作人员的类 Worker,含工资信息;接下来设计一个表示学生的类 Stud

2、ent,含成绩信息,在职学生类 WorkerStu 以 Worker 和 Student 为基类。采用运算符重载的方式编写针对以上类的输入和显示的程序。过程分析:1) 定义基类 People 类,定义表示姓名和年龄的数据成员 name 和 age,并声明为保护段成员,方便后面的派生类调用。在公有段定义构造函数,将姓名和年龄初始化。2) 定义一个表示工作人员的派生类 Worker 类,将基类声明为虚基类。新增加表示工资的保护段数据 wages,在公有段定义构造函数,缀上基类 People 类的构造函数,将新增加的数据 wages 初始化。3) 定义一个表示学生的派生类 Student 类,将基类

3、声明为虚基类。新增加表示成绩的保护段数据 score,在公有段定义构造函数,缀上基类 People 类的构造函数,将新增加的数据 score 初始化。4) 定义在职学生类 WorkerStu,是 Worker 和 Student 的公有派生类,是基类 People 的间接派生类。在公有段定义构造函数,缀上 People、Worker 和 Student 的构造函数因为没有新增加数据,故 WorkerStu 的构造函数可以不用写函数体。声明运算符的重载友元函数和运算符的重载友元函数和运算符函数,输入对象 obj 的每个数据,返回 in;输出流对象 out 调用系统定义的运算符的友元函数,输入 w

4、s 的信息,调用重载运算符#include/定义基类 People 类class Peopleprotected:char* name; int age;public:People(char* name1,int age1) /定义基类的构造函数 name=new charstrlen(name1)+1;strcpy(name,name1);age=age1;/定义派生类表示工作人员的类 Worker,公有继承基类,并声明基类 People 是Worker 的虚基类class Worker:virtual public Peopleprotected:int wages;public:/定义

5、Worker 类的构造函数 Worker(char* name1,int age1,int wages1):People(name1,age1) wages=wages1; ;/定义派生类表示学生的类 Student,公有继承基类,并声明基类 People 是 Student的虚基类class Student:virtual public Peopleprotected:int score;public:/定义 Student 类的构造函数Student(char* name1,int age1,int score1):People(name1,age1) score=score1; ;/定义

6、在职学生类 WorkerStu,是 Worker 和 Student 的公有派生类,是基类 People的间接派生类class WorkerStu:public Worker,public Studentpublic:/定义 WorkerStu 的构造函数WorkerStu(char* name1,int age1,int wages1,int score1):People(name1,age1),Worker(name1,age1,wages1),Student(name1,age1,score1) 第 5 页 共 11 页friend istream /声明运算符的重载友元函数friend

7、 ostream /声明运算符的重载友元函数,以输入流对象 in 的引用和 WorkerStu 的对象 obj 引用为形参,输入 obj 对象的数据istream &operator(istream &in,WorkerStu &obj) coutobj.name;coutobj.age;coutobj.wages;coutobj.score;return in;/定义运算符ws; /从键盘输入一个在职学生类的对象 wscout#include/定义基类 people 类class peopleprotected: /数据成员声明为保护段char* name; static int numbe

8、r; /定义静态数据成员 number 表示编号int size;double salary;public: /函数成员声明为公有段people(char* name1,int size1=1) name=new charstrlen(name1)+1;strcpy(name,name1);size=size1;+number;virtual double csalary() /定义虚函数 csalary() return 0; void display() /定义基类成员函数 display(),能够输出姓名、编号、级别等信息 cout姓名:nameendl;cout编号:第number号e

9、ndl;cout级别:size级endl;第 7 页 共 11 页;/派生类经理(manager)类,公有继承基类 people 类class manager:public people int const_wages; /定义整型数据 const_wages 表示固定工资public:manager(char* name1,int size1):people(name1,size1) /经理的级别为 3 size1=3;virtual double csalary() /重新定义虚函数 csalary(),返回经理的月薪 const_wages=8000;cout固定工资:const_wag

10、es元t;salary=const_wages;return salary;void display() /定义同名函数 display(),调用基类函数,输出经理的包括工资在内的信息 cout经理的信息:endl;people:display();salary=csalary();cout当月薪水:salary 元endl;cout-endl;/派生类兼职技术员(pt_techperson)类,公有继承基类 people 类class pt_techperson:public people int time; /定义私有数据 time 表示技术人员工作的小时数double perhour_w

11、age; /每小时的工资额public:pt_techperson(char* name1,int size1,int time1):people(name1,size1) size1=1; /兼职技术人员的级别为 1time=time1;virtual double csalary() /重新定义虚函数 csalary(),返回兼职技术人员的月薪 perhour_wage=100;cout每小时工资额:perhour_wage元t;salary=perhour_wage*time;return salary;void display() /定义同名函数 display(),调用基类函数,输出

12、兼职技术人员的包括工资在内的信息 cout兼职技术人员的信息:endl;people:display();salary=csalary();cout工作小时:time小时t;cout当月薪水:salary 元endl;第 8 页 共 11 页cout-endl;/派生类兼职销售员(pt_salestaff)类,公有继承基类 people 类,并声明基类为兼职销售员类的虚基类class pt_salestaff:virtual public peopleprotected:double sales_wages; /定义 sales_wages 表示销售额double sales_commissi

13、on; /定义 sales_commission 表示销售额提成static double sales_sumwages; /定义静态数据成员 sales_sumwages 表示销售总额提成public:pt_salestaff(char* name1,int size1,double sales_wages1):people(name1,size1) size1=1; /兼职销售人员的级别为 1sales_wages=sales_wages1; sales_sumwages+=sales_wages;virtual double csalary() /重新定义虚函数 csalary(),返回兼职销售人员的月薪 cout销售提成按当月销售额的 4%提成t;sales_commission=sales_wages*0.04;salary=sales_commission;return salary; void display() /定义同名函数 display(),调用基类函数,输出兼职销售人员的包括工资在内的信息 cout兼职销售

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号