student_main.py
'''__author__==fubo'''
'''
'''
import doc_method as doc
import student_method as met
import student_doc as stu
if __name__ == '__main__':
# 管理系統(tǒng)
while True:
flage = False
mul=met.manage_boundary()
mul2=met.choose_login(mul,'./files/manages.json')
#學(xué)生模塊
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('結(jié)束')
break
else:
flage=True
break
if flage:
break
#退出
if mul=='3':
print('退出管理系統(tǒng)')
break
doc_method.py
#判斷方法'./files/manages.json'
'''
import json
def get_r_doc(address):
'''
判斷address對應(yīng)的文件是否存在或者文件是否為空
: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('系統(tǒng)中沒有該文檔')
return 2
except json.decoder.JSONDecodeError:
# print('文檔為空')
return 3
def set_doc(*data):
"""
創(chuàng)建一個.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數(shù)據(jù)轉(zhuǎn)換成json數(shù)據(jù)
:param data: 數(shù)據(jù)
:return: 返回json數(shù)據(jù)
'''
json_data=json.dumps(data)
return json_data
def get_python_data(data):
'''
將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù)
:param data: json數(shù)據(jù)
:return: 返回python數(shù)據(jù)
'''
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.繼續(xù)添加')
print('2.返回首頁')
mul5 = input('>>>')
return mul5
else:
print('添加學(xué)生')
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)<item['id']:
num=item['id']
mul2=int(num[-1])
mul3 = int(num[-2])
mul4 = int(num[-3])
if mul2+1>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.繼續(xù)添加')
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('系統(tǒng)中還未錄入信息')
mul1=input('1.添加乏苦,5.返回首頁,其他退出系統(tǒng)')
if mul1=="1" or mul1=='5':
return mul1
else:
return
else:
print('1.查看所有的學(xué)生信息')
print('2.根據(jù)學(xué)生姓名查看學(xué)生信息')
print('3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息')
print('4.返回上一層')
mul2=input(">>>")
if mul2=='1':
for student in dict['all_student']:
print('姓名:%s当娱,年齡:%s友鼻,電話:%s叛本,學(xué)號:%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("請輸入你想查看的學(xué)生學(xué)號:")
for student in dict['all_student']:
if find_id==student['id']:
print('姓名:%s颠毙,年齡:%s副瀑,電話:%s舱污,學(xué)號:%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('系統(tǒng)中還未錄入信息')
mul1 = input('1.添加想幻,5.返回首頁,其他退出系統(tǒng)')
if mul1 == "1" or mul1 == '5':
return mul1
else:
return
else:
print('1.按姓名刪除學(xué)生')
print('2.按學(xué)號刪除學(xué)生')
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("請輸入你想查看的學(xué)生學(xué)號:")
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('系統(tǒng)中還未錄入信息')
mul1 = input('1.添加粱栖,5.返回首頁,其他退出系統(tǒng)')
if mul1 == "1" or mul1 == '5':
return mul1
else:
return
else:
print('1.按姓名修改學(xué)生')
print('2.按學(xué)號修改學(xué)生')
print('3.返回')
mul2=input('>>>')
if mul2=='1':
list=find_name(dict)
if list:
mul3 = int(input('>>>'))
while True:
str2=input('修改項:')
str3 = input('修改內(nèi)容:')
# 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('沒有該學(xué)生')
return '5'
if mul2=='2':
find_id = input("請輸入你想修改的學(xué)生學(xué)號:")
for student in dict['all_student']:
if find_id == student['id']:
while True:
str2 = input('修改項:')
str3 = input('修改內(nèi)容:')
# 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('請輸入學(xué)生的姓名:')
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闹究,學(xué)號:%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學(xué)生管理系統(tǒng)')
print('1.添加學(xué)生\n2.查看學(xué)生\n3.刪除學(xué)生\n4.修改學(xué)生信息\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('系統(tǒng)中沒有該文檔')
doc.set_doc(address,'')
num=input('注冊請輸入2,退出請輸入5:')
if num==5:
num=0
continue
elif dict==3:
print('系統(tǒng)中還未錄入任何信息')
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('系統(tǒng)沒有該用戶跋核,請注冊')
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('恭喜你叛买,你是第一個登錄本系統(tǒng)')
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('您已經(jīng)注冊砂代,系統(tǒng)將讓你返回登錄界面')
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('您已經(jīng)注冊,系統(tǒng)將讓你返回登錄界面')
elif num=='3':
return num
else:
return
if __name__ == '__main__':
choose_login('1','./files/manages.json')
# print(add_dict([1,2], [3,4]))
結(jié)果:
D:\Python項目\Day10-管理系統(tǒng)\code\venv\Scripts\python.exe D:/Python項目/Day10-管理系統(tǒng)/code/student_main.py
***********************************
1.登錄
2.注冊
3.退出
***********************************
請選擇操作:1
請登錄
請輸入姓名:we
請輸入密碼:123
登錄成功
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:1
添加學(xué)生
請輸入姓名:we
年齡:234
電話2151
py1805003
py1805005
py1805007
1.繼續(xù)添加
5.返回首頁
>>>5
<class 'str'>
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr率挣,年齡:235刻伊,電話:35,學(xué)號:py1805003
姓名:we,年齡:24捶箱,電話:2352智什,學(xué)號:py1805005
姓名:we,年齡:12415丁屎,電話:536荠锭,學(xué)號:py1805007
姓名:we,年齡:234晨川,電話:2151证九,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:3
1.按姓名刪除學(xué)生
2.按學(xué)號刪除學(xué)生
3.返回
>>>1
請輸入學(xué)生的姓名:we
0 姓名:we,年齡:24共虑,電話:2352愧怜,學(xué)號:py1805005
1 姓名:we,年齡:12415妈拌,電話:536拥坛,學(xué)號:py1805007
2 姓名:we,年齡:234尘分,電話:2151猜惋,學(xué)號:py1805008
>>>0
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr,年齡:235音诫,電話:35惨奕,學(xué)號:py1805003
姓名:we,年齡:12415竭钝,電話:536梨撞,學(xué)號:py1805007
姓名:we,年齡:234香罐,電話:2151卧波,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:4
1.按姓名修改學(xué)生
2.按學(xué)號修改學(xué)生
3.返回
>>>1
請輸入學(xué)生的姓名:we
0 姓名:we,年齡:12415庇茫,電話:536港粱,學(xué)號:py1805007
1 姓名:we,年齡:234旦签,電話:2151查坪,學(xué)號:py1805008
>>>0
修改項:age
修改內(nèi)容:12
修改項:
修改內(nèi)容:
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr,年齡:12宁炫,電話:35偿曙,學(xué)號:py1805003
姓名:we,年齡:12415羔巢,電話:536望忆,學(xué)號:py1805007
姓名:we罩阵,年齡:234,電話:2151启摄,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:5
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:0
***********************************
1.登錄
2.注冊
3.退出
***********************************
請選擇操作:3