[python]选课系统
来源:互联网 发布:足球数据库app 编辑:程序博客网 时间:2024/04/29 21:45
选课系统
1.学校视图
创建班级;创建课程;创建老师;显示班级;显示课程;显示老师
2.教师视图
显示班级;显示班级学生
3.学生视图
注册
程序包含五个类:学校,课程,班级,老师,学生
班级中关联课程和学生,
老师中关联所教的班级
一个班级一个课程一个老师,
一个课程可建多个班级
github:https://github.com/nasnan/CourseSystem
/conf/common.py
def checkInput(list): while 1: inputItemp = input() if inputItemp in list: return inputItemp else: print("输入错误,请重新输入")def checkRepeat(item,list,name): if item in list: print("%s已存在,输入y修改现有数据,输入q返回" %name) chooseList = ["y", "q"] choose = checkInput(chooseList) if choose == "y": return 1 elif choose == "q": return 0def wait(): input("输入任意键返回")
/conf/settings.py
def checkInput(list): while 1: inputItemp = input() if inputItemp in list: return inputItemp else: print("输入错误,请重新输入")def checkRepeat(item,list,name): if item in list: print("%s已存在,输入y修改现有数据,输入q返回" %name) chooseList = ["y", "q"] choose = checkInput(chooseList) if choose == "y": return 1 elif choose == "q": return 0def wait(): input("输入任意键返回")
/core/star.py
from main import *start = start()start.welcome()
/core/main.py
import sysimport osBASE_DIR =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(BASE_DIR)from conf.settings import *from conf.common import *from database.dbapi import *from modules.school import Schoolclass start(object): def welcome(self): choose_dict ={ "1": schoolManage, "2":teacherManage, "3":studentManage, "q":exit } while 1: print("请选择:\n1.学校视图\n2.教师视图\n3.学生视图\nq.退出") choose = checkInput(choose_dict) choose_dict[choose]()# 学校视图class schoolManage(object): def __init__(self): self.school_db = load_data_from_db(database_dir) #将本地数据读到self.school_db self.welcome() def welcome(self): choose_dict = { "1":self.createClass, "2":self.createCourse, "3":self.createTeacher, "4":self.showClass, "5":self.showCourse, "6":self.showTeacher, "q":exit } while 1 : print("请选择:\n1.创建班级\n2.创建课程\n3.创建老师\n4.显示班级\n5.显示课程\n6.显示老师\nq.退出") choose = checkInput(choose_dict) choose_dict[choose]() wait() def saveChange(self): write_new_to_db(database_dir, self.school_db) def createClass(self): className = input("请输入班级号:") if checkRepeat(className,self.school_db.schoolClass,"班级") == 0: return 0 courseList = self.school_db.schoolCourse self.showCourse() print("请输入该班级关联的课程:") classCourse = checkInput(courseList) courseObj = self.school_db.schoolCourse[classCourse] self.school_db.createClass(className,courseObj) print("创建成功!") self.saveChange() def createCourse(self): courseName = input("请输入课程名字:") if checkRepeat(courseName,self.school_db.schoolCourse,"课程") == 0: return 0 courseTime = input("请输入课程课时:") coursePrice = input("请输入课程价格:") self.school_db.createCourse(courseName,courseTime,coursePrice) print("创建成功!") self.saveChange() # 创建老师 def createTeacher(self): teacherName = input("请输入老师姓名:") if checkRepeat(teacherName,self.school_db.schoolTeacher,"老师") == 0: return 0 busyClass = set() for tea in self.school_db.schoolTeacher: for cla in self.school_db.schoolTeacher[tea].teachClass: busyClass.add(cla) while 1: print("请输入任课班级") self.showClass() classNumber = checkInput(self.school_db.schoolClass) if classNumber not in busyClass: break else: print("此班级已有任课老师!") classObj = self.school_db.schoolClass[classNumber] self.school_db.createTeacher(teacherName,classObj) print("创建成功!") self.saveChange() def showClass(self): self.school_db.showClass() def showCourse(self): self.school_db.showCourse() def showTeacher(self): self.school_db.showTeacher()# 老师视图class teacherManage(object): def __init__(self): school_db = load_data_from_db(database_dir) self.teacher_db = school_db.schoolTeacher self.welcome() def welcome(self): print("请输入老师姓名:") teacherName = checkInput(self.teacher_db) self.teacherObj = self.teacher_db[teacherName] self.class_list = self.teacherObj.teachClass print("wlecome!") while 1: choose_dic = { "1":self.showClass, "2":self.showStudent, "q":exit } print("请选择:\n1.查看所教班级\n2.查看班级学生\nq.退出") choose = checkInput(choose_dic) choose_dic[choose]() wait() def showClass(self): print("所教班级有:") for cla in self.class_list: print(self.class_list[cla].className) def showStudent(self): print("选择要查看的班级:") className = checkInput(self.class_list) classObj = self.class_list[className] print("%s 课程:%s 学生列表:%s" %(classObj.className,classObj.classCourse.courseName,classObj.classStudent))# 学生视图class studentManage(object): def __init__(self): self.school_db = load_data_from_db(database_dir) self.student_list = self.school_db.schoolStudent self.welcome() def welcome(self): while 1: print("请选择:\n1.注册\n2.登陆\nq.退出") choose_dict = { "1":self.signUp, "q":exit } choose = checkInput(choose_dict) choose_dict[choose]() # 注册 def signUp(self): while 1: studentName = input("请输入名字:") if studentName not in self.student_list: break else: print("名字已存在!") self.school_db.showClass() print("请选择班级:") className = checkInput(self.school_db.schoolClass) courseObj = self.school_db.schoolClass[className].classCourse print("此班级的课程%s课时为:%s,价格为%s。" %(courseObj.courseName,courseObj.courseTime,courseObj.coursePrice)) print("输入y确认,q退出!") choose_list = ["q","y"] choose = checkInput(choose_list) if choose == "y": self.school_db.createStudent(studentName,className) self.saveChange() print("注册成功!") else: exit() def saveChange(self): write_new_to_db(database_dir, self.school_db)
/database/dbapi.py
import pickle# 加载数据def load_data_from_db(dbname): dbtemp = open(dbname,'rb') p =pickle.load(dbtemp) dbtemp.close() return p# 写入数据库def write_new_to_db(dbname,data): dbtemp = open(dbname,'wb') p = pickle.dump(data,dbtemp) dbtemp.close()
/database/initDb.py
import sysimport osBASE_DIR =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(BASE_DIR)from modules.school import Schoolfrom dbapi import *school_Db = School("sch1")write_new_to_db("database.db",school_Db)
/modules/classes.py
class Class(object): def __init__(self,className,classCourse): self.className = className self.classCourse = classCourse self.classStudent = {} def addStudent(self,studentName,studentObj): self.classStudent[studentName] = studentObj
/database/major.py
class Course(object): def __init__(self,courseName,courseTime,coursePrice): self.courseName = courseName self.courseTime = courseTime self.coursePrice = coursePrice
/database/school.py
from modules.classes import Classfrom modules.major import Coursefrom modules.student import Studentfrom modules.teacher import Teacherclass School(object): def __init__(self,schoolName): self.schoolName = schoolName self.schoolCourse = {} self.schoolClass = {} self.schoolTeacher = {} self.schoolStudent = {} # 创建课程 def createCourse(self,courseName,courseTime,coursePrice): courseObj = Course(courseName,courseTime,coursePrice) self.schoolCourse[courseName] = courseObj # 创建班级 def createClass(self,className,courseObj): classObj = Class(className,courseObj) self.schoolClass[className] = classObj # 创建老师 def createTeacher(self,teacherName,teachClass): teacherObj = Teacher(teacherName) teacherObj.teacherAddClass(teachClass.className,teachClass) #给老师分班级 self.schoolTeacher[teacherName] = teacherObj # 学生注册 def createStudent(self,studentName,className): studentObj = Student(studentName) classObj = self.schoolClass[className] self.schoolStudent[studentName] = studentObj # 学校学生字典里加新学生 classObj.addStudent(studentName,studentObj) # 班级类中加学生 self.schoolClass[className] = classObj # 更新学校的班级字典 # 显示课程 def showCourse(self): for course in self.schoolCourse: course = self.schoolCourse[course] print("课名:%s 课时:%s 价格:%s" %(course.courseName,course.courseTime,course.coursePrice)) # 显示班级 def showClass(self): for oneClass in self.schoolClass: oneClass = self.schoolClass[oneClass] stuList = [] for stu in oneClass.classStudent: stuList.append(oneClass.classStudent[stu].studentName) print("班级:",oneClass.className," 课程:",oneClass.classCourse.courseName," 学生:",stuList) # 显示老师 def showTeacher(self): for teacher in self.schoolTeacher: teacher = self.schoolTeacher[teacher] cla = [] for classes in teacher.teachClass: cla.append(teacher.teachClass[classes].className) print("姓名:%s 所教班级:%s" %(teacher.teacherName,cla))
/database/student.py
class Student(object): def __init__(self,studentName): self.studentName = studentName
/database/teacher.py
class Teacher(object): def __init__(self,teacherName): self.teacherName = teacherName self.teachClass = {} def teacherAddClass(self,classname,classObj): self.teachClass[classname] = classObj
阅读全文
0 0
- Python作业-选课系统
- [python]选课系统
- Python作业-选课系统
- Python 模拟登陆教务选课系统
- 选课系统
- 选课系统
- Python+Flask+sqlite实现的选课系统
- 模拟学生选课系统
- 选课系统学习笔记
- 学生选课数据管理系统
- 学生选课系统
- 学生选课系统
- 教务系统选课bug
- 选课系统的收获
- 选课小系统
- 学生选课系统设计
- 选课系统数据类型
- MFC学生选课系统
- opencv viz3d 中的坐标系
- SSH加密的工作原理
- C++版openCV waitKey(0)失效的解决办法
- 将十进制转化为m进制。
- 栈结构的实现
- [python]选课系统
- Python求笛卡尔积
- 自定义View
- Android View 的工作原理
- 通过packstack快速安装openstack
- Python实现KNN算法项目 --- 约会推荐算法
- Qt小程序(三)-继承Qt窗口部件创建自定义部件
- 统计学习方法读书笔记(二)
- numpy矩阵相乘@的用法