简单的学生管理系统
用一个变量来保存一个班级的学生信息,学生信息包括:姓名、学号、成绩(英语、体育、美术、数学)、年龄
b.给这个班级添加学生
c.根据姓名查看班级里的某个学生的信息
d.根据姓名删除一个指定的学生信息
e.查看班级的所有的学生信息
f.求指定的学生平均成绩
提示:用一个列表来存整个班级的学生信息;列表的每个元素是字典,来存储每个学生的信息
解决办法
代码一:该代码较为复杂,没有考虑到输入参数为字符的情况,也没有考虑到系统的完备性
students =[ ]
print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
temp=input('>>>')
while temp=="1" or temp=="2" or temp=="3" or temp=="q":
if temp=="1":
flag=1
while flag==1:
name=input('请输入学生的姓名:')
age=input('请输入学生的年龄:')
tel=input("请输入学生的电话号码:")
#============================业务逻辑代码====================================
students.append({'name':name,'ID': None,'score': None ,'age':age,'tel': tel })
#===========================================================================
print("1、继续添加 \n","2、返回上一层")
flag = int(input(">>>"))
if flag != 1:
print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
temp = input('>>>')
elif temp=="2":
print("1、查看所有学生信息 \n", "2、根据名字查看学生信息\n","3、返回上一次")
flag=int(input(">>>"))
if flag == 1:
temp = 0
#=========================业务逻辑代码======================
for i in range(len(students)):
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
#==========================================================
elif flag==2:
temp = 0
# =========================业务逻辑代码======================
name=input("请输入学生姓名>>>")
count=0 #记录学生信息个数,后面需判断有无学生信息
for i in range(len(students)):
if name==students[i]['name']:
count+=1
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count==0:
print("没有该学生信息")
# ==========================================================
else:
print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
temp = input('>>>')
elif temp=="3":
flag=1
while flag == 1:
name=input("请输入要删除的学生姓名:")
# =========================业务逻辑代码======================
col=[]#用于记录学生编号,后面判断输入的学生编号是否有误
count=0 #用于记录查找的学生信息个数,判断有无学生信息
for i in range(len(students)):
if name == students[i]['name']:
count+=1
col.append(i)
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count==0:
print("没有改学生信息,无法删除")
elif count!=0:
index=int(input('请选择要删除的学生编号:'))
while True:
if index not in col:
index=int(input("输入有误,请重新输入>>>"))
else:
students.remove(students[index])
print("删除成功!")
break
# ==========================================================
print("1、继续删除 \n", "2、返回上一层")
flag = int(input(">>>"))
if flag !=1:
print("欢迎进入前锋学生管理系统\n",'1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统')
temp = input('>>>')
elif temp=="q":
break
代码二:(优化后的代码)
优化项:
1、每一层级均对输入的参数进行判断,符合对应的选项再执行,若不符合则要求重新输入参数
2、每一层级执行完逻辑代码,均可再次进行操作,系统性较强
students=[ ]
listitems=['1','2','3','q']
while True:
print('==================千峰学生管理系统===============')
print('1、添加学生\n','2、查找学生\n','3、删除学生\n','q、退出系统',sep= "")
print("==================================================")
items=input('>>>')
while True:
if items not in listitems:
print("输入的编号有误,请重新输入")
items=input('>>>')
else:
break
#添加学生:
if items==listitems[0]:
col=['1','2']
while True:
name = input('请输入学生的姓名:')
age = input('请输入学生的年龄:')
tel = input("请输入学生的电话号码:")
# ============================业务逻辑代码====================================
students.append({'name': name, 'ID': None, 'score': None, 'age': age, 'tel': tel})
# ===========================================================================
print("1、继续添加 \n", "2、返回上一层")
flag=input(">>>")
while True:
if flag not in col:
print('输入的编号有误,请重新输入')
flag=input(">>>")
else:
break
if flag==col[0]:
continue
elif flag==col[1]:
break
#查找学生:
elif items==listitems[1]:
col = ['1', '2','3']
while True:
print("1、查看所有学生信息 \n", "2、根据名字查看学生信息\n", "3、返回上一层",sep='')
flag=input(">>>")
while True:
if flag not in col:
print('输入的编号有误,请重新输入')
flag=input(">>>")
else:
break
if flag==col[0]:
print("*******************学生信息如下*****************************")
# =========================业务逻辑代码======================
for i in range(len(students)):
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
# ==========================================================
print("*************************************************************")
print("请继续您的操作:")
continue
elif flag==col[1]:
print("*******************学生信息如下******************************")
# =========================业务逻辑代码======================
name = input("请输入学生姓名>>>")
count = 0 # 记录学生信息个数,后面需判断有无学生信息
for i in range(len(students)):
if name == students[i]['name']:
count += 1
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count == 0:
print("没有该学生信息")
# ==========================================================
print("*******************学生信息如下****************************")
print("请继续您的操作:")
continue
elif flag==col[2]:
break
#删除学生:
elif items==listitems[2]:
col=['1','2']
indexs = [] # 用于记录学生编号,后面判断输入的学生编号是否有误
count = 0 # 用于记录查找的学生信息个数,判断有无学生信息
while True:
name = input("请输入要删除的学生姓名:")
# =========================业务逻辑代码======================
for i in range(len(students)):
if name == students[i]['name']:
count += 1
indexs.append(str(i))
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count == 0:
print("没有改学生信息,无法删除")
elif count != 0:
index = input('请选择要删除的学生编号:')
while True:
if index not in indexs:
index = input("输入有误,请重新输入>>>")
else:
students.remove(students[int(index)])
print("删除成功!")
print("******************************************")
break
print("请继续您的操作:")
print("1、继续删除 \n", "2、返回上一层",sep="")
flag = input(">>>")
while True:
if flag not in col:
print('输入的编号有误,请重新输入')
flag=input(">>>")
else:
break
if flag==col[0]:
continue
elif flag==col[1]:
break
# ==========================================================
#退出系统:
elif items==listitems[3]:
break
网友评论