c++课程设计-学生选修课选课系统资料

上传人:w****i 文档编号:92373454 上传时间:2019-07-09 格式:DOC 页数:28 大小:450.68KB
返回 下载 相关 举报
c++课程设计-学生选修课选课系统资料_第1页
第1页 / 共28页
c++课程设计-学生选修课选课系统资料_第2页
第2页 / 共28页
c++课程设计-学生选修课选课系统资料_第3页
第3页 / 共28页
c++课程设计-学生选修课选课系统资料_第4页
第4页 / 共28页
c++课程设计-学生选修课选课系统资料_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《c++课程设计-学生选修课选课系统资料》由会员分享,可在线阅读,更多相关《c++课程设计-学生选修课选课系统资料(28页珍藏版)》请在金锄头文库上搜索。

1、学生选修课选课系统目 录1 前言12 需求分析22.1 编写目的22.2 需求概述22.3 需求说明22.4 开发环境23 总体设计33.1功能模块图33.2 流程图43.3 类的设计图54 各功能模块设计74.1整体设计74.2主要的功能函数设计75 系统调试86 总结与体会146.1 总结146.2 编写程序中遇到的问题及解决办法14参考文献15附录 源程序16须眉原作1 前言随着计算机的普及,各高校均采用计算机进行学生选课。学生选修课系统主要包含选修课管理系统及学生选课系统两部分。学生选修课系统一般需要有管理员管理选修课课程,然后学生对经过管理员操作后的选修课进行选课。选修课管理系统由管

2、理员登录,对当前所有选修课课程进行管理操作。学生选课系统则是由学生登录,学生可以查看由管理员整理好的所有选修课,并从显示出的选修课中选择自己要选择的课程。管理员管理选修课实质是对后台选修课库中的选修课信息进行操作,可以在库中添加课程或删除课程。学生选课的实质即是先打印出后台选修课库中所有选修课信息以供选择,选择课程即是对后台学生信息库里的学生信息进行修改。2 需求分析2.1 编写目的 (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题; (4)通过编写此系统,实现选修课系统的

3、基本功能。2.2 需求概述 (1)系统中包括两个登陆身份(管理员与学生),并对应不同的功能; (2)对于管理员,此系统具有添加、删除、查看选修课等功能; (3)对于学生,此系统具有选课、查询等功能2.3 需求说明 此系统可以实现学生选课,管理员管理课程的基本功能2.4 开发环境 使用Visual C+6.0编程软件3 总体设计3.1功能模块图(1)学生学生身份有两个功能,分别是选课与查看个人信息。如图3.1所示。学生选课个人信息 图 3.1 学生功能模块图(2) 管理员管理员可以对选修课课程进行管理。如下图所示。管理员查看选修课删除选修课添加选修课图 3.2 管理员功能模块图3.2 流程图 进

4、入系统后可以选择以学生身份或者管理员身份登录。学生登录需要输入个人的学号及姓名,成功登录后可以选课或查询个人信息。管理员的登录需要输入密码,成功登录后则可以对当前所有的选修课进行管理操作,可添加新选修课或删除已有的选修课。详细操作流程如下图所示。选择身份或退出学生管理员开始结束选课个人信息查看选修课删除选修课添加选修课显示全部按类型选课按学分选课显示全部按类型查询按学分查询输入学号及姓名输入密码图 3.3 流程图3.3 类的设计图(1) Course类 Course类即选修课课程类。数据成员分别是:课程编号、课程名称、课程类型、开课时间、授课学时、实验学时、总学时以及学分。成员函数则包含所有数

5、据成员的get函数,用以获取数据成员的值,set函数用来修改课程,print函数则是打印课程的信息。如下图所示。Courseid: char *name: char *nature: char *date: char *shours: intahours: intzhours: intscore: doublescore: doublegetId(): char *getName(): char*getNature(): char*getDate(): char*getAhours(): intgetShours(): intgetZhours(): intgetScore(): double

6、set(char *a, char *b, char *c, char *d, int e, int f, double g): voidprint(): void图 3.4 Course类(2) Student类 Student类即学生类。其中包含了学生的学号、学生姓名、所选的两门课程及两门选修课课程的总学分。setId和setName是用来修改相关成员的值,getName获取学生的姓名,print函数用来打印学生的相关信息,个selectCourse则是用来选课。如下图所示。Studentid: char *name: char *c1: Coursec2: Coursezscore: d

7、ounblesetId(char * a1): voidsetName(char* a1): voidgetName(): char*selectCourse_1(Course cc): voidselectCourse_2(Course cc): voidprint(): voidprint(): void图3.5 Student类4 各功能模块设计4.1整体设计对于学生和选修课,我们分别定义了相应的类Student和类Course,其间的关系就是学生类中有两个选修课类对象成员。而对于管理员我们并没有单独去定义类,因为管理员只是对选修课进行操作,程序中并不需要访问管理员的信息。为了方便对选修

8、课进行管理及多位学生的登录,我们定义了一个选修课数组和学生数组。4.2主要的功能函数设计(1) 选课函数 void selectCourse(Student s110, Course c1M, int s_num1) 对当前学生对象进行操作,覆盖其选修课对象成员c1或c2,即学生的选课。(2) 两种输出所需选修课函数按学分输出选修课函数 void selectScore(Course c1M)按类型输出选修课void selectNature(Course c1M)对传递进来的选修课数组进行扫描,输出符合要求的选修课。(3) 选修课排序函数 void xu(Course c1M)使用冒泡排序法

9、对选修课数组进行编号从小到大的排序。(4) 主菜单函数 void menu(Course c16, Student s110)所有菜单循环都在其中,调用其他函数来实现具体功能。5 系统调试1. 系统主界面进入系统主界面后可以选择登录身份或退出程序。如图5.1所示。图5.1 系统主界面2.选修课管理系统图5.1选择登录身份为管理员,默认密码123,输入-1可返回图5.1界面。密码输入正确后可进入管理员登录系统。如图5.2所示。图5.2 选修课管理系统3. 按学分查看选修课图5.2选择查看选修课,可以查看当前所有的选修课课程的相关信息。可以选择不同的输出方式:按学分查询、按类型查询、显示全部。选择

10、按学分查询,在选择0.5,可打印当前所有课程中学分为0.5的课程信息。如图5.3所示。图5.3 按学分查看选修课4. 查询全部选修课查看选修课功能中可以选择显示全部,即罗列出当前所有的选修课课程信息。如图5.4所示。图5.4 查询全部选修课5. 管理员添加选修课图5.2选择添加选修课,可以添加一门新的选修课,然后按要求输入课程信息。如图5.5所示。图5.5 管理员添加选修课6. 添加后的选修课信息添加选修课后选择返回上一层,再选择显示全部选修课可以看到已新增的选修课已添加成功。如图5.6所示。图5.6 添加后的选修课7. 管理员删除选修课图5.2选择删除选修课。输入要删除的选修课的编号,即可删

11、除相应的选修课。如图5.7所示。图5.7 管理员删除选修课8. 删除后的选修课信息删除选修课后选择返回上一层,再选择显示全部选修课可以看到已删除的选修课已删除成功。如图5.8所示。图5.8 删除后的选修课信息9. 学生选课系统图5.1选择学生,然后输入学生的姓名及学号就能进入学生选课系统。如图5.9所示。图5.9 学生选课系统10. 学生选课以学生身份登录成功后,可以选择选课或是查询个人信息。选择选课可以选择按学分选课、按课程类型选课或显示全部课程再进行选课。选择按学分选课,再选艺术类,再输入课程编号即可选择相应课程。如图5.10所示。图5.10 学生选课11. 学生信息选择查看个人信息程序即

12、打印出当前学生的相关信息。如图5.11 所示。图5.11 学生信息12. 退出图5.1选择退出即退出程序。如图5.12所示。图5.12 退出程序6 总结与体会6.1 总结本程序实现了学生选课及管理员对课程的操作功能,而学生的选课及管理员对课程的管理,都可以按学分或类型来进行操作。管理员登录的默认密码是123,管理员可以添加新的选修课课程,也可以删除原有的选修课。经过此次的课程设计,我们受益颇丰,尤其是对在编写过程中遇到的难题的处理方法,学会了很多程序设计的技巧。6.2 编写程序中遇到的问题及解决办法(1)在无法与后台交互的情况下如何实现用户登录?因为只需要管理员有对选修课操作的能力,因此不需储

13、存管理员的信息,只需在其登录前询问密码即可。而学生的登录,在其登录时分配一个对象空间,储存在其登录时获取的学号及姓名即可,即每一个学生的登录相当于注册过程。(2)如何在不退出程序的情况下,能够让多位学生进行选课?定义学生类对象数组,每一位学生选完课后,再分配一个新的学生类对象空间。(3)如何实现对学生对象中课程对象成员的覆盖?一开始我们为了方便起见是考虑学生类课程对象定义为引用,这样只需引用已有的选修课课程即可,但这样的话,在对学生对象初始化时引用的初始化就成了问题,因此只能放弃。最终是选择了使用set和get方法对对象成员的成员一个个覆盖。参考文献1 黄维通.Visual C+面向对象与可视化程序设计(第2版).北京:清华大学出版社,2007.2 张乃孝,陈光,孙猛.算法与数据结构C语言描述(第三版),2011.3 谭浩强.C程序语言设计(第三版)M.北京:清华大学出版社,2007.4 杨永斌.数据结构理论与实践M.天津:科学技术出版社,2011.5 罗建军.C+程序射机枪教程(第2版).北京:高等教育出版社,2004.6 郑振杰.C+程序设计. 北京:人民邮电出版社,2005.7 刘觉夫,王更生等.c+程序设计.北京:邮电大学出版社,2011.8 邵伟忠.C常用算法程序集.天津:人民出版社,2009.9 徐世亮.C+大学教程.北京:人民

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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