一,程序功能(function)
思维导图
二,学生实体(entity)
关系模式
学生(学号,性别,年龄,班级,专业,系部,电话)
三:读取学生文件
这是一个Python写的学生信息管理系统
文件结构是由若干行若干列构成,一行一行地读取,每一行读取出来的字符串,通过空格拆分成一个列表,所有行读取出来之后就自然构成列表的列表,即二维列表。
输出文件
四,对学生二位列表进行增删查改操作
六:构建学生信息多级菜单管理系统
登录系统自定义用户名密码,左边源码,右边效果。
tips :文章末尾附源码
功能:
支持查询信息,前提是要有可查询的信息,这需要提前创建文本文件。
增添学生信息
输入完信息后系统会自动保存写入文档中。
新增的信息已成功保存
这是一个可进退的信息管理系统,支持注销。
指导教师:Howard2005
源代码 ↓ ↓ ↓ ↓ ↓ ↓ ↓
# -*- coding: utf-8 -*-
"""
功能:学生信息管理
作者:weten
"""
def get_all_students():
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_students()
id = input('学号:')
name = input('姓名:')
gender = input('性别:')
age = input('年龄:')
clazz = input('班级:')
major = input('专业:')
department = input('系部:')
telephone= input('电话:')
students.append([id,name,gender,age,clazz,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_students():
students = get_all_students()
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_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
f.close()
def display_name_student():
students = get_all_students()
name=input('姓名:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][1] == name):
for j in range(len(students[i])):
print(students[i][j],end=' ')
f.close()
def query_student():
while True:
print('查询学生记录')
print('==================')
print('1.按学号查询学生记录')
print('2.按姓名查询学生记录')
print('3.查询全部学生记录')
print('4.返回上级菜单')
print('==================')
m3=int(input('输入菜单号:'))
if m3 == 1:
display_id_student()
elif m3 == 2:
display_name_student()
elif m3== 3:
display_all_students()
else:
break
#姓名
def display_newname_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newname=input('newname =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][1] = newname
print('恭喜:学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#性别
def display_newgender_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newgender=input('newgender =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][2] = newgender
print('学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#年龄
def display_newage_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newage=input('newage =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][3] = newage
print('学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#班级
def display_newclazz_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newclazz=input('newclazz =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][4] = newclazz
print('学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#专业
def display_newmajor_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newmajor=input('newmajor =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][5] = newmajor
print('恭喜:学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#系部
def display_newdepartment_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newdepartment=input('newdepartment =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][6] = newdepartment
print('恭喜:学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
#电话
def display_newtelephone_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
newtelephone=input('newtelephone =')
found=False
for i in range(len(students)):
if (students[i][0] == id):
found = True
students[i][7] = newtelephone
print('恭喜:学生信息修改成功!')
for j in range(len(students[i])):
print(students[i][j],end=' ')
break
if not found:
print('学号为{}的学生没找到!'.format(id))
f.close()
print()
def modify_student():
while True:
print('修改学生信息')
print('==================')
print('1.修改姓名信息')
print('2.修改性别信息')
print('3.修改年龄信息')
print('4.修改班级信息')
print('5.修改专业信息')
print('6.修改系部信息')
print('7.修改电话号码')
print('8.返回上级菜单')
print('==================')
m3=int(input('输入菜单号:'))
if m3 == 1:
display_newname_student()
elif m3 == 2:
display_newgender_student()
elif m3== 3:
display_newage_student()
elif m3== 4:
display_newclazz_student()
elif m3== 5:
display_newmajor_student()
elif m3== 6:
display_newdepartment_student()
elif m3== 7:
display_newtelephone_student()
else:
break
def display_delete_student():
students = get_all_students()
id=input('学号:')
f = open('学生信息.txt','r')
for i in range(len(students)):
if (students[i][0] == id):
for j in range(len(students[i])):
print(students[i][j],end=' ')
print()
found=False
for i in range(len(students)):
if(students[i][0]==id):
found = True
break
if not found:
print('学号为{}的学生没找到!'.format(id))
else:
del students[i]
print(students)
f.close()
print()
def delete_student():
while True:
print('删除学生记录')
print('==================')
print('1.删除学生信息')
print('2.返回上级菜单')
print('==================')
m3=int(input('输入菜单号:'))
if m3 == 1:
display_delete_student()
else:
break
#登录系统
def login():
username = input('输入用户名:')
password = input('输入密码:')
if username == 'admin' and password == '123456':
while True:
print('学生信息管理')
print('=============')
print('1.增加学生记录')
print('2.查询学生记录')
print('3.修改学生记录')
print('4.删除学生记录')
print('5.返回上级菜单')
print('=============')
m2=int(input('输入菜单号:'))
if m2 == 1:
add_student()
elif m2==2:
query_student()
elif m2==3:
modify_student()
elif m2==4:
delete_student()
else:
break
else:
print('\n用户名或密码错误,请重新登录!\n')
while True:
print('用户登录')
print('============')
print('1.登录')
print('2.退出')
print('============')
m1=int(input('输入菜单号:'))
if m1==1:
login()
elif m1==2:
print('\n感谢使用。')
break