logo资料库

学生选课系统—C++课设.doc

第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
资料共37页,剩余部分请下载后查看
2)查看所有课程的信息
摘要: 该课题是以学校学生选课管理业务为背景,设计、开发一套“学生选课系统” 软件。要求熟练掌握 C++语言的基本知识和技能,基本掌握面向对象程序设计的 基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设 计问题、要求利用面向对象的方法以及 C++的编程思想来完成系统的设计,在系 统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。 关键字:类 继承 派生 多态性
目 录 一.序言···········································3 二.总体设计·······································3 1.总体框图·······································3 2.程序功能·······································3 3.模块关系·······································4 三.详细设计·······································4 1.运行环境·······································4 2.界面设计·······································4 3.课程信息设计···································5 4.学生信息设计···································6 5.选课设计·······································7 6.运行程序·······································8 四.测试与调试·····································34 五.设计总结·······································35 六.致谢···········································36 七.参考文献·······································37
一.序言 学生选课系统是假定有 n 门课程,每门课程有课程编号,课程名称,课程性质, 总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如 总学分不得少于 60)自由选课,通过该题目的设计,培养学生面向对象程序设 计的思想,要求学生达到熟练掌握 C++(或 Java)语言的基本知识和技能,基本 掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解 决简单的面向对象程序设计问题。同时强调好的程序设计风格,提高解决实际问 题的能力 二.总体设计 1.总体框图 主模模块 查 询 模 块 增 加 模 块 删 除 模 块 修 改 模 块 选 课 模 块 显 示 选 课 情 况 模 块 显 示 课 程 信 息 模 块 2.程序功能 1)输入密码进入系统。 2)查看所有课程的信息 3)输入一门课程的课程编号,从当前课程中进行查找,如果找到则显示该课 程的相关信息,如果没有找到则给出提示信息 4)添加一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程 编号的课程,如果存在则提示重新输入,否则将该课程按照顺序插入到相应位置 5)删除一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编 号的课程,如果存在则将该课程删除,否则给出提示信息,提示该课程不存在 6)对课程信息进行修改。 7)选修一门课程,需要给出学号和课程编号,如果课程编号不存在则重新输
入,直到输入正确为止,并将学号和相应的课程编号存入 8)查看所选课程 3.模块关系 根据提示输入学号和密码进入系统。通过主函数模块进入各个其它函数的模块, 然后达到对课程信息的查看、增加、删除、修改和选课的功能,在这些模块中又 调用其它小模块(如:排序模块)。本程序主要有:主函数模块、显示课程信息 模块、查询模块、 增加模块、删除模块、修改模块、选课模块、显示选课情况模块等八个模块组成。 三.详细设计 1.运行环境:V-C++ 2.界面设计 菜单选择: 界面图示 选 1:进入课程信息界面 选 2:进入学生信息界面 选 3:进入选课界面 选 4:退出,并保存相关记录到文件里
3.课程信息 菜单选择: 课程信息界面图示 选 1:进入课程信息浏览,先看是否有记录,无则退出到课程信息界面,有则显示 出来. 选 2:进入课程信息录入,录入课程编号,先看是否重复,若有重复,则提示错误, 进行下次输入,无则输出一条记录,并添加记录到表. 选 3:进入课程信息修改,录入课程编号,看是否在表中有这条记录,无则提示错 误,有则提示修改记录的相关信息. 选 4:进入课程信息删除,录入要删除的课程编号,看是否在表中有这条记录,无 则提示错误,有则提示显示记录的相关信息,再提示是否确实要删除记录,要则删 除. 选 5:进入课程信息查询,进行选择是按学号查询或学分查询,不管哪种方式,都 查询一下表中有相关的记录,没有则重新选择,有刚显示相关记录. 选 6: 退出课程信息界面. 4.学生信息
菜单选择: 学生信息界面图示 选 1:进入学生信息浏览,先看是否有记录,无则退出到学生信息界面,有则显示 出来. 选 2:进入学生信息录入,录入学生编号,先看是否重复,若有重复,则提示错误, 进行下次输入,无则输出一条记录,并添加记录到表. 选 3:进入学生信息修改,录入学生编号,看是否在表中有这条记录,无则提示错 误,有则提示修改记录的相关信息. 选 4:进入学生信息删除,录入要删除的学生编号,看是否在表中有这条记录,无 则提示错误,有则 提示显示记录的相关信息,再提示是否确实要删除记录,要则 删除. 选 5:进入学生信息查询,进行选择是按学号查询或学分查询,不管哪种方式,都 查询一下表中有相关的记录,没有则重新选择,有刚显示相关记录. 选 6: 退出学生信息界面. 5.选课
菜单选择: 选课界面图示 选 1:进入选课信息浏览,先看是否有记录,无则退出到选课信息界面,有则显示 出来. 选 2:进入学生选课,录入学生编号,先看是否重复,若有重复,则提示错误,进行 下次输入,无则进行选课提示,输入选课的编号,再看是否输入的编号是否存在, 无则重新输入,有则看是否选了这门课,没有就选上,进行重复选择. 选 3: 进入学生退选,录入学生编号,先看是否重复,若有重复,则提示错误,进行 下次输入,无则进行选课提示,输入退选课程的编号,再看是否输入的编号是否存 在,无则重新输入,有则看是否选了这门课,没有就提示错误信息,若有就进行退 选.再进行重复选择。 选 6: 退出选课界面 6.运行程序 //头文件 //头文件 #include #include #include #include #include #include #include //定义课程 struct course { //某个学生所学的课程中的某一个
char cname[20]; float grade; course *Next; //课程名称 //课程成绩 //指向下一个课程的指针 }; //学生类 class student { public: student() { root = NULL; const maxcourse = 5; factcourse = 0; } void readname(char N[] ); void getname(char N[]); void wrecourse(char N[],float score); //要据课程名写入学生课程的成绩 float average(); void addcourse(char N[],float g); int findcourse(char N[]); //读入学生的姓名 //得到学生的姓名 //学生课程的平均成绩 //给学生增加一门课 //查找是否已有此课程,如果有返回 1,如果没有返 回 0 int retfactcourse() { return factcourse; //得到所学的课程数目 } course *retroot() { return root; } int retmaxcourse() { return 5; } void clrroot() { root = NULL; factcourse = 0; } private: char sname[20]; int maxcourse; int factcourse; course *root; //利用键表将所有的课程保存起来 //得到最多可学的课程数目 //清零 //学生的姓名 //学生最多可以学五门课程 //学生实际所学的课程数目 //课程的根结点指针
分享到:
收藏