登錄界面
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):
"""
判斷指定用戶名是否已經注冊過
: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():
"""
注冊
:return:
"""
# 1.輸入用戶名
while True:
user_name = input('請輸入一個用戶名(3-10位):')
# 判斷是否符合格式要求
if not 3 <= len(user_name) <= 10:
print('輸入有誤,請重新輸入!')
continue
# 判斷是否已經注冊過
if is_register(user_name):
print('%s,已經注冊過,請重新輸入!' % user_name)
continue
print('用戶名可用!')
break
# 2.輸入密碼
while True:
password = input('請輸入密碼(6-16位):')
if not 6 <= len(password) <= 16:
print('密碼輸入有誤,請重新輸入!')
continue
re_password = input('確認密碼:')
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():
"""
登錄
:return:
"""
user_name = input('請輸入用戶名:')
password = input('請輸入密碼:')
# 1.看輸入的用戶名是否已經注冊過
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':
break
# 2.注冊
elif value == '2':
register()
elif value == '1':
# print('登錄')
user_name = login()
if user_name:
# 如果登錄成功就進入管理系統(tǒng)
student_system.user_name = user_name
student_system.main_page()
else:
print('輸入有誤, 重新選擇!')
if __name__ == '__main__':
# 1.顯示登錄界面(主界面)
show_main_page()
學生系統(tǒng)界面
import file_manager
user_name = ''
'''
一個賬號對應管理不同的學生 --- 不同的用戶對應不同的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)文件內容"""
system_info = file_manager.read_json_file(user_name+'.json')
if system_info:
return system_info
return {}
def creat_id():
"""產生學號"""
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("""
*****歡迎進入千峰學生管理系統(tǒng)****
* 1.添加學生 *
* 2.刪除學生 *
* 3.修改信息 *
* 4.查找信息 *
* 5.退出系統(tǒng) *
******************************
""")
# 1.添加學生
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('請輸入學生姓名:')
age = input('請輸入學生年齡:')
tel = input('請輸入學生電話:')
# 產生學號
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.刪除學生
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('請輸入需要刪除學生的姓名:')
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.修改學號')
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('請輸入修改后的學號:')
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
# 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.按學號查找')
print('3.查看全部學生')
print('==============================')
number4 = int(input('請選擇:'))
print('==============================')
if number4 == 1:
name4 = input('請輸入查找的學生姓名:')
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('請輸入學生的學號:')
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('添加學生')
elif value == '2':
del_student()
print('刪除學生')
elif value == '3':
recompose_student()
print('修改學生')
elif value == '4':
find_student()
print('查找學生')
else:
print('輸入有誤,重新輸入!')
if __name__ == '__main__':
# main_page()
print({}.get('abc', 0))