main.py
import display
import file
if __name__ == '__main__':
file.initial_value()
display.User.main_page()
operation.py
import file
import display
path = 'files/information.json'
class User():
@staticmethod
def landing():
"""
登录功能
:return:
"""
name = input('请输入用户名(5-8位)')
password = input('请输入密码(5-8位)')
information = file.basic_file_read(path)
if information.get(name) == None:
print('该用户名不存在使用')
return False
elif information[name]['password'] != password:
print('密码错误')
return False
return name
@staticmethod
def registered():
"""
注册功能
:return:
"""
name = input('请输入用户名(5-8位)')
if not (8 > len(name) > 5):
print('用户名的长度不对')
return False
information = file.basic_file_read(path)
if information.get(name) != None:
print('该用户名已被使用')
return False
password = input('请输入密码(5-8位)')
if not (8 > len(name) > 5):
print('密码的长度不对')
return False
if password != input('请再次输入密码(和第一次输入的密码必须一样)'):
print('第一次输入的密码和第二次输入的密码不一样')
return False
information[name] = {'password': password, 'students': {}, 'name_number': {}, 'number': 1}
file.basic_file_write(path, information)
return name
@staticmethod
def judge(name, choose=0):
text = ['登录', "注册"]
if name:
print(f'{text[choose]}成功')
display.User.Second_page(name=name)
else:
print(f'{text[choose]}失败')
class Modify():
@staticmethod
def add(name):
information = file.basic_file_read(path)
information_name = information[name]
while True:
students_name = input('请输入学生姓名')
name_number = information_name['name_number']
students_id = information_name['number'] + 1
information_name['number'] = students_id
students_id = f'python{students_id:0>3}'
get_name_number = name_number.get(students_name)
if get_name_number != None:
if type(get_name_number) == list:
get_name_number.append(students_id)
else:
get_name_number = [get_name_number, students_id]
else:
get_name_number = students_id
name_number[students_name] = get_name_number
students_age = input('请输入学生的年龄')
students_phone = input('请输入学生的电话号码')
information_name['students'][students_id] = {'姓名': students_name, '学号': students_id, '年龄': students_age,
'☎': students_phone}
information_name['name_number'] = name_number
information[name] = information_name
file.basic_file_write(path, information)
if input("""
1. 继续添加学生
其它 返回主页
""") != '1':
break
@staticmethod
def amend_choose(name):
students_id=input('请输入需要修改信息的学号:')
information = find.read()
if information[name]['students'].get(students_id)==None:
print('你输入的学号不存在')
return False
while True:
display.options.main_page_view(number=5)
choose=input('请选择(1~4)')
if choose=='1':
# 姓名
Modify.amend(name=name,students_id=students_id,choose_name='姓名',choose=choose)
elif choose=='2':
# 年龄
Modify.amend(name=name,students_id=students_id,choose_name='年龄',choose=choose)
elif choose=='3':
# 电话
Modify.amend(name=name,students_id=students_id,choose_name='☎',choose=choose)
elif choose=='4':
break
else:
print('你的输入有误')
@staticmethod
def amend(name,choose_name,students_id,choose):
information = find.read()
students = input(f'{choose_name}=')
students_name = information[name]['students'][students_id]['姓名']
information[name]['students'][students_id][choose_name] = students
if choose=='1':
name_number = information[name]['name_number'][students_name]
if type(name_number) == list:
if len(name_number) > 1:
for i in range(len(name_number)):
if name_number[i]==students_name:
del information[name]['name_number'][students_name][i]
break
else:
del information[name]['name_number'][students_name]
else:
del information[name]['name_number'][students_name]
if information[name]['name_number'].get(students)==None:
information[name]['name_number'][students]=students_id
else:
if type(information[name]['name_number'][students])==list:
information[name]['name_number'][students].append(students_id)
else:
information[name]['name_number'][students]=[information[name]['name_number'][students],students_id]
file.basic_file_write(path,information)
class delete():
@staticmethod
def remove_all(name):
information = find.read()
information[name]['students'] = {}
file.basic_file_write(path, information)
print('已删除所有学生')
@staticmethod
def remove_students_id(name, students_id, information):
try:
del information[name]['students'][students_id]
file.basic_file_write(path, information)
print('已删除该学生')
except:
print('该学生不存在无法删除')
class find():
@staticmethod
def find_students_id(name, students_id, information):
information = information[name]['students']
if information.get(students_id) == None:
print('你要查找的学生不存在')
return False
information = information[students_id]
for key in information:
print(f"{key}:{information[key]}", end='\t')
print('')
@staticmethod
def find_all(name):
information = find.read()
for key in information[name]['students']:
find.find_students_id(name=name, students_id=key, information=information)
@staticmethod
def read():
return file.basic_file_read(path)
@staticmethod
def students_input(choose=1):
if choose:
return input('请输入学号')
else:
return input('请输入姓名')
@staticmethod
def name_number(name, students_name,choose=1):
information = find.read()
name_number = information[name]['name_number']
if name_number.get(students_name) == None:
print('你要查找的学生不存在')
return False
name_number = information[name]['name_number'][students_name]
if type(name_number) == list:
for i in name_number:
if choose:
find.find_students_id(name=name, students_id=i, information=information)
else:
delete.remove_students_id(name=name, students_id=i, information=information)
else:
if choose:
find.find_students_id(name=name, students_id=name_number, information=information)
else:
delete.remove_students_id(name=name, students_id=name_number, information=information)
display.py
import operation
class options():
@staticmethod
def main_page_view(number=1, name=None):
if name != None:
print(f"""
用户🆔:{name}欢迎🎉🎉🎉使用该系统
""")
elif number == 1:
print("""
♦♦♦♦♦♦♦♦♦♦♦♦1.登 陆♦♦♦♦♦♦♦♦♦♦♦♦♦
♦♦♦♦♦♦♦♦♦♦♦♦2.注 册♦♦♦♦♦♦♦♦♦♦♦♦♦
♦♦♦♦♦♦♦♦♦♦♦♦3.登 出♦♦♦♦♦♦♦♦♦♦♦♦♦
===================================================================
""")
elif number == 2:
print("""
♥♥♥♥♥♥♥♥♥♥♥1.添 加 学 生♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥2.查 看 学 生♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥3.修 改 学 生♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥4.删 除 学 生♥♥♥♥♥♥♥♥♥♥♥
♥♥♥♥♥♥♥♥♥♥♥5.返 回♥♥♥♥♥♥♥♥♥♥♥
===================================================================
""")
elif number == 3:
print("""
⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓1.查看所有学生⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓
⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓2.根据姓名查找⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓
⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓3.根据学号查找⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓
⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓4.返 🔙 回⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓⚓
===================================================================
""")
elif number == 4:
print("""
✂✂✂✂✂✂✂✂✂1.删除所有学生✂✂✂✂✂✂✂✂✂
✂✂✂✂✂✂✂✂✂2.根据姓名删除✂✂✂✂✂✂✂✂✂
✂✂✂✂✂✂✂✂✂3.根据学号删除✂✂✂✂✂✂✂✂✂
✂✂✂✂✂✂✂✂✂4.返 🔙 回✂✂✂✂✂✂✂✂✂
===================================================================
""")
elif number == 5:
print("""
📝📝📝📝📝📝📝📝📝📝1.修改姓名📝📝📝📝📝📝📝📝📝📝
📝📝📝📝📝📝📝📝📝📝2.修改年龄📝📝📝📝📝📝📝📝📝📝
📝📝📝📝📝📝📝📝📝📝3.修改电话📝📝📝📝📝📝📝📝📝📝
📝📝📝📝📝📝📝📝📝📝4.返 🔙 回📝📝📝📝📝📝📝📝📝📝
===================================================================
""")
class User():
@staticmethod
def main_page():
while True:
options.main_page_view(number=1)
choose = input('请选择(1~3)')
if choose == '1':
operation.User.judge(operation.User.landing(), choose=0)
elif choose == '2':
operation.User.judge(operation.User.registered(), choose=1)
elif choose == '3':
break
else:
print('你的输入有误')
@staticmethod
def Second_page(name):
options.main_page_view(name=name)
while True:
options.main_page_view(number=2)
choose = input('请选择(1~5)')
if choose == '1':
operation.Modify.add(name=name)
elif choose == '2':
User.third_page(name=name)
elif choose == '3':
operation.Modify.amend_choose(name=name)
elif choose == '4':
User.fourth_page(name=name)
elif choose == '5':
break
else:
print('你的输入有误')
@staticmethod
def third_page(name):
while True:
options.main_page_view(number=3)
choose = input('请选择(1~4)')
if choose == '1':
operation.find.find_all(name=name)
elif choose == '2':
operation.find.name_number(name=name, students_name=operation.find.students_input(choose=0))
elif choose == '3':
operation.find.find_students_id(name=name, students_id=operation.find.students_input(choose=1),
information=operation.find.read())
elif choose == '4':
break
else:
print('你的输入有误')
@staticmethod
def fourth_page(name):
while True:
options.main_page_view(number=4)
choose = input('请选择(1~4)')
if choose == '1':
operation.delete.remove_all()
elif choose == '2':
operation.find.name_number(name=name, students_name=operation.find.students_input(choose=0), choose=0)
elif choose == '3':
operation.delete.remove_students_id(name=name, students_id=operation.find.students_input(choose=1),
information=operation.find.read())
elif choose == '4':
break
else:
print('你的输入有误')
file.py
import json
from os import makedirs
def basic_file_read(file):
# json文件的读取
with open(file, 'r', encoding='utf-8') as f:
# return f.read()
return json.load(f)
def basic_file_write(file, content):
# json文件的写
content = json.dumps(content)
with open(file, 'w', encoding='utf-8') as f:
f.write(content)
def initial_value():
path = 'files/information.json'
try:
try:
makedirs('./files')
except:
pass
basic_file_read(path)
except:
basic_file_write(path,{'root':{'password':'root','students':{},'name_number': {},'number':0}})
1065

被折叠的 条评论
为什么被折叠?



