# encoding=utf-8
# Time : 2018/7/26 20:23
# Author : 云水君
# Email : 632942444@qq.com
# File : 学生管理系统.py
# Software: PyCharm
from 文件操作 import json读文件
from 文件操作 import json写文件
def read_file():
path = "./user.json"
data = json读文件(path)
return data
def write_students(data):
path = "./user.json"
json写文件(path,data)
return 1
def print_show_main():
print("++++++++++++++++++++++++++++++++++++++++++++++")
print("+ 千锋学生管理系统 +")
print("+ 【1】按姓名查找 +")
print("+ 【2】按学号查找 +")
print("+ 【3】查看全部 +")
print("+ 【4】返回上一级 +")
print("++++++++++++++++++++++++++++++++++++++++++++++")
def print_remove():
print("++++++++++++++++++++++++++++++++++++++++++++++")
print("+ 千锋学生管理系统 +")
print("+ 【1】按学号删除 +")
print("+ 【2】按姓名删除 +")
print("+ 【3】返回上一级 +")
print("++++++++++++++++++++++++++++++++++++++++++++++")
def print_rewrite():
print("++++++++++++++++++++++++++++++++++++++++++++++")
print("+ 千锋学生管理系统 +")
print("+ 【1】按学号修改 +")
print("+ 【2】按姓名修改 +")
print("+ 【3】返回上一级 +")
print("++++++++++++++++++++++++++++++++++++++++++++++")
def print_login():
print("++++++++++++++++++++++++++++++++++++++++++++++")
print("+ 千锋学生管理系统 +")
print("+ 【1】登陆 +")
print("+ 【2】注册 +")
print("+ 【3】退出 +")
print("++++++++++++++++++++++++++++++++++++++++++++++")
def print_main():
print("++++++++++++++++++++++++++++++++++++++++++++++")
print("+ 千锋学生管理系统 +")
print("+ 【1】添加学生信息 +")
print("+ 【2】查询学生信息 +")
print("+ 【3】修改学生信息 +")
print("+ 【4】删除学生信息 +")
print("+ 【5】退出登陆 +")
print("++++++++++++++++++++++++++++++++++++++++++++++")
def logon(): # 注册操作
path = "./user.json"
data = json读文件(path)
if not data:
data = {}
user_name = input("请输入用户名:")
while True:
key = input("请输入密码:")
if user_name not in data:
key2 = input("请再次输入密码:")
if key == key2 and key !="":
data[user_name] = {"password": key, "students": {"count":1}}
json写文件(path,data)
print("注册成功")
break
elif key == "":
print("密码不能为空,请重新输入")
else:
print("两次密码不相同,请重新输入密码")
else:
print("该用用户名已经被注册,请重新输入")
return False
return True
def login(): # 登陆操作
path = "./user.json"
data = json读文件(path)
if not data:
print("还没有用户,请先注册")
return 0
else:
user_name = input("请输入用户名:")
count = 5
while True:
key = input("请输入密码:")
if user_name not in data:
print("输入的用户不存在")
break
elif key == data[user_name]["password"]:
print("登陆成功")
return user_name
else:
count -= 1
if count > 0:
print("密码错误,请重新输入。还能输入%d次"%count)
else:
break
return 0
def main_list(user_name): #主程序台
while True:
print_main()
n = input("请输入操作:")
if n == "1":
add_student(user_name)
elif n == "2":
show_students(user_name)
elif n == "3":
rewrite_student(user_name)
elif n == "4":
remove_student(user_name)
elif n == "5":
break
def show_students(user_name): # 查找打印学生信息
while True:
print_show_main()
n = input("请输入操作:")
if n == "4":
break
else:
data = read_file()
number = data[user_name]["students"]["count"]
students = data[user_name]["students"]
if number == 1:
print("还没有添加学生")
elif n == "1":
stu_name = input("请输入要查找的学生名字:")
for item in students:
if "py" in item:
if stu_name == students[item]["姓名"]:
print(students[item])
elif n == "2":
stu_number = input("请输入要查找的学生学号:")
for item in students:
if "py" in item:
if stu_number == item:
print(students[item])
elif n == "3":
for item in students:
if "py" in item:
print(students[item])
def add_student(user_name): #添加学生
name = input("请输入学生的姓名:")
age = input("请输入学生的年龄:")
phone = input("请输入学生的电话:")
data = read_file()
number =data[user_name]["students"]["count"]
stu_number = "py1805"+str(number).rjust(3,"0")
number +=1
data[user_name]["students"]["count"] = number
data[user_name]["students"][stu_number] = {"姓名":name,"年龄":age,"电话":phone,"学号":stu_number}
write_students(data)
def remove_student(user_name): # 删除学生信息
while True:
print_remove()
n = input("输入你想要的操作:")
if n == "3":
break
data = read_file()
number = data[user_name]["students"]["count"]
students = data[user_name]["students"]
if number == 1:
print("还没有添加学生")
elif n == "1":
stu_number = input("请输入要删除的学生学号:")
if stu_number in students:
print(students[stu_number])
print("你确定要删除这个学生的信息吗?确认按y,取消按任意键")
if input("确认按y,取消按任意键") == "y":
del data[user_name]["students"][stu_number]
write_students(data)
print("删除成功!")
elif n == "2":
stu_name = input("请输入要删除的学生名字:")
temp = []
i =1
for item in students:
if "py" in item:
if stu_name == students[item]["姓名"]:
temp.append(students[item])
if len(temp) == 0:
print("系统中没有名为%s的学生"%stu_name)
else:
print("姓名为:%s的学生"%stu_name)
for item in temp:
print(i,item)
i +=1
while True:
try:
index = int(input("请输入你想删除的学生的序号:"))
break
except:
print("请输入一个数字!")
stu_number = temp[index-1]["学号"]
print("你确定要删除这个学生的信息吗?确认按y,取消按任意键")
if input("确认按y,取消按任意键") == "y":
del data[user_name]["students"][stu_number]
write_students(data)
print("删除成功!")
def rewrite_student(user_name): # 修改学生信息
while True:
print_rewrite()
n = input("输入你想要的操作:")
if n == "3":
break
data = read_file()
number = data[user_name]["students"]["count"]
students = data[user_name]["students"]
if number == 1:
print("还没有添加学生")
elif n == "1":
stu_number = input("请输入要修改的学生学号:")
if stu_number in students:
print(students[stu_number])
print("你确定要修改这个学生的信息吗?确认按y,取消按任意键")
if input("确认按y,取消按任意键") == "y":
name = input("请输入学生的姓名:")
age = input("请输入学生的年龄:")
phone = input("请输入学生的电话:")
data[user_name]["students"][stu_number] = {"姓名": name, "年龄": age, "电话": phone, "学号": stu_number}
write_students(data)
print("修改成功!")
elif n == "2":
stu_name = input("请输入要修改的学生名字:")
temp = []
i =1
for item in students:
if "py" in item:
if stu_name == students[item]["姓名"]:
temp.append(students[item])
if len(temp) == 0:
print("系统中没有名为%s的学生"%stu_name)
else:
print("姓名为:%s的学生"%stu_name)
for item in temp:
print(i,item)
i +=1
while True:
try:
index = int(input("请输入你想修改的学生的序号:"))
break
except:
print("请输入一个数字!")
stu_number = temp[index-1]["学号"]
print("你确定要修改这个学生的信息吗?确认按y,取消按任意键")
if input("确认按y,取消按任意键") == "y":
name = input("请输入学生的姓名:")
age = input("请输入学生的年龄:")
phone = input("请输入学生的电话:")
data[user_name]["students"][stu_number] = {"姓名": name, "年龄": age, "电话": phone, "学号": stu_number}
write_students(data)
print("修改成功!")
while True: #登陆操作
print_login()
n = input("请输入你想要的操作:")
if n == "1": # 登陆操作
user_name = login()
if user_name:
main_list(user_name)
elif n == "2": # 注册
if not logon():
logon()
elif n == "3": #退出
break
else:
print("输入有误,请重新输入")
模块代码:
import json
def json读文件(路径):
try:
with open(路径,"r",encoding="utf-8") as f:
内容 = json.load(f)
except:
内容 = ""
with open(路径,"w",encoding="utf-8") as f:
json.dump(内容,f)
return 内容
def json写文件(路径,内容):
with open(路径, "w", encoding="utf-8") as f:
json.dump(内容,f)
print("写入成功!")
return "写入成功!"
网友评论