C++程序设计大作业(含源代码).docx
《C++程序设计大作业(含源代码).docx》由会员分享,可在线阅读,更多相关《C++程序设计大作业(含源代码).docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计大作业姓名:叶尔凯西 学院系:计科系班级:计科系 07-1 班学号:设计本程序的目的:关于一些并不太简洁的集体来说,一般需要治理集体中的每个人的根本信息的,本程序特地为一些在校学生的根本信息的治理而设计的,主要目的是通过本程序来实现简洁的记录和查找学生的根本信息;程序功能简介:本程序是通过面对对象的最重要的特点“类”来设计出来的,其功能是实现简洁的学生 根本信息治理。包括一些要求用户从键盘输入记录学生的根本信息、输出学生的根本信息和用学生的学号来查找学生信息表中的某个学生的根本信息等功能;程序功能的具体介绍:本人设计程序时考虑到的很所内容,其中输入输出学生的根本信息是最根本的功
2、能。下面来给大家介绍程序的核心类的构建: 在程序中共建立了两种类,分别是person 类和 student 类。person 作为 student 类的基类,其内部是如下设计的:class personpublic:void SetPersonAddress(char *AddressFromMain); void SetPersonSex(char *SexFromMain);void ShowPersonSex; void ShowPersonAddress; private:char Address25; char Sex2;可以看到,在上面分别声明白四个成员函数和两个数据成员。四个成员
3、函数的作用是对私有数据成员进展访问包括输入和输出。所以当建立了一个 person 类之后就可以通过它的对象来访问该类的数据成员。下面分别说明每一个成员函数的具体定义:(1) 设置输入人地址的成员函数:void person:SetPersonAddress(char *AddressFromMain)strcpy(Address,AddressFromMain);通过 strcpy 把字符指针的内容送入person 类中的数据成员Address。(2) 设置输入人性别的成员函数:void person:SetPersonSex(char *SexFromMain)strcpy(Sex,SexF
4、romMain);通过 strcpy 把字符指针SexFromMain 的内容作为地址的存储单元中的内容送入person 类中Sex 数据成员。(3) 输出地址成员函数:void person:ShowPersonAddresscoutAddressendl;输出 person 类中的Address 数据成员的内容;(4) 输出性别的成员函数: void person:ShowPersonSexcoutSexendl;输出 person 类中的Sex 数据成员的内容;接下来就是person 基类的派生类student 类的内部设计如下:class student: public personp
5、ublic:void SetStudentInformation(char*NameFromMain,char *StudentAddressFromMain,char*StudentSexFromMain,char *StudentNumberFromMain, int *score); void ShowStudentInformation;friend void FindStudentNumber(student *data); friend void FindStudentName(student *data); private:int MathResult,EnglishResult
6、,CResult,CompilationLanguageResult,DigitalLogicResu lt,MarksismResult;char StudentNumber25; char Name25;float Average; int total;当设计student 派生类的时候,最主要的特点就是利用了“类”的一个特点继承。所以说派生出来的student 类也具有基类person 的一些特点。在继承的方式上本人使用了共有继承方式public,下面来给大家介绍 student 类的内部构造: 成员函数共有设置(输入)学生信息、输出学生信息等两个。还有一个非成员函数的一个函数,它为该s
7、tudent 类的友元函数,其功能是实现查找。除此之外还有从基类person 类继承下来的一些成员函数; 数据成员分别为整形变量的学生成绩包括数学成绩、英语成绩、C+成绩、汇编语言成绩、数字规律成绩、马克思哲学成绩等,字符数组的学生学号和学生姓名以及整型变量的学生的总分和单精度变量的平均分;下面介绍student 派生类中的各个成员函数的定义局部: 设置(输入)学生信息的成员函数:Voidstudent:SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain, char* StudentSexFromMain,ch
8、ar *StudentNumberFromMain, int *score)strcpy(Name,NameFromMain); SetPersonAddress(StudentAddressFromMain); SetPersonSex(StudentSexFromMain); strcpy(StudentNumber ,StudentNumberFromMain);for(int i=0; i6; i+)switch(i)case 0:MathResult=score0; case 1:EnglishResult=score1; case 2:CResult=score2; case 3:
9、CompilationLanguageResult=score3; case 4:DigitalLogicResult=score4; case 5:MarksismResult=score5;total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+MarksismResult; Average=total/6.0;可以看到在设计 student 类的输入成员函数时其内部同时调用了从基类继承下来的一些成员函数,这就是继承的特点。下面将会具体地介绍该成员函数的功能:首先是 studen
10、t 类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy 来直接实现,也就是可通过该类的成员函数来给数据成员赋值。还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过 student 派生类的成员函数中调用从基类 person 中继承下来的成员函数,从而转变对不能被继承下来的基类的数据成员赋值。接着就是对 student 类中自己的数据成员学生成绩的赋值,它们是通过一个简洁的switch case 语句来实现的。输出学生信息的成员函数:void student:ShowStudentInformationcoutendl;cout“学生的根本信息如下:
11、“endlendl; cout“学生的姓名: “Nameendlendl;cout“学生的学号为: “StudentNumberendlendl;cout“学生的家庭地址为: “; ShowPersonAddress; coutendl;cout“学生的性别为: “; ShowPersonSex; coutendl;cout“学生的考试课程成绩如下: “endlendl;cout“学生的离散数学课程成绩为: “MathResult“分“endlendl; cout“学生的英语课程成绩为: “EnglishResult“分“endlendl; cout“学生的C+课程成绩为: “CResult“
12、分“endlendl;cout“ 学 生 的 汇 编 语 言 课 程 成 绩 为 : “CompilationLanguageResult“ 分“endlendl;cout“学生的数字规律课程成绩为: “DigitalLogicResult“分“endlendl; cout“学生的马克思主义哲学课程成绩为: “MarksismResult“分“endlendl; cout“学生的总分为:“total“分“endlendl;cout“学生的平均分为:“Average“分“endlendl;输出学生信息的成员函数的定义中不难觉察输出时不仅会输出 student 派生类自己的数据成员的值还会同时输出
13、不能被继承下来的基类person 中的数据成员的值。这明显只能通过继承下来的成员函数来实现如ShowPersonAddress和ShowPersonSex。下面来介绍三个非成员函数,其中两个为 student 类的友元函数。它就是实现查找功能的分别用学生学号和学生姓名来进展查找,另一个是一个单独的一般函数。其功能是当程序运行时保持一个用户界面的功能。Student 类共有两个友元函数,分别是friend void FindStudentNumber(student*data)和 friend void FindStudentName(student *data),它们两个都有查找功能,只是一个
14、用学生的学号另一个用学生的姓名进展查找。下面具体介绍student 类的两个友元函数中的用学号查找的函数是如何的定义: void FindStudentNumber(student *data)char findnum25; coutfindnum;int i=0; for(i;iStuNum;i+)if(strcmp(datai.StudentNumber,findnum)=0)cout“在第“i+1“个编号里有您查找的记录:“endl; datai.ShowStudentInformation;if(strcmp(datai.StudentNumber,findnum)0)cout“在编号
15、“i+1“里没有您查找的记录“endl;下面具体介绍student 类的两个友元函数中的用姓名查找的函数是如何的定义:void FindStudentName(student *data)char findname25; coutfindname;int i=0; for(i;iStuNum;i+)if(strcmp(datai.Name,findname)=0)cout“在第“i+1“个编号里有您查找的记录:“endl; datai.ShowStudentInformation;if(strcmp(datai.Name,findname)0) cout“在编号“i+1“里没有您查找的记录“e
16、ndl;可以看出student 类的两个友元函数即查找分别用学号和姓名函数的定义都很相像, 主要是算法是全都。由于在 student 类中数据成员学生姓名和学生学号都是用字符数组来定义的,所以上面的两个分别用学号和姓名来查找的函数的算法是根本全都的,只是一个是用student 类的一个对象中里面的name姓名去查找,另一个是用 student 类的一个对象中里面的 StudentNumber学生姓名去查找。在整个查找函数先是在函数的参数表中声明student 类的对象指针,在主函数main 中当调用查找函数时把main 函数中定义的student 类的数组的首地址传送给查找函数。在查找函数中先
17、定义一个字符数组,再提示用户输入要查找的学生的姓名或学号,当姓名或学号在相应的学生编号里的相应的name姓名和StudentNumber学生学号相等时查找便成功并提示用户该学号或姓名为根本信息的学生信息输出在屏幕上,当不相等时查找不成功并提示用户没有找到学生的记录。下面介绍非成员函数即一般函数程序运行时保持一个用户界面功能的函数: void paintint i;cout“学生信息治理系统“endl; for (i = 0; i80; i+)putchar(”%”); coutendl;cout“(1) 输入学生的信息(3)用学号查找学生根本信息 “endl; coutendl;cout“(2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 作业 源代码
限制150内