Skip to content

ColdTearsYY/PKUClassSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

PKUClassSystem

大作业:选课系统 一、 主题和功能 本程序为选课管理系统程序,为教务老师提供了等级管理课程的功能,为学生提供了退选课及查看的功能。

二、 菜单一览 (图略)

三、 主要函数介绍 函数原型 功能 Void mainMenu() 为返回提供主菜单 Void teacher() 教师一级菜单 void teacherLogin() 教师登录 void teacherMenu() 教师功能选择菜单 void addClass() 教师-加课 void delClass() 教师-删课 void modifyClass() 教师-修改课程 void checkAll() 教师-查看课程情况 void student() 学生一级菜单 void studentLogin() 学生登录 void studentReg() 学生注册 void studentMenu() 学生功能选择菜单 void selectClass() 学生-选课 void quitClass() 学生-退课 void checkMe() 学生-自我查询 int checkClassNum() 查询课程库kecheng.txt课程数 int checkUserNum(char s[]) 查询某课程的选课人数

四、 设计思路 使用四种结构体(student,keUnit,account,userUnit)分别对应四种储存配置,使用文件读写保存相关信息,菜单设计依据人的日常习惯,从功能选择到功能实现而设计了多层菜单。制作程序时,先进行静态菜单的设计,然后按照预设的功能逐项实现,最后实现动态部分的菜单显示。

五、 使用说明 启动程序后首先进入主菜单,用户可以选择自己的身份(学生或是教务)。 选择教务将进入教务一级菜单,用户选择教务登录,输入正确的密码后,进入教务功能选择菜单。在这里用户可以按照需要选择“添加课程”、“删除课程”、“修改课程”、“查看结果”和返回退出。每个界面都有误输入预防设计和数据防止重复检测,输入任何与当前条件不符的字符都可以退出当前功能(例如在输入人数的时候输入了字母或符号),输入不应该重复的数据会被提示(例如添加重复的课程)。在查看结果时,用户可以看到课程对应的选择学生情况。 选择学生将进入学生一级菜单,用户可选择“新生注册”或“账号登录”,注册时需要输入姓名、学号、新建密码、重复密码、学院,注册后可自动登录便利用户。登录以“学号+密码”的形式。登录后,用户可按需选择“选课”、“退课”、“查看已选”,学生选课或者退课,都会导致选课版上的数字发生变化。

六、 问题对策 ·如何使DOS界面美观 使用制表符使交互界面整齐。 ·如何实现数据静态储存和动态读取 使用C++提供的文件输入输出流功能,以及二进制读写(用于储存用户的账号密码)。 ·如何在打表时对齐 使用printf下的printf(“%-nd”,…)功能,左对齐。 ·如何实现删除和修改已有内容 简便起见,为每条数据增加“tag”域,初始化设置为1,删除时将“tag”域拨至其他值,以后每次操作都只会对“tag”域为1的数据进行操作,实现“删除”。修改则是在删除的基础上,在文件末尾新添一项改 后的数据。这样实现了按时间顺序排布课程以及选课的人。 ·在需要键入数字的地方如果使用整型键入汉字导致循环cls(早期bug) 全部使用字符数组形式读入,拦截不合法输入,然后再用atoi/stoi等函数进行转换。

七、 程序亮点 a) 制表符的使用,使界面美观简洁 b) 丰富的提示信息和几乎用不到但必须要有的报错信息 c) 强大的误输入/不合法输入拦截功能,使程序稳定 d) 完成了“删除课程”功能,便利使用 e) 支持对已经有人选择的课程进行修改 f) 账号密码存储使用二进制读写,有一定加密性

八、 已知不足 a) 只依赖于键盘,不支持点击 b) 明文读写文件,没有安全性 c) 不支持多人同时操作同一文件 d) 使用一段时间后数据库文件可能较大 e) 作为后端不实用,需要改造才能与前端对接

九、 收获 练习了C++下的文件操作(读,写,改,二进制读写),感受了在实际项目中团队交流的重要性(虽然是单人完成但是有不少友人给予帮助和参与早期测试),初步接触了数据结构的相关知识,优秀的数据结构可以大大提高程序运行效率。同时对文件读写和二进制读写的区别有了比较清楚的理解。

十、 主界面截图 (图略)

About

大作业:选课系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages