[terry笔记]学校管理系统

terry-充满着能量 terry-充满着能量     2022-08-14     448

关键词:

如下是要求:

# 角色:学校、学员、课程、讲师
# 要求:
# 1. 创建北京、上海 2 所学校
# 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
# 3. 课程包含,周期,价格,通过学校创建课程
# 4. 通过学校创建班级, 班级关联课程、讲师
# 5. 创建学员时,选择学校,关联班级
# 5. 创建讲师角色时要关联学校,
# 6. 提供两个角色接口
# 6.1 学员视图, 可以注册, 交学费, 选择班级,
# 6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
# 6.3 管理视图,创建讲师, 创建班级,创建课程
# 7. 上面的操作产生的数据都通过pickle序列化保存到文件里

 

如下是目录结构:

 

start.py

1 import sys, os, pickle
2 sys.path.append(os.path.dirname(os.path.dirname(__file__)) + "\\" + "core")
3 from main import Main
4 
5 obj = Main()
6 obj.run()
View Code

 

init_db.py

 1 # 此程序作为初始化数据库
 2 import sys,os
 3 sys.path.append(os.path.dirname(os.path.dirname(__file__))+"\\"+"module")
 4 from pickle_file import pickle_wb,pickle_rb
 5 
 6 teacher_db = [["学校","讲师","年龄","性别"]]
 7 classes_db = [["班级","学校","课程","讲师","周期","价格"]]
 8 stu_db = [["编号","姓名","年龄","性别","学费","班级"]]
 9 
10 def init_db():
11     if "teacher_db" not in os.listdir(os.path.dirname(os.path.dirname(__file__))+"\\"+"db"):
12         pickle_wb("teacher_db", teacher_db)
13     else:
14         pass
15 
16     if "classes_db" not in os.listdir(os.path.dirname(os.path.dirname(__file__))+"\\"+"db"):
17         pickle_wb("classes_db", classes_db)
18     else:
19         pass
20 
21     if "stu_db" not in os.listdir(os.path.dirname(os.path.dirname(__file__))+"\\"+"db"):
22         pickle_wb("stu_db", stu_db)
23     else:
24         pass
View Code

 

main.py

  1 # 角色:学校、学员、课程、讲师
  2 # 要求:
  3 # 1. 创建北京、上海 2 所学校
  4 # 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
  5 # 3. 课程包含,周期,价格,通过学校创建课程
  6 # 4. 通过学校创建班级, 班级关联课程、讲师
  7 # 5. 创建学员时,选择学校,关联班级
  8 # 5. 创建讲师角色时要关联学校,
  9 # 6. 提供两个角色接口
 10 # 6.1 学员视图, 可以注册, 交学费, 选择班级,
 11 # 6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
 12 # 6.3 管理视图,创建讲师, 创建班级,创建课程
 13 # 7. 上面的操作产生的数据都通过pickle序列化保存到文件里
 14 
 15 class Main(object):
 16     def __init__(self):
 17         pass
 18 
 19     def run(self):
 20 
 21         import sys,os,pickle
 22         sys.path.append(os.path.dirname(os.path.dirname(__file__))+"\\"+"module")
 23         from init_db import init_db
 24         from school import School
 25         from lesson import Lesson
 26         from classes import Classes
 27         from school_member import Schoolmember,Teacher,Student
 28         from pickle_file import pickle_wb,pickle_rb
 29 
 30 
 31         msg = """
 32             学校管理系统
 33             1、学校管理
 34             2、讲师管理
 35             3、学员管理
 36             4、退出
 37         """
 38         mgr = """
 39             1、创建讲师
 40             2、创建班级
 41             3、创建课程
 42             4、查看讲师信息
 43             5、查看班级、课程信息
 44             6、返回上一级
 45         """
 46         stu = """
 47             1、注册
 48             2、交学费
 49             3、选择班级
 50             4、查看学员信息
 51             5、返回上一级
 52         """
 53 
 54         init_db()
 55         school_bj = School("北京")
 56         school_sh = School("上海")
 57         lesson_linux = Lesson("linux",10000,"6 month")
 58         lesson_python = Lesson("python",11000,"8 month")
 59         lesson_go = Lesson("go",8000,"6 month")
 60         flag = True
 61         while flag:
 62             print(msg)
 63             choice = input("请选择系统 :")
 64             if choice == "1":
 65                 while True:
 66                     print(mgr)
 67                     choice = input("请选择功能 :")
 68                     if choice == "1":
 69                         print("创建讲师 :\n请选择学校:\n1、北京\n2、上海")
 70                         num = 0
 71                         while True:
 72                             school_num = input("请选择学校 :")
 73                             if num < 2:
 74                                 if school_num == "1":
 75                                     school_choice = school_bj.school_name
 76                                     break
 77                                 elif school_num == "2":
 78                                     school_choice = school_sh.school_name
 79                                     break
 80                                 else:
 81                                     print("请输入正确编号!")
 82                                     num += 1
 83                             else:
 84                                 print("尝试次数过多!")
 85                                 exit()
 86                         teacher_name = input("请输入教师名字 :")
 87                         age = input("请输入教师年龄 :")
 88                         sex = input("请输入教师性别 :")
 89                         teacher_data = school_bj.create_teacher(school_choice,teacher_name,age,sex)
 90                         teacher_db_data = pickle_rb("teacher_db")
 91                         teacher_db_data.append(teacher_data)
 92                         pickle_wb("teacher_db",teacher_db_data)
 93                     elif choice == "2":
 94                         classes_data = []
 95                         c_name_list = []
 96                         classes_db_data = pickle_rb("classes_db")
 97                         while True:
 98                             c_name = input("\n创建班级\n请输入班级编号(格式001) :")
 99                             for i in classes_db_data:
100                                 c_name_list.append(i[0])
101                             if c_name in c_name_list:
102                                 print("班级名称已存在!")
103                                 print("已有如下班级:")
104                                 for j in c_name_list:
105                                     print(j)
106                             else:break
107                         school_num = input("\n1、北京(linux与python课程)\n2、上海(go课程)\n请选择学校 :")
108                         lesson_choice = ""
109                         if school_num == "1":
110                             school_choice = school_bj.school_name
111                             lesson_num = input("\n1、linux\n2、python\n请选择课程 :")
112                             if lesson_num == "1":
113                                 lesson_choice = lesson_linux.lesson_name
114                                 lesson_choice_cycle = lesson_linux.cycle
115                                 lesson_choice_price = lesson_linux.price
116                             elif lesson_num == "2":
117                                 lesson_choice = lesson_python.lesson_name
118                                 lesson_choice_cycle = lesson_python.cycle
119                                 lesson_choice_price = lesson_python.price
120                             else:
121                                 print("没有这门课程")
122                                 exit()
123                         elif school_num == "2":
124                             school_choice = school_sh.school_name
125                             lesson_choice = lesson_go.lesson_name
126                             lesson_choice_cycle = lesson_go.cycle
127                             lesson_choice_price = lesson_go.price
128                         else:
129                             print("没有此编号!")
130                             exit()
131                         teacher_data = pickle_rb("teacher_db")
132                         teacher_name = {}
133                         for i,ele in enumerate(teacher_data):
134                             teacher_name[i] = ele[1]
135                         for key,value in teacher_name.items():
136                             if key == 0:continue
137                             else:print("%s、%s" % (key,value))
138                         teacher_choice = input("请选择讲师 :")
139                         classes_data.append(c_name)
140                         classes_data.append(school_choice)
141                         classes_data.append(lesson_choice)
142                         classes_data.append(teacher_name[int(teacher_choice)])
143                         classes_data.append(lesson_choice_cycle)
144                         classes_data.append(lesson_choice_price)
145                         classes_db_data = pickle_rb("classes_db")
146                         classes_db_data.append(classes_data)
147                         pickle_wb("classes_db",classes_db_data)
148                     elif choice == "3":
149                         classes_data = []
150                         c_name_list = []
151                         classes_db_data = pickle_rb("classes_db")
152                         school_num = input("\n1、北京(linux与python课程)\n2、上海(go课程)\n请选择学校 :")
153                         lesson_choice = ""
154                         if school_num == "1":
155                             school_choice = school_bj.school_name
156                             lesson_num = input("\n1、linux\n2、python\n请选择课程 :")
157                             if lesson_num == "1":
158                                 lesson_choice = lesson_linux.lesson_name
159                                 lesson_choice_cycle = lesson_linux.cycle
160                                 lesson_choice_price = lesson_linux.price
161                             elif lesson_num == "2":
162                                 lesson_choice = lesson_python.lesson_name
163                                 lesson_choice_cycle = lesson_python.cycle
164                                 lesson_choice_price = lesson_python.price
165                             else:
166                                 print("没有这门课程")
167                                 exit()
168                         elif school_num == "2":
169                             school_choice = school_sh.school_name
170                             lesson_choice = lesson_go.lesson_name
171                             lesson_choice_cycle = lesson_go.cycle
172                             lesson_choice_price = lesson_go.price
173                         else:
174                             print("没有此编号!")
175                             exit()
176                         while True:
177                             c_name = input("\n创建班级\n请输入班级编号(格式001) :")
178                             for i in classes_db_data:
179                                 c_name_list.append(i[0])
180                             if c_name in c_name_list:
181                                 print("班级名称已存在!")
182                                 print("已有如下班级:")
183                                 for j in c_name_list:
184                                     print(j)
185                             else:break
186                         teacher_data = pickle_rb("teacher_db")
187                         teacher_name = {}
188                         for i,ele in enumerate(teacher_data):
189                             teacher_name[i] = ele[1]
190                         for key,value in teacher_name.items():
191                             if key == 0:continue
192                             else:print("%s、%s" % (key,value))
193                         teacher_choice = input("请选择讲师 :")
194                         classes_data.append(c_name)
195                         classes_data.append(school_choice)
196                         classes_data.append(lesson_choice)
197                         classes_data.append(teacher_name[int(teacher_choice)])
198                         classes_data.append(lesson_choice_cycle)
199                         classes_data.append(lesson_choice_price)
200                         classes_db_data = pickle_rb("classes_db")
201                         classes_db_data.append(classes_data)
202                         pickle_wb("classes_db",classes_db_data)
203                     elif choice == "4":
204                         teacher_data = pickle_rb("teacher_db")
205                         for i,item in enumerate(teacher_data):
206                             print(i,item)
207                         input("回车返回上级菜单。")
208                     elif choice == "5":
209                         classes_db_data = pickle_rb("classes_db")
210                         for i,item in enumerate(classes_db_data):
211                             print(i,item)
212                         input("回车返回上级菜单。")
213                     elif choice == "6":
214                         break
215             elif choice == "4":
216                 exit()
217             elif choice == "3":
218                 while True:
219                     print(stu)
220                     choice = input("请选择功能 :")
221                     if choice == "1":
222                         stu_list = []
223                         stu_db_data = pickle_rb("stu_db")
224                         len_stu_db_data = len(stu_db_data)
225                         stu_list.append("00"+str(len_stu_db_data))
226                         stu_name = input("请输入学生姓名 :")
227                         stu_age = input("请输入学生年龄 :")
228                         stu_sex = input("请输入学生性别 :")
229                         stu_data = Student(stu_name,stu_age,stu_sex)
230                         stu_list.append(stu_data.name)
231                         stu_list.append(stu_data.age)
232                         stu_list.append(stu_data.sex)
233                         stu_list.append("未付款")
234                         stu_list.append("未选择")
235                         stu_db_data = pickle_rb("stu_db")
236                         stu_db_data.append(stu_list)
237                         pickle_wb("stu_db",stu_db_data)
238 
239                     elif choice == "2":
240                         stu_db_data = pickle_rb("stu_db")
241                         stu_unpay = []
242                         stu_unpay_id = []
243                         stu_id = []
244                         for i in stu_db_data:
245                             if i[4] == "未付款[terry笔记]对人员列表文件进行数据库操作

  原文件(数据已经脱敏):staff_id,name,age,phone,dept,enroll_date1,姬建明,25,152015410,运维,2013-11-012,刘海龙,26,186184177,运维,2012-12-253,闫培飞,25,157016802,IT,2015-10-144,孙海涛,33,158206312,IT,2005-09-275,张亚磊,24 查看详情

课程笔记人工智能导论——从四个学校东拼西凑的产物

文章目录第三章一阶谓词逻辑表示法谓词连接词量词一阶谓词逻辑知识表示法产生式规则表示法产生式系统语义网络表示法分块语义网络分类学网络推理网络框架表示法框架结构框架表示法的特点第四章状态空间表示法状态算符... 查看详情

元学习-learninghowtolearn-q&a:terry访谈录

Q&A:Terry访谈录Q1:怎样面对完全陌生的学习领域?A1:敢于实践,而不是大量阅读;取得专家的指点 Q2:怎样长时间保持注意力集中?A2:以向讲述人或者自己提问的方式积极参与 Q3:如何进入发散模式?A3:户外锻炼... 查看详情

学校实施信息化管理还可借助哪些工具?

对于学校的管理,尤其是在互联网时代,如何将高效的信息化管理结合在实际工作中去,估计每个管理者都有自己的疑虑和困难。只有把学校管理好了,学校才能长期发展下去,不然学员在多,老师在好,校区也会因为没有管理... 查看详情

学校管理系统

查看详情

00448学校管理学

1.第一章绪论2.第二章学校领导体制3.第三章学校管理过程4.第四章学校管理原则5.第五章学校管理方法6.第六章全面贯彻教育方针7.第七章实施素质教育8.第八章依法治校9.第九章校长管理10.第十章教师管理11.第十一章学生管理 查看详情

云教务学校管理系统源码

简介:软件名称云教务学校管理系统源码云教务开源管理系统云教务开源系统MoMA云教务管理软件云教务开源软件云教务教育机构管理系统源码云教务培训机构管理系统,云教务系统源码,学校管理系统源码分享项目... 查看详情

访客管理系统为学校设置第一道安全门

...有一道坚实可靠的安全屏障。一直以来,加强学校的访客管理系统,都是建设平安校园的重要项目,也是学校尤为关注的方面。我们都知道,中小学上课期间,学校实行封闭式管理,外来人员想要进入校园,必须通过门卫处的认... 查看详情

阅读笔记《c程序员从校园到职场》第二章学校到职场

一、代码规范:1、变量命名(让人一眼看它是什么意思,要做什么操作),定义并初始化2、函数命名规范(函数的功能)在主函数之前进行声明。在实际项目中,一般不在函数调用者的内部来对被调函数进行声明,而是将声明... 查看详情

学校作业管理系统简单实现

作业管理系统---------------------------------------------------------2016-09-21---------------------------------------------------------------一、业务需求:1、前台学生注册(指定小组)学生注册,添加一个用户学生登录查询操作提交作业(不指定小组和班... 查看详情

需要学校评分系统的架构

】需要学校评分系统的架构【英文标题】:Needschemaforschoolgradingsystem【发布时间】:2013-02-2300:38:41【问题描述】:我是SQL新手,正在尝试创建一个可用于Hibernate的数据库架构,但我担心扩展问题、数据访问和查询数据的最佳方式... 查看详情

powershell管理系列(三十八)powershell操作之文件查找和操作

 需求一、创建文件夹步骤1、我们在桌面创建文件夹test01,步骤如下:New-ItemC:\Users\Terry.zhou\Desktop\test01-typedirectory出现如下报错:步骤2、这个原因是因为我们在桌面已经有同名文件夹,我们可以运行以下命令,如果有同名文件夹... 查看详情

e-r图示例(学校管理系统)

Step1:希望建设一个学校管理系统–学校下设若干院系,开设若干课程–院系有院系名称,并有院系编号作为标识–课程有课程名称,同时有课程编号–关注学校教师的姓名、年龄、教师编号及身份证号,并关注哪... 查看详情

选课系统

需求:选课系统开发,要求有四种角色:学校、学员、课程、讲师详细要求:1、创建北京、上海2所学校2、创建linux,python,go3个课程,linuxpy在北京开,go在上海开3、课程包含,周期,价格,通过学校创建课程4、通过学校创建班级,... 查看详情

面向对象作业——校园管理系统

角色:学校、学员、课程、讲师要求:1.创建北京、上海2所学校2.创建linux,python,go3个课程,linuxpy在北京开,go在上海开3.课程包含,周期,价格,通过学校创建课程4.通过学校创建班级,班级关联课程、讲师5.创建学员时,选择学校... 查看详情

如何快速的进入学校的选课系统?

...商家帮忙代抢课。教务系统管理平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统。用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的... 查看详情

选课系统

要求角色:学校、学员、课程、讲师要求:1.创建北京、上海2所学校2.创建linux,python,go3个课程,linuxpy在北京开,go在上海开3.课程包含,周期,价格,通过学校创建课程4.通过学校创建班级,班级关联课程、讲师5.创建学员时,选择... 查看详情

基于php046学校固定资产管理系统

本系统采用PHP和Mysql数据库完成学校固定资产管理系统,实现资产购置计划、资产报账、固定资产管理、固定资产变动管理、固定资产盘点管理、查询分析等功能,界面良好,运行流畅,非常适合大学生作为课程设计,毕业设计以及二... 查看详情