students_manage.py
- 系统主界面程序,主要功能是调用函数,方便操作
"""
user{'user_name':user_name,
'pwd':pwd,
'student_info':[{'姓名':name,
'电话':tel,
'年龄':age
}]
}
"""
import json
import login
import index1
import regist
if __name__ == '__main__':
m = True
while m:
index1.home()
choice = input('请选择:')
if '0' < choice < '4':
if choice == '1':
regist.user_regist()
if choice == '2':
login.user_login()
if choice == '3':
m = False
index1.py
- 界面设计(本来是计划动态获得用户名的,测试完了才看见,测试的时候数据又多,就不想去改了,有需要,又不知道怎么实现的可以私信我)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : index1.py
# @Author: KingJX
# @Date : 2018/7/26
""""""
# 主界面的显示
def home(str1 = '游客'):
print('★★★★★★★★★★★★★★★★★★★★')
print(' 欢迎%s使用学生管理系统 ' % str1)
print('+ +')
print('+ 1.regist +')
print('+ +')
print('+ 2.login +')
print('+ +')
print('+ 3.quest +')
print('+ +')
print('★★★★★★★★★★★★★★★★★★★★')
return
if __name__ == '__main__':
pass
regist.py
- 注册功能实现
- 读取文件,判断用户名是否存在
- 判断两次输入的密码是否一样
- 获得用户,写入user.json中
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : regist.py
# @Author: KingJX
# @Date : 2018/7/26
""""""
import json
key_name = 'user_name'
key_pwd = 'user_pwd'
key_stu = 'student_info'
student_info =[]
def user_regist():
# 账号
try:
with open('./user.json', 'r', encoding='utf-8') as k:
content = json.load(k)
except FileNotFoundError:
content = []
# 取出文件中的数据,判断用户名是否被注册过
while True:
user_name = input('请输入用户名:')
for index in range(len(content)):
if content[index][key_name] == user_name:
print('用户名已经存在')
return
else:
continue
break
print('用户名可以使用')
user_pwd = input('请输入密码:')
user_pwd1 = input('请再次输入密码:')
# 判断两次密码是否相同
if user_pwd != user_pwd1:
print('两次输入的密码不一样')
return
else:
user = {key_name: user_name, key_pwd: user_pwd, key_stu: student_info}
content.append(user)
with open('./user.json', 'w', encoding='utf-8') as k:
json.dump(content, k)
return None
if __name__ == '__main__':
user_regist()
login.py
-
登录+学生管理界面(原本计划的是,分两个函数,写测试的时候放一起了,就没有分开)
-
登录
- 读取文件判断用户是否存在
- 用户存在时获取密码,判断密码是否争取
- 登录成功进入学生管理界面
-
学生管理
- 添加学生
- 删除学生
- 查看学生
-
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : login.py
# @Author: KingJX
# @Date : 2018/7/27 9:42
""""""
import json
key_name = 'user_name'
key_pwd = 'user_pwd'
key_stu = 'student_info'
stu_key_name = 'stu_name'
stu_key_tel = 'stu_phone'
stu_key_age = 'stu_age'
student_info =[]
userinfo = []
def user_login():
# 打开文件,判断文件是否存在
try:
with open('./user.json', 'r', encoding='utf-8') as k:
content = json.load(k)
except FileNotFoundError:
print('没有用户')
content = []
# 判断用户是否存在
while True:
user_name = input('请输入用户名:')
user_pwd = input('请输入密码:')
for index in range(0,len(content)):
if content[index][key_name] == user_name:
userinfo = content[index]
break
else:
print('用户不存在')
continue
# 获得你登录的用户的学生信息
# for index in range(len(content)):
# if content[index][key_name] == user_name and content[index][key_pwd] == user_pwd:
# print('登录成功')
# break
if userinfo[key_pwd] == user_pwd:
print('登录成功')
break
else:
print('密码错误')
continue
student_info = content[index][key_stu]
# 学生管理功能
while True:
print('1、添加学生')
print('2、删除学生')
print('3、查看学生')
print('4、返回上一层')
n = input('请选择:')
if '0' < n < '5':
if n == '1': # 添加
stu_name = input('请输入学生姓名:')
stu_tel = input('请输入学生电话:')
stu_age = input('请输入学生年龄:')
student = {stu_key_name: stu_name, stu_key_tel: stu_tel, stu_key_age: stu_age}
student_info.append(student)
with open('./user.json', 'w', encoding='utf-8') as u:
json.dump(content, u)
print('添加成功')
if n == '2': # 删除
m = True
while m:
# 如果没有存入学生
if not len(student_info):
print('没有学生')
break
get_name = input('请输入要删除的学生的姓名:')
flag = True
a = []
copy_name = []
# 通过名字查找学生
for i in range(0, len(student_info)):
if get_name == student_info[i][stu_key_name]:
a.append(i)
copy_name.append(student_info[i])
# 如果没有重名,直接删除
if len(copy_name) == 1:
for i in range(0, len(student_info)):
if get_name == student_info[i][stu_key_name]:
del student_info[i]
break
flag = False
with open('./user.json', 'w', encoding='utf-8') as u:
json.dump(content, u)
print('删除成功!')
# 如果有重名选择删除的人
elif len(copy_name) > 1:
for i in range(0, len(copy_name)):
print(copy_name[i])
del_name = int(input('你想删除第几个?')) - 1
del student_info[a[del_name]]
flag = False
with open('./user.json', 'w', encoding='utf-8') as u:
json.dump(content, u)
print('删除成功!')
if flag:
print('该学生不存在')
m = int(input('输入1继续删除,输入0返回上级:'))
if n == '3': # 查看
print(student_info)
if n == '4':
print('返回上一层')
return
else:
print('你的输入有误!')
continue
if __name__ == '__main__':
pass
user.json
[{"user_name": "\u738b\u83c1\u946b", "user_pwd": "111", "student_info": [{"stu_name": "\u5361\u8428", "stu_phone": "110", "stu_age": "21"}, {"stu_name": "\u91d1\u514b\u65af", "stu_phone": "119", "stu_age": "16"}]},
{"user_name": "KingJX", "user_pwd": "222", "student_info": []}]
测试结果
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:1
请输入用户名:王菁鑫
用户名可以使用
请输入密码:111
请再次输入密码:111
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:1
请输入用户名:王菁鑫
用户名已经存在
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:1
请输入用户名:KingJX
用户名可以使用
请输入密码:222
请再次输入密码:212
两次输入的密码不一样
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:1
请输入用户名:KingJX
用户名可以使用
请输入密码:222
请再次输入密码:222
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:2
请输入用户名:123
请输入密码:123
用户不存在
请输入用户名:王菁鑫
请输入密码:123
密码错误
请输入用户名:王菁鑫123
请输入密码:111
用户不存在
请输入用户名:王菁鑫
请输入密码:111
登录成功
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:1
请输入学生姓名:卡萨
请输入学生电话:110
请输入学生年龄:21
添加成功
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:1
请输入学生姓名:金克斯
请输入学生电话:119
请输入学生年龄:16
添加成功
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:1
请输入学生姓名:金克斯
请输入学生电话:112
请输入学生年龄:56
添加成功
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:3
[{'stu_name': '卡萨', 'stu_phone': '110', 'stu_age': '21'}, {'stu_name': '金克斯', 'stu_phone': '119', 'stu_age': '16'}, {'stu_name': '金克斯', 'stu_phone': '112', 'stu_age': '56'}]
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:2
请输入要删除的学生的姓名:金克斯
{'stu_name': '金克斯', 'stu_phone': '119', 'stu_age': '16'}
{'stu_name': '金克斯', 'stu_phone': '112', 'stu_age': '56'}
你想删除第几个?2
删除成功!
输入1继续删除,输入0返回上级:0
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:3
[{'stu_name': '卡萨', 'stu_phone': '110', 'stu_age': '21'}, {'stu_name': '金克斯', 'stu_phone': '119', 'stu_age': '16'}]
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:4
返回上一层
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:2
请输入用户名:KingJX
请输入密码:222
登录成功
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:3
[]
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:2
没有学生
1、添加学生
2、删除学生
3、查看学生
4、返回上一层
请选择:4
返回上一层
★★★★★★★★★★★★★★★★★★★★
欢迎游客使用学生管理系统
+ +
+ 1.regist +
+ +
+ 2.login +
+ +
+ 3.quest +
+ +
★★★★★★★★★★★★★★★★★★★★
请选择:3
网友评论