"""__author__ = fzzy"""
""" Create Time: 2019/8/6 17:35 """
import random
import datetime
import string
visitor = '' # 登录账号,用于功能界面显示
id_info = {} # 账号字典
stu_info = {} # 学生字典
idpath = 'C:\\Users\\13155\Desktop\\id.txt' # 账号信息存储文件路径
studentpath = '' # 学生信息存储文件路径
# 将字典存入txt
def save_dict_to_file(dict, filepath):
try:
with open(filepath,'a') as f: # a:附加写方式打开,不可读
for key in dict:
f.write('%s:%s\n'%(key,dict[key]))
except IOError as ioerr:
print('文件%s无法创建'%filepath)
# 从txt中加载字典
def load_dict_from_file(dict,filepath):
try:
with open(filepath,'r') as f:
for line in f:
key, value = line.strip().split(':')
dict[key] = value
except IOError as ioerr:
print('文件%s不存在' % filepath)
# 添加学生
def add_student():
randomNum = random.randint(0, 100) #学号等于当前日期转格式后加1~100的随机数的字符串
nowTime = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
stu_number = str(nowTime) + str(randomNum)
name = input('\n请输入姓名:') #输入
stu_id = int(stu_number)
age = int(input('请输入年龄:'))
if age < 0: #输入检测
print('\n输入错误!')
age = int(input('请重新输入年龄:'))
print('')
sex = input('请输入性别:')
while sex != '男' and sex != '女':
print('\n输入错误!')
sex = input('请重新输入性别:')
print('')
stu_class = input('请输入班级:')
stu_info.clear() # 清空列表,否则存入时会重复存入之前的值
stu_info[name] = [stu_id, age, sex, stu_class]
save_dict_to_file(stu_info, studentpath)
load_dict_from_file(stu_info,studentpath)
if name in stu_info: # 检测是否成功添加
print('\n添加成功!')
else:
print('\n添加失败!')
print('\n1.继续添加')
print('2.返回')
selet = int(input('\n请选择:'))
if selet == 1:
add_student()
elif selet == 2:
function()
else:
print('\n输入错误!')
selet = int(input('请重新选择:'))
# 查看学生
def check_student():
load_dict_from_file(stu_info,studentpath)
print('=================学生列表======================')
for dict in stu_info:
str1 = stu_info[dict].replace('[','').replace(']','') # 由于字典的值本来是列表,但存入是以字符串形式
list1 = str1.split(',') #以,为间隔符字符串转列表 #存入的,导出时为了分开,需要把[ 和 ]去掉
print('姓名:',dict)
print('学号:',eval(list1[0]))
print('年龄:',eval(list1[1]))
print('性别:',eval(list1[2]))
print('班级:',eval(list1[3]))
print('')
print('=============================================')
print('1.返回')
selet = int(input('\n请选择:'))
if selet == 1:
function()
else:
print('\n输入错误!')
selet = int(input('请重新选择:'))
# 修改学生信息
def updata_student():
load_dict_from_file(stu_info,studentpath)
name = input('\n请输入要更新信息的学生姓名:') #修改信息
if name not in stu_info:
print('该学生不存在,请重新确认!\n')
updata_student()
else:
stu_id = int(input('请输入学号:'))
age =int(input('请输入年龄:'))
if age < 0:
print('\n输入错误!')
age = int(input('请重新输入年龄:'))
print('')
sex = input('请输入性别:')
while sex != '男' and sex != '女':
print('\n输入错误!')
sex = input('请重新输入性别:')
print('')
stu_class = input('请输入班级:')
stu_info[name] = [stu_id ,age, sex, stu_class]
f = open(studentpath,'r+') # r+读写,不创建
f.truncate() # 清空txt文件,否则会出现重复数据
save_dict_to_file(stu_info,studentpath)
load_dict_from_file(stu_info,studentpath)
print(stu_info[name])
if stu_info[name] == str([stu_id, age, sex, stu_class]): # 检测是否修改成功
print('\n修改成功!')
else:
print('\n修改失败!')
print('\n1.继续修改')
print('2.返回')
selet = int(input('\n请选择:'))
if selet == 1:
updata_student()
elif selet == 2:
function()
else:
print('\n输入错误!')
selet = int(input('请重新选择:'))
# 删除学生
def del_student():
load_dict_from_file(stu_info,studentpath)
name = input('\n请输入要删除的学生姓名:')
if name not in stu_info:
print('该学生不存在,请重新确认!\n')
del_student()
else:
stu_info.pop(name)
f = open(studentpath,'r+')
f.truncate()
save_dict_to_file(stu_info,studentpath)
load_dict_from_file(stu_info,studentpath)
if name not in stu_info: # 检测是否删除成功
print('\n删除成功!')
else:
print('\n删除失败!')
print('\n1.继续删除')
print('2.返回')
selet = int(input('\n请选择:'))
if selet == 1:
del_student()
elif selet == 2:
function()
else:
print('\n输入错误!')
selet = int(input('请重新选择:'))
# 返回注册登录界面
def return_main():
print('\n\n')
main_window()
# 功能界面
def function():
print('\n================================')
print('🌺🌺🌺欢迎%s🌺🌺🌺\n'%visitor)
print('◆1.添加学生')
print('◆2.查看学生')
print('◆3.修改学生信息')
print('◆4.删除学生')
print('◆5.返回')
choice = int(input('\n请选择:')) # 根据输入选择功能
if choice == 1:
add_student()
elif choice == 2:
check_student()
elif choice == 3:
updata_student()
elif choice == 4:
del_student()
elif choice == 5:
return_main()
# 注册界面
def res_window():
print('')
user_id = input('请输入您要创建的账号:')
while len(user_id) < 3 or len(user_id) > 6:
print('\n您应该创建一个3~6位的账号!')
user_id = input('请输入您要创建的账号:')
load_dict_from_file(id_info,idpath)
if user_id in id_info: # 检测账号是否存在
print('该账号已经存在,请重新输入!')
res_window()
else:
password = input('请输入您的密码:')
if len(password) < 6: # 检测密码长度是否大于6位
print('\n密码长度最少为6位!')
password = input('请重新设计您的密码:')
confirm_password = input('确认您的密码:')
while password != confirm_password:
print('\n两次输入的密码不一致,请重新输入!\n') # 检测两次输入的密码是否一样
password = input('请输入id为%s的密码:'%user_id)
if len(password) < 6:
print('\n密码长度最少为6位!')
password = input('请重新设计您的密码:')
confirm_password = input('确认您的密码:')
id_info.clear()
id_info[user_id] = password
save_dict_to_file(id_info, idpath)
load_dict_from_file(id_info,idpath)
if user_id in id_info: #检测是否创建成功
print('\n创建成功!')
else:
print('\n创建失败!')
main_window()
# 登录界面
def sign_window():
load_dict_from_file(id_info,idpath)
user_id1 = input('\n请输入账号:')
while user_id1 not in id_info:
print('您输入的账号不存在!\n')
user_id1 = input('请重新输入账号:')
password1 = input('请输入密码:')
while password1 != id_info[user_id1]:
print('您输入的密码不正确!\n')
password1 = input('请重新输入密码:')
print('登录成功!')
global visitor
visitor = user_id1 # 将登陆账号赋给变量,在功能界面输出
global studentpath
studentpath = 'C:\\Users\\13155\Desktop\\record\\'+ visitor +'.txt'
function()
# 主界面
def main_window():
print( '=============学生信息管理系统=============')
print('◆ 1.注册')
print('◆ 2.登录')
choice = int(input('\n请选择:(1 - 2):'))
if choice == 1:
res_window()
elif choice == 2:
sign_window()
else:
print('\n输入错误,请重新输入!')
print('=====================================')
choice = choice = int(input('请选择:(1 - 2):'))
# 开始
main_window()
2019-07-30 学生信息管理系统
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...
- 大量的信息才是正确决策的基础,作为一名营销人员,识别市场的重大变化是企业营销人员的主要职责。必须具备两项优势来胜任...