本文实例为大家分享了Python实现学校管理系统的具体代码,供大家参考,具体内容如下
一、功能分析
此学校管理系统应该可以实现学校的师资力量的调配,学生的入学、学习以及修学或者退学的情况
二、程序解读
1.下面的程序实现了学校管理系统的基本功能,包括:
1)学校的招生
2)讲师的招聘
3)课程的增加
4)等等
2.未实现的功能也有很多,比如:
1)学生类中有一个方法是缴费,也有一个方法是注册,这两个方法应该关联起来,缴费成功后,才可以进行注册
2)每个老师应该可以通过各种方式来查看自己学生的信息,比如按照姓名,学号等等
3)每个学生都应该可以查看学校所有的课程和教师情况
4)所有的这些信息必须保存在文件或者数据库中才可以得到永久的保存
5)在客户上传相应的数据时,应该对其有所约束,比如说学号必须是10位正整数(在这里,为了避免报错,将所有的数据都设置为字符串型)
6)讲师,学生和课程的删除,修改,查询等操作需要添加
7)各类对象在初始化的时候需要输入的信息太多,应该做成只需要唯一ID和PASSWD这种类型的来进行相应的登录
8)等等
二、程序代码
#!/usr/bin/env python #coding:utf-8 """ file:Management.py date:9/9/179:57 PM author:hx desc:管理系统雏形 """ ##添加模块 import sys import json ##学校类定义 class School(object): ##初始化函数 def __init__(self,SchoolName,SchoolPlace,SchoolMotto): self.SchoolName = SchoolName self.SchoolPlace = SchoolPlace self.SchoolMotto = SchoolMotto ##招生函数 def RecruitStu(self): NewStuName = raw_input("StuName:") NewStuAge = raw_input("StuAge:") NewStuSex = raw_input("StuSex:") NewStuSchool = raw_input("StuSchool:") CourseNo = raw_input("CourseNo:") NewStuID = raw_input("StuID:") CoursePrice = raw_input("CoursePrice:") NewStu = Stu(NewStuName,NewStuAge,NewStuSex,NewStuSchool,CourseNo,NewStuID,CoursePrice) ##实例化学员对象 stus_dict = {"StuName":NewStuName,"StuAge":NewStuAge,"StuSex":NewStuSex,"StuSchool":NewStuSchool,"CourseNo":CourseNo,"StuID":NewStuID,"CoursePrice":CoursePrice} # 用字典来存放讲师信息 if not dic: dic[NewStuName] = stus_dict json.dump(dic, open("student_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) else: if dic.get(NewStuName): print("%s学生已存在,不能注册名字相同的学生" % NewStuName) else: dic[NewStuName] = stus_dict json.dump(dic, open("student_db", "w"),encoding='utf-8', ensure_ascii=False, indent=2) print("The student has already added successfully".center(50, '-')) NewStu.StuInfo() ##聘请讲师 def HireTch(self): print "Welcome to hire teacher from here~" NewTeacherName = raw_input("Please input the teacher's name:") NewTeacherAge = raw_input("Please input the teacher's age:") NewTeacherSex = raw_input("Please input the teacher's sex:") NewCourseNo = raw_input("Please input the teacher's course number:") NewSalary = raw_input("Please input the teacher's salary:") NewTeacher = Teacher(NewTeacherName, NewTeacherAge, NewTeacherSex, NewCourseNo,NewSalary) # 实例化讲师对象 teachers_dict = {"TeacherName":NewTeacherName,"TeacherAge":NewTeacherAge,"TeacherSex":NewTeacherSex,"CourseNo":NewCourseNo,"Salary":NewSalary} # 用字典来存放讲师信息 # 通过json将讲师的字典反序列化到dic字典中 if not dic: #字典如果为空 dic[NewTeacherName] = teachers_dict #将讲师名与讲师对象相关联 # 通过json将讲师的字典序列化到teacher_db文件中 json.dump(dic, open("teacher_db", "w"),encoding='utf-8',ensure_ascii=False,indent=2) else: #如果文件中已有讲师信息 if dic.get(NewTeacherName): #字典中不存在key,则返回none,不报错 print("%s讲师已存在,不能创建名字相同的讲师" % NewTeacherName) else: dic[NewTeacherName] = teachers_dict json.dump(dic, open("teacher_db", "w"),encoding='utf-8',ensure_ascii=False,indent=2) NewTeacher.TeacherInfo() ##将新老师的信息打印在屏幕上 ##新增课程 def CreateCourse(self): print "Welcome to create course!" NewCourseNo = raw_input("CourseNo:") NewCourseName = raw_input("CourseName:") NewCoursePrice = raw_input("CoursePrice:") NewCourse = Course(NewCourseNo,NewCourseName,NewCoursePrice) ##新创建的对象直接实例化 courses_dict = {"CourseNo":NewCourseNo,"CourseName":NewCourseName,"CoursePrice":NewCoursePrice} # 用字典来存放讲师信息 if not dic: dic[NewCourseNo] = courses_dict json.dump(dic, open("course_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2) else: if dic.get(NewCourseNo): print("%s课程已存在,不能注册课程号相同的课程" % NewCourseNo) else: dic[NewCourseNo] = courses_dict json.dump(dic, open("course_db", "w"),encoding='utf-8', ensure_ascii=False, indent=2) print("Course has already created successfully".center(50, '-')) print (""" CourseNo:%s CourseName:%s CoursePrice:%s"""%(NewCourseNo,NewCourseName,NewCoursePrice)) class Teacher(object): def __init__(self, TeacherName, TeacherAge, TeacherSex, CourseNo, Salary): self.TeacherName = TeacherName self.TeacherAge = TeacherAge self.TeacherSex = TeacherSex self.CourseNo = CourseNo self.Salary = Salary def TeachKnowledge(self): print "Teach Knowlege~" def TeacherInfo(self): print(""" -------------讲师信息------------- Name:%s Age:%s Sex:%s CourseNo:%s Salary:%s """ % (self.TeacherName, self.TeacherAge,self.TeacherSex, self.CourseNo, self.Salary)) ##课程类定义 class Course(object): def __init__(self,CourseNo,CourseName,CoursePrice): self.CourseNo = CourseNo self.CourseName = CourseName self.CoursePrice = CoursePrice def ShowCourseInfo(self): print (""" CourseNO:%s CourseName:%s CoursePrice:%s""" %(self.CourseNo,self.CourseName,self.CoursePrice)) ##学员类定义 class Stu(object): def __init__(self,StuName,StuAge,StuSex,StuSchool,CourseNo,StuID,CoursePrice): self.StuName = StuName self.StuAge = StuAge self.StuSex = StuSex self.StuSchool = StuSchool self.CourseNo = CourseNo self.StuID = StuID self.CoursePrice = CoursePrice def Study(self): print "study" def PayMoney(self): print "Paying for money~" def StuInfo(self): print(""" ---------------学生信息-------------- Name:%s Age:%s Sex:%s School:%s CourseNo:%s ID:%s CoursePrice:%s """ %(self.StuName,self.StuAge,self.StuSex,self.StuSchool,self.CourseNo,self.StuID,self.CoursePrice)) def students_view(): # 学员视图 while True: pro = """ 1.欢迎注册 2.返回 3.退出 请选择: """ num = raw_input(pro) if num == '1': choice_school_obj.RecruitStu() # 调用学生注册方法并生成学生对象 elif num == '2': break elif num == '3': sys.exit() else: continue def teacher_view(): # 讲师视图 name = raw_input("请输入讲师姓名:") while True: if dic.get(name) or teachers_dict.get(name): print("欢迎%s讲师".center(50, '-') % name) elif not dic.get(name) and not teachers_dict.get(name): print("%s讲师不存在" % name) break pro = """ 1.查看学员信息 2.返回 3.退出 请输入你的选择: """ num = raw_input(pro) if num == '1': if teachers_dict.get(name): teachers_dict[name].show_student() # 查看学生信息 else: print("功能未完善,只能输入lvah,cheng") elif num == '2': break elif num == '3': sys.exit() else: continue def school_view(): # 学校视图 while True: pro = """ 1.创建课程 2.招生注册 3.聘用讲师 4.返回 5.退出 请输入你的选择: """ num = raw_input(pro) if num == '1': choice_school_obj.CreateCourse() elif num == '2': choice_school_obj.RecruitStu() elif num == '3': choice_school_obj.HireTch() elif num == '4': break elif num == '5': sys.exit() else: continue def main(): global dic # 全局变量 global choice_school_obj dic = {} while True: print("请选择学校".center(50, '*')) pro1 = """ 1. %s 2. %s 3. 返回 4. 退出 请输入你的选择: """ % (school1.SchoolName, school2.SchoolName) choice_school = raw_input(pro1) if choice_school == '1': choice_school_obj = school1 # 将对象引用传给choice_school elif choice_school == '2': choice_school_obj = school2 elif choice_school == '3': break elif choice_school == '4': sys.exit() else: continue while True: print("请选择视图".center(50, '*')) pro2 = """ 1.学员视图 2.讲师视图 3.学校管理视图 4.返回 5.退出 请选择视图: """ num = raw_input(pro2) if num == '1': print("欢迎进入学员视图".center(50, '*')) students_view() elif num == '2': print("欢迎进入讲师视图".center(50, '*')) teacher_view() elif num == '3': print("欢迎进入学校管理视图".center(50, '*')) school_view() elif num == '4': break elif num == '5': sys.exit() else: continue if __name__ == '__main__': teachers_dict = {} courses_dict = {} stus_dict = {} school1 = School("A大学", "曲江校区", "祖国、荣誉、责任") # 实例化两个学校 school2 = School("B大学", "长安区", "爱国、求是、奋进") t1 = Teacher("leo", "28", "male", "01", "10000") t2 = Teacher("harry", "26", "female", "02", "9000") # 实例化两个讲师 teachers_dict["leo"] = t1 teachers_dict["harry"] = t2 teacher_dict = {"TeacherName": "leo", "TeacherAge": "28", "TeacherSex": "male", "CourseNo": "01", "Salary": "10000"} teacher_dict = {"TeacherName": "harry", "TeacherAge": "26", "TeacherSex": "female", "CourseNo": "02","Salary": "9000"} course1 = Course("01", "Linux云自动化运维", "12800") # 实例化两个课程 course2 = Course("02", "c/c++开发", "9800") courses_dict["01"] = course1 courses_dict["02"] = course2 courses_dict = {"CourseNo":"01","CourseName":"Linux云自动化运维","CoursePrice":"12800"} courses_dict = {"CourseNo": "02", "CourseName": "c/c++开发", "CoursePrice": "9800"} stu1 = Stu("Katy","18","female","A大学","01","3150911026","12800") ##实例化两个学员 stu2 = Stu("Betty","18","male","B大学","02","3150911022","12000") stus_dict["Katy"] = stu1 stus_dict["Betty"] = stu2 stu_dict = {"StuName":"Katy","StuAge":"18","StuSex":"female","StuSchool":"A大学","CourseNo":"01","StuID":"3150911026","CoursePrice":"12800"} stu_dict = {"StuName":"Betty","StuAge":"18","StuSex":"male","StuSchool":"B大学","CourseNo":"02","StuID":"3150911022","CoursePrice":"12000"} print(school1, school2) main()
三、运行结果
初级基本功能的实现就不一一上图了,待后期完善后在上传。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】