最近在自学python,做了一个学生成绩管理系统,算是对这段时间学习的总结
系统要求:SAMS(Student Achievement Management System 学生成绩管理系统)
做命令行版本的学生成绩管理系统
- 功能:四个:
1.查询
- 显示当前系统当中的所有学生信息及其公共课成绩
2.添加
- 将学生及其成绩添加到当前系统中
3.删除
- 将学生成绩信息从系统当中删除
4.退出
- 退出系统
步骤 分解
在实现功能点前,我们应该先思考一个问题——学生成绩信息要保存到哪里?
答案是 列表
在系统中应该有一个列表,专门用来保存所有学生的成绩信息。
# 显示系统的欢迎信息
print('-'*20,'欢迎使用学生公共课成绩管理系统','-'*20)
# 创建列表 用来保存学生信息 学生的信息以字符串的形式统一保存到列表
# 注意 这里不能把序号写死 应该是自增的
sams = ['\t周一\t97\t91\t84\t良好','\t李二\t94\t87\t88\t优秀','\t张三\t90\t85\t86\t良好']
列表建立好后,正式进入系统功能,向用户展示系统的四个功能:
1.查询 2.添加 3.删除 4.退出
# 显示用户的选项
print('请选择要做的操作:')
print('\t1.查询学生公共课成绩')
print('\t2.添加学生公共课成绩')
print('\t3.删除学生公共课成绩')
print('\t4.退出系统')
user_choose = int(input('请选择[1-4]:'))
注意:因为4个选项展示需要重复多次出现,在判断开始前,要设置一个while循环遍历这四个选项
# 因为操作信息需要反复显示 所以这里建立一个死循环
while True:
下面设计四个用户的选择的判断——if...elif...elif..elif..else:
1.查询成绩
# 查询学生公共课成绩
if user_choose == 1:
# 打印表头
print('\t序号\t学号\t姓名\t大英\t高数\t思修\t大学生行为与修养')
# 创建两个变量 来表示学生的序号和学号
n = 1
sam_id = 2001
# 显示学生及其公共课信息
for sam in sams:
print(f'\t{n}\t{sam_id}{sam}')
n += 1
sam_id += 1
2.添加成绩
# 添加学生公共课成绩
elif user_choose == 2:
# 获取要添加的学生的信息,姓名,大英,高数,思修,大学生行为与修养
sam_name = input('请输入学生的姓名:')
sam_yingyu = input('请输入学生的大英成绩:')
sam_gaoshu = input('请输入学生的高数成绩:')
sam_sixiu = input('请输入学生的思修成绩:')
sam_daxuesheng = input('请输入学生的大学生行为与修养成绩:')
# 打印分割线
print('-'*72)
# 创建一个学生信息
sam = f'\t{sam_name}\t{sam_yingyu}\t{sam_gaoshu}\t{sam_sixiu}\t{sam_daxuesheng}'
# 显示一个提示信息
print('\t以下学生的公共课成绩信息将会被添加到系统中:')
print('\t姓名\t大英\t高数\t思修\t大学生行为与修养')
print(sam)
user_confirm = input('是否确认该操作[y/n]:')
# 确认操作
if user_confirm == 'y' or user_confirm == 'yes':
# 将四个信息拼接为一个字符串 append()
sams.append(sam)
print('学生及其公共课成绩的信息添加成功!')
# 取消操作
else:
print('添加已取消')
3.删除成绩
# 删除学生公共课成绩
elif user_choose == 3:
# 获取要删除的学生序号
del_num = int(input('请输入要删除的学生序号:'))
# 判断序号是否在列表范围内 序号最大就是学生长度
if del_num > 0 and del_num <= len(sams):
# 输入值在范围内
del_i = del_num - 1
# 显示提示
print('\t以下学生及其公共课成绩的信息将会被删除:')
print('\t序号\t学号\t姓名\t大英\t高数\t思修\t大学生行为与修养')
print(f'\t{del_num}\t{sam_id}{sams[del_i]}')
user_confirm = input('该操作不可恢复,是否确认[y/n]:')
user_confirm = input('是否确认该操作[y/n]:')
# 确认操作
if user_confirm == 'y' or user_confirm == 'yes':
# 将四个信息拼接为一个字符串 append()
sams.pop(del_i)
print('学生及其公共课成绩信息删除成功!')
# 取消操作
else:
print('操作已取消!')
else:
# 输入值不在范围内
print('您的输入有误,请重新操作!')
4.退出系统
# 退出系统
elif user_choose == 4:
print('-'*72)
print('欢迎使用!再见!')
input('点击回车键退出!')
break
除了四个选择的判断,我们还需要设置其他情况的判断,比如用户输入了1-4之外的其他数字。
记住,在开发时,默认用户是傻瓜。
else:
print('您的输入有误,请重新选择!')
至此,学生成绩管理系统的功能点都已经实现,下面是完整代码
# 显示系统的欢迎信息
print('-'*20,'欢迎使用学生公共课成绩管理系统','-'*20)
# 创建列表 用来保存学生信息 学生的信息以字符串的形式统一保存到列表
# 注意 这里不能把序号写死 应该是自增的
sams = ['\t周一\t97\t91\t84\t良好','\t李二\t94\t87\t88\t优秀','\t张三\t90\t85\t86\t良好']
# 因为操作信息需要反复显示 所以这里建立一个死循环
while True:
# 显示用户的选项
print('请选择要做的操作:')
print('\t1.查询学生公共课成绩')
print('\t2.添加学生公共课成绩')
print('\t3.删除学生公共课成绩')
print('\t4.退出系统')
user_choose = int(input('请选择[1-4]:'))
# 打印分割线
print('-'*72)
# 判断根据用户的选择
# 查询学生公共课成绩
if user_choose == 1:
# 打印表头
print('\t序号\t学号\t姓名\t大英\t高数\t思修\t大学生行为与修养')
# 创建两个变量 来表示学生的序号和学号
n = 1
sam_id = 2001
# 显示学生及其公共课信息
for sam in sams:
print(f'\t{n}\t{sam_id}{sam}')
n += 1
sam_id += 1
# 添加学生公共课成绩
elif user_choose == 2:
# 获取要添加的学生的信息,姓名,大英,高数,思修,大学生行为与修养
sam_name = input('请输入学生的姓名:')
sam_yingyu = input('请输入学生的大英成绩:')
sam_gaoshu = input('请输入学生的高数成绩:')
sam_sixiu = input('请输入学生的思修成绩:')
sam_daxuesheng = input('请输入学生的大学生行为与修养成绩:')
# 打印分割线
print('-'*72)
# 创建一个学生信息
sam = f'\t{sam_name}\t{sam_yingyu}\t{sam_gaoshu}\t{sam_sixiu}\t{sam_daxuesheng}'
# 显示一个提示信息
print('\t以下学生的公共课成绩信息将会被添加到系统中:')
print('\t姓名\t大英\t高数\t思修\t大学生行为与修养')
print(sam)
user_confirm = input('是否确认该操作[y/n]:')
# 确认操作
if user_confirm == 'y' or user_confirm == 'yes':
# 将四个信息拼接为一个字符串 append()
sams.append(sam)
print('学生及其公共课成绩的信息添加成功!')
# 取消操作
else:
print('添加已取消')
# 删除学生公共课成绩
elif user_choose == 3:
# 获取要删除的学生序号
del_num = int(input('请输入要删除的学生序号:'))
# 判断序号是否在列表范围内 序号最大就是学生长度
if del_num > 0 and del_num <= len(sams):
# 输入值在范围内
del_i = del_num - 1
# 显示提示
print('\t以下学生及其公共课成绩的信息将会被删除:')
print('\t序号\t学号\t姓名\t大英\t高数\t思修\t大学生行为与修养')
print(f'\t{del_num}\t{sam_id}{sams[del_i]}')
user_confirm = input('该操作不可恢复,是否确认[y/n]:')
user_confirm = input('是否确认该操作[y/n]:')
# 确认操作
if user_confirm == 'y' or user_confirm == 'yes':
# 将四个信息拼接为一个字符串 append()
sams.pop(del_i)
print('学生及其公共课成绩信息删除成功!')
# 取消操作
else:
print('操作已取消!')
else:
# 输入值不在范围内
print('您的输入有误,请重新操作!')
# 退出系统
elif user_choose == 4:
print('-'*72)
print('欢迎使用!再见!')
input('点击回车键退出!')
break
else:
print('您的输入有误,请重新选择!')
# 打印分割线
print('-'*72)
实现效果
1.查询功能
2.添加功能
3.删除功能
4.退出功能