内容发布更新时间 : 2024/11/16 20:42:04星期一 下面是文章的全部内容请认真阅读。
计算机与信息技术学院设计性实验报告
专业:通信工程年级/班级:通信工程1班 2011—2012学年第二学期 课程名称
Visual C++程序设计实验 指导教师 赵永进 本组成员 学号姓名
实验地点
计算机学院机房 实验时间
5月12日8:00-9:40;10:10-11:50; 5月19日8:00-9:40;10:10-11:50。
项目名称
人员类的设计与实现
实验类型
设计性
一、实验目的
1.定义人员类,包括数据成员:姓名、编号、性别和用于输入、输出的成员函数。在此基础上派生出学生类和教师类,并实现对学生和教师信息的输入、输出。 2.掌握类和对象的定义和使用方法。
3.掌握定义构造函数和析构函数、重载构造函数的方法。 4.掌握静态成员和常类型的用法。 5.掌握多重继承和派生类的方法。
6.能正确理解public,private和proteced 3种访问权限及继承方式的区别。 7.掌握在派生类中初始化基类成员的方法。 8.掌握程序多文件的组织方法等。 二、实验仪器或设备
电脑型号:方正 Founder PC 台式电脑
操作系统:Windows XP 专业版 32位 SP3 ( DirectX 9.0c ) 实验平台:Microsoft Visual C++6.0(SP6) 处理器:AMD Athlon(速龙) II X2 255 双核 内存:1791 MB
主硬盘:西数 WDC WD3200AAJS-22L7A0 ( 318 GB / 7200 转/分 ) 显卡:NVIDIA GeForce 6150SE nForce 430 ( 256 MB ) 显示器:Topview(冠捷) LCDE980 FG981 ( 19.1 英寸 ) 网卡:瑞昱 PCIe GBE Family Controller
三、总体设计(设计原理、设计方案及流程等)
程序Ex_Class:定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入输出的成员函数。在此基础上派生出学生类CStudent(增加成绩)和教师类CTeacher(增加教龄),并实现对学生和对教师信息的输入、输出。编写一个完整的测试程序,并将Ex_Class所有的类定义保存在Ex_Class.h,将类的成员函数实现代码保存在Ex_Class.cpp中。
1,程序Ex_class:定义一个人员类CPerson,其中包括数据成员:姓名、编号、性别和用于输入、输出的成员函数,这些数据成员及成员函数都被定义成公有类型,以便被派生类的函数所调用。
2,在该头文件中,派生出学生类和教师类,并在各自派生类的程序中调用了基类的公有成员函数“输入和输出函数”。
3,在派生类Student中实现学生成绩的输入和输出,又定义了类CPerson中的一个对象student,通过该对象可以调用基类中的成员函数,从而实现结果的正确输出。还有私有数据成员:学生的成绩。与学生类相似,只是增加的私有数据成员是教师的教龄。
4,在学生各门成绩输出和老师教龄输出的具体函数另外写在头文件外,便于计算机识别,提高程序的可执行性。首先对各门成绩以数组的形式初始化为零,然后定义了InputScore函数以具体实现成绩输入的操作,再定义了Print函数,实现成绩输出的操作。同样对老师教龄的函数实现,其函数体中调用了头文件的Input函数,在Input函数的具体代码的实际操作外多了教龄的的输入,同时也定义了Print函数,并调用了头文件中的Output函数,实现姓名、编号、性别和教龄的对应输出。
5主函数实现对具体数值的赋值,并调用相应的函数实现。 程序流程图如下:
(公有成员) 公有成员函数
四、实验步骤(包括主要步骤、代码分析等) 1、创建工作文件夹
打开计算机,在目录“D:\\Visual C++程序\\李明亮”下再创建一个子文件夹“实验5”。 2、输入程序Ex_Class.h 启动Visual C++ 6.0。
单击标准工具栏上的“New Text File”按钮,在新打开的文档窗口中输入下列程序代码: #include
#include
public:
CPerson() { strcpy(pName,\ strcpy(pID,\ } CPerson(char*name,char*id,bool isman=1) {Input(name,id,isman);} void Input(char*name,char*id,bool isman) { setName(name); setID(id); setSex(isman); } void Output() { cout<<\姓名: \ cout<<\编号: \ char*str=bMan?\男\女\ cout<<\性别: \ } public: char*getName()const {return(char*)pName;} void setName(char*name) { int n=strlen(name); strncpy(pName,name,n); pName[n]='\\0'; } char*getID()const {return(char*)pID;} void setID(char*id) { int n=strlen(id); strncpy(pID,id,n); pID[n]='\\0'; } bool getSex(){return bMan;} void setSex(bool isman) {bMan=isman;} private: