[Python] 学生信息管理系统 总结
-
需求分析:学生信息管理系统的功能
-
模块调用:
-
总体展示
def menu(): # 菜单显示 pass def main(): # 主程序 pass def insert(): # 插入学生信息 pass def save(lst): # 保存学生信息 pass def search(): # 查找学生信息:支持id和姓名查找 pass def delete(): # 删除学生信息 pass def modify(): # 修改学生细信息 pass def sort(): # 可选择不同学科对信息进行排序 pass def total(): # 统计学生总人数 pass def show(): # 展示学生信息 pass def show_student(file): # 展示学生信息核心部件 pass
-
菜单
def menu(): # 菜单 print('=============================学生信息管理系统=============================') print('---------------------------------功能菜单--------------------------------') print('\t\t\t 1.录入学生信息') print('\t\t\t 2.查找学生信息') print('\t\t\t 3.删除学生信息') print('\t\t\t 4.修改学生信息') print('\t\t\t 5.排序') print('\t\t\t 6.统计学生总人数') print('\t\t\t 7.显示所有学生信息') print('\t\t\t 0.退出系统') print('\t\t\t 提示:本程序默认文件保存为.txt类型,无需输入后缀名')
-
主程序
def main(): # 主程序 while True: menu() choice = int(input('请输入你的选择(0-7):')) if choice in [0, 1, 2, 3, 4, 5, 6, 7]: if choice == 0: choose = input('输入q退出:') if choose == 'q': print('感谢使用!') break else: continue else: if choice == 1: insert() elif choice == 2: search() elif choice == 3: delete() elif choice == 4: modify() elif choice == 5: sort() elif choice == 6: total() else: show() else: print('您的输入有误,请再次输入您的信息') continue
-
插入
def insert(): # 插入信息 students_list = [] while True: # 循环输入 Id = input('请输入Id:') if not Id: # 防止手滑 print('Id有误') break Name = input('请输入名字:') if not Name: print('姓名有误') break try: English = int(input('请输入英语成绩:')) Python = int(input('请输入Python成绩:')) Java = int(input('请输入Java成绩:')) except: print('输入有误,不是有效整数,请重新输入') continue # 将录入的成绩存储到字典中 student = { 'Id': Id, 'Name': Name, 'English': English, 'Python': Python, 'Java': Java, 'Total': English + Python + Java} # 将录入的成绩保存到列表中 students_list.append(student) # 将字典保存到列表中 answer = input('继续录入请输入Y/y:') if answer in ['Y', 'y']: continue else: save(students_list) break
-
保存
def save(lst): # 保存 fileName = input('请输入保存的文件名:') + '.txt' # 文件名 file = open(fileName, 'a', encoding='utf-8') # 打开文件 while not file: fileName = input('创建文件名失败,请重新输入:') + '.txt' file = open(fileName, 'a', encoding='utf-8') for item in lst: file.write(str(item) + '\n') # 将内容写入文件中 file.close() # 关闭文件 print('学生信息录入完毕')
-
搜索
def search(): # 搜索 fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt' # 文件名 if os.path.exists(fileName_new): # 如果可以打开文件 with open(fileName_new, 'r', encoding='utf-8') as readfile: # 上下文管理器 file = readfile.readlines() # 读取信息 if not file: # 如果为空 print('无学生信息') return else: # 不为空 while True: # 重复查找 show_student(file) # 先展示下所有信息 Id = '' # 默认化 Name = '' mode = input('Id查找请输入1 姓名查找请输入2:') # 通过选项影响先前默认化的变量 if mode == '1': Id = input('请输入要查找学生的Id:') if not Id: print('您输入的Id有误请重新输入') continue elif mode == '2': Name = input('请输入要查找学生的姓名:') if not Name: print('您输入的姓名有误请重新输入') continue else: print('您的输入有误,请重新输入') continue if Id != '': for item in file: d = dict(eval(item)) if d['Id'] == Id: print(format_title.format('Id', 'Name', 'English', 'Python', 'Java', 'Total')) print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'], d['Total'])) elif Name != '': for item in
-