c++课程设计-学生选修课选课系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生选修课选课系统
目录
1 前言 (1)
2 需求分析 (2)
2.1 编写目的 (2)
2.2 需求概述 (2)
2.3 需求说明 (2)
2.4 开发环境 (2)
3 总体设计 (3)
3.1功能模块图 (3)
3.2 流程图 (4)
3.3 类的设计图 (5)
4 各功能模块设计 (7)
4.1整体设计 (7)
4.2主要的功能函数设计 (7)
5 系统调试 (8)
6 总结与体会 (14)
6.1 总结 (14)
6.2 编写程序中遇到的问题及解决办法 (14)
参考文献 (15)
附录源程序 (16)
须眉原作
1 前言
随着计算机的普及,各高校均采用计算机进行学生选课。学生选修课系统主要包含选修课管理系统及学生选课系统两部分。
学生选修课系统一般需要有管理员管理选修课课程,然后学生对经过管理员操作后的选修课进行选课。选修课管理系统由管理员登录,对当前所有选修课课程进行管理操作。学生选课系统则是由学生登录,学生可以查看由管理员整理好的所有选修课,并从显示出的选修课中选择自己要选择的课程。
管理员管理选修课实质是对后台选修课库中的选修课信息进行操作,可以在库中添加课程或删除课程。学生选课的实质即是先打印出后台选修课库中所有选修课信息以供选择,选择课程即是对后台学生信息库里的学生信息进行修改。
2 需求分析
2.1 编写目的
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题;(4)通过编写此系统,实现选修课系统的基本功能。
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 流程图
进入系统后可以选择以学生身份或者管理员身份登录。学生登录需要输入个人的学号及姓名,成功登录后可以选课或查询个人信息。管理员的登录需要输入密码,成功登录后则可以对当前所有的选修课进行管理操作,可添加新选修课或删除已有的选修课。详细操作流程如下图所示。
图 3.3 流程图
3.3 类的设计图
(1)Course类
Course类即选修课课程类。数据成员分别是:课程编号、课程名称、课程类型、开课时间、授课学时、实验学时、总学时以及学分。成员函数则包含所有数据成员的get函数,用以获取数据成员的值,set函数用来修改课程,print函数则是打印课程的信息。如下图所示。
Course
id: char *
name: char *
nature: char *
date: char *
shours: int
ahours: int
zhours: int
score: double
score: double
getId(): char *
getName(): char*
getNature(): char*
getDate(): char*
getAhours(): int
getShours(): int
getZhours(): int
getScore(): double
set(char *a, char *b, char *c, char *d, int e, int f, double g): void
print(): void
图 3.4 Course类
(2)Student类
Student类即学生类。其中包含了学生的学号、学生姓名、所选的两门课程及两门选修课课程的总学分。setId和setName是用来修改相关成员的值,getName 获取学生的姓名,print函数用来打印学生的相关信息,个selectCourse则是用来选课。如下图所示。
图3.5 Student类
4 各功能模块设计
4.1整体设计
对于学生和选修课,我们分别定义了相应的类Student和类Course,其间的关系就是学生类中有两个选修课类对象成员。而对于管理员我们并没有单独去定义类,因为管理员只是对选修课进行操作,程序中并不需要访问管理员的信息。
为了方便对选修课进行管理及多位学生的登录,我们定义了一个选修课数组和学生数组。
4.2主要的功能函数设计
(1)选课函数
void selectCourse(Student s1[10], Course c1[M], int s_num1)
对当前学生对象进行操作,覆盖其选修课对象成员c1或c2,即学生的选课。
(2)两种输出所需选修课函数
按学分输出选修课函数void selectScore(Course c1[M])
按类型输出选修课void selectNature(Course c1[M])
对传递进来的选修课数组进行扫描,输出符合要求的选修课。
(3)选修课排序函数
void xu(Course c1[M])
使用冒泡排序法对选修课数组进行编号从小到大的排序。
(4)主菜单函数
void menu(Course c1[6], Student s1[10])
所有菜单循环都在其中,调用其他函数来实现具体功能。