思路:
1、写一个模块,用于打印各类界面:
模块名称:face
2、写一个模块,用于学生操作:
模块名称:operating_student
3、写一个模块,用于读写学生数据到txt文档(还未优化)
模块名称:read_write_data
主程序中将分别引用三大模块,实现需求
模块一
'''face.py--用于打印各类界面 '''
#主界面
def mian_face():
listitems = ['1', '2', '3', 'q']
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
return items
#添加学生界面
def face_one():
col=['1','2']
print("1、继续添加 \n", "2、返回上一层")
item = input('>>>')
while True:
if item not in col:
print('输入的编号有误,请重新输入')
item = input(">>>")
else:
break
return item
#查看学生界面
def face_two():
col = ['1', '2', '3']
print("1、查看所有学生信息 \n", "2、根据名字查看学生信息\n", "3、返回上一层", sep='')
item = input(">>>")
while True:
if item not in col:
print('输入的编号有误,请重新输入')
item = input(">>>")
else:
break
return item
#删除学生界面
def face_Three():
col = ["1", "2"]
print("1、继续删除 \n", "2、返回上一层")
item = input('>>>')
while True:
if item not in col:
print('输入的编号有误,请重新输入')
item = input(">>>")
else:
break
return item
模块二
import random
students=[]
#产生学号
def genID():
"""随机产生一个学号"""
number=random.randint(1,10000)
ID="ID"+"2018"+str(number)
return ID
# 添加学生
def add_student():
print("已自动生成该学生学号")
ID=genID()
name = input('请输入学生的姓名:')
age = input('请输入学生的年龄:')
tel = input("请输入学生的电话号码:")
English_score=input("请输入英语成绩:")
Math_score=input("请输入英语成绩:")
Chinese_score=input("请输入语文成绩:")
students.append({'学号': ID,'姓名': name, '成绩': {"语文":Chinese_score,"数学":Math_score,"英语":English_score}, '年龄': age, '电话': tel})
#查看所有学生:
def find_all(students:list):
print("=====================查询到的学生信息如下所示====================")
for i in range(len(students)):
for keys in students[i]:
print(i, end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
print("=====================请继续选择您需要的操作====================")
#根据姓名查看学生信息
def find_name(students:list):
name = input("请输入学生姓名>>>")
count = 0 # 记录学生信息个数,后面需判断有无学生信息
print("======================查询到的学生信息如下所示==================")
for i in range(len(students)):
if name == students[i]['姓名']:
count += 1
for keys in students[i]:
print("序号:{}".format(i), end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count == 0:
print("没有该学生信息")
print("======================请继续选择您需要的操作==================")
#删除学生
def del_stu():
name = input("请输入要删除的学生姓名:")
indexs = [] # 用于记录学生编号,后面判断输入的学生编号是否有误
count = 0 # 用于记录查找的学生信息个数,判断有无学生信息
print("====================查询到的学生信息如下所示===================")
for i in range(len(students)):
if name == students[i]['姓名']:
count += 1
indexs.append(str(i))
for keys in students[i]:
print("序号:{}".format(i), end=" ")
print(keys + ':' + str(students[i][keys]), end=",")
print()
if count == 0:
print("没有改学生信息,无法删除")
print('=======================请继续您的操作=====================')
elif count != 0:
index = input('请选择要删除的学生编号:')
while True:
if index not in indexs:
index = input("输入有误,请重新输入>>>")
else:
students.remove(students[int(index)])
print("删除成功!")
print("======================请继续您的操作===================")
break
主程序如下:
import face
import operating_student as op
while True:
items=face.mian_face()
#添加学生
if items=="1":
while True:
op.add_student()
items1=face.face_one()
if items1=="1":continue
elif items1=="2":break
#查找学生
if items=="2":
while True:
items2= face.face_two()
if items2=="1":
op.find_all(op.students)
continue
if items2=="2":
op.find_name(op.students)
continue
else:
break
#删除学生
if items=="3":
while True:
op.del_stu()
items3=face.face_Three()
if items3=="1":continue
elif items3=="2":break
#退出系统
if items=="q":
break