'''
程序名:学生信息管理系统
作者:Sherry
时间:2021.11.27
ctrl shift + / -
展开和关闭代码块
'''# 打开文件之后将 里面的每一行 以列表的形式输出defget_all_students():
students =[]# 定义学生空列表
f =open('D:\Python_Datebase\学生信息管理\学生信息表.txt')# 使用绝对位置打开文件for line in f:# 让 line 是 f 里面的值
line = line.replace('\n','')# 因为在我们输出的时候会看见每一行后面都有一个 \n 这个是因为在文档中换行了所以会有\n,# 用replace 来消除\n 并使用 '' 空值替换
student = line.split(' ')# 这里使 每个以 ‘ ’ 为间隔的值,组成一个列表
students.append(student)# 组成一个列表之后我们放入 students 这个大列表
f.close()return students
#按学号查询defquery_student_by_id():id=input('Please Input Student ID :')#这里的大部分代码和修改的差不多 在那里我有注释
students = get_all_students()for i inrange(len(students)):ifid== students[i][0]:print(students[i])breakelse:print('haven\'t find student id is {}'.format(id))break#按姓名查找iddefquery_student_by_name():
name =input('Please Input Student name :')
students = get_all_students()for i inrange(len(students)):if name == students[i][1]:print(students[i])breakelse:print('haven\'t find student name is {}'.format(name))break#按姓名删除列表 (基本上不赞成用姓名,怕重名)defdelete_student_by_name():
name =input('Please Input You Want To Delete Student name :')
students = get_all_students()for i inrange(len(students)):if name == students[i][1]:del students[i]
f =open('D:\Python_Datebase\学生信息管理\学生信息表.txt','w')for i inrange(len(students)):
student =' '.join(students[i])+'\n'
f.write(student)
f.close()print('Delete Student Record Succeed!')breakelse:print('haven\'t find student name is {}'.format(name))break#按学号删除defdelete_student_by_id():id=input('Please Input You Want To Delete Student ID :')
students = get_all_students()for i inrange(len(students)):ifid== students[i][0]:del students[i]
f =open('D:\Python_Datebase\学生信息管理\学生信息表.txt','w')for i inrange(len(students)):
student =' '.join(students[i])+'\n'
f.write(student)
f.close()print('Delete Student Record Succeed!')breakelse:print('haven\'t find student name is {}'.format(id))break#增加一个学生并添加在最后面defadd_student():
students = get_all_students()id=str(int(input('学号:')))
name =input('姓名:')
sex =input('性别:')
age =str(int(input('年龄:')))
grade =input('班级:')
major =input('专业:')
college =input('学院:')
contact =str(int(input('联系方式:')))
students.append([id, name, sex, age, grade, major, college, contact])
f =open('D:\Python_Datebase\学生信息管理\学生信息表.txt','w')for i inrange(len(students)):
student =' '.join(students[i])+'\n'
f.write(student)
f.close()print('Add Student Record Succeed!')#显示所有学生defdisplay_all_students():
students = get_all_students()for i inrange(len(students)):for j inrange(len(students[i])):print(students[i][j], end='\t')print()#查询的菜单defquery_student():whileTrue:print('查询学生记录')print('================')print('1、按学号查询学生记录')print('2、按姓名查询学生记录')print('3、查询全部学生记录')print('4、返回上级菜单')print('=================')
mc3 =int(input('请输入菜单号:'))if mc3 ==1:
query_student_by_id()elif mc3 ==2:
query_student_by_name()elif mc3 ==3:
display_all_students()else:break#修改学生记录defmodify_student_by_id():id=input('input student Id:')
students = get_all_students()#调用函数返回值for i inrange(len(students)):#先计算有多少个列表ifid== students[i][0]:#输入的id 与列表内是否相等id= students[i][0]#让 id 这个唯一索引 不变del students[i]#条件若成立那么我们就删除查询到的‘id’所在的列表
name =input('姓名:')
sex =input('性别:')
age =str(int(input('年龄:')))
grade =input('班级:')
major =input('专业:')
college =input('学院:')
contact =str(int(input('联系方式:')))
students.insert(i,[id, name, sex, age, grade, major, college, contact])#这里我们采用了insert 来重新插入# 在这里i因为循环的得到的值是0,所以在一开始插入
f =open('D:\Python_Datebase\学生信息管理\学生信息表.txt','r+')#这里及一下 我们在增加学生记录时已提及。for i inrange(len(students)):
student =' '.join(students[i])+'\n'
f.write(student)
f.close()print('Modify Student Record Succeed!')elifid!= students[i][0]:continueelse:print('Have\'n find id is {} student'.format(id))break#删除的菜单defdelete_student():print('============================')print('1、Delete student by ID')print('2、Delete student by name')print('3、Return last menu')print('============================')
mc4 =int(input('Input menu number:'))if mc4 ==1:
delete_student_by_id()elif mc4 ==2:
delete_student_by_name()elif mc4 ==3:
login()#登入后的主系统deflogin():
username =input('请输入用户名:')
password =input('请输入密码:')if username =='admin'and password =='111111':whileTrue:print('学生管理系统')print('================')print('1、增加学生记录')print('2、查询学生记录')print('3、修改学生记录')print('4、删除学生记录')print('5、返回上级菜单')print('=================')
mc2 =int(input('输入菜单号:'))if mc2 ==1:
add_student()elif mc2 ==2:
query_student()elif mc2 ==3:
modify_student_by_id()elif mc2 ==4:
delete_student()else:breakelse:print('账号或密码错误!')#主程序whileTrue:print('登录系统')print('=========')print('1、登录')print('2、退出')print('=========')
mc1 =int(input('输入菜单号:'))if mc1 ==1:
login()elif mc1 ==2:print('感谢使用!')break
# 打开文件之后将 里面的每一行 以列表的形式输出def get_all_students(): students = [] # 定义学生空列表 f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt') # 使用绝对位置打开文件 for line in f: # 让 line 是 f 里面的值 line = line.replace('\n', '') # 因为在我们输出的时候会看见每一行后面都有一个 \n 这个