




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称: 成绩评定: 实验项目名称: 类的派生与继承 指导教师: 学生姓名: 学号: 专业班级: 实验项目类型: 实验地点: 实验时间: 一、实验目的与要求:1. 理解继承的含义,掌握派生类的定义方法和实现。2理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确的访问继承层次中的各种类成员。3理解保护成员在继承中的作用。4理解虚基类在类的继承层次中的作用。 二、实验环境:(硬件环境、软件环境)1.windows 7操作系统2.VC编译器 三、实验过程:(内容、操作步骤、结果等)1扩展学生管理系统,编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩等,教师数据有编号、姓名、职称和部门等。将编号、姓名输入和显示设计成一个user类,作为学生类student和教师类teacher的基类。8#includeusing namespace std;class user public: user() coutname; coutnumber; void display() cout 姓名: name 编号: number; private:char name20; char number20;class student:public user public:student() :user()coutbanji;coutyuwen;coutshuxue;coutyingyu;void display()user:display();cout 班级: banji 语文成绩: yuwen 数学成绩:shuxue 英语成绩 yingyu endl;private:char banji20;float yuwen;float shuxue;float yingyu;class teacher :public user public:teacher() :user()cout zhicheng;cout bumen;void display()user:display();cout 职称: zhicheng 部门: bumen endl;private:char zhicheng20;char bumen20;int main() int i;student a2;teacher b2;for (i= 0;i2;i+) ai.display();for (i=0;i2;i+) bi.display();return 0;2.建立基类vehicle,用来描述车辆的基本特征车轮数和承重。建立派生类truck,继承vehicle,并增加数据成员,描述货车的载重和货物限高,另外,建立派生类car,继承vehicle,并增加数据成员,描述客车的载客数和限速。创建一个truck对象,三个car对象,设置和显示相关属性。#includeusing namespace std;class vehiclepublic:vehicle(int ws, float wt)wheels = ws;weight = wt;int getwheels()return wheels;float getweight()return weight;void setWheels(int ws)wheels = ws;void setWeight(float wt)weight = wt;void display()cout 车轮数: wheels 汽车承重: weight endl;private:int wheels;float weight;class truck :public vehicleprivate:char *name;float t_weight;int height;public:truck(char *ne, int ws, float wt, float t_wt, int ht) :vehicle(ws, wt)name = ne;t_weight = t_wt;height = ht;float get_wt() return t_weight; int getht() return height; void display()vehicle:display();cout 车型: name endl;cout 汽车载重: t_weight endl;cout 汽车限高: height endl;class car :public vehiclechar *name;int people;int speed;public:car(char *ne, int ws, float wt, int pe, int sd) :vehicle(ws, wt)name = ne;people = pe;speed = sd;int getpeople() return people; int getspeed() return speed; void setpeople(int pe) people = pe; void setspeed(int sd) speed = sd; void display()vehicle:display();cout 车型: name endl;cout 载客数: people endl; cout 限速: speed endl;void main()truck truck1(货车, 8, 1000, 800, 6);car saloon_car(轿车, 4, 100, 5, 100);car microbus(面包车, 6, 100, 16, 100);car bus(公共汽车, 6, 200, 40, 60);truck1.display();cout - endl;saloon_car.display();cout - endl;microbus.display();cout - endl;bus.display();3某公司主要有四类人员:经理、技术人员、销售经理和推销员。要求设计一个基类employee(雇员),然后派生出technician(技术人员)类、manager(经理)类和salesman(推销员)类 。 由于销售经理(salesmanager)即是经理又是销售人员,兼具两类人员的特点,因此同时继承manager和salesman两个类。编写程序,处理这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。#includeusing namespace std;float income = 500000; /假设该公司一个月盈利500000元,定义为全局变量class employeepublic:employee()cout name;cout number;cout grade;cout salary;void display() cout 姓名: name 编号: number 级别: grade 月基本工资:salary ;char name20;int number;int grade;float salary;float sumsalary;class technician :public employeepublic:int hour;technician() :employee()cout hour;sumsalary = salary + 5 * hour;void display()employee:display();cout 职位:技术人员;cout 奖金: 5 * hour;cout 月薪总额: sumsalary endl;class manager :virtual public employee public: manager() :employee() sumsalary = salary + 0.0005*income; void display() employee:display(); cout 职位:经理; cout 奖金: 0.0005*income ; cout 月薪总额: sumsalary endl; ;class salesman :virtual public employee public:float salemoney;salesman() :employee()cout salemoney;sumsalary = salary + 0.005*salemoney;void display()employee:display();cout 职位:推销员 ;cout 奖金: 0.005*salemoney; cout 月薪总额: sumsalary endl;class salesmanager :public salesman, public manager public:salesmanager() :employee()sumsalary = salary + 0.005*salemoney + 0.0005*income;void display() employee:display(); cout 职位:销售经理;cout 奖金: 0.005*salemoney + 0.0005*income;cout 月薪总额: sumsalary endl;int main() int i;technician a2;salesman b3;manager c2;salesmanager d;for (i=0;i2;i+)ai.display();for (i=0;i3;i+)bi.display();for (i=0;i2;i+)ci.display();d.display();return 0;4模拟银行ATM终端系统,ATM机上可以使用储蓄卡和信用卡。储蓄卡有存钱、取钱、查询余额、修改密码等功能。信用卡有存钱、查询额度、查询本期账单金额、查询未出账单总金额、修改密码等功能。请用面向对象方法编程实现上述功能。#include#includeusing namespace std;const int N = 2; /假设有2张信用卡2张储蓄卡class cardpublic:card()cout name;cout cardnumber;cout cardkey;yu_e = 0;void display()cout 姓名: name 卡号 cardnumber 余额: yu_e endl;int chaxun(char *m,char *k)if (strcmp(cardnumber, m) = 0 & strcmp(cardkey, k) = 0)return 1;else return 0;void cunqian(char *m, char *k)if (strcmp(cardnumber, m) = 0 & strcmp(cardkey, k) = 0)float money;cout money;yu_e = yu_e + money;cout充值成功!endl;void quqian(char *m, char *k)if (strcmp(cardnumber, m) = 0 & strcmp(cardkey, k) = 0)float money;cout money;if (yu_e = money)yu_e = yu_e - money;elsecout 余额不足!;void changekey(char *m, char *k)if (strcmp(cardnumber, m) = 0 & strcmp(cardkey, k) = 0)char key120,key220;cout key1;coutkey2;if(strcmp(key1,key2)=0)strcpy(cardkey, key1); cout密码设置成功!endl;elsecout密码设置失败!endl;char name20;char cardnumber20;char cardkey20;float yu_e;class depositcard :public cardpublic:depositcard() :card()void display()card:display();int chaxun(char *m, char *k)return card:chaxun(m,k);void cunqian(char *m, char *k) card:cunqian(m,k);void quqian(char *m, char *k)card:quqian(m,k);void changekey(char *m, char *k)card:changekey(m, k);friend void depositlogin(depositcard *a);class creditcard :public card public: creditcard() :card() creditlimit = 2000; /每张信用卡的初始额度为2000元 cout currentbill; cout futurebill; void display() card:display(); void cunqian(char *m, char *k) card:cunqian(m,k); void findcreditlimit(char *m, char *k) if (card:chaxun(m, k) = 1) creditlimit = creditlimit - currentbill - futurebill; display();cout 当前的额度为: creditlimit endl; void findcurrentbill(char *m, char *k) if (card:chaxun(m, k) = 1) cout 本期账单金额为: currentbill endl; void findfuturebill(char *m,char *k) if (card:chaxun(m, k) = 1) cout 未出账单总金额为: futurebill endl; void changekey(char *m, char *k) card:changekey(m,k); friend void credlogin(creditcard *b);private:float creditlimit;float currentbill;float futurebill;void depositlogin(depositcard *a)int xz, i, j, fg=0;char m20, k20;for (j = 1; j = 3; j+)cout 请输入卡号: m;cout 请输入密码: k;for (i = 0; i N; i+)if (ai.chaxun(m, k) = 1) fg = 1; break;if (fg = 1)break;if (fg = 0) cout 卡号或密码不正确你还有 3 - j 次机会 endl;if (fg = 1)while (1)cout 查询业务n 存款业务n 取款业务n 密码管理n 退出 xz;switch(xz) case 1:ai.display();break; case 2:ai.cunqian(m, k);break; case 3:ai.quqian(m, k);break; case 4:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025中国农科院质标所招聘笔试历年参考题库附带答案详解
- 四川省2025年上半年四川广安市前锋区“小平故里英才”引进急需紧缺专业人才公笔试历年参考题库附带答案详解
- 南京市2025江苏南京科技职业学院招聘工作人员18人(第一批)笔试历年参考题库附带答案详解
- 会昌县2025江西赣州市会昌县住房保障安置服务中心招聘1人笔试历年参考题库附带答案详解
- 中山市2025广东中山市小榄镇高级专业人才招聘4人笔试历年参考题库附带答案详解
- 2025陕西电子信息集团光电科技有限公司招聘笔试参考题库附带答案详解
- 2025辽宁沈阳市浑南区森工林业集团有限公司招聘65人笔试参考题库附带答案详解
- 2025福建福州市建筑设计院有限责任公司招聘22人笔试参考题库附带答案详解
- 2025湖南省低空经济发展集团有限公司招聘11人笔试参考题库附带答案详解
- 2025浙江宁波市象山县水务集团有限公司第二期招聘4名笔试参考题库附带答案详解
- 半导体semi F81 中文版
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 外包与合作管理制度
- 广东开心学英语三年级下册Unit3-My-room
- JJG 425-2003水准仪
- 自动驾驶汽车-课件
- 2023年安康市交通建设投资集团有限公司招聘笔试题库及答案解析
- 学生学习力评价量表
- 藏餐培训教学计划5篇
- 技术需求征集表
- 三年级上册美术课件-第1课 五星红旗我为你骄傲|辽海版
评论
0/150
提交评论