说明:先运行管理员界面建学校信息,后面随意。
结构
main.py
from school_view import school_main
from student_view import student_main
from teacher_view import teacher_main
type_user = ["管理员","教师","学生"]
while True:
for i in range(len(type_user)):
print(i,type_user[i])
choice_view = input("选择身份-->")
if choice_view.isdigit():
choice_view = int(choice_view)
if choice_view == 0:
school_main.main()
elif choice_view == 1:
teacher_main.main()
elif choice_view == 2:
student_main.main()
else:
print("请按要求输入")
else:
print("请按要求输入")
school.list.py
import os
def list():
s_list = []
for filename in os.listdir(os.path.dirname(os.path.abspath(__file__))):
if "school_info_" in filename:
s_list.append(filename.strip("\n").split("_")[2])
for i in s_list:
print(i)
school_member.main.py
class school_member(object):
def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
def tell(self):
pass
school_main.py
import sys,os
class School(object):
def __init__(self,name,addr):
self.name = name
self.addr = addr
def school_establish():
school_course = []
school_name = input("学校名称:")
school_addr = input("学校地址:")
while True:
course = input("开设的课程或输入q结束输入:")
if course == "q":
break
else:
teacher_salary = input("教师工资:")
if teacher_salary.isdigit():
teacher_salary = int(teacher_salary)
else:
print("请输入数字")
student_tuition = input("学生学费:")
if student_tuition.isdigit():
student_tuition = int(student_tuition)
else:
print("请输入数字")
school_course.append((course,teacher_salary,student_tuition))
s = School(school_name,school_addr)
if os.path.exists("school_info_school_name"):
print("该学校名已存在")
else:
f = open("school_info_%s"%school_name,"w",encoding="utf-8")
f.write(school_name)
f.write(":")
f.write(school_addr)
f.write("\n")
for item in school_course:
f.write(str(item[0]))
f.write(":")
f.write(str(item[1]))
f.write(":")
f.write(str(item[2]))
f.write("\n")
f.close()
def register():
while True:
name = input("用户名:")
passwd = input("密码:")
passwd_again = input("再次输入密码:")
if passwd != passwd_again:
print("两次密码不一致")
else:
if os.path.exists("%s"%name):
print("用户名已存在")
else:
f = open("%s"%name,"w",encoding="utf-8")
f.write(name)
f.write(":")
f.write(passwd)
f.close()
break
def login():
global manager_login
manager_login = {
"name": None,
"password": None,
"if_login": False
}
name = input("用户名:")
f = open("%s"%name,"r",encoding="utf-8")
for line in f:
if name in line:
passwd = input("密码:")
username = line.strip("\n").split(":")[0]
password = line.strip("\n").split(":")[1]
if username == name and password == passwd:
manager_login["name"] = name
manager_login["password"] = passwd
manager_login["if_login"] = True
print("%s登录成功,请选择操作"%name)
return True
else:
print("密码错误")
return False
else:
print("用户不存在")
return False
f.close()
def look_for_student():
try:
f = open("student_info","r",encoding="utf-8")
for line in f:
print(line)
except FileNotFoundError as e:
print("还没有开始招生")
def look_for_teacher():
try:
f = open("teacher_info","r",encoding="utf-8")
for line in f:
print(line)
except FileNotFoundError as e:
print("还没有开始招老师")
def del_student():
Flag = True
if Flag == False:
del Flag
while Flag:
del_name = input("所要删除的用户名:")
f = open("student_info", "r", encoding="utf-8")
for line in f:
if del_name in line:
f_new = open("student_info.bak", "w", encoding="utf-8")
for line in f:
if del_name not in line:
f_new.write(line)
else:
continue
f_new.close()
f = open("student_info", "w", encoding="utf-8")
f_new = open("student_info.bak", "r", encoding="utf-8")
for line in f_new:
f.write(line)
print("删除成功")
Flag = False
break
elif line == "\n":
print("此用户不存在")
break
else:
continue
f.close()
def del_teacher():
Flag = True
if Flag == False:
del Flag
while Flag:
del_name = input("所要删除的用户名:")
f = open("teacher_info","r",encoding="utf-8")
for line in f:
if del_name in line:
f_new = open("teacher_info.bak", "w", encoding="utf-8")
for line in f:
if del_name not in line:
f_new.write(line)
else:
continue
f_new.close()
f = open("teacher_info","w", encoding="utf-8")
f_new = open("teacher_info.bak","r",encoding="utf-8")
for line in f_new:
f.write(line)
print("删除成功")
Flag = False
break
elif del_name not in line:
print("test")
continue
f.close()
def main():
while True:
choice_login_register = input("0 注册\n1 登录\n2 返回\n3 退出\n-->")
if choice_login_register.isdigit():
choice_login_register = int(choice_login_register)
if choice_login_register == 0:
register()
elif choice_login_register == 1:
if login():
while True:
print("0 查询学生信息\n1 查询教师信息\n2 删除学生信息\n3 删除教师信息\n4 新建学校信息")
choice = input("-->")
if choice.isdigit():
choice = int(choice)
if choice == 0:
look_for_student()
elif choice == 1:
look_for_teacher()
elif choice == 2:
del_student()
elif choice == 3:
del_teacher()
elif choice == 4:
school_establish()
elif choice == 4:
break
elif choice == 5:
exit()
else:
print("请按要求输入")
elif choice_login_register == 2:
break
elif choice_login_register == 3:
quit()
else:
print("请输入正确的数字编号")
else:
print("输入格式错误")
student.main.py
import sys,os
t_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(t_dir)
from school_member import school_member_main
from main_view import school_list
class Student(school_member_main.school_member):
def __init__(self,name,age,gender,course,tuition):
super(Student,self).__init__(name,age,gender)
self.course = course
self.tuition = tuition
def register():
Flag1 = True
Flag2 = True
Flag3 = True
Flag4 = True
if Flag1 == False and Flag2 == False and Flag3 == False and Flag4:
del Flag1,Flag2,Flag3,Flag4
while Flag3:
name = input("用户名:")
Flag5 = True
while Flag4:
try:
f = open("student_info", "r", encoding="utf-8")
for line in f:
if name in line:
print("用户名已存在")
Flag5 = False
break
f.close()
if Flag5 == False:
break
else:
passwd = input("密码:")
passwd_again = input("请再次输入密码:")
if passwd != passwd_again:
print("两次密码不一致")
else:
age = input("年龄:")
s_gender = input("性别 男/女:")
while Flag1:
print("可选学校:")
school_list.list()
choice_school = input("请选择学校:")
while Flag2:
try:
f = open("school_info_%s" % choice_school, "r", encoding="utf-8")
for line in f:
if choice_school not in line:
print(line.strip("\n").split(":")[0])
f.close()
choice_course = input("请选择课程:")
f = open("school_info_%s" % choice_school, "r+", encoding="utf-8")
for line in f:
if choice_course in line:
s_course = line.strip("\n").split(":")[0]
s_tuition = line.strip("\n").split(":")[2]
pay_tuition = input("请交%s元学费:" % s_tuition)
if pay_tuition == s_tuition:
s = Student(name, age, gender=s_gender, tuition=s_tuition,
course=s_course)
f = open("student_info", "a+", encoding="utf-8")
f.write(name)
f.write(":")
f.write(passwd)
f.write(":")
f.write(age)
f.write(":")
f.write(s_gender)
f.write(":")
f.write(s_course)
f.write(":")
f.write(s_tuition)
f.write("\n")
f.close()
print("注册成功")
Flag4 = False
Flag3 = False
Flag2 = False
Flag1 = False
break
else:
print("请确定你的金额")
except FileNotFoundError as e:
print("没有这个学校,请重新输入")
break
except FileNotFoundError as e:
f = open("student_info", "w", encoding="utf-8")
f.close()
def login():
global student_login
student_login = {
"name":None,
"password":None,
"if_login":False
}
name = input("用户名:")
f = open("student_info","r",encoding="utf-8")
for line in f:
if name in line:
username = line.strip("\n").split(":")[0]
passwd = input("密码:")
pass_wd = line.strip("\n").split(":")[1]
if name == username and pass_wd == passwd:
student_login["name"] = name
student_login["password"] = passwd
student_login["if_login"] = True
print("登录成功")
return True
else:
print("用户名或密码错误")
return False
def look_for_grade():
f = open("student_info", "r", encoding="utf-8")
for line in f:
if student_login["if_login"] == True:
if student_login["name"] in line:
course = line.strip("\n").split(":")[4]
f = open("student_grade_%s" % course, "r", encoding="utf-8")
for line in f:
if student_login["name"] in line:
print(course,":",line.strip("\n").split(":")[1])
f.close()
break
else:
print("请先登录")
f.close()
def look_for_self():
f = open("student_info", "r", encoding="utf-8")
for line in f:
if student_login["if_login"] == True:
if student_login["name"] in line:
print(line)
break
def main():
while True:
print("0 注册\n1 登录\n2 返回\n3 退出")
choice_register_login = input("-->")
if choice_register_login.isdigit():
choice_register_login = int(choice_register_login)
if choice_register_login == 0:
register()
elif choice_register_login == 1:
if login():
while True:
print("0 查询成绩\n1 查询身份信息\n2 返回\n3 退出")
choice = input("-->")
if choice.isdigit():
choice = int(choice)
if choice == 0:
look_for_grade()
elif choice == 1:
look_for_self()
elif choice == 2:
break
elif choice == 3:
exit()
else:
print("请按要求输入")
elif choice_register_login == 2:
break
elif choice_register_login == 3:
exit()
else:
print("请按要求输入")
teacher_main.py
import sys,os
t_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(t_dir)
from school_member import school_member_main
from main_view import school_list
teacher_login = {
"name":None,
"password":None,
"if_login":False
}
class Teacher(school_member_main.school_member):
def __init__(self,name,age,gender,salary,course):
super(Teacher,self).__init__(name,age,gender)
self.salary = salary
self.course = course
def register():
Flag1 = True
Flag2 = True
Flag3 = True
Flag4 = True
if Flag1 == False and Flag2 == False and Flag3 == False and Flag4 == False:
del Flag1,Flag2,Flag3,Flag4
while Flag3:
name = input("用户名:")
Flag5 = True
while Flag4:
try:
f = open("teacher_info","r",encoding="utf-8")
for line in f:
if name in line:
print("用户名已存在")
Flag5 = False
break
f.close()
if Flag5 == False:
break
else:
passwd = input("密码:")
passwd_again = input("请再次输入密码:")
if passwd != passwd_again:
print("两次密码不一致")
else:
age = input("年龄:")
gender = input("性别 男/女:")
while Flag1:
print("可选学校:")
school_list.list()
choice_school = input("请选择学校:")
while Flag2:
try:
f = open("school_info_%s" % choice_school, "r", encoding="utf-8")
for line in f:
if choice_school not in line:
print(line.strip("\n").split(":")[0])
f.close()
choice_course = input("请选择课程:")
f = open("school_info_%s" % choice_school, "r+", encoding="utf-8")
for line in f:
if choice_course in line:
t_course = line.strip("\n").split(":")[0]
t_salary = line.strip("\n").split(":")[1]
t = Teacher(name, age, gender, salary=t_salary, course=t_course)
f = open("teacher_info", "a+", encoding="utf-8")
f.write(name)
f.write(":")
f.write(passwd)
f.write(":")
f.write(age)
f.write(":")
f.write(gender)
f.write(":")
f.write(t_salary)
f.write(":")
f.write(t_course)
f.write("\n")
print("注册成功")
print("你的工资为每月%s元"%t_salary)
f.close()
Flag4 = False
Flag3 = False
Flag2 = False
Flag1 = False
break
except FileNotFoundError as e:
print("没有这个学校,请重新输入")
break
except FileNotFoundError as e:
f = open("teacher_info","w",encoding="utf-8")
f.close()
def login():
global teacher_login
name = input("用户名:")
passwd = input("密码:")
try:
f = open("teacher_info", "r", encoding="utf-8")
for line in f:
if name in line:
username = line.strip("\n").split(":")[0]
pass_wd = line.strip("\n").split(":")[1]
if name == username and pass_wd == passwd:
teacher_login["name"] = name
teacher_login["password"] = passwd
teacher_login["if_login"] = True
print("登录成功")
return True
else:
print("用户名或密码错误")
return False
elif line == "\n":
print("用户不存在")
return False
except FileNotFoundError as e:
print("你还没有注册")
def look_for_self():
f = open("teacher_info","r",encoding="utf-8")
for line in f:
if teacher_login["if_login"] == True:
if teacher_login["name"] in line:
print(line)
break
else:
print("请先登录")
def look_for_student():
f = open("teacher_info","r",encoding="utf-8")
for line in f:
if teacher_login["if_login"] == True:
if teacher_login["name"] in line:
course = line.strip("\n").split(":")[5]
try:
f = open("student_info","r",encoding="utf-8")
for line in f:
if course in line:
s_info = []
s_info.append(line.strip("\n").split(":")[0])
s_info.append(line.strip("\n").split(":")[2])
s_info.append(line.strip("\n").split(":")[3])
print(s_info[0],s_info[1],s_info[2])
f.close()
except FileNotFoundError as e:
print("还没有为学生打分")
else:
print("请先登录")
f.close()
def record_grade():
f = open("teacher_info", "r", encoding="utf-8")
for line in f:
if teacher_login["if_login"] == True:
if teacher_login["name"] in line:
course = line.strip("\n").split(":")[5]
try:
f = open("student_info", "r", encoding="utf-8")
f_grade = open("student_grade_%s"%course,"w",encoding="utf-8")
for line in f:
if course in line:
s = line.strip("\n").split(":")[0]
f_grade.write("%s:"%s)
f_grade.write(input("%s:"%s))
f_grade.write("\n")
f.close()
f_grade.close()
print("完成")
break
except FileNotFoundError as e:
print("还没有开始招收学生")
else:
print("请先登录")
f.close()
def look_for_grade():
f = open("teacher_info", "r", encoding="utf-8")
for line in f:
if teacher_login["if_login"] == True:
if teacher_login["name"] in line:
course = line.strip("\n").split(":")[5]
try:
f = open("student_grade_%s"% course,"r",encoding="utf-8")
for line in f:
print(line)
f.close()
break
except FileNotFoundError as e:
print("还没有开始招收学生")
else:
print("请先登录")
f.close()
def main():
while True:
print("0 注册\n1 登录\n2 返回\n3 退出")
choice_register_login = input("-->")
if choice_register_login.isdigit():
choice_register_login = int(choice_register_login)
if choice_register_login == 0:
register()
elif choice_register_login == 1:
if login():
while True:
print("0 查询详细信息\n1 查询班级学生信息\n2 记录班级学生成绩\n3 "
"查询学生成绩\n4 返回\n5 退出")
choice = input("-->")
if choice.isdigit():
choice = int(choice)
if choice == 0:
look_for_self()
elif choice == 1:
look_for_student()
elif choice == 2:
record_grade()
elif choice == 3:
look_for_grade()
elif choice == 4:
break
elif choice == 5:
exit()
else:
print("请按要求输入")
elif choice_register_login == 2:
break
elif choice_register_login == 3:
exit()
else:
print("请按要求输入")