修改之前的学生信息管理程序,实现添加菜单和选择菜单操作功能:
菜单:
+-----------------------------+
| 1) 添加学生信息 |
| 2) 查看所有学生信息 |
| 3) 修改学生的成绩 |
| 4) 删除学生信息 |
| q) 退出 |
+-----------------------------+
请选择: 1
请输入姓名:....
请选择: 3
请输入修改学生的姓名: ....
(要求每个功能都对应一个函数)
代码如下:
def output_student(L):
tmp ={}
p=0
for l in L:
for i in l:
if i not in tmp:
tmp[i] = len(str(l[i]))
else:
tmp[i] = tmp[i] if tmp[i] > len(str(l[i])) else len(str(l[i]))
tmp['name'] = tmp['name'] if tmp['name'] > len('name') else len('name')
tmp['age'] = tmp['age'] if tmp['age'] > len('age') else len('age')
tmp['score'] = tmp['score'] if tmp['score'] > len('score') else len('score')
s1=''
for i in tmp:
s1 += '+'+('-'*(tmp[i]+2))
s1 += '+'
print(s1)
s2 = ''
for i in tmp:
s2 += '|'+(i.center(tmp[i]+2))
s2 += '|'
print(s2)
print(s1)
for l in L:
s3=''
for i in l:
s3 += '|'+(str(l[i]).center(tmp[i]+2))
s3+='|'
print(s3)
print(s1)
def input_student():
L=[]
while True:
name = input('姓名:')
if name == '':
break
age = int(input('年龄:'))
score = input('成绩:')
L.append({'name':name,'age':age,'score':score})
return L
def delete(L):
name = input('输入要删除的姓名:')
for k,v in enumerate(L):
if v['name'] == name:
del L[k]
print('已将 ',v['name'],' 删除')
return
print('未能找到您输入的姓名!')
def modify(L):
name = input('输入要修改的姓名:')
for k,v in enumerate(L):
if v['name'] == name:
s = '您要将 '+v['name']+' 分数修改为:'
f = int(input(s))
L[k]['score'] = f
print('已将 ',v['name'],' 成绩修改为 ',f)
return
print('未能找到您输入的姓名!')
def menue():
print('+-----------------------------------------+')
print('| 1)添加学生信息 |')
print('| 2)查看所有学生信息 |')
print('| 3)修改学生的成绩 |')
print('| 4)删除学生信息 |')
print('| q)退出 |')
print('+-----------------------------------------+')
q = input('请选择:')
return q
L=[]
while True:
q = menue()
if q == 'q':
exit()
elif q == '1':
L += input_student()
elif q == '2':
output_student(L)
elif q == '3':
modify(L)
elif q == '4':
delete(L)
input()
发表评论