school management system

说明:先运行管理员界面建学校信息,后面随意。

结构

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("请按要求输入")

  

 

posted @ 2018-03-23 23:04  whz_it  阅读(254)  评论(0编辑  收藏  举报