C课程设计报告学生信息管理系统

上传人:cn****1 文档编号:487555844 上传时间:2023-04-29 格式:DOC 页数:19 大小:191KB
返回 下载 相关 举报
C课程设计报告学生信息管理系统_第1页
第1页 / 共19页
C课程设计报告学生信息管理系统_第2页
第2页 / 共19页
C课程设计报告学生信息管理系统_第3页
第3页 / 共19页
C课程设计报告学生信息管理系统_第4页
第4页 / 共19页
C课程设计报告学生信息管理系统_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C课程设计报告学生信息管理系统》由会员分享,可在线阅读,更多相关《C课程设计报告学生信息管理系统(19页珍藏版)》请在金锄头文库上搜索。

1、C+课程设计报告学 院 计算机科学与信息工程学院 专 业 计算机科学与技术年 级 指 导 老 师 学 生 姓 名 完 成 时 间 2021 年08月23 日 编写一个小型的学生信息管理系统,可以对中学生、大学生和研究生的信息进行简单的管理。每一类的学生包括学生名、成绩1、成绩2、成绩3和平均成绩。,其中平均成绩=成绩1+成绩2+成绩3/3。每类学生还有区别于其他类学生的特殊信息,例如中学生有家长。大学生有专业,研究生有导师。要求通过本系统实现以下功能: 1输入学生的根本信息; 2根据学生名查询学生的成绩; 3计算并显示某个学生的平均成绩。 对于本系统中的的3种不同种类的对象:中学生、大学生和研

2、究生,抽取其共同特性形成一个基类:根本信息类Record。然后再这个基类的根底上分别派生出3个类:中学生类Student、大学生类U_student和研究生类Graduate。各类信息存放到文件中。 根本信息类Record中的数据成员是num学生类别编号、name(学生名)、score1(成绩1)、score2(成绩2)、score3(成绩3)、average(平均成绩)。3个学生类除了继承Record的数据外,类Student(中学生类)还增加了数据成员patriarch(家长),类U_student(大学生类)增加了数据成员specialty(专业),类Graduate(研究生类)数据成员

3、增加了mentor(导师)。 在基类中定义了构造函数和对所有类型学生的相同操作,成员函数Get_num负责取出学生类别编号,成员函数Get_score1负责取出成绩1,成员函数Get_score2负责取出成绩2,成员函数Get_score3负责取出成绩3,成员函数Computer_average负责取出平均成绩,成员函数Input负责数据输入,成员函数Output负责数据输出。 系统管理类(System)的主要操作是:成员函数In_information负责输入学生信息,成员函数Search负责查询学生信息,成员函数Out_average负责计算并显示平均成绩,成员函数Interface负责界

4、面输出。class Record /根本信息类protected:int num;char name20;float score1;float score2;float score3;float average;public:Record(char* R_name= ,float sco1=0,float sco2=0,float sco3=0);Record()int Get_num();float Get_score1();float Get_score2();float Get_score3();float Get_average();char *Getname();void Compu

5、te_average();void Input();void Output();class Student:public Record /中学生类char patriarch20;public:Student(char* R_name= ,float sco1=0,float sco2=0,float sco3=0,char *tea= );Student()void Input();void Output();class U_student:public Record /大学生类char specialty20;public:U_student(char* R_name= ,float sc

6、o1=0,float sco2=0,float sco3=0,char *spe= );U_student()void Input();void Output();class Graduate:public Record /研究生类char mentor20;public:Graduate(char* R_name= ,float sco1=0,float sco2=0,float sco3=0,char *men= );Graduate()void Input();void Output();class System /系统管理类Record A;Student B10;U_student

7、C10;Graduate D10;static int j1,j2,j3;void infor1();void infor2();void infor3();void save();void Search1(int h,char ch20);void Out_average1(int h,char* name);void Interface1();public:System();void In_information();void Search();void Out_average();void Interface();1将数据文件中信息读入内存对象数组当系统启动成功后,系统管理类System

8、的构造函数自动调用函数save,将学生信息从数据文件中读入内存各对象数组中。每次从数据文件中读取积累大小的一条信息存入基类对象中,并获得这条信息的种类编号,通过学生类别编号可以判定学生的类别,然后将指针指回到这条信息的开头,存入对应的对象数组中。就拿中学生类来举例子:根本信息类Record的对象是A,中学生类Student的对象是B【j1】,将数据文件里有关数据读出并存放到对象B【j1】中,有关程序段如下:fstream datafile(fileName,ios:in|ios:out|ios:binary); datafile.read(char*)&A,sizeof(Record); wh

9、ile(!datafile.eof() a=A.Get_num(); switch(a) case 1: datafile.seekp(-1* sizeof(class Record),ios:cur); datafile.read(char*)&Bj1,sizeof(Student); j1+; break; 2信息的输入 信息的输入功能由成员函数In_information来完成,它根据要输入的学生类别分别调用对应的学生信息输入功能函数来完本钱类学生的输入。有3个类别的学生信息输入函数:Void infor1();/输入中学生类对象数据Void infor2();/输入大学生类对象数据Vo

10、id infor3();/输入研究生类对象数据下面以infor1为例说明一条学生信息输入的实现过程:void System:infor1() Student A; fstream datafile(fileName,ios:in|ios:out|ios:binary); datafile.seekp(0,ios:end); A.Input(); datafile.write(char*)&A,sizeof(class Student); Bj1=A; datafile.close(); (3)信息的查询信息查询功能有成员函数Search来完成。如查询中学生信息的程序段如下:if(strcmp(

11、ch,Bs.Getname()=0) Bs.Output(); coutttt*endl; found=1; 4平均成绩计算和显示 平均成绩的计算和显示也是按照学生名来进行。先接收从键盘输入的学生类别编号和学生名,找到后通过调用对象的平均成绩计算函数来计算平均成绩并显示,以中学生的程序段为例: if(strcmp(name,Bs.Getname()=0) Bs.Compute_average(); average=Bs.Get_average(); found=1; 5界面设计和实现程序运行主要由System类中的Interface来完成。程序段如下:void System:Interface

12、() int rev; couttt *欢迎使用; cout*endl; couttt *小型学生信息管理系统; cout*endl; couttt 1.输入学生信息 endl; couttt 2.查询学生信息 endl; couttt 3.计算平均成绩 endl; couttt 4.退出 endl; coutrev; switch(rev) case 1: In_information(); break; case 2: Search(); break; case 3: Out_average(); break; case 4: exit(0); 完整程序如下:class Recordprotected:int num;char name20;float score1;float score2;float score3;float average;public:Record(char* R_name= ,float sco1=0,float sco2=0,float sco3=0);Record()int Get_num();float Get_score1();float Get_score2();float Get_score3();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号