student_main.py
'''__author__==fubo'''
'''
'''
import doc_method as doc
import student_method as met
import student_doc as stu
if __name__ == '__main__':
# 管理系统
while True:
flage = False
mul=met.manage_boundary()
mul2=met.choose_login(mul,'./files/manages.json')
#学生模块
while mul2=='4':
mul3=met.student_boundary()
# address=input('请输入地址:')
while mul3:
if mul3=='1':
mul3=stu.add_student('./files/students.json')
print(type(mul3))
continue
if mul3 == '2':
mul3 = stu.find_student('./files/students.json')
continue
if mul3 == '3':
mul3 = stu.del_student('./files/students.json')
continue
if mul3 == '4':
mul3 = stu.updata_student('./files/students.json')
continue
if mul3 == '5':
print('结束')
break
else:
flage=True
break
if flage:
break
#退出
if mul=='3':
print('退出管理系统')
break
doc_method.py
#判断方法'./files/manages.json'
'''
import json
def get_r_doc(address):
'''
判断address对应的文件是否存在或者文件是否为空
:param address: 文件地址
:return: 返回1文档存在且不为空和2文档不存在,3文档存在但为空
'''
try:
with open(address, 'r', encoding='utf-8') as f:
dict = json.load(f)
dict=get_python_data(dict)
return dict
except FileNotFoundError:
# print('系统中没有该文档')
return 2
except json.decoder.JSONDecodeError:
# print('文档为空')
return 3
def set_doc(*data):
"""
创建一个.json文档
:param address: 地址
:param type: 写的类型
:param data:
:return:
"""
with open(data[0], 'w', encoding='utf-8') as f:
if len(data)==2:
write_doc=json.dump(get_json_data(data[1]),f)
return write_doc
else:
return
def get_json_data(data):
'''
将python数据转换成json数据
:param data: 数据
:return: 返回json数据
'''
json_data=json.dumps(data)
return json_data
def get_python_data(data):
'''
将json数据转换成python数据
:param data: json数据
:return: 返回python数据
'''
python_data=json.loads(data)
return python_data
if __name__ == '__main__':
# if not get_r_judge('./files/text.json'):
# print('你是第一个分组')
# if get_r_doc('./files/manages.json'):
set_doc('./files/manages.json','name')
print(get_r_doc('./files/manages.json'))
student_doc
from student_method import add_dict
import doc_method as doc
def add_student(address):
dict = doc.get_r_doc(address)
if dict == 2 or dict == 3:
print('首次添加')
name = input('请输入姓名:')
age = input('年龄:')
tel=input('电话')
num1=1
id = 'py1805' + str(num1).rjust(3, '0')
dict = {} # 最外层字典
list1 = []
list2 = ['name','age','tel', 'id']
list3 = [name, age,tel,id]
dict1 = add_dict(list2, list3)
list1.append(dict1)
# dict = doc.get_json_data(dict)
dict['all_student'] = list1
doc.set_doc(address, doc.get_json_data(dict))
print('添加成功')
print('1.继续添加')
print('2.返回首页')
mul5 = input('>>>')
return mul5
else:
print('添加学生')
name = input('请输入姓名:')
age = input('年龄:')
tel = input('电话')
dict = doc.get_python_data(dict)
num1=0
for item in dict['all_student']:
print(item['id'])
if str(num1)- 9:
mul2=0
if (mul3+1)>9:
mul3=0
mul4=mul4+1
else:
mul3=mul3+1
else:
mul2=mul2+1
id = 'py1805' + str(mul4)+str(mul3)+str(mul2)
list2 = ['name', 'age', 'tel', 'id']
list3 = [name, age, tel, id]
dict1 = add_dict(list2, list3)
dict['all_student'].append(dict1)
doc.set_doc(address, doc.get_json_data(dict))
print('1.继续添加')
print('5.返回首页')
mul5 = input('>>>')
return mul5
def find_student(address):
dict = doc.get_r_doc(address)
dict=doc.get_python_data(dict)
if dict == 2 or dict == 3 or not dict['all_student']:
print('系统中还未录入信息')
mul1=input('1.添加,5.返回首页,其他退出系统')
if mul1=="1" or mul1=='5':
return mul1
else:
return
else:
print('1.查看所有的学生信息')
print('2.根据学生姓名查看学生信息')
print('3.根据学生学号查看学生信息')
print('4.返回上一层')
mul2=input(">>>")
if mul2=='1':
for student in dict['all_student']:
print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
(student['name'], student['age'], student['tel'], \
student['id']))
return '5'
if mul2 == '2':
find_name(dict)
return '5'
if mul2=='3':
find_id = input("请输入你想查看的学生学号:")
for student in dict['all_student']:
if find_id==student['id']:
print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
(student['name'], student['age'], student['tel'], \
student['id']))
return '5'
if mul2=='4':
return '5'
else:
return
def del_student(address):
dict = doc.get_r_doc(address)
dict=doc.get_python_data(dict)
if dict == 2 or dict == 3:
print('系统中还未录入信息')
mul1 = input('1.添加,5.返回首页,其他退出系统')
if mul1 == "1" or mul1 == '5':
return mul1
else:
return
else:
print('1.按姓名删除学生')
print('2.按学号删除学生')
print('3.返回')
mul2=input('>>>')
if mul2=='1':
list1=find_name(dict)
mul3=int(input('>>>'))
dict['all_student'].remove(list1[mul3])
dict=doc.get_json_data(dict)
doc.set_doc(address,dict)
return '5'
if mul2=='2':
find_id = input("请输入你想查看的学生学号:")
for student in dict['all_student']:
if find_id == student['id']:
dict['all_student'].remove(student)
dict = doc.get_json_data(dict)
doc.set_doc(address, dict)
return '5'
if mul2=='3':
return "5"
def updata_student(address):
dict = doc.get_r_doc(address)
dict=doc.get_python_data(dict)
if dict == 2 or dict == 3:
print('系统中还未录入信息')
mul1 = input('1.添加,5.返回首页,其他退出系统')
if mul1 == "1" or mul1 == '5':
return mul1
else:
return
else:
print('1.按姓名修改学生')
print('2.按学号修改学生')
print('3.返回')
mul2=input('>>>')
if mul2=='1':
list=find_name(dict)
if list:
mul3 = int(input('>>>'))
while True:
str2=input('修改项:')
str3 = input('修改内容:')
# if str2 not in list[mul3]:
print('该修改项不存在')
# dict=doc.get_python_data(dict)
# else:
dict['all_student'][mul3][str2] = str3
if not str2 and not str3:
break
dict = doc.get_json_data(dict)
doc.set_doc(address, dict)
return '5'
else:
print('没有该学生')
return '5'
if mul2=='2':
find_id = input("请输入你想修改的学生学号:")
for student in dict['all_student']:
if find_id == student['id']:
while True:
str2 = input('修改项:')
str3 = input('修改内容:')
# if str2 not in student:
# print('该修改项不存在')
# dict=doc.get_python_data(dict)
# else:
student[str2]=str3
if not str2 and not str3:
break
dict = doc.get_json_data(dict)
doc.set_doc(address, dict)
if mul2=='3':
return "5"
def find_name(dict) :
find_name = input('请输入学生的姓名:')
list1 = []
for student in dict['all_student']:
if find_name == student['name']:
list1.append(student)
for item in range(len(list1)):
print(item, '姓名:%s,年龄:%s,电话:%s,学号:%s' % \
(list1[item]['name'], list1[item]['age'], list1[item]['tel'], \
list1[item]['id']))
if list1:
return list1
else:
return
if __name__ == '__main__':
# add_student( './files/students.json')
# find_student('./files/students.json')
# del_student('./files/students.json')
updata_student('./files/students.json')
student_method.py
import doc_method as doc
def student_boundary():
print('==========================')
print('欢迎进入XXX学生管理系统')
print('1.添加学生\n2.查看学生\n3.删除学生\n4.修改学生信息\n0.退出')
print('==========================')
mul1=input_value = input('请输入:')
return mul1
def manage_boundary():
print('***********************************')
print('1.登录')
print('2.注册')
print('3.退出')
print('***********************************')
# 模块1 manage管理 列表 字典
num1 = input('请选择操作:')
return num1
def add_dict(list1,list2):
dict1=dict.fromkeys(list1)
num=0
for item in dict1:
dict1[item]=list2[num]
num+=1
return dict1
def choose_login(num,address):
while True:
dict = doc.get_r_doc(address)
if num=='1':
print('请登录')
user_name = input('请输入姓名:')
password = input('请输入密码:')
if dict==2:
print('系统中没有该文档')
doc.set_doc(address,'')
num=input('注册请输入2,退出请输入5:')
if num==5:
num=0
continue
elif dict==3:
print('系统中还未录入任何信息')
num = input('注册请输入2,退出请输入5:')
if num == 5:
num = 0
continue
else:
num2 = 0
dict=doc.get_python_data(dict)
for item in dict['all_manage']:
# print(item['manage_name'],item['password'])
if item['manage_name'] == user_name and item['password'] == password:
print('登录成功')
num2 = 0.1
return '4'
if item['manage_name'] != user_name :
num2 += 1
if num2 == len(dict['all_manage']) :
print('系统没有该用户,请注册')
num = input('>>>')
continue
elif num2 == 0:
print('登录有误,请重新登录')
num = '1'
continue
if num=='2':
num=add_people(dict,address)
if num:
return num
else:
continue
def add_people(dict,address):
if dict == 2 or dict == 3:
print('恭喜你,你是第一个登录本系统')
name = input('请输入姓名:')
password = input('请输入密码:')
dict = {} # 最外层字典
list1 = []
list2 = ['manage_name', 'password']
list3 = [name, password]
dict1 = add_dict(list2, list3)
list1.append(dict1)
# dict = doc.get_json_data(dict)
dict['all_manage'] = list1
doc.set_doc(address, doc.get_json_data(dict))
num = input('请选择其他功能:')
if num == '2':
print('您已经注册,系统将让你返回登录界面')
return
elif num=='3':
return num
else:
return
else:
print('欢迎您来注册')
name = input('请输入姓名:')
password = input('请输入密码:')
list2 = ['manage_name', 'password']
list3 = [name, password]
dict1 = add_dict(list2, list3)
dict = doc.get_python_data(dict)
dict['all_manage'].append(dict1)
doc.set_doc(address, doc.get_json_data(dict))
num = input('请选择其他功能:')
if num == '2':
print('您已经注册,系统将让你返回登录界面')
elif num=='3':
return num
else:
return
if __name__ == '__main__':
choose_login('1','./files/manages.json')
# print(add_dict([1,2], [3,4]))
结果:
D:\Python项目\Day10-管理系统\code\venv\Scripts\python.exe D:/Python项目/Day10-管理系统/code/student_main.py
***********************************
1.登录
2.注册
3.退出
***********************************
请选择操作:1
请登录
请输入姓名:we
请输入密码:123
登录成功
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:1
添加学生
请输入姓名:we
年龄:234
电话2151
py1805003
py1805005
py1805007
1.继续添加
5.返回首页
>>>5
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>1
姓名:tr,年龄:235,电话:35,学号:py1805003
姓名:we,年龄:24,电话:2352,学号:py1805005
姓名:we,年龄:12415,电话:536,学号:py1805007
姓名:we,年龄:234,电话:2151,学号:py1805008
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
>>>1
请输入学生的姓名:we
0 姓名:we,年龄:24,电话:2352,学号:py1805005
1 姓名:we,年龄:12415,电话:536,学号:py1805007
2 姓名:we,年龄:234,电话:2151,学号:py1805008
>>>0
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>1
姓名:tr,年龄:235,电话:35,学号:py1805003
姓名:we,年龄:12415,电话:536,学号:py1805007
姓名:we,年龄:234,电话:2151,学号:py1805008
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
>>>1
请输入学生的姓名:we
0 姓名:we,年龄:12415,电话:536,学号:py1805007
1 姓名:we,年龄:234,电话:2151,学号:py1805008
>>>0
修改项:age
修改内容:12
修改项:
修改内容:
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>1
姓名:tr,年龄:12,电话:35,学号:py1805003
姓名:we,年龄:12415,电话:536,学号:py1805007
姓名:we,年龄:234,电话:2151,学号:py1805008
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:5
结束
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:0
***********************************
1.登录
2.注册
3.退出
***********************************
请选择操作:3