python入門做業---選課系統

角色:學校、學員、課程、講師 要求: 1. 建立北京、上海 2 所學校 2. 建立linux , python , go 3個課程 , linux\py 在北京開, go 在上海開 3. 課程包含,週期,價格,經過學校建立課程 4. 經過學校建立班級, 班級關聯課程、講師 5. 建立學員時,選擇學校,關聯班級 5. 建立講師角色時要關聯學校, 6. 提供兩個角色接口 6.1 學員視圖, 能夠註冊, 交學費, 選擇班級, 6.2 講師視圖, 講師可管理本身的班級, 上課時選擇班級, 查看班級學員列表 , 修改所管理的學員的成績 6.3 管理視圖,建立講師, 建立班級,建立課程 7. 上面的操做產生的數據都經過pickle序列化保存到文件裏
做業要求

 

 

領域模型 

領域模型是完成從需求分析到面向 對象設計的一座橋樑。 python

領域模型,顧名思義,就是需求所涉及的領域的一個建模,更通俗的講法是業務模型。 參考百度百科(http://baike.baidu.cn/view/757895.htm ),領域模型定義以下: linux

從這個定義咱們能夠看出,領域模型有兩個主要的做用:git

  1. 發掘重要的業務領域概念
  2. 創建業務領域概念之間的關係 

 

 

領域建模三字經 

域建模的方法就是「從用例中找名詞」。 固然,找到名詞後,爲了可以更加符合面向對象的要求和特色,咱們還須要對這些名詞進一步完善,這就 是接下來的步驟:加屬性,連關係github

最後咱們總結出領域建模的三字經方法:找名詞、加屬性、連關係。 app

  

找名詞ide

who : 學員、講師、管理員ui

用例:spa

1. 管理員 建立了 北京 和 上海 兩個校區設計

2. 管理員 建立了 Linux \ Python \ Go 3個課程 code

3. 管理員 建立了 北京校區的Python 16期, Go開發第一期,和上海校區的Linux 36期 班級

4. 管理員 建立了 北京校區的 學員 小晴 ,並將其 分配 在了 班級  python 16期 

5. 管理員 建立了 講師 Alex , 並將其分配 給了 班級 python 16期 和全棧脫產5期

6. 講師 Alex 建立 了一條 python 16期的 上課紀錄 Day6 

7. 講師 Alex 爲Day6這節課 全部的學員 批了做業 ,小晴得了A, 李磊得了C-, 嚴帥得了B

8. 學員小晴 在 python 16 的 day6裏 提交了做業 

9. 學員李磊 查看了本身所報的全部課程 

10 學員 李磊  在 查看了 本身在 py16期 的 成績列表 ,而後自殺了

11. 學員小晴  跟 講師 Alex 表白了

 

 

名詞列表:

管理員、校區、課程、班級、上課紀錄、做業、成績、講師、學員

 
 

加屬性

連關係 

有了類,也有了屬性,接下來天然就是找出它們的關係了。

 



 

目錄:

 1 #!/usr/bin/env python3
 2 #-*- coding:utf-8 -*-
 3 '''
 4 Administrator  5 2018/7/27  6 '''
 7 
 8 class Student:  9     def __init__(self,name,age,classes): 10         self.name=name 11         self.age=age 12         self.classes=classes #報名的班級
13 
14 class Teacher: 15     def __init__(self,name,age,classes): 16         self.name=name 17         self.age=age 18         self.classes=classes  #關聯的班級
19 
20 class Classes: 21     def __init__(self,class_name,semester,course,sk_date,teacher): 22         self.class_name=class_name  #班級名稱
23         self.semester=semester  #學期
24         self.course=course  #課程
25         self.sk_date=sk_date #開課日期
26         self.teacher=teacher #班級講師
27 
28 class Course: 29     def __init__(self,name,school): 30         self.name=name 31         self.price=15000
32         self.outline='課程大綱'
33         self.course_time='週期是:6個月'
34         self.school=school 35 
36 class School: 37     def __init__(self,name,address,city): 38         self.name=name 39         self.address=address 40         self.city=city 41 
42 class ClassRecord: 43     def __init__(self,class_name,jc_name,sk_date): 44         self.class_name=class_name  #班級
45         self.jc_name=jc_name     #節次
46         self.sk_date=sk_date     #上課日期
47 
48 class StudyRecord: 49     def __init__(self,class_record,is_sign,sign_date,achievement): 50         self.class_record=class_record   #上課記錄
51         self.sign_in=is_sign           #簽到狀態
52         self.sign_date=sign_date      #簽到日期
53         self.achievement=achievement  #成績
54 
55 
56 if __name__=="__main__": 57     beijing_school=School("北京培訓中心","北京天安門城樓上","北京") 58     shanghai_school = School("上海培訓中心", "上海外灘水底", "上海") 59 
60     linux_course=Course("linux",beijing_school) 61     python_course=Course("python",beijing_school) 62     go_course=Course("go",shanghai_school)
View Code

 知識回顧:

https://github.com/Mengchangxin/python_green_hand/blob/8.14/%E7%9F%A5%E8%AF%86%E5%9B%9E%E9%A1%BE.py

 1 #!/usr/bin/env python3
 2 #-*- coding:utf-8 -*-
 3 '''
 4 Administrator  5 2018/8/14  6 '''
 7 import pickle,os,uuid  8 class School:  9     def __init__(self,name): 10         self.name=name 11         self.school_id=uuid.uuid1() 12 
13     def save(self): 14 
15         file_address=os.path.join(os.path.dirname(os.path.abspath(__file__)),"accounts","%s.txt"%self.school_id) 16         with open(file_address,"wb") as f: 17  pickle.dump(self,f) 18         #print(file_address)
19         # f=open(file_address,"wb")
20         # pickle.dump(self,f)
21         # f.close()
22  @staticmethod 23     def get_all(): 24         obj_list=[] 25         address=os.path.join(os.path.dirname(os.path.abspath(__file__)),"accounts") 26         for item in os.listdir(address): #/home/tom/下找全部的文件
27             item=os.path.join(address,item) 28             with open(item,"rb") as f: 29                 obj=pickle.load(f) 30  obj_list.append(obj) 31         return obj_list 32 
33     def __str__(self): 34         return "學校的名稱是:%s"%self.name 35 
36 
37 # s1=School("上海")
38 # s1.save()
39 # #/home/tom/1
40 # s2=School("北京")
41 # s2.save()
42 #/home/tom/2
43 
44 School_obj_list=School.get_all() 45 for obj in School_obj_list: 46     #print("學校名稱:%s"%obj.name)
47     print(obj)
8.14_b
相關文章
相關標籤/搜索