c++课程设计报告——学生信息管理系统

上传人:正** 文档编号:41217077 上传时间:2018-05-28 格式:DOC 页数:19 大小:211KB
返回 下载 相关 举报
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+课程设计报告学学 院院 计算机科学与信息工程学院计算机科学与信息工程学院专专 业业 计算机科学与技术计算机科学与技术年年 级级 指指 导导 老老 师师 学学 生生 姓姓 名名 完完 成成 时时 间间 20122012 年年 0808 月月 2323 日日一一.需求分析需求分析编写一个小型的学生信息管理系统,可以对中学生、大学生和研究生的信息进行简单的管理。每一类的学生包括学生名、成绩 1、成绩 2、成绩 3 和平均成绩。 ,其中平均成绩=(成绩 1+成绩 2+成绩3)/3。每类学生还有区别于其他类学生的特殊信息,例如中学生有家长。大学生有专业,研究生有导师。要求通过本系统实现以下功能:(

2、1)输入学生的基本信息;(2)根据学生名查询学生的成绩;(3)计算并显示某个学生的平均成绩。二二.系统设计系统设计对于本系统中的的 3 种不同种类的对象:中学生、大学生和研究生,抽取其共同特性形成一个基类:基本信息类 Record。然后再这个基类的基础上分别派生出 3 个类:中学生类 Student、大学生类U_student 和研究生类 Graduate。各类信息存放到文件中。1.1.基类和派生类的设计基类和派生类的设计基本信息类 Record 中的数据成员是 num(学生类别编号) 、name(学生名)、score1(成绩 1)、score2(成绩 2)、score3(成绩 3)、aver

3、age(平均成绩)。3 个学生类除了继承 Record 的数据外,类Student(中学生类)还增加了数据成员 patriarch(家长),类U_student(大学生类)增加了数据成员 specialty(专业),类Graduate(研究生类)数据成员增加了 mentor(导师)。在基类中定义了构造函数和对所有类型学生的相同操作,成员函数 Get_num 负责取出学生类别编号,成员函数 Get_score1 负责取出成绩 1,成员函数 Get_score2 负责取出成绩 2,成员函数Get_score3 负责取出成绩 3,成员函数 Computer_average 负责取出平均成绩,成员函数

4、 Input 负责数据输入,成员函数 Output 负责数据输出。系统管理类(System)的主要操作是:成员函数 In_information 负责输入学生信息,成员函数 Search 负责查询学生信息,成员函数Out_average 负责计算并显示平均成绩,成员函数 Interface 负责界面输出。/Record.h class Record /基本信息类 protected: int num; char name20; float score1; float score2; float score3; float average; public: Record(char* R_name

5、=“ “,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 Compute_average(); void Input(); void Output(); ;class Student:public Record /中学生类 char patriarch20; public: Student(char* R_na

6、me=“ “,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 sco1=0,float sco2=0,float sco3=0,char *spe=“ “); U_student() void Input(); void Output(); ;class Gradua

7、te: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 C10; Graduate D10; static int j1,j2,j3; void infor1(); void infor2(); void info

8、r3(); 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(); ; 2.2.系统管理类的设计系统管理类的设计(1)将数据文件中信息读入内存对象数组当系统启动成功后,系统管理类 System 的构造函数自动调用函数save,将学生信息从数据文件中读入内存各对象数组中。

9、每次从数据文件中读取积累大小的一条信息存入基类对象中,并获得这条信息的种类编号,通过学生类别编号可以判定学生的类别,然后将指针指回到这条信息的开头,存入对应的对象数组中。就拿中学生类来举例子:基本信息类 Record 的对象是 A,中学生类 Student 的对象是 B【j1】 ,将数据文件里有关数据读出并存放到对象 B【j1】中,有关程序段如下:fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.read(char*)while(!datafile.eof() a=A.Get_num();switch(a)case 1:

10、datafile.seekp(-1* sizeof(class Record),ios:cur);datafile.read(char*)j1+;break; (2)信息的输入 信息的输入功能由成员函数 In_information 来完成,它根据要输入的学生类别分别调用对应的学生信息输入功能函数来完成本类学生的输入。有 3 个类别的学生信息输入函数:Void infor1();/输入中学生类对象数据Void infor2();/输入大学生类对象数据Void infor3();/输入研究生类对象数据下面以 infor1 为例说明一条学生信息输入的实现过程:void System:infor1(

11、)Student A;fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);A.Input();datafile.write(char*)Bj1=A;datafile.close();(3)信息的查询信息查询功能有成员函数 Search 来完成。如查询中学生信息的程序段如下:if(strcmp(ch,Bs.Getname()=0)Bs.Output();coutrev;switch(rev)case 1:In_information();break;case 2:Search();break

12、;case 3:Out_average();break;case 4:exit(0); 三.系统实现完整程序如下:/Record.hclass 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_score

13、2(); float Get_score3(); float Get_average(); char *Getname(); void Compute_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_s

14、tudent:public Record char specialty20; public: U_student(char* R_name=“ “,float sco1=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=“ “

15、); Graduate() void Input(); void Output(); ;class System Record A; Student B10; U_student 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(); ;/Record.cpp#include #include #include #include “Record.h“ using namespace std; #define N 30 char fileName=“super.dat“; Record:Record(char* R_n

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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