網上課程管理系統---大體框架(僞代碼)python
1、複習繼承框架
繼承:什麼是什麼的關係函數
單繼承:spa
先抽象再繼承,幾個代碼之間相同的代碼抽象出來,成爲父類code
子類本身沒有的名字,就可使用父類的方法和屬性對象
若是子類本身有,必定先用本身的blog
在類中使用self的時候,必定要看清楚self指向誰繼承
多繼承:it
新式類和經典類:io
多繼承尋找名字的順序:新式類廣度優先,經典類深度優先
新式類中有一個類名.mro方法,查看廣度優先的繼承順序
python3中有一個super方法,根據廣度優先的繼承順序查找上一個類
2、網上課程管理系統
系統需求文字類描述:
一、開始登入,判斷身份
二、身份肯定後,每一個身份對應的需求:
(1)講師:查看課程信息;查看講的班級信息;查看帶的學生信息
(2)學生:選擇班級;查看本身的信息
(3)管理員:建立講師帳號;建立學生帳號;建立課程;建立班級;給講師分配課程;給講師分配班級
三、退出,結束
注意:應當使用軟件規範去寫(在前面的‘包的進階’裏面有提到一些大概)
根據軟件規範的幾個文件包,先大概瞭解一下整個系統大體流程,先用僞代碼來闡述
(1)bin文件裏面存有start.py文件,主要是大目錄路徑的導入,方便後續模塊的導入
# 修改sys.path,把學校課程管理系統這個路徑寫到sys.path列表中 # 以後全部的模塊導入,都是基於學校課程管理系統 # 好比調用core裏面的main方法 from core import main if __name__ == '__main__': main.main # 調用main模塊裏面的main方法
(2)core文件,主函數,程序的入口,裏面應當有登入函數以及main函數
# 主函數 程序入口 def login(): ''' 登入函數,應該先到conf.config文件中讀取userinfo文件中的路徑,讀取userinfo文件中的信息, 對用戶名和密碼進行檢驗,登入成功後,查看這我的的身份,來肯定進入哪個試圖 :return: ''' def main(): ''' 打印歡迎信息 login:什麼三次登入之類的 獲得返回值:用戶的姓名和身份 打印用戶身份對應的功能菜單(功能菜單寫在管理員裏面) 若是用戶想要調用任何方法應該經過角色對象調用,跳轉到對應的對象的方法裏面,core好比管理員裏面的方法都是經過管理員進行調用, :return: '''
除了main函數外,還有有關的幾個身份類也放在core文件中
管理員類:根據前面的系統大概要求能夠知道管理員類大體擁有的一些屬性
class Manager: menu = {'建立講師帳號':'','學生帳號':'','建立課程':'','建立班級':'','分配班級和課程':''} def __init__(self,name,): self.name = name def createrTeacher(self): pass def createrStudent(self): pass
老師類:大體擁有的屬性以下,這裏就涉及到了前面學過的組合的知識:一個對象的屬性=另外一個對象
class Classes: def __init__(self,school,name,kind): self.school = school # 學校 self.name = name # 班級名稱 self.kind = kind # 班級科目 self.student = ['student_obj'] # 應該有學生的全部信息 class Course: def __init__(self,name,period,price): self.name = name self.period = period self.price = price c = Course('python','6 month',19800) class Teacher: def __init__(self,name): self.name = name self.classes = ['classes_obj'] # self.course = c # 組合 self.course至關於複製了course裏面的全部屬性, # 這裏也能夠先不要加course,能夠放在後面先將老師實例化 再添加課程 t = Teacher('blue') t.course = c # 組合:對象的屬性=對象 先給老師實例化後,再給老師建立一個屬性
(3)db文件,只要一些重要的數據文件均可以放在db文件裏面,好比用戶名,用戶密碼,身份判斷等
# 和文件相關的都放入db裏面 用戶名 用戶密碼 身份判斷
(4)conf文件,conf裏面存放了用戶相關信息的路徑,這樣能夠方便後續登入的時候直接調用路徑就能夠查看用戶的相關信息,不用每次都導入一個信息表
# 在這裏放入userinfo的文件路徑 userinfo =r'C:\Users\sku1-1\PycharmProjects\untitled\學校課程管理系統\db\userinfo'