登錄系統(tǒng)
import file_manager
# 全局變量
file_name = 'user_info.json' # 保存所有用戶的信息文件
key_user_name = 'user_name'
key_password = 'password'
# =====================注冊==================
'''
為了下次打開系統(tǒng)的時候能夠正常登錄,注冊成功的信息需要保存。保存用戶名和密碼
一個系統(tǒng)可以注冊多個用戶,可以用列表保存多個用戶。通過字典來保存每個用戶的用戶名和密碼
[
{'user_name':'用戶名','password':'密碼'},
]
保存到userinfo.json中
'''
def is_register(user_name):
'''
判斷指定的用戶名是否已經(jīng)注冊過
:param user_name:
:return:
'''
all_user = file_manager.read_json_file(file_name)
if not all_user:
return False
for user in all_user:
if user[key_user_name] == user_name:
return True
return False
def get_all_user():
'''
獲取所有的用戶
:return:
'''
all_user = file_manager.read_json_file(file_name)
if all_user:
return all_user
return []
def register():
# 1.輸入用戶名
while True:
user_name = input('請輸入一個用戶名(3-10位):')
if not 3<=len(user_name)<=10:
print('輸入錯誤,請重新輸入!')
continue
# 判斷是否已經(jīng)注冊過
if is_register(user_name):
print('已注冊,請重新注冊')
continue
print('用戶名可用!')
break
# 2.輸入密碼
while True:
password = input('請輸入密碼(6-16位):')
if not 6<=len(password)<=16:
print('密碼錯誤,請重新輸入!')
continue
re_password = input('確認(rèn)密碼:')
if password != re_password:
print('和第一次輸入不一致,請重新輸入!')
continue
break
# 3.保存用戶名和密碼
all_user = get_all_user()
all_user.append({key_user_name:user_name,key_password:password})
re = file_manager.write_json_file(file_name,all_user)
if re:
print('注冊成功!')
else:
print('注冊失敗!')
# =====================登錄==================
def login():
user_name = input('請輸入用戶名:')
password = input('請輸入密碼:')
# 1.看輸入的用戶名是否已經(jīng)注冊過
all_user = get_all_user()
for user in all_user:
if user[key_user_name] == user_name:
if user[key_password] == password:
print('登陸成功!')
return user_name
else:
print('登錄失敗')
return None
print('沒有注冊')
return None
# =====================主頁==================
import student_system
def show_main_page():
while True:
print(file_manager.read_text_file('login.txt'))
value =input('請選擇(1-3):')
# 1.退出
if value == '3':
print('退出')
break
elif value == '2':
print('注冊')
register()
elif value == '1':
# print('登錄')
user_name = login()
if user_name:
student_system.user_name = user_name
student_system.main_page()
print('進(jìn)入學(xué)生管理系統(tǒng)')
else:
print('輸入錯誤,請重新輸入')
if __name__ == '__main__':
# 1.主界面的功能
show_main_page()
管理系統(tǒng)
import file_manager
user_name = ''
'''
一個賬號對應(yīng)管理不同的學(xué)生 --- 不同的用戶對應(yīng)不同的json文件
json文件中的格式:
{
'name':'',
'number':個數(shù),
'all_student':[
{'name':,'age':,'tel':,'id':}
]
'''
key_number = 'number'
key_all_students = 'all_students'
key_name = 'name'
key_age = 'age'
key_tel = 'tel'
key_id = 'id'
def get_system_info():
"""獲取系統(tǒng)文件內(nèi)容"""
system_info = file_manager.read_json_file(user_name+'.json')
if system_info:
return system_info
return {}
def creat_id():
"""產(chǎn)生學(xué)號"""
system_info = get_system_info()
number = system_info.get(key_number, 0)
number += 1
id = 'stu' + str(number).rjust(4, '0')
return id, number
def main_interface():
return print("""
*****歡迎進(jìn)入千峰學(xué)生管理系統(tǒng)****
* 1.添加學(xué)生 *
* 2.刪除學(xué)生 *
* 3.修改信息 *
* 4.查找信息 *
* 5.退出系統(tǒng) *
******************************
""")
# 1.添加學(xué)生
def add_student():
Students_table = []
while True:
with open('./student.txt', 'r', encoding='utf-8') as f:
content = f.read()
# print(eval(content))
# f = open('./student.txt', 'r', encoding='utf-8')
# f.read(str(student) + '\n')
# f.close()
name = input('請輸入學(xué)生姓名:')
age = input('請輸入學(xué)生年齡:')
tel = input('請輸入學(xué)生電話:')
# 產(chǎn)生學(xué)號
id, number = creat_id()
student = {key_name: name, key_age: age, key_tel: tel, key_id: id}
Students_table.append(student)
with open('./student.txt', 'w', encoding='utf-8') as f:
content = f.write(str(Students_table))
# f = open('./student.txt', 'a', encoding='utf-8')
# f.write(str(student) + '\n')
# f.close()
print('添加成功')
print('==============================')
print('1.繼續(xù)添加')
print('2.返回上一級')
print('==============================')
number2 =int (input('請選擇:'))
if number2 == 1:
continue
else:
break
# 2.刪除學(xué)生
def del_student():
while True:
with open('./student.txt', 'r', encoding='utf-8') as f:
Students_table = eval(f.read())
print(Students_table)
name2 = input('請輸入需要刪除學(xué)生的姓名:')
for student in Students_table:
if student['name'] == name2:
Students_table.remove(student)
print(Students_table)
print('==============================')
with open('./student.txt', 'w', encoding='utf-8') as f:
content = f.write(str(Students_table))
print('刪除成功')
print('==============================')
print('1.繼續(xù)刪除')
print('2.退出')
print('==============================')
number2 = int(input('請選擇:'))
if number2 == 1:
print('==============================')
continue
else:
break
# 3.修改信息
def recompose_student():
while True:
with open('./student.txt', 'r', encoding='utf-8') as f:
Students_table = eval(f.read()) # 從文件中取出的數(shù)據(jù)賦值個一個列表
print(Students_table)
name_gai = input('請輸入要修改的姓名:')
for student in Students_table:
if student['name'] == name_gai:
print('=============================')
print(student)
print('==============================')
print('1.修改姓名')
print('2.修改年齡')
print('3.修改電話')
print('4.修改學(xué)號')
print('==============================')
number3 = int(input('請選擇:'))
print('==============================')
if number3 == 1:
name3 = input('請輸入修改后的姓名:')
print('============================')
student['name'] = name3
elif number3 == 2:
age3 = input('請輸入修改后的年齡:')
print('============================')
student['age'] = age3
elif number3 == 3:
tel3 = input('請輸入修改后的電話:')
print('============================')
student['tel'] = tel3
else:
num3 = input('請輸入修改后的學(xué)號:')
print('============================')
student['id'] = num3
print(Students_table)
with open('./student.txt', 'w', encoding='utf-8') as f:
content = f.write(str(Students_table))
print('==============================')
print('修改成功')
print('==============================')
print('1.繼續(xù)修改')
print('2.退出')
print('==============================')
number3 = int(input('請選擇:'))
if number3 == 1:
continue
else:
break
陳虹州 8:35:56
# 4.查找信息
def find_student():
while True:
with open('./student.txt', 'r', encoding='utf-8') as f:
Students_table = eval(f.read()) # 從文件中取出的數(shù)據(jù)賦值個一個列表
print('1.按姓名查找')
print('2.按學(xué)號查找')
print('3.查看全部學(xué)生')
print('==============================')
number4 = int(input('請選擇:'))
print('==============================')
if number4 == 1:
name4 = input('請輸入查找的學(xué)生姓名:')
print('==============================')
for student in Students_table:
if student['name'] == name4:
print(student)
print('==============================')
print('1.繼續(xù)查找')
print('2.退出')
print('==============================')
number4 = int(input('請選擇:'))
if number4 == 1:
continue
else:
break
elif number4 == 2:
id4 = input('請輸入學(xué)生的學(xué)號:')
print('==============================')
for student in Students_table:
if student['id'] == id4:
print(student)
print('==============================')
print('1.繼續(xù)查找')
print('2.退出')
print('==============================')
number4 = int(input('請選擇:'))
if number4 == 1:
continue
else:
break
elif number4 == 3:
for student in Students_table:
print(student)
print('==============================')
print('1.繼續(xù)查找')
print('2.退出')
print('==============================')
number4 = int(input('請選擇:'))
if number4 == 1:
continue
else:
break
#==============主頁===================
def main_page():
while True:
print(file_manager.read_text_file('system.txt'))
value = input('請選擇(1-5):')
# 1.返回
if value == '5':
break
elif value == '1':
add_student()
print('添加學(xué)生')
elif value == '2':
del_student()
print('刪除學(xué)生')
elif value == '3':
recompose_student()
print('修改學(xué)生')
elif value == '4':
find_student()
print('查找學(xué)生')
else:
print('輸入有誤,重新輸入!')
if __name__ == '__main__':
# main_page()
print({}.get('abc', 0))