• 学生选课系统,第二版


    import pickle
    import os
    class kech:
    '''
    课程的的名字时间周期代课老师
    '''
    def __init__(self,courses,price,cycle,teacher):
    self.Courses = courses
    self.Price = price
    self.Cycle = cycle
    self.Teacher = teacher
    class Xs:
    '''
    学生的名字
    年龄,性别
    '''
    def __init__(self,name,grade):
    self.Name = name
    self.grade = grade
    self.courses = []
    def selected(self):
    with open("课程信息","rb")as f:
    while True:
    try:
    zhmm = pickle.load(f)
    yield zhmm
    except EOFError:
    return False
    def xuzekc(self,xsxx):
    while True:
    for i in self.selected():print(i.__dict__)
    a = input("请输入课程名字 : ").strip()
    for i in self.selected():
    if i.Courses == a:
    if a in xsxx.courses:
    print("课程存在!!")
    else:
    print("添加%s课程成功" % a)
    return xsxx.courses.append(a)
    elif a.upper() == "Q":
    return
    def chakask(self):
    with open("Student","rb")as f:
    while True:
    try:
    zhmm = pickle.load(f)
    yield zhmm
    except EOFError:
    return False
    class Gly:
    '''
    1、创建课程
    2、创建学生学生账号
    3、查看所有课程
    4、查看所有学生
    5、查看所有学生的选课情况
    6、退出程序
    '''
    def __init__(self,name):
    self.name = name
    def found(self):#1、创建课程
    courses = input("请输入创建的课程 : ").strip()
    price = input("输入课程价格 : ").strip()
    cycle = input("请输入课程周期 : ").strip()
    teacher = input("请输入授课老师 : ").strip()
    a = kech(courses, price, cycle, teacher)
    with open("课程信息","ab")as f:
    pickle.dump(a,f)
    print("%s课程创建成功"%(a.__dict__))
    def Create_account(self):
    Account1 = input("学生账号 : ").strip()
    Code = input("学生密码 : ").strip()
    name = input("学生姓名 : ").strip()
    grade = input("学生班级 : ").strip()
    with open("账号密码","ab")as f:
    s = {"ID":"学生","账号":Account1,"密码":Code,"姓名":name,"班级":grade}
    print(s,"33[0;33m注册成功33[0m")
    pickle.dump(s,f)
    with open("Student","ab")as f :
    a = Xs(name,grade)
    pickle.dump(a,f)
    def cksuoykc(self):
    with open("课程信息","rb")as f:
    while True:
    try:
    zhmm = pickle.load(f)
    yield zhmm
    except EOFError:
    return False
    def ckansuoyouxues(self):
    for i in dqwenjian():
    if i["ID"] == "学生":
    print(i["姓名"],i["班级"])
    def cksuoyouxsxk(self):
    with open("Student","rb")as f:
    while True:
    try:
    zhmm = pickle.load(f)
    yield zhmm
    except EOFError:
    return False
    def glyzc():#注册管理员
    Account = input("33[0;31mInput virus : 33[0m").strip()
    Password= input("33[0;31mSelect the virus : 33[0m").strip()
    name = input("33[0;31mName entry : 33[0m").strip()
    with open("账号密码","ab")as f:
    s = {"ID": "管理员", "账号": Account, "密码": Password,"姓名":name}
    pickle.dump(s,f)
    def dqwenjian():#打开文件进行读取
    with open("账号密码","rb")as f:
    while True:
    try:
    zhmm = pickle.load(f)
    yield zhmm
    except EOFError:
    return False
    def pad(zh,m_m):#判断输入账号密码是否存在
    for i in dqwenjian():
    if i["账号"] == zh and i["密码"] == m_m:
    if i["ID"] == "管理员":
    print("33[0;32mWelcome administrator login33[0m")
    if i["ID"] == "管理员":
    guanly(i)
    exit("ROBOCOP PRIME DIRECTIVES")
    else:
    print("33[0;31mWelcome to33[0m")
    if i["ID"] == "学生":
    xueshen(i)
    exit("ROBOCOP PRIME DIRECTIVES")
    else:
    print("33[0;31m Wrong account or password33[0m")
    def guanly(xx): #管理员操作界面
    while True:
    print("33[0;35m1、创建课程 "
    "2、创建学生学生账号 "
    "3、查看所有课程 "
    "4、查看所有学生 "
    "5、查看所有学生的选课情况 "
    "6、退出程序33[0m")
    name = Gly(xx["姓名"])
    # print("欢迎33[0;31m%s33[0m登录管理员界面!!!"%name.name)
    num = input("选择你要执行的序号>>>").strip()
    if num == "1":
    name.found()
    if num == "2":
    name.Create_account()
    if num == "3":
    for i in name.cksuoykc():print("33[0;36m",i.__dict__,"33[0m")
    if num == "4":
    name.ckansuoyouxues()
    if num == "5":
    for i in name.cksuoyouxsxk():print(i.Name,i.grade,i.courses)
    if num == "6":
    return
    def xus(xx):
    with open("Student","rb")as f:
    while True:
    try:
    xsxx = pickle.load(f)
    yield xsxx
    except EOFError:
    return False
    def dyxus(xx):
    for i in xus(xx):
    if i.Name == xx["姓名"]:
    return i
    def xueshen(xx):#学生操作界面
    # print("欢迎%s同学登录学生界面!!!" % xx["姓名"])
    while True:
    print("33[0;35m1、查看所有课程 "
    "2、选择课程 "
    "3、查看所选课程 "
    "4、退出程序33[0m")
    a =input("输入要执行的序号 : ")
    xsxx = dyxus(xx)
    if a == "1":
    for j,i in enumerate(xsxx.selected(),1):print(j,i.__dict__)
    if a == "2":
    xsxx.xuzekc(xsxx)
    with open("Student1","wb")as f:
    for i in xus(xx):
    if i.Name == xsxx.Name:
    pickle.dump(xsxx,f)
    else:
    pickle.dump(i,f)
    os.remove("Student")
    os.rename("Student1","Student")
    if a == "3":
    for i in xsxx.chakask():
    if i.Name == xsxx.Name:
    print(i.Name,i.courses)
    if a == "4": return
    while True:
    zh = input("33[1;32;40m账号>>>33[0m").strip()
    m_m = input("33[1;32;40m密码>>>33[0m").strip()
    if zh =="Looking for virus" and m_m == "#@!@!#":
    glyzc()
    pad(zh,m_m)
  • 相关阅读:
    唯品会面经
    动态代理两种实现方式
    腾讯运营开发面经
    MySQL一些中重要命令
    金山wps面经
    三七互娱面经
    排序算法之快速排序(Quicksort)解析
    全排列算法分析(原创方法/一般方法/字典序法)
    WinForm如何去掉右边和下边的白边
    Java异常处理机制的秘密
  • 原文地址:https://www.cnblogs.com/F18866/p/10021001.html
Copyright © 2020-2023  润新知