C++程序设计大作业含源代码.docx
- 文档编号:1701014
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:18
- 大小:20.25KB
C++程序设计大作业含源代码.docx
《C++程序设计大作业含源代码.docx》由会员分享,可在线阅读,更多相关《C++程序设计大作业含源代码.docx(18页珍藏版)》请在冰豆网上搜索。
C++程序设计大作业含源代码
面
向
对
象
程
序
设
计
大
作
业
姓名:
叶尔凯西
学院(系):
计科系
班级:
计科系07-1班
学号:
设计本程序的目的:
关于一些并不太复杂的集体来说,一般需要管理集体中的每个人的基本信息的,本程序专门为一些在校学生的基本信息的管理而设计的,主要目的是通过本程序来实现简单的记录和查找学生的基本信息;
程序功能简介:
本程序是通过面向对象的最重要的特点“类”来设计出来的,其功能是实现简单的学生基本信息管理。
包括一些要求用户从键盘输入(记录)学生的基本信息、输出学生的基本信息和用学生的学号来查找学生信息表中的某个学生的基本信息等功能;
程序功能的详细介绍:
本人设计程序时考虑到的很所内容,其中输入输出学生的基本信息是最基本的功能。
下面来给大家介绍程序的核心类的构建:
1在程序中共建立了两种类,分别是person类和student类。
person作为student类的基类,其内部是如下设计的:
classperson
{
public:
voidSetPersonAddress(char*AddressFromMain);
voidSetPersonSex(char*SexFromMain);
voidShowPersonSex();
voidShowPersonAddress();
private:
charAddress[25];
charSex[2];
};
可以看到,在上面分别声明了四个成员函数和两个数据成员。
四个成员函数的作用是对私有数据成员进行访问(包括输入和输出)。
所以当建立了一个person类之后就可以通过它的对象来访问该类的数据成员。
下面分别说明每一个成员函数的具体定义:
(1)设置(输入)人地址的成员函数:
voidperson:
:
SetPersonAddress(char*AddressFromMain)
{
strcpy(Address,AddressFromMain);
}
通过strcpy把字符指针的内容送入person类中的数据成员Address。
(2)设置(输入)人性别的成员函数:
voidperson:
:
SetPersonSex(char*SexFromMain)
{
strcpy(Sex,SexFromMain);
}
通过strcpy把字符指针SexFromMain的内容作为地址的存储单元中的内容送入person类中Sex数据成员。
(3)输出地址成员函数:
voidperson:
:
ShowPersonAddress()
{
cout<
}
输出person类中的Address数据成员的内容;
(4)输出性别的成员函数:
voidperson:
:
ShowPersonSex()
{
cout< } 输出person类中的Sex数据成员的内容; ②接下来就是person基类的派生类student类的内部设计如下: classstudent: publicperson { public: voidSetStudentInformation(char*NameFromMain,char*StudentAddressFromMain,char*StudentSexFromMain,char*StudentNumberFromMain,int*score); voidShowStudentInformation(); friendvoidFindStudentNumber(student*data); friendvoidFindStudentName(student*data); private: intMathResult,EnglishResult,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult; charStudentNumber[25]; charName[25]; floatAverage; inttotal; }; 当设计student派生类的时候,最主要的特点就是利用了“类”的一个特点继承。 所以说派生出来的student类也具有基类person的一些特点。 在继承的方式上本人使用了共有继承方式(public),下面来给大家介绍student类的内部构造: 1成员函数共有设置(输入)学生信息、输出学生信息等两个。 还有一个非成员函数的一个函数,它为该student类的友元函数,其功能是实现查找。 除此之外还有从基类person类继承下来的一些成员函数; 2数据成员分别为整形变量的学生成绩(包括数学成绩、英语成绩、C++成绩、汇编语言成绩、数字逻辑成绩、马克思哲学成绩等),字符数组的学生学号和学生姓名以及整型变量的学生的总分和单精度变量的平均分; 下面介绍student派生类中的各个成员函数的定义部分: 设置(输入)学生信息的成员函数: Voidstudent: : SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain,char*StudentSexFromMain,char*StudentNumberFromMain,int*score) { strcpy(Name,NameFromMain); SetPersonAddress(StudentAddressFromMain); SetPersonSex(StudentSexFromMain); strcpy(StudentNumber,StudentNumberFromMain); for(inti=0;i<6;i++) { switch(i) { case0: MathResult=score[0]; case1: EnglishResult=score[1]; case2: CResult=score[2]; case3: CompilationLanguageResult=score[3]; case4: DigitalLogicResult=score[4]; case5: MarksismResult=score[5]; } } total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+MarksismResult; Average=total/6.0; } 可以看到在设计student类的输入成员函数时其内部同时调用了从基类继承下来的一些成员函数,这就是继承的特点。 下面将会详细地介绍该成员函数的功能: 首先是student类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy来直接实现,也就是可通过该类的成员函数来给数据成员赋值。 还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过student派生类的成员函数中调用从基类person中继承下来的成员函数,从而改变对不能被继承下来的基类的数据成员赋值。 接着就是对student类中自己的数据成员学生成绩的赋值,它们是通过一个简单的switchcase语句来实现的。 输出学生信息的成员函数: voidstudent: : ShowStudentInformation() { cout< cout<<"学生的基本信息如下: "< cout<<"学生的姓名: "< cout<<"学生的学号为: "< cout<<"学生的家庭地址为: "; ShowPersonAddress(); cout< cout<<"学生的性别为: "; ShowPersonSex(); cout< cout<<"学生的考试课程成绩如下: "< cout<<"学生的离散数学课程成绩为: "< cout<<"学生的英语课程成绩为: "< cout<<"学生的C++课程成绩为: "< cout<<"学生的汇编语言课程成绩为: "< cout<<"学生的数字逻辑课程成绩为: "< cout<<"学生的马克思主义哲学课程成绩为: "< cout<<"学生的总分为: "< cout<<"学生的平均分为: "< } 输出学生信息的成员函数的定义中不难发现输出时不仅会输出student派生类自己的数据成员的值还会同时输出不能被继承下来的基类person中的数据成员的值。 这显然只能通过继承下来的成员函数来实现(如ShowPersonAddress()和ShowPersonSex())。 下面来介绍三个非成员函数,其中两个为student类的友元函数。 它就是实现查找功能的(分别用学生学号和学生姓名来进行查找),另一个是一个单独的普通函数。 其功能是当程序运行时保持一个用户界面的功能。 Student类共有两个友元函数,分别是friendvoidFindStudentNumber(student*data)和friendvoidFindStudentName(student*data),它们两个都有查找功能,只是一个用学生的学号另一个用学生的姓名进行查找。 下面详细介绍student类的两个友元函数中的用学号查找的函数是如何的定义: voidFindStudentNumber(student*data) { charfindnum[25]; cout<<"请输入学号: "; cin>>findnum; inti=0; for(i;i { if(strcmp(data[i].StudentNumber,findnum)==0) { cout<<"在第"< "< data[i].ShowStudentInformation(); } if((strcmp(data[i].StudentNumber,findnum)<0)||(strcmp(data[i].StudentNumber,findnum)>0)) cout<<"在编号"< ! ! "< } } 下面详细介绍student类的两个友元函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 作业 源代码