C++程序设计大作业(含源代码)
更新时间:2023-11-12 20:38:01 阅读量: 教育文库 文档下载
- c语言程序设计大作业推荐度:
- 相关推荐
面 向 对 象 程 序 设 计 大 作 业
姓名:叶尔凯西
学院(系):计科系 班级:计科系07-1班 学号:08080605227
设计本程序的目的:
关于一些并不太复杂的集体来说,一般需要管理集体中的每个人的基本信息的,本程序专门为一些在校学生的基本信息的管理而设计的,主要目的是通过本程序来实现简单的记录和查找学生的基本信息;
程序功能简介:
本程序是通过面向对象的最重要的特点“类”来设计出来的,其功能是实现简单的学生基本信息管理。包括一些要求用户从键盘输入(记录)学生的基本信息、输出学生的基本信息和用学生的学号来查找学生信息表中的某个学生的基本信息等功能;
程序功能的详细介绍:
本人设计程序时考虑到的很所内容,其中输入输出学生的基本信息是最基本的功能。下面来给大家介绍程序的核心类的构建:
① 在程序中共建立了两种类,分别是person类和student类。person作为student
类的基类,其内部是如下设计的: class person {
public: void SetPersonAddress(char *AddressFromMain); void SetPersonSex(char *SexFromMain); void ShowPersonSex(); void ShowPersonAddress(); private: char Address[25]; char Sex[2]; };
可以看到,在上面分别声明了四个成员函数和两个数据成员。四个成员函数的作用是对私有数据成员进行访问(包括输入和输出)。所以当建立了一个person类之后就可以通过它的对象来访问该类的数据成员。
下面分别说明每一个成员函数的具体定义: (1) 设置(输入)人地址的成员函数:
void person::SetPersonAddress(char *AddressFromMain)
{
strcpy(Address,AddressFromMain);
}
通过strcpy把字符指针的内容送入person类中的数据成员Address。
(2) 设置(输入)人性别的成员函数:
void person::SetPersonSex(char *SexFromMain)
{
strcpy(Sex,SexFromMain); }
通过strcpy把字符指针SexFromMain的内容作为地址的存储单元中的内容送入person类中Sex数据成员。 (3) 输出地址成员函数:
void person::ShowPersonAddress() {
cout<
输出person类中的Address数据成员的内容; (4) 输出性别的成员函数: void person::ShowPersonSex() {
cout< 输出person类中的Sex数据成员的内容; ②接下来就是person基类的派生类student类的内部设计如下: class student: public person { public: 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,CResult,CompilationLanguageResult,DigitalLogicResult,MarksismResult; char StudentNumber[25]; char Name[25]; float Average; int total; }; 当设计student派生类的时候,最主要的特点就是利用了“类”的一个特点继承。 所以说派生出来的student类也具有基类person的一些特点。在继承的方式上本人使用了共有继承方式(public),下面来给大家介绍student类的内部构造: ① 成员函数共有设置(输入)学生信息、输出学生信息等两个。还有一个非成员函数的 一个函数,它为该student类的友元函数,其功能是实现查找。 除此之外还有从基类person类继承下来的一些成员函数; ② 数据成员分别为整形变量的学生成绩(包括数学成绩、英语成绩、C++成绩、汇编 语言成绩、数字逻辑成绩、马克思哲学成绩等),字符数组的学生学号和学生姓名以及整型变量的学生的总分和单精度变量的平均分; 下面介绍student派生类中的各个成员函数的定义部分: 设置(输入)学生信息的成员函数: Void student::SetStudentInformation(char*NameFromMain,char*StudentAddressFromMain,char* StudentSexFromMain,char *StudentNumberFromMain, int *score) { strcpy(Name,NameFromMain); SetPersonAddress(StudentAddressFromMain); SetPersonSex(StudentSexFromMain); strcpy(StudentNumber ,StudentNumberFromMain); for(int i=0; i<6; i++) { switch(i) { case 0: MathResult=score[0]; case 1: EnglishResult=score[1]; case 2: CResult=score[2]; case 3: CompilationLanguageResult=score[3]; case 4: DigitalLogicResult=score[4]; case 5: MarksismResult=score[5]; } } total=MathResult+EnglishResult+CResult+CompilationLanguageResult+DigitalLogicResult+MarksismResult; Average=total/6.0; } 可以看到在设计student类的输入成员函数时其内部同时调用了从基类继承下来的一些成员函数,这就是继承的特点。下面将会详细地介绍该成员函数的功能: 首先是student类的两个字符数组变量学生姓名和学生学号的赋值通过strcpy来直接实现,也就是可通过该类的成员函数来给数据成员赋值。还有两个数据成员是不能够被继承下来的基类的两个字符数组学生性别和家庭地址,它们是通过student派生类的成员函数中调用从基类person中继承下来的成员函数,从而改变对不能被继承下来的基类的数据成员赋值。接着就是对student类中自己的数据成员学生成绩的赋值,它们是通过一个简单的switch case语句来实现的。 输出学生信息的成员函数: void student::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类共有两个友元函数,分别是friend void FindStudentNumber(student
正在阅读:
C++程序设计大作业(含源代码)11-12
试析如何运用多媒体技术进行小学数学教学11-26
北京大学14秋微观经济学答案08-29
静坐与禅修09-18
机械检修中级工题库04-07
哈尔威船长导学案108-06
电化学方法合成聚苯胺 - 图文05-01
《牛顿第一定律》说课稿09-23
南京:发展现代农业 建设美丽乡村07-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 程序设计
- 源代码
- 作业
- RFID复习题目
- 服装史课后思考题及名词解释分析
- 小区物业管理满意度调查报告
- 工程化学基础第二版浙江大学课后题答案陈根生-2019年文档资料
- 小学语文古诗文课堂教学设计及反思
- 2016行政事业单位国有资产损溢、资金挂账核实申请表
- “学习身边人,做好当前事”活动方案
- 校本课程立项申请书
- 234G互操作规范-诺基亚(4G)V1.11
- 混凝土外加剂减水率、泌水率比试验检测记录表
- 数据挖掘概念与技术 - 课后题答案汇总
- 学而思寒扩展题五年级
- 《自悼赋》《自伤赋》-班婕妤
- 2016年咨询工程师继续教育-通信市场与投资分析试卷及答案
- 苏教版六年级语文上册22 古诗两首(1)
- 质量缺陷处理专项施工方案
- 职业健康检查工作方案(外出体检流程)案例
- 中国传统民居与评论(上) - 图文
- 标后预算管理办法
- 霍乱防疫措施