# 声明所有的key值
import json
key_all_student = 'students' # 所有学生
key_name = 'student_name'
key_age = 'age'
key_tel = 'tel'
key_id = 'id'
# 系统容器
# 当前已经添加过的学生人数
number = 0
#登陆界面
def main1():
while True:
print('-' * 10, '欢迎来到千峰学生信息管理系统', '-'*10)
print(' ' * 20, '1.登陆 ')
print(' ' * 20, '2.注册 ')
print(' ' * 20, '3.退出 ')
n = input('请输入您的选择:')
if n == '1':
login() #登陆
elif n == '2':
register() #注册
elif n == '3':
exit() #退出
#登陆函数
def login():
number = input('username:')
password = input('password:')
with open('./userinfo.json', 'r', encoding='utf-8') as f:
context = json.load(f)
if not context.get(number):
print('用户名不存在')
return False
else:
if password == str(context[number]):
print('登陆成功')
main2()
return True
#注册函数
def register():
print('-'*10,'欢迎来到登陆界面','-'*10)
number = input('请输入小主想注册的账号:')
with open('./userinfo.json', 'r', encoding='utf-8') as f:
content = json.load(f)
if not content.get(number):
print('用户名可用哦')
password = input('输入小主的密码吧:')
content[number] = password
with open('./userinfo.json', 'w', encoding='utf-8') as f:
json.dump(content,f)
print('注册成功了哦,小主')
main1()
else:
print('用户名已经有啦,小主')
#登陆完成后的主界面
def main2():
while True:
print('-' * 10, '欢迎来到千峰学生信息管理系统', '-' * 10)
print(' ' * 20, '1.添加学生信息 ')
print(' ' * 20, '2.查找学生信息 ')
print(' ' * 20, '3.删除学生信息 ')
print(' ' * 20, '4.显示学生信息 ')
print(' ' * 20, '5.返回上一级 ')
n = input('请输入您的选择:')
if n == '1':
addstu()
elif n == '2':
selectinfo()
elif n == '3':
delinfo()
elif n == '4':
display()
elif n == '5':
main1()
elif n == '5':
exit()
#添加学生功能,将学生信息保存在本地
def addstu():
global number
while True:
print('==添加学生==')
# 输入信息
add_name = input('姓名:')
add_age = input('年龄:')
add_tel = input('电话:')
# 产生学号
number += 1
add_id = 'py1805' + str(number).rjust(3, '0')
# 创建学生(一个学生就是一个字典)
add_student = {key_name: add_name, key_age: add_age, key_tel: add_tel, key_id: add_id}
with open('./stuinfo.json','r',encoding='utf-8') as f:
content = json.load(f)
# 获取存学生的容器
all_students = content.get(key_all_student)
# 将学生添加到容器中
all_students.append(add_student)
content[key_all_student] = all_students
# print(system_info)
#将数据写入json文件
with open('./stuinfo.json','w',encoding='utf-8') as f:
json.dump(content,f)
print('添加学生 %s 成功' % add_name)
# 给出选择
print('1.继续添加\n其他:返回上一层')
add_input = input('>>>')
if add_input != '1':
break
continue
def display():
with open('stuinfo.json','r') as f:
content = f.read()
print(content)
#删除学生信息
def delinfo():
# ============删除学生==============
while True:
print('1.按姓名删除')
print('2.返回')
del_input = input('请输入(1,2,3):')
with open('stuinfo.json','r')as f:
content = json.load(f)
# 把所有的学生拎出来
all_students = content.get(key_all_student)
if (not all_students) or (not len(all_students)):
print('该系统没有学生!')
break
if del_input == '1':
del_name = input('输入要删除的学生的姓名:')
del_students = []
# 找到所有可能要删除的学生
for student in all_students:
if del_name == student[key_name]:
# 保存可能要删除的学生
del_students.append(student)
# 判断是否找到
if not len(del_students):
print('没有找到相关的学生信息!')
continue
# 打印所有可能需要删除的学生
index = 0
for student in del_students:
print(index, student)
index += 1
del_num = input('请选择要删除的学生的编号:')
del_student = del_students[int(del_num)]
# 从系统中删除这个学生
content[key_all_student].remove(del_student)
with open('stuinfo.json','w',encoding='utf-8') as f:
json.dump(content,f)
print('删除成功!')
if del_input == '2':
main2()
continue
#查询学生信息
def selectinfo():
"""给出选择"""
print('=查看学生=')
print('1.根据姓名查看学生信息')
print('2.根据学号查看学生信息')
print('3.返回上一层')
find_input = input('请输入(1,2,3):')
# 直接回到上一层
#continue
# 先看有没有学生
with open('./stuinfo.json' , 'r' , encoding='utf-8') as f:
content = json.load(f)
"""拿到所有的学生"""
all_students = content.get(key_all_student)
"""系统还没有添加过学生"""
"""
or和and的短路操作:
表达式1 or 表达式2:如果表达式1的值是True,那么不会执行表达式2,结果直接为True
表达式1 and 表达式2:如果表达式1的值是False,那么不会执行表达式2,结果直接是False
None []
"""
if (not all_students) or (not len(all_students)):
print('系统中还没有学生!!')
#continue
# ==根据姓名找
elif find_input == '1':
find_name = input('请输入要查看的学生的名字:')
flag = True # 表示是否找不到
for student in all_students:
# 如果学生的名字和输入的名字相同,就打印这个学生的信息
if find_name == student[key_name]:
print(student)
flag = False
if flag:
print('找不到该学生信息!')
# ==根据学号找
elif find_input == '2':
find_id = input('请输入要查看的学生的学号:')
flag = True
for student in all_students:
if find_id == student[key_id]:
print(student)
flag = False
break
if flag:
print('找不到该学生信息!')
if find_input == '3':
main2()
#continue
# for student in all_students:
# print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
# (student[key_name], student[key_age], student[key_tel], student[key_id]))
#调用主函数
if __name__ == '__main__':
main1()
略微改进版学生管理系统
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...