mian_page.py
import modules.file_manager as FM
import modules.student_manager as SM
def register():
'''注册'''
#账号控制
while True:
#1、输入账号
user_name=input("请输入账号(3-6位):")
#2、检查账号
if not 3<=len(user_name)<=6:
print("账号有误,请重新输入")
continue
else:
break
#密码控制
while True:
#3、输入密码
user_password = input("请输入密码(6-12位):")
#4、检查密码
if not 6<=len(user_password)<=12:
print("密码有误,请重新输入")
continue
else:
break
#检查账号是否被注册
#1、获取账号信息
all_user = FM.json_read("all_user.json")
#2、判断账号是否存在
if user_name in all_user:
print("该账号已经被注册")
return
#3、账号可用,添加账号并写入文件
all_user[user_name]=user_password
re=FM.json_write('all_user.json',all_user)
if re :print("注册成功")
else:print("注册失败")
def login():
# 1.输入账号和密码
user_name = input('请输入账号:')
pass_word = input('请输入密码:')
# 2.检测账号是否已经存在过
# 获取系统所有的用户
all_user = FM.json_read('all_user.json')
# 判断账号是否存在
if user_name not in all_user:
print('登陆失败!账号不存在!')
return
# 账号存在就先通过账号去获取正确的密码
pass_word_old = all_user[user_name]
if pass_word == pass_word_old:
print('登陆成功!')
# 登陆成功后要做什么,写在这儿
SM.show_student_manager_page(user_name)
else:
print('登陆失败!密码错误!')
def show_main_page():
while True:
print(FM.text_read("mian_page.txt"))
num=input("请选择(1-3):")
if num=="1":
login()
elif num=="2":
register()
elif num=="3":
print("3")
else:
print("错误")
if __name__=="__main__" :
show_main_page()
file_manager.py
import json
#普通文件读操作
def text_read(file_name):
'''
普通文件读操作函数
:param file_name: 传入文件
:return:返回文件内容
'''
try:
with open('./files/'+file_name,"r",encoding="utf-8") as f :
return f.read()
except FileNotFoundError:
print("{}文件不存在".format(file_name))
return None
#普通文件写操作
def text_write(file_name,content):
'''
普通文件写操作函数
:param content: 写入到文件中的内容
:param file_name: 写入的文件名
:return: True
'''
try:
with open("./files/"+file_name,"w",encoding="utf-8") as f:
f.write(content)
return True
except:
return False
#json文件读操作
def json_read(file_name):
'''
JSON文件读操作函数
:param file_name:文件名
:return: 文件内容
'''
try:
with open('./files/'+file_name,"r",encoding="utf-8") as f:
return json.load(f)
except FileNotFoundError:
print("{}文件不存在".format(file_name))
return None
#Json文件写操作
def json_write(file_name,content):
'''
JSON文件写操作函数
:param content: 写入的内容
:param file_name: 文件名
:return:
'''
try:
with open("./files/"+file_name,'w',encoding="utf-8") as f:
json.dump(content,f)
return True
except:
return False
if __name__=="__main__":
pass
student_manager.py
import modules.file_manager as FM
'''
1、账号与账号管理的学生一一对应
2、一个账号管理多个学生
3、一个学生存储多个信息(每个学生的信息一样)
方案一:整个管理系统所有的账号管理的学生放到一起
{
账号1:[学生1,学生2],
账号2:[学生1,学生2]
}
将大字典写到一个json文件中
方案二:
一个账号对应一个Json文件,每个json文件就是一个列表;
json文件名与账号名一一对应
user1.json:
{
count:nums,#当前系统已经添加的学生数目
all_student:[{001},{002},{003}, ,{004}]
}
user2.json:
{
count:nums,#当前系统已经添加的学生数目
all_student:[{001},{002},{003}]
}
'''
#通过全局变量保存当前用户
current_user=''
#通过全局变量保存常用的Key
key_count="count"
key_all_students="all_student"
key_name='name'
key_age="age"
key_tel="tel"
key_id="id"
#获取当前账号对应的JSON文件
def get_current_userinfo():
content=FM.json_read(current_user+".json")
if not content:
content={}
return content
def add_student():
#0、读取当前用户数据
user_info=get_current_userinfo()
while True:
#1、添加学生信息
name=input("请输入学生的姓名:")
age=input("请输入学生的年龄:")
tel = input("请输入学生的电话:")
#2、产生学号--> 001,002,003...
number= user_info.get(key_count,0) #key_count不存在的时候给一个默认值0
number+=1
stu_id='ID'+str(number).rjust(3,'0')
#3、创建学生
stu={key_id:stu_id,key_name:name,key_age:age,key_tel:tel}
#4、添加学生
all_students=user_info.get(key_all_students,[])#获取学生,若没有学生设置一个空列表
all_students.append(stu)
#5、数据更新到文件
user_info[key_count]=number
user_info[key_all_students]=all_students
re=FM.json_write(current_user+".json",user_info)
if re:
print("添加成功!")
else:
print("添加失败!")
print("1、继续\n2、返回",sep="")
value=input("请选择(1-2):")
if value=="1":
continue
else:
return
def show_student_info(stu):
print("学号:%s 姓名:%s 年龄:%s 电话:%s"\
% (stu[key_id],stu[key_name],stu[key_age],stu[key_tel]))
def find_student_with_name(name,all_student):
find_student=[]
for stu in all_student:
if stu[key_name]==name:
find_student.append(stu)
return find_student
def find_student_with_id(id,all_students):
for stu in all_students:
if stu[key_id]==id:
return stu
return None
def find_student():
#1、拿到所有的学生
user_info=get_current_userinfo()
all_students=user_info.get(key_all_students,None)
if not all_students:
print("当前账号没有可管理的学生!")
return
while True:
print("1、查看所有学生\n2、按姓名查找\n3、按学号查找\n4、返回",sep='')
value=input("请选择(1-4):")
if value=="1":
for stu in all_students:
show_student_info(stu)
elif value=='2':
name=input("请输入姓名:")
student=find_student_with_name(name,all_students)
if student:
for stu in student:
show_student_info(stu)
else:
print("没有找到学生%s!"% name)
elif value=='3':
stu_id=input("请输入学号:")
student=find_student_with_id(stu_id, all_students)
if student:
show_student_info(student)
else:
print("没有找到学号为%s的学生" % stu_id)
elif value=="4":
return
else:
print("输入错误,请重新选择")
continue
def delete_student():
#1、拿到所有的学生
user_info = get_current_userinfo()
all_students = user_info.get(key_all_students, None)
if not all_students:
print("当前账号没有可管理的学生!")
return
#2、给出选择
while True:
print('1、按姓名删除\n2、按学号删除\n3、返回')
value=input("请选择(1-3):")
if value=="1":
name=input("请输入学生姓名:")
students=find_student_with_name(name,all_students)
if students:
#打印出找到的学生信息
index=0
for stu in students:
print(index,end="")
show_student_info(stu)
index+=1
#选择要进行的操作
print("1、继续删除\n2、返回",sep="")
value=input("请选择(1-2):")
if value=="1":
del_index=input("请输入删除学生的编号:")
#找到要删除的学生对应的字典,并删除数据
del_stu=students[int(del_index)]
all_students.remove(del_stu)
#将本地数据更新
re=FM.json_write(current_user+'.json',user_info)
if re:
print("删除成功")
else:
print("删除失败")
elif value=="2":
continue
else:
print("没有该学生!")
continue
elif value=="2":
stu_id = input("请输入学生学号:")
del_stu = find_student_with_id(stu_id, all_students)
if del_stu:
show_student_info(del_stu)
value=input("请确定是否要删除?(Y/N)")
if value=="Y":
all_students.remove(del_stu)
elif value=="N":
continue
re=FM.json_write(current_user+'.json',user_info)
if re:
print("删除成功")
else:
print("删除失败")
else:
print("没有该学生")
continue
elif value=="3":
return
else:
print("选择有误,请重新选择")
continue
def show_student_manager_page(user_name):
#1、获取当前用户
global current_user
current_user=user_name
while True:
#2、显示页面
content=FM.text_read('manager_page.txt')
print(content % user_name)
#3、选择
value=input(">>>")
if value=="1":
add_student()
elif value=="2":
find_student()
elif value=="3":
pass
elif value=="4":
delete_student()
elif value=="5":
pass
else:
print("输入有误")
manager_page.txt
=================================
欢迎%s:
1、添加学生
2、查看学生
3、修改学生信息
4、删除学生
5、退出
==================================
mian_page.txt
===================================
❀欢迎来到学生管理系统❀
1、登 录
2、注 册
3、退 出
===================================
网友评论