0607010202学生信息管理.doc_第1页
0607010202学生信息管理.doc_第2页
0607010202学生信息管理.doc_第3页
0607010202学生信息管理.doc_第4页
0607010202学生信息管理.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南科技大学面向对象程序设计课程设计设计主题: 学生信息管理 指导教师: 文一凭 学生院系: 数学与应用数学 学生班级: 06级数学2班 学生姓名: 张开洲 学生学号: 0607010202 同组人员: 王瑀 仇艳萍 殷培孟 唐盘花 陈玲 叶海军 罗代标 一、 程序设计目的 掌握函数的定义和调用方法。 练习重载函数的使用。 练习使用系统函数。 掌握类的声明和使用。 掌握类的声明和对象的声明。 复习具有不同访问属性的成员的访问方式。 观察构造函数和析构函数的执行过程。 学习类的组合使用方法。 观察程序运行中变量的作用域、生存期和可见性。 学习类的静态成员的使用 学习多文件结构在C+程序中的使用。 学习使用数组数据对象。 学习字符串数据的组织和处理。 学习标准C+库的使用 二、 程序功能设计 用户名 用户密码 文一凭 文一凭 殷培孟 0607010222 王 瑀 0607010238 陈 玲 0607010336 仇艳萍 0607010335 唐盘花 0607010233叶海军 0607010217罗代标 0607010204 张开洲 0607010202 系统查询功能 通过输入的姓名或学号,与对系统的调用返回的值相对比,如果相同并且满号,年龄不为0,则输出该对象的信息。首先按照系统提示选择按照姓名或者学号查询,例如:输入 b(学号)再回车输入学号:0607010202,则系统输出:输入 b(学号)再回车输入学号:0607010217,则系统返回:此项结束后,仍可继续查询其他人的信息。增加功能删除查找按性别查找排序显示退出 三、 程序实现思路(介绍类设计及功能模块的划分,程序的主界面设计(建议提供菜单用户界面),) 首先定义基类 student ,通过虚继承派生出两个派生类UnderGraduate和Graduate,并此公有派生出MasterGraduate. 通过while语句,只要判断语句不为0,就可以每次输入数据,并且来改变判断语句之值,下面用Switch语句选择相应的功能进而实现每一个功能。查找,逐一同输入的内容做对比,如果相同输出增加功能删除查找按性别查找排序显示退出 四、 类设计图Student#studentAge:int #studentNumber:char20#studentName:char20#studentSex:char10#studentGrade:int3#avestudGrade:double#studentDate:struct+student()+student(:student &)+student()+SetStudentName(:char *):void+SetStudentNumber(:char *):void+SetStudentSex(:char *):void+GetStudentName():char *+GetStudentNumber():char *+GetStudentSex():char *+GetStudentAge():int+GetstudentGrade():int *+SetStudentGrade(course1:int, course2: int, course3: int)+SetStudentDate(Nian: int, Yue:int, Ri:int)+CalaStudentAge(this year:int)+display():void+displayViaSex(number: int)Graduate+Graduate()+Graduate()+operator(out:ostream&,:UnderGraduate&):ostream &+display(): voidUnderGraduate+UnderGraduate()+operator(out:ostream&,undergraduate1:UnderGraduate&):ostream &+UnderGraduate()+display(): void MasterGraduate+MasterGraduate()+MasterGraduate()+operator(out:ostream&,mastergraduate1: MasterGraduate&):ostream &+display(): void 五、 程序清单(不少于1/3的程序有注释)struct date /日期-结构体 int Year; /年 int Month; /月 int Day; /日;class Student /学生类 protected: int studentAge; /学生年龄char studentNumber20; /学生学号 char studentName20; /学生姓名 char studentSex10; /学生性别 int studentGrade3; /学生三科成绩 double avestudGrade; /学生平均成绩 struct date studentDate; /学生出生日期public:Student(); /学生类构造函数Student(Student &); /学生类拷贝构造函数Student(); /学生类析构函数void SetStudentName(char *); /设置学生姓名void SetStudentNumber(char *); /设置学生学号void SetStudentSex(char *); /设置学生性别char * GetStudentName(); /获取学生姓名char * GetStudentNumber(); /获取学生学号char * GetStudentSex(); /获取学生性别int GetStudentAge(); /获取学生年龄int * GetstudentGrade(); /获取学生三科成绩void SetStudentGrade(int course1,int course2,int course3); /设置学生三科成绩void SetStudentDate(int Nian,int Yue,int Ri); /设置学生出生日期 void CalaStudentAge(int thisyear); /计算学生年龄 virtualvoid display(); /虚函数-显示信息void displayViaSex(int number); /通过性别显示信息;class UnderGraduate: virtual public Student /本科生类public:UnderGraduate(); /本科生类构造函数friend ostream & operator (ostream &out,UnderGraduate &undergraduate1);/友元函数重载输出函数UnderGraduate(); /析构函数 void display(); /本科生类显示函数;class Graduate: virtual public Student /研究生类public:Graduate(); /研究生类构造函数Graduate(); /研究生类构造函数friend ostream & operator (ostream &out,Graduate &);/友元函数重载输出函数void display(); /研究生类显示函数;class MasterGraduate:public UnderGraduate,public Graduate /本硕连读生类public:MasterGraduate(); /本硕连读生类构造函数MasterGraduate(); /本硕连读生类析构函数friend ostream & operator (ostream &out,MasterGraduate &mastergraduate1); /友元函数重载输出函数void display(); /本硕连读生类显示函数;case 4 :cout请输入你要查找的学生姓名或学号 a-姓名,b-学号,其余字母键跳出.wd;while(wd=a|wd=A|wd=b|wd=B)if(wd=a|wd=A)sign1=0;sign2=0;sign3=0;cout请输入要查找的学生姓名.nameornumber;for(i=0;icount1;i+)compare1=strcmp(nameornumber,undergraduateji.GetStudentName();if(compare1=0)studentj=undergraduatej+i;if(undergraduateji.GetStudentAge()!=0) fun(studentj);sign1=1;for(i=0;icount2;i+)compare2=strcmp(nameornumber,graduateji.GetStudentName();if(compare2=0)studentj=graduatej+i;if(graduateji.GetStudentAge()!=0) fun(studentj);sign2=1;for(i=0;icount3;i+)compare3=strcmp(nameornumber,mastergraduateji.GetStudentName();if(compare3=0)studentj=mastergraduatej+i;if(mastergraduateji.GetStudentAge()!=0) fun(studentj);sign3=1; if(sign1=0&sign2=0&sign3=0)cout没有与你要查找的姓名相匹配的学生信息.endl;cout请输入你要查找的学生姓名或学号 a-姓名,b-学号,其余字母键跳出.wd;if(wd=b|wd=B)sign1=0;sign2=0;sign3=0;cout请输入要查找的学生学号.nameornumber;for(i=0;icount1;i+)compare1=strcmp(nameornumber,undergraduateji.GetStudentNumber();if(compare1=0)studentj=undergraduatej+i;if(undergraduateji.GetStudentAge()!=0) fun(studentj);sign1=1;for(i=0;icount2;i+)compare2=strcmp(nameornumber,graduateji.GetStudentNumber();if(compare2=0)studentj=graduatej+i;if(graduateji.GetStudentAge()!=0) fun(studentj);sign2=1;for(i=0;icount3;i+)compare3=strcmp(nameornumber,mastergraduateji.GetStudentNumber();if(compare3=0)studentj=mastergraduatej+i;if(mastergraduateji.GetStudentAge()!=0) fun(studentj);sign3=1;if(sign1=0&sign2=0&sign3=0)cout没有与你要查找的学号相匹配的学生信息.endl;cout请输入你要查找的学生姓名或学号 a-姓名,b-学号,其余字母键跳出.wd;break;六、 课程设计总结(通过有代表性的运行实例,叙述开发结果的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论