python大作业---学生选课系统
需求分析:
- 从“学生选课系统” 这几个字就可以看出来,我们最核心的功能其实只有 选课。
角色:
- 学生、管理员
功能:
- 登陆 : 管理员和学生都可以登陆,且登陆之后可以自动区分身份
- 选课 : 学生可以自由的为自己选择课程
- 创建用户 : 选课系统是面向本校学生的,因此所有的用户都应该由管理员完成
- 查看选课情况 :每个学生可以查看自己的选课情况,而管理员应该可以查看所有学生的信息
工作流程:
登陆 :用户输入用户名和密码
判断身份 :在登陆成果的时候应该可以直接判断出用户的身份 是学生还是管理员
学生用户 :对于学生用户来说,登陆之后有三个功能
1、查看所有课程
2、选择课程
3、查看所选课程
4、退出程序
管理员用户:管理员用户除了可以做一些查看功能之外,还有很多创建工作
1、创建课程
2、创建学生学生账号
3、查看所有课程
4、查看所有学生
5、查看所有学生的选课情况
6、退出程序
程序设计:
- 对于复杂的功能,我们首先就应该想到面向对象编程。而要想将面向对象的程序开发好,就应该做好类和对象的分析工作。
选课系统简单的划分其实只有两个角色:管理员和学生。
仔细思考,你会发现有很多想不通的地方,比如学生选课,课从哪里来?
这样一想就会发现,其实课程应该可以由管理员创造出来,那么课程又会有很多属性:价格、周期、课程名、授课老师等等
那么课程也应该是一个类。
综上,本程序最基础的分析已经完毕。接下来我们要把所有的类以及其中的属性、方法设计出来
(1)、课程:
属性:课程名、价格、周期、老师
*课程并没有什么动作,所以我们只设计属性不设计方法。其实这里还可以设计很多属性,比如课程的开始时间、结束时间、教室等等,只要你需要,这些都可以记录下来,但是这里我们为了简化代码,就先不设计这些了
(2)、学生:
属性:姓名、所选课程
方法:查看可选课程、选择课程、查看所选课程、退出程序
(3)、管理员
属性:姓名
方法:创建课程、创建学生学生账号、查看所有课程、查看所有学生、查看所有学生的选课情况、退出程序
流程图:
采分点:
1.类的创建和规划 30分
2.登陆自动识别身份 10分
3.管理员创建各种信息 20分
4.学生选课 20分
5.将内存中的数据保存到文件中 10分
6.代码简洁、调理清晰10分
技术讲解:
1、enumerate()使用介绍
- enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法:
enumerate(sequence, [start=0])
例如: enumerate(Manager.opt_list,1)
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置的值。
1.enumerate()是python的内置函数
2.enumerate在字典上是枚举、列举的意思
3.对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
4.enumerate多用于在for循环中得到计数
5.enumerate()返回的是一个enumerate对象
举例:
opt_list = [('创建课程', 'create_course'), ('创建学生', 'create_student'),
('查看课程', 'show_courses'), ('查看学生', 'show_student'),
('查看学生和已选课程', 'show_stu_course'), ('退出', 'exit')]
for index,i in enumerate(opt_list,1):
print(index,i)
1 ('创建课程', 'create_course')
2 ('创建学生', 'create_student')
3 ('查看课程', 'show_courses')
4 ('查看学生', 'show_student')
5 ('查看学生和已选课程', 'show_stu_course')
6 ('退出', 'exit')
Process finished with exit code 0