python学生信息管理系统
2021/12/29 22:07:31
本文主要是介绍python学生信息管理系统,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
学生信息管理系统
- 一、程序功能
- 1.创建一个可进可退的多级学生信息管理系统
- 2.思维导图
- 二、学生实体
- 1.思维导图
- 2.关系模式
- 3.学生文件
- 三、读取学生文件
- 1.用元组的列表保存多个学生信息
- 2.读取学生文件数据,保存到元组的列表里
- 3.学生操作遇到问题
- 四、对学生元组的列表进行增删改查操作
- 1.增加学生记录
- 2、查询学生记录
- (1)按学号查询学生记录
- (2).按姓名查询
- 3.修改学生记录
- 4.删除学生记录
- 五、将学生元组的列表写入文件
- 六、构建学生信息管理多级菜单系统
- 构建完整的多级菜单系统
- 七、总结
一、程序功能
1.创建一个可进可退的多级学生信息管理系统
2.思维导图
二、学生实体
1.思维导图
2.关系模式
学生(学号, 姓名, 性别, 年龄, 班级, 专业, 系部, 电话)
3.学生文件
先将学生信息保存到文本文件里,用空格来隔开每个字段
三、读取学生文件
1.用元组的列表保存多个学生信息
创建“用元组的列表保存多个学生信息.py”
''' 用元组列表保存多个学生信息 ''' # 定义6个学生元组 student1 = ('2021001', '李晓红', '女', '19', '软件技术', '人工智能与大数据学院', '15945456780') student2 = ('2021002', '王晓刚', '男', '18', '软件技术', '人工智能与大数据学院', '13890904567') student3 = ('2021003', '唐雨涵', '女', '19', '软件技术', '人工智能与大数据学院', '18878789023') student4 = ('2021101', '张三丰', '男', '18', '大数据技术', '人工智能与大数据学院', '15945456780') student5 = ('2021102', '肖雨林', '男', '18', '大数据技术', '人工智能与大数据学院', '18890904560') student6 = ('2021103', '郑小翠', '女', '19', '大数据技术', '人工智能与大数据学院', '15890904567') # 创建学生元组构建的列表 students = [] students.append(student1) students.append(student2) students.append(student3) students.append(student4) students.append(student5) students.append(student6) # 遍历学生列表 for student in students: for i in range(len(student)): print(student[i],end=' ') print()
运行程,序查看结果
2.读取学生文件数据,保存到元组的列表里
首先产看学生文件位置
创建“读取学生文件,保存到元素的列表里.py”
''' 读取学生文件,保存到元组列表 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 格式化输出学生列表 for student in students: for i in range(len(student)): print(student[i],end=' ') print()
运行程序,查看结果
3.学生操作遇到问题
将文件的编码改为上图所示,就不会出现文件操作问题。读取文件就不会出现报错现象。要读取文件记得将创建的程序与文件放在同一个文件夹内。
四、对学生元组的列表进行增删改查操作
1.增加学生记录
''' 添加学生元组到列表 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 添加一个学生元组 new_student = ('2121004', '吴文燕', '女', '18', '2021级软件4班', '软件技术', '人工智能与大数据学院', '12345678901') students.append(new_student) # 输出更新之后的学生元组列表 for student in students: for i in range(len(student)): print(student[i], end=' ') print()
运行程序,查看结果
2、查询学生记录
(1)按学号查询学生记录
''' 按学号查询学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 用户从键盘输入学号 id = input('请输入查找学生的学号:') found = False for student in students: if (student[0] == id ): found = True for i in range(len(student)): print(student[i], end=' ') break if not found: print('温馨提示:查询的学生不存在!'.format(id))
运行程序,查看结果
(2).按姓名查询
''' 按姓名查询 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 用户从键盘输入学号 name = input('请输入查找学生的姓名:') found = False for student in students: if (student[1] == name ): found = True for i in range(len(student)): print(student[i],end= ' ') if not found: print('温馨提示:查询的学生不存在!'.format(name))
运行程序,查看结果
3.修改学生记录
''' 修改学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 输入待改学生的学号 id = input('输入待改学生的学号:') found = False for student in students: if (student[0] == id): found = True # 将学生元组转成列表 student = list(student) new_age = input('输入修改后的年龄:') new_telephone = input('输入新的号码:') # 修改学生元组指定属性的值 student[3] = new_age student[7] = new_telephone # 列表还原成元组 student = tuple(student) print('恭喜:学生记录修改成功!') for i in range(len(student)): print(student[i], end=' ') break if not found: print('学号为{}的学生没找到!'.format(id))
运行程序,查看结果
4.删除学生记录
''' 删除学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 输入待删学生的学号 id = input('输入待删学生的学号:') found = False for student in students: if (student[0] == id): found = True # 按值删除列表元素 students.remove(student) print('恭喜:学生记录删除成功!') break if not found: print('学号为{}的学生没找到!'.format(id)) else: for student in students: for i in range(len(student)): print(student[i], end=' ') print()
运行程序,查看结果
五、将学生元组的列表写入文件
编写“将学生元组的列表写入文件.py”
''' 将学生元组的列表写入文件 ''' # 定义6个学生元组 student1 = ('2021001', '李晓红', '女', '90', '软件技术', '人工智能与大数据学院', '15945456780') student2 = ('2021002', '王晓刚', '男', '18', '软件技术', '人工智能与大数据学院', '13890904567') student3 = ('2021003', '唐雨涵', '女', '19', '软件技术', '人工智能与大数据学院', '18878789023') student4 = ('2021101', '张三丰', '男', '18', '大数据技术', '人工智能与大数据学院', '15945456780') student5 = ('2021102', '肖雨林', '男', '18', '大数据技术', '人工智能与大数据学院', '18890904560') student6 = ('2021103', '郑小翠', '女', '19', '大数据技术', '人工智能与大数据学院', '15890904567') # 创建学生元组构建的列表 students = [] students.append(student1) students.append(student2) students.append(student3) students.append(student4) students.append(student5) students.append(student6) # 输出学生列表 print(students) # 创建可写的文件 f = open('学生.txt', 'w') for student in students: student_line = ' '.join(student) + '\n' f.write(student_line) # 关闭文件 f.close() print('学生元组的列表写入文件成功!')
运行程序,查看结果
然后我们刷新一下学生文件有没有写入成功。
成功写入!
六、构建学生信息管理多级菜单系统
构建完整的多级菜单系统
编写程序 - 学生信息管理.py
把增、删、改、查等所有功能全部完善,并完整运行。
def add_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('学号:') name = input('姓名:') gender = input('性别:') age = input('年龄:') grade = input('班级:') major = input('专业:') department = input('系部:') telephone = input('电话:') students.append([id, name, gender, age, grade, major, department, telephone]) f = open('学生.txt', 'w') for i in range(len(students)): student = ' '. join(students[i]) + '\n' f.write(student) f.close() print('\n恭喜,学生记录添加成功!\n') def query_student(): while True: print('查询学生记录') print('=' * 12) print('1.按学号查询学生记录') print('2.按姓名查询学生记录') print('3.查询全部学生记录') print('4.返回上级菜单') print('=' * 12) mc3 = int(input('输入菜单号:')) if mc3 == 1: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('请输入查找学生的学号:') found = False for student in students: if (student[0] == id): found = True for i in range(len(student)): print(student[i], end=' ') break if not found: print('温馨提示:查询的学生不存在!'.format(id)) elif mc3 == 2: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) name = input('请输入查找学生的姓名:') found = False for student in students: if (student[1] == name): found = True for i in range(len(student)): print(student[i], end=' ') if not found: print('温馨提示:查询的学生不存在!'.format(name)) elif mc3 == 3: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) for student in students: for i in range(len(student)): print(student[i], end=' ') print() else: break def modify_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('输入待改学生的学号:') found = False for student in students: if (student[0] == id): found = True student = list(student) new_age = input('输入修改后的年龄:') new_telephone = input('输入新的号码:') student[3] = new_age student[7] = new_telephone student = tuple(student) print('恭喜:学生记录修改成功!') for i in range(len(student)): print(student[i], end=' ') break if not found: print('学号为{}的学生没找到!'.format(id)) f = open('学生.txt', 'w') for i in range(len(students)): student = ' '.join(students[i]) + '\n' f.write(student) f.close() def delete_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('输入待删学生的学号:') found = False for student in students: if (student[0] == id): found = True students.remove(student) print('恭喜:学生记录删除成功!') break if not found: print('学号为{}的学生没找到!'.format(id)) else: for student in students: for i in range(len(student)): print(student[i], end=' ') print() f = open('学生.txt', 'w') for i in range(len(students)): student = ' '.join(students[i]) + '\n' f.write(student) f.close() def login(): username = input('输入用户名:') password = input('输入密码:') if username == 'XT' and password == '2021': while True: print('\n学生管理系统') print('=' * 13) print('1.增加学生记录') print('2.查询学生记录') print('3.修改学生记录') print('4.删除学生记录') print('5.返回上级菜单') print('=' * 13) mc2 = int(input('输入菜单号:')) if mc2 == 1: add_student() elif mc2 == 2: query_student() elif mc2 == 3: modify_student() elif mc2 == 4: delete_student() else: break else: print('\n用户名或密码输入错误,请重新登录!\n') # 主程序 while True: print('用户登录') print('=' * 8) print('1.登录') print('2.退出') print('=' * 8) mc1 = int(input('输入菜单号:')) if mc1 == 1: login() elif mc1 == 2: print('\n谢谢使用本程序!\n') break
七、总结
对于这个学生管理系统还是有些难度的,而且写的时候你要仔细,不然很容易出错。按照自己擅长的方式写,方便后续的改错。
python说难不难说简单不简单,主要是大家1要坚持去做才行。
这篇关于python学生信息管理系统的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门