- 一、程序功能
- 1、概述
- 2、思维导图
- 二、学生实体
- 1、思维导图
- 2、关系模式
- 3、学生表
- 三、读取学生文件
- 1、用元祖的列表保存多个学生信息
- 2、读取学生文件数据,保存到元组的列表里
- 四、对学生元组的列表进行增删改查 *** 作
- 1、增加学生记录
- 2、查询学生记录
- 1)按学号查询学生记录
- 2)按姓名查找学生记录
- 3、修改学生记录
- 4、删除学生记录
- 五、将学生元组的列表写入文件
- 六、构建学生信息管理多级菜单系统
- 1、构建多级菜单系统
- 2、实现学生信息管理功能模块
- 1)编写查询全部学生记录功能
- 2)编写增加学生记录功能
- 3)编写修改学生记录功能
- 4)编写删除学生记录功能
- 5)编写按学号查询学生记录功能
- 6)编写按姓名查询学生记录功能
- 七、学生信息管理程序
利用Python完成一个学生信息的增删改查的程序,主要涉及知识点:程序控制结构(实现可进可退的多级菜单)、文件读写 *** 作(学生信息要保存到磁盘上的文件里)、利用函数实现功能模块化。
2、思维导图 二、学生实体 1、思维导图 2、关系模式- 学生(学号, 姓名, 性别, 年龄, 班级, 专业, 系部, 电话)
- 行——记录——元祖
- 列——字段——属性
-
先将学生信息保存到文本文件里,用空格来隔开每个字段。
-
如果用的电脑自带的记事本,则需要将编码改为ANSI,具体步骤如下:
-
1)将保存好的文本文件另存为
-
2)将编码更改为ANSI
- 文件结构是由若干行若干列构成,一行一行地读取,每一行读取出来的字符串,通过空格拆分成一个元组,所有行读取出来之后就自然构成元组的列表。
- 创建
- 运行结果
-
创建
-
运行结果
-
格式化输出students列表
-
运行结果
- 添加一个新的学生元组
- 运行结果
- 运行结果
- 运行结果
- 按其他的属性查找可以以此类推
- 运行结果
- 运行结果
- 运行结果
- 查看写入的文件
- 运行结果
编写:
-
get_all_students()函数
-
display_all_students()函数
-
运行结果
编写
- add_student()函数
- 运行结果
- 查看记事本里的新纪录
编写
- modify_student()函数
- 修改学生的年龄和电话号码
- 运行结果
- 如果学号不存在的情况
编写
- delete_student()函数
- 运行结果
- 查看记事本里的新纪录
- 删除成功
编写
- display_id_student()函数
- 运行代码
编写
- display_name_student()函数
- 运行结果
- 代码
# -*- coding: utf-8 -*- """ 功能:学生信息管理 作者:小小榕 日期:2021年12月28日 """ def get_all_student(): students =[] f = open('学生.txt') for line in f: line = line.replace('n', ' ') student = line.split(' ') students.append(student) f.close() return students def add_student(): students = get_all_student() id = input('学号:') name = input('姓名:') gender = input('性别:') age = input('年龄:') clas = input('班级:') major = input('专业:') department = input('系部:') telephone = input('电话:') students.append([id, name, gender, age, clas, 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 display_all_student(): students = get_all_student() for i in range(len(students)): for j in range(len(students[i])): print(students[i][j], end= ' ') print() def display_id_student(): students = get_all_student() f = open('学生.txt') 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)) def display_name_student(): students = get_all_student() f = open('学生.txt') name = input('请输入待查学生姓名:') found = False for student in students: if (student[1] == name): found = True for i in range(len(student)): print(student[i], end=' ') break if not found: print('姓名为[{}]的学生没有找到!'.format(name)) def query_student(): while True: print('查询学生记录') print('=' * 20) print('1.按学号查询学生记录') print('2.按姓名查询学生记录') print('3.查询全部学生记录') print('4.返回上一级菜单') print('=' * 20) mc3 = int(input('输入菜单号:')) if mc3 == 1: display_id_student() elif mc3 == 2: display_name_student() elif mc3 == 3: display_all_student() else: break def modify_student(): students = get_all_student() f = open('学生.txt','w') 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('恭喜:学生记录修改成功!') break if not found: print('学号为[{}]的学生没找到!'.format(id)) for i in range(len(students)): student = ' '.join(students[i]) + 'n' f.write(student) f.close() def delete_student(): students = get_all_student() f = open('学生.txt', 'w') 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)) for i in range(len(students)): student = ' '.join(students[i]) + 'n' f.write(student) f.close() def login(): username = input('输入用户名:') password = input('输入密码:') if username == 'xiaoxiaorong' and password == '202542': while True: print('学生信息管理') print('=' * 20) print('1.增加学生记录') print('2.查询学生记录') print('3.修改学生记录') print('4.删除学生记录') print('5.返回上级菜单') print('=' * 20) 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('=' * 20) print('1.登录') print('2.退出') print('=' * 20) mc1 = int(input('输入菜单号:')) if mc1 == 1: login() elif mc1 == 2: print('n谢谢使用本程序!n') break
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)