# 学生选课系统
此系统用于管理学生选课,服务于高校学生和教师。为学生提供了进行选课、
根据需求查询课程、查询选课结果、删除选课结果和个人信息管理等功能。为教师提供了查看选课情况、删除选课、统计选课信息、课程管理、个人信息管理等功能。该系统实现了选课的电子化,能够较为高效地管理在校学生的选课信息。
该系统主要服务于学生和教师两类人群。学生使用该系统,首先需要按照系统提示输入规定格式的学号和正确的密码。若学生无此系统的账号,可以选择“注册”选项以完成注册。完成登录后,系统显示“学生选课”、“查询课程”、“查询选课结果”、“删除选课结果”、“个人信息管理”、“退出登录”六个选项。选择“学生选课”选项,系统会显示全部课程及其相关信息,学生应输入相应课程编号以完成选课。选择
“查询课程”选项,系统会提供根据课程名、开课学院、课余量、选课人数查看课程,学生根据自己的需求选择查询方式。选择“查询选课结果”,学生可以查看到曾经选修过的课程。选择“删除选课结果”,学生可在未开课之前删除自己的选课。选择“个人信息管理”,学生对个人信息中的电话、密码及邮箱进行修改。
教师使用该系统,首先也需完成登录或注册。登录成功后,可进行选课管理、
课程管理、信息管理。教师可查看开设的课程、查询学生信息、删除人数少于 30 的课程、统计课程数目和排序课程。可查询、添加、修改课程和在选课开始前删除课程。在信息管理模块中,教师可以修改自己的密码和邮箱。
**模块图如下**:
![](https://www.writebug.com/myres/static/uploads/2022/4/25/7da04aa91dbf25fad1de6a051e07313c.writebug)
**接口定义规范**
根据模块的具体功能用英文命名接口,两个单词之间使用英文下划线分隔。
例如用于显示学生界面主菜单的接口命名为 student_mainmenu。
**系统的数据结构描述**
主要使用 MySQL 数据库存储该系统所需的数据。通过三张表分别存储学生、
教师、课程的相关信息。存储学生信息的表命名为 students,其中存储学生的学号、学院、专业、姓名、性别、电话、密码、邮箱和选课;存储教师信息的表命名为 teachers,其中包含教师的工号、学院、姓名、密码和邮箱;存储课程信息的表命名为 classes,其中包含课程编号、开课学院、课程名称、学分、学时、课程性质、开课教师、开课时间、结课时间、上课时间段、上课地点、限制人数、已选人数、教材信息和课程简介。具体信息如下 ER 图:
![](https://www.writebug.com/myres/static/uploads/2022/4/25/4c89b9d396fbeb1935fa39095bcb3ff1.writebug)
其中学生和教师的密码以 base64 加密的形式进行存储,其他信息均明文存储。通过引用头文件 <mysql.h>、以字符串的形式编写和储存 SQL 语句、引用头文件中的相关函数,以实现对数据库的连接和操作。
除此之外,首次运行该程序时会首先运行配置程序,需要用户输入数据库的相关信息,如端口号,用户名,密码等以连接数据库。用户输入的这些信息则通过文件储存。
系统的开发环境及运行环境描述开发环境:硬件环境:
组内成员 2 人使用 Intel Core 平台笔记本、1 人使用 AMD Ryzen 平台笔记本、 1 人使用 AMD Ryzen 桌面平台进行开发,兼容性良好。
**软件环境**:
整个系统在 64 位 Windows 10(保持自动更新)的 Visual Studio 2019
Community (16.7.2)的环境下开发。
系统环境变量在安装 MySQL 时添加 %MYSQL_HOME%=D:\mysql-8.0.21-winx64。
VS 开 发 采 用 Debug x64 环 境 : 预 处 理 器 定 义 添 加
```c++
_CRT_SECURE_NO_WARNINGS 以使用 gets 等被 VS 认为内存不安全的函数;
包含目录添加%MYSQL_HOME%\include;库目录添加%MYSQL_HOME%\lib;
调试环境为 PATH=%MYSQL_HOME%\bin;;警告等级为/W3 时代码最终 0 error,0warning。
```
编译导出时采用 Release x64 环境,设置同上。
系统默认编码为 GB2312,代码保存编码为带 BOM 的 UTF-8,MySQL 默认编码为 utf8,中文兼容性良好。
运行环境:
详见测试报告。
## 模块详细设计
int main_entrance():
该模块主要功能为显示主菜单,让用户输入一个数字以选择自己的身份,根据用户具体选择的身份再进入到教师或学生登录界面。无传入值,传出值为 0。
若用户未按照要求输入相应的值,程序会给出提示并且要求用户重新输入。
void student_login():
该模块主要功能为完成学生的登录或注册。首先在控制台显示一个菜单,要
求学生选择需要进行的操作(登录/注册/返回上层)。若学生用户选择登录选项,系统会提示学生用户输入学号并检查输入的格式是否正确。学生用户输入正确格式的学号之后,系统提示学生用户输入密码,并将学生用户输入的密码与储存在数据库中的正确密码比对,若相同,则进入到学生的主界面,若输入密码与数据库中的密码不一致,则提示学生用户密码不正确,此时学生用户可以继续输入密码或返回上一级,其中学号和密码均以字符串的形式存储;若学生用户选择注册选项,程序进入 student_register()模块;若学生用户选择返回上层,程序再次进入 main_entrance()模块。
此模块无传入、返回值,若学生用户未按照规定要求输入,程序会给出提示
并要求学生用户重新输入。
void student_mainmenu():
该模块主要功能为显示学生的主菜单,提示学生用户输入相应选项并对学生用户的输入进行处理。进入该模块,首先在控制台输出学生主菜单,包含 6 个选项,分别为 ① 学生选课,② 查询课程,③ 查询选课结果,④ 删除选课结果,⑤ 个人信息管理,⑥ 退出登录。然后提示学生用户输入相应的整数。若学生用户选择
①,系统进入 student_select_course()模块;若学生用户选择 ②,系统进入 student_query_course()模块;若学生用户选择 ③,系统进入 student_query_result() 模块;若学生用户选择 ④,系统进入 student_delete_course()模块;若学生用户选择 ⑤,系统进入 student_manage_info()模块;若学生用户选择 ⑥,系统再次返回 main_entrance()模块。
此模块无传入、返回值,若学生用户未按照规定要求输入,程序会给出提示并要求学生用户重新输入。
void student_register():
该模块主要功能使完成学生的注册。首先让学生用户输入学号,系统首先会判断学生用户的输入是否符合规定格式,若不符合规定格式,则要求学生用户重新输入。之后系统会将学生用户输入的学号与在数据库中已有的学号对比,若发现与数据库中已有的学号重复,则提示学生用户该学号以注册,并重新获取输入。接收到符合要求的学号之后,系统会继续要求学生用户输入密码、学院、专业、姓名、性别、电话、邮箱。其中输入性别、电话、邮箱时,系统均会判断输入是否符合规范。性别必须为男或女;电话必须为 11 位数字;邮箱必须***@***.***格式。学生用户的输入均以字符串的形式储存。
此模块无传入、返回值,若学生用户未按照规定要求输入,程序会给出提示并要求学生用户重新输入。
void student_select_course():
此模块
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现(控制台)学生选课系统【100010750】
共19个文件
dll:4个
pdf:3个
user:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 4 下载量 172 浏览量
2023-02-09
09:18:32
上传
评论
收藏 7.97MB ZIP 举报
温馨提示
此系统用于管理学生选课,服务于高校学生和教师。为学生提供了进行选课、 根据需求查询课程、查询选课结果、删除选课结果和个人信息管理等功能。为教师提供了查看选课情况、删除选课、统计选课信息、课程管理、个人信息管理等功能。该系统实现了选课的电子化,能够较为高效地管理在校学生的选课信息。 该系统主要服务于学生和教师两类人群。学生使用该系统,首先需要按照系统提示输入规定格式的学号和正确的密码。若学生无此系统的账号,可以选择“注册”选项以完成注册。完成登录后,系统显示“学生选课”、“查询课程”、“查询选课结果”、“删除选课结果”、“个人信息管理”、“退出登录”六个选项。选择“学生选课”选项,系统会显示全部课程及其相关信息,学生应输入相应课程编号以完成选课。选择 “查询课程”选项,系统会提供根据课程名、开课学院、课余量、选课人数查看课程,学生根据自己的需求选择查询方式。选择“查询选课结果”,学生可以查看到曾经选修过的课程。选择“删除选课结果”,学生可在未开课之前删除自己的选课。选择“个人信息管理”,学生对个人信息中的电话、密码及邮箱进行修改。 教师使用该系统,首先也需完成登录或注册。登录成功后,可进行选课管理、 课程管理、信息管理。教师可查看开设的课程、查询学生信息、删除人数少于 30 的课程、统计课程数目和排序课程。可查询、添加、修改课程和在选课开始前删除课程。在信息管理模块中,教师可以修改自己的密码和邮箱。
资源推荐
资源详情
资源评论
收起资源包目录
100010750-基于C++实现(控制台)学生选课系统.zip (19个子文件)
selectionsystem-devtest
设计报告.pdf 720KB
学生选课系统.sln 1KB
学生选课系统.vcxproj.filters 1KB
.gitattributes 66B
vcruntime140_1.dll 43KB
resource.h 432B
LICENSE 1KB
测试报告.pdf 5.25MB
学生选课系统.aps 47KB
libmysql.dll 6.49MB
libcrypto-1_1-x64.dll 3.23MB
题目.pdf 230KB
学生选课系统.vcxproj.user 675B
源.cpp 124KB
学生选课系统.vcxproj 8KB
README.md 34KB
学生选课系统.rc 2KB
libssl-1_1-x64.dll 664KB
icon1.ico 264KB
共 19 条
- 1
资源评论
- LordofWinterfell4632023-06-17资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
- m0_744214762023-06-19支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
- 梏谙2023-06-17感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
- m0_602196492023-06-20资源值得借鉴的内容很多,那就浅学一下吧,值得下载!
神仙别闹
- 粉丝: 2674
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功