要求:
1、增加文件文件操作,让所有增加、修改、删除操作后的结果保存在文件里面。
2、增加用户登录系统,不同用户只能管理自己所对应的学生系统
"""__author__=Deathfeeling"""
# 要求:
# 1、增加文件文件操作,让所有增加、修改、删除操作后的结果保存在结果里面。
# 2、增加用户登录系统,不同用户只能管理自己所对应的学生系统
manager_name = '' #存储管理员信息
manager_passwd = ''
manager =[]
#登录界面
while True:
print('==========================================================')
print(' Welcome To QianFeng Student Manager System ')
print(' 1.Login')
print(' 2.Logon')
print(' 3.Out')
print('==========================================================')
n = input('请输入你想执行的功能:')
if n == '1': # 注册
manager_name = input('请输入用户名:')
manager_passwd = input('请输入密码:')
manager_passwd_re = input('请确认密码:')
if manager_passwd != manager_passwd_re: #判断两次输入密码是否相同
print('两次输入密码不正确,请重新注册!')
continue
elif manager_passwd == manager_passwd_re:
print('注册成功!')
dict_manager = {'name':manager_name,'passwd':manager_passwd}
manager.append(dict_manager)
#将注册信息追加在manager.txt文件中
f = open('./manager.txt','a')
f.write(str(dict_manager['name']) + ' ')
f.write(str(dict_manager['passwd']) + '\n')
f.close()
continue
elif n == '2': # 登录
logon_name = input('请输入用户名:')
logon_passwd = input('请输入密码:')
# 打开manager.txt文件,查看有没有相应管理员信息
try:
f_logon = open('./manager.txt','r')
f_logon_1 = f_logon.readline()
while f_logon_1:
info = f_logon_1.split() #把字符串的空格前后分割成两个字符串存在一个列表中
if info[0] == logon_name and info[1] == logon_passwd:
print('登录成功!')
temp = 1
break
f_logon_1 = f_logon.readline()
else:
temp = 0
print('账号或者密码不正确!请重新输入!')
f_logon.close()
if temp: #temp=1,跳出循环进入系统管理界面
break
elif not temp: #temp = 0 ,表示密码不正确,重新输入
continue
except IOError: #没有找到文件抛出异常,提示用户注册
print('没有查找到相关信息,请注册!')
continue
elif n == '3': # 退出
exit('系统已退出...')
else: # 输入不合法,提示重新输入
print('输入错误,请按照提示输入!')
while True:
print('请选择:1(继续)、2(退出):')
n = input('请输入数字:')
if n == '1': # 输入合法性判断
break
elif n == '2':
exit('退出系统...')
else: # 输入错误,提示重新输入
print('输入错误!请重新输入!')
continue
continue
#学生管理系统
name = '' #存储学生用户信息
age = ''
tel = ''
while True:
print('=================================================')
print(' 1.添加学生信息')
print(' 2.查看学生信息')
print(' 3.修改学生信息')
print(' 4.删除学生信息')
print(' 5.退出')
print('=================================================')
n = input('请输入你想执行的功能:')
if n == '1': #添加信息
name = input('请添加学生姓名:')
age = input('请添加学生年龄:')
tel = input('请添加学生电话:')
student_file = open(logon_name + '.txt', 'a') # 打开并创建管理员对应的学生管理文件
student_file.write(name+' '+age+' '+tel+'\n')
student_file.close()
print('添加成功!')
continue
elif n == '2': #查看信息
try:
student_file = open(logon_name + '.txt','r')
re = student_file.readline()
while re:
list1 = re.split() #以空格为界,切分成3个字符串元素组成的列表
print('姓名:%s 年龄:%s 电话:%s'%(list1[0],list1[1],list1[2]))
re = student_file.readline()
student_file.close()
except IOError:
print('没有任何学生信息,请添加!')
continue
elif n == '3': #修改信息
temp_samename = [] #姓名相同时,临时存储姓名
list2_name_index = [] #存相同名字学生对应list2的下标
name_change = input('请输入你想要修改信息的学生姓名:')
list2 = [] #存储文件信息
student_file = open(logon_name + '.txt','r') #先按行读入列表
re = student_file.readline().rstrip('\n') #rstip('\n')去掉字符串末尾的换行符
while re :
list2.append(re)
re = student_file.readline().rstrip('\n')
nn1 = 0
for count in range(len(list2)):
temp_list = list2[count].split()
if temp_list[0] == name_change:
temp_samename.append(list2[:].pop(count))
list2_name_index.append(count)
elif count == len(list2) - 1:
if not temp_samename:
nn1 = 1
print('没有查找到对应学生')
if nn1 == 1: #没有查找的到对应学生回到管理页面
continue
count_1 = 0
#相同姓名学生处理
for index in temp_samename:
temp_list_1 = index.split()
print('%d、姓名:%s 年龄:%s 电话:%s' % (count_1,temp_list_1[0], temp_list_1[1], temp_list_1[2]))
count_1 += 1
n = input('请输入你要修改的学生信息(数字):')
for index in range(len(temp_samename)):
if n == str(index):
nn = temp_samename[index].split()
nn[1] = input('请输入你想要修改的年龄:')
nn[2] = input('请输入你想要修改的电话:')
temp_samename[int(n)]= nn[0] + ' ' + nn[1] + ' ' + nn[2]
print('修改成功!')
break
elif index == len(temp_samename) -1 :
if n != str(index):
print('输入错误!')
break
#把修改后的姓名表替换到list2表中
nn2 = 0
for index in list2_name_index:
list2[index] = temp_samename[nn2]
nn2 += 1
#再把修改后的列表值写入文件
student_file.close()
student_file_2 = open(logon_name + '.txt','w')
for i in list2:
student_file_2.write(i+'\n')
student_file_2.close()
continue
elif n == '4': #删除信息
temp_samename = [] #姓名相同时,临时存储姓名
list2_name_index = [] #存相同名字学生对应list2的下标
name_change = input('请输入你想要删除信息的学生姓名:')
list2 = [] #存储文件信息
student_file = open(logon_name + '.txt','r') #先按行读入列表
re = student_file.readline().rstrip('\n') #rstip('\n')去掉字符串末尾的换行符
while re :
list2.append(re)
re = student_file.readline().rstrip('\n')
nn1 = 0
for count in range(len(list2)):
temp_list = list2[count].split()
if temp_list[0] == name_change:
temp_samename.append(list2[:].pop(count))
list2_name_index.append(count)
elif count == len(list2) - 1:
if not temp_samename:
nn1 = 1
print('没有查找到对应学生')
if nn1 == 1: #没有查找的到对应学生回到管理页面
continue
count_1 = 0
#相同姓名学生处理
for index in temp_samename:
temp_list_1 = index.split()
print('%d、姓名:%s 年龄:%s 电话:%s' % (count_1,temp_list_1[0], temp_list_1[1], temp_list_1[2]))
count_1 += 1
n = input('请输入你要删除的学生信息(数字):')
for index in range(len(temp_samename)):
if n == str(index): #删除指定编号的学生,查找原list2表对应元素进行删除
list2.pop(list2_name_index[index])
print('删除成功!')
break
elif index == len(temp_samename) - 1:
if n != str(index):
print('输入错误!')
break
#再把修改后的列表值写入文件
student_file.close()
student_file_2 = open(logon_name + '.txt','w')
for i in list2:
student_file_2.write(i+'\n')
student_file_2.close()
continue
elif n == '5': #退出
exit('系统已退出...')
else: #输入不合法,提示重新输入
print('输入错误,请按照提示输入!')
while True:
print('请选择:1(继续)、2(退出):')
n = input('请输入数字:')
if n == '1': #输入合法性判断
break
elif n == '2':
exit('退出系统...')
else: #输入错误,提示重新输入
print('输入错误!请重新输入!')
continue
continue