您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 实验5-类和对象、继承和派对
实验内容程序ExClass:定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入输出的成员函数。在此基础上派出学生类(增加成绩)和教师类CTeacher(增加教龄),并实现对学生和教师信息的输入、输出。编写一个完整的测试程序,并将EX-Class所有的类定义保存在Ex-Class.h,将类的成员函数实现代码保存在Ex-Class.cpp中实验备和说明{1}在学习完第2章的“继承和派对类“内容之后进行本次实验。(2)编写本次上机所需的程序。实验步骤1.创建工作文件夹打开计算机,在“D:\VisualC++程序\LiMing”文件夹中创建一个新的子文件夹“实验5”。2.输入程序Ex-Class.h输入程序Ex-Class.h的具体步骤如下。(1)启动VisualC++6.0.(2)单击标准工具栏上的按钮,在新打开的文档窗口中输入下列程序代码:序代码:#includeiostream.h#includestring.hclassCperson{public:Cperson(){strcpy(pName,??);strcpy(pID,??);}Cperson(char*name,char*id,boolisman=1){Input(name,id,isman);}voidInput(char*name,char*id,boolisman){setName(name);setID(id);setSex(isman);}voidOutput(){cout?姓名:?<<pNameendl;cout?编号:<<pIDendl;char*str=bMan??男?:?女?;cort?性别:?strendl;}public:∥姓名属性操作char*getName()const{reture(char*)pName;}voidsetName(char*name){intn=strlen(name);strncpy(pName,name,n);pName[n]=′?0?;}∥编号属性操作char*getID()const{reture(char*)pID;}voidsetID(char*id){intn=strlen?id?;Strncpy?pID,id,n?;pID[n]=′?0?;}∥性别属性操作boolgetSex(){returnbMan;}voidsetSex(boolisman){bMan=isman;}private:charpName[20];∥姓名charpID[20];∥编号boolbMan;∥性别:0表示女,1表示男};classCstudent:publicCperson{Public:Cstudent(char*name,char*id,boolisman=1);~Cstudent(){}VoidInputScore(doublescore1,doublescore2doublescore3);VoidPrint();Cpersonstudent;Private:doubledbScore[3];∥3门成绩};ClassCTeacher:publicCperson{Public:CTeacher(char*name,char*id,boolisman=1,intyears=10);~CTeacher(){}VoidPrint();private:intnTeachYears;∥教龄}:(3)单击标准工具栏的Save按钮,弹出“保存为”文件对话框。将文件定位到“D:\VisualC++程序\LiMing\实验5”,文件名为Ex_Class.h。3.输入程序Ex_Class.cpp输入程序Ex_Class.cpp的具体步骤如下。(1)单击标准工具栏上的“NewTextFile”按钮,在新打开的文档窗口中输入下列程序代码:#includeiosteam.h#include?Ex-Class.h?//类Cstudent实现代码Cstudent::Cstudent(char*name,*id,boolisman):student(name,id,isman){deScore〔0〕=0dbScore〔1〕=0deScore〔2〕=0}voidCstudent:InputScore(doublescorel,doublescore2,doublescore3){deScore〔0〕=score1dbScore〔1〕=score2deScore〔2〕=score3}voidCstudent::Print(){Student.Output()for(inti=0;i3;i++)cout?成绩?i+1dbScore〔i〕eddl;}类Cteacher实现代码CTeacher::Cteacher(char*name,char*id,boolisman,intyears){nTeachYears=years;Input(name,id,isman);}voidCTeacher::Print(){Output()cout?教龄:?nTeachYears,endl;}//主函数voidmain(){Cstudentstu(?LiMing?,?21010211?)coutstu.getName()endl;coutstu.student.getName()endl;stu.Print();stu.student.setName(?LingLing?);stu.student.setSex(0);stu.InPuScore(80,90,85);stu.Print()Cteachertea(?Ding?,?911085?);tea.Print();tea.setID(?91102334?);tea.Print();?(2)单击标准工具栏的Save按钮,弹出“保存为”文件对话框,将文件保存为Ex-Class.cpp。(3)编译运行想一想此时查看项目工作区窗口的ClassView页面,只看到一个main函数,对于上述定义的类却没有看到,想一想是什么原因?(4)选择“工程”→“Files”命令,在弹出的“InsertFilesintoProject”对话框中,选定前面的文件Ex-Class.h,单击“确定”按钮。此时的Ex-Class的开发环境界面如图T5.1所示。4.退出VisualC++6.05写出实验报告结合上述分析和修改内容,写出实验报告。思考与练习(1)主函数main中的第1条语句是:Cstudentstu(?LiMing?,?21010211?)分析它的构造过程。(2)下面两条语句都是调用基类的getName函数,它们的结果相同吗?为什么?Coutstu.getName()endl;Coutstu.student.getName()end;(3)Cstudent和Cteacher类有什么不同?为什么要把Cstudent中的数据成员student定义为public,若改为private会有什么不同?(4)若将基类Cperson中的私有数据成员pName和PID变成:char*pNamechar*Pid则整个程序应如何修改?
本文标题:实验5-类和对象、继承和派对
链接地址:https://www.777doc.com/doc-3570407 .html