摘要:如上海北京等管理員自己創(chuàng)建其他地方的學(xué)校管理員創(chuàng)建的課程。包含名字性別年齡等學(xué)員查詢可上課程學(xué)員選課,選擇學(xué)校課程,并付款。課程價(jià)格,周期課程價(jià)格,周期課程價(jià)格,周期創(chuàng)建講師屬于北京校區(qū),屬于上海校區(qū)。
作業(yè)需求
創(chuàng)建北京、上海 2 所學(xué)校
創(chuàng)建linux , python , go 3個(gè)課程,linuxpy在北京開(kāi), go 在上海開(kāi)
課程包含,周期,價(jià)格,通過(guò)學(xué)校創(chuàng)建課程
通過(guò)學(xué)校創(chuàng)建班級(jí),班級(jí)關(guān)聯(lián)課程、講師
創(chuàng)建學(xué)員時(shí),選擇學(xué)校,關(guān)聯(lián)班級(jí)
創(chuàng)建講師角色時(shí)要關(guān)聯(lián)學(xué)校,
提供兩個(gè)角色接口
7.1. 學(xué)員視圖,可以注冊(cè),交學(xué)費(fèi),選擇班級(jí),
7.2. 講師視圖,講師可管理自己的班級(jí),上課時(shí)選擇班級(jí),查看班級(jí)學(xué)員列表,修改所管理的學(xué)員的成績(jī)
7.3. 管理視圖,創(chuàng)建講師,創(chuàng)建班級(jí),創(chuàng)建課程
上面的操作產(chǎn)生的數(shù)據(jù)都通過(guò)pickle序列化保存到文件里
需求模型通過(guò)對(duì)如上需求的解讀,我整理出如下需求模型。
用例名選課系統(tǒng)
場(chǎng)景when:任意時(shí)間
where:老男孩
who:學(xué)生、講師、管理員
用例描述管理員可以創(chuàng)建學(xué)校。學(xué)校包含:名字、城市、地址。如:上海、北京、等(管理員自己創(chuàng)建其他地方的學(xué)校)
管理員創(chuàng)建的課程。課程包含:名稱、周期、價(jià)格、大綱。如:python,go,linux(課程與學(xué)校關(guān)聯(lián))
管理員創(chuàng)建班級(jí)。班級(jí)包含:名稱、上課方式(脫產(chǎn)、周末、線上)、課程、講師、開(kāi)課日期、學(xué)員列表。如:python周末18期,python脫產(chǎn)7期,linux架構(gòu)35期(班級(jí)與課程、講師關(guān)聯(lián))
管理員創(chuàng)建講師。講師包含:名字、性別、年齡、學(xué)校。如:alex,egon,wupeiqi,yuanhao(講師關(guān)聯(lián)學(xué)校)
管理員創(chuàng)建學(xué)員。
講師查看學(xué)員列表。(學(xué)員列表與班級(jí)關(guān)聯(lián))
講師修改管理的學(xué)員的成績(jī)。
學(xué)員注冊(cè)。包含:名字、性別、年齡、等
學(xué)員查詢可上課程
學(xué)員選課,選擇學(xué)校、課程,并付款。
學(xué)員查詢自己學(xué)習(xí)記錄。學(xué)習(xí)記錄包含:成績(jī)
用戶價(jià)值完成一套可運(yùn)行的選課管理系統(tǒng),解決人工管理上下課的難度。
約束暫無(wú)
建模設(shè)計(jì)將需求模型繼續(xù)進(jìn)行整理。整理出如下建模設(shè)計(jì)的內(nèi)容。
關(guān)鍵字學(xué)校、課程、班級(jí)、講師、上課記錄、學(xué)員、學(xué)習(xí)記錄、作業(yè)、成績(jī)、管理員、
關(guān)鍵字分析人類:屬性有名字、性別、年齡
學(xué)生類:繼承人類。屬性有課程、班級(jí)、成績(jī)
老師類:繼承人類。屬性有課程、班級(jí)
學(xué)校類:屬性有學(xué)校名、城市、地點(diǎn)、
課程類:屬性有課程名稱、價(jià)格、周期
班級(jí)類:屬性有班級(jí)名、教師、開(kāi)課日期、上課方式
賬號(hào)類:屬性有賬號(hào)名、密碼、狀態(tài)、角色。
學(xué)習(xí)記錄類:屬性有成績(jī)
管理員類:繼承與站賬號(hào)類
視圖類:處理管理員、老師、學(xué)員的所有視圖上的操作
│ README.md ├─bin # 執(zhí)行文件目錄 │ │ scs.py # 執(zhí)行文件 │ └─ __init__.py │ ├─conf # 配置文件目錄 │ │ settings.py # 配置文件 │ └─ __init__.py │ ├─core # 核心執(zhí)行文件目錄 │ │ main.py # 主程序文件 | | logger.py # 日志程序文件 │ └─ __init__.py ├─db # 數(shù)據(jù)庫(kù)目錄 │ ├─accounts # 賬號(hào)數(shù)據(jù)所在目錄 │ └─base # 學(xué)校等基礎(chǔ)數(shù)據(jù)所在目錄 ├─lib # 庫(kù)文件目錄 │ │ accounts.py # 賬號(hào)類 │ │ classes.py # 班級(jí)類 │ │ courses.py # 課程類 │ │ db.py # 數(shù)據(jù)庫(kù)類文件 │ │ persion.py # 人類文件 │ │ schools.py # 學(xué)校類文件 │ │ study_record.py # 學(xué)習(xí)記錄類嗡 │ │ views.py # 視圖類文件 │ │ __init__.py └─log # 日志文件目錄程序主體
具體代碼可以從github中下載:
SCS
由于作業(yè)時(shí)間有限,沒(méi)有編寫(xiě)單元測(cè)試使用的程序腳本。故直接通過(guò)模擬用戶使用的方式來(lái)進(jìn)行測(cè)試。
一、管理員功能測(cè)試執(zhí)行scs.py文件后進(jìn)入主頁(yè)面:輸入3進(jìn)入管理員界面。
===============歡迎進(jìn)入老男孩學(xué)校=============== 1. 學(xué)生登錄通道 2. 教師登錄通道 3. 管理員登錄通道 4. 退出 ================================================ >>:3
進(jìn)入管理員視圖:管理員可以進(jìn)行學(xué)校管理,學(xué)員管理。也可以修改自己的密碼。
當(dāng)進(jìn)入這些視圖前,如果管理員沒(méi)有登錄會(huì)進(jìn)行一次登錄認(rèn)證。如已經(jīng)登錄就不會(huì)再次認(rèn)證。
===============歡迎進(jìn)入管理視圖=============== 1. 學(xué)校管理 2. 學(xué)員管理 3. 修改密碼 4. 注銷 ============================================== >>:
學(xué)校管理視圖:可以進(jìn)行學(xué)校的創(chuàng)建、課程的創(chuàng)建、講師的創(chuàng)建、和班級(jí)的創(chuàng)建。
我們這里直接就根據(jù)需求:
創(chuàng)建beijing和shanghai兩所學(xué)校。
創(chuàng)建linux , python , go 3個(gè)課程,linuxpy在北京開(kāi), go 在上海開(kāi)。
linux課程價(jià)格8000,周期35
python課程價(jià)格8000,周期18
go課程價(jià)格10000,周期20
創(chuàng)建講師alex、egon屬于北京校區(qū),yuanhao屬于上海校區(qū)。
創(chuàng)建分別為3個(gè)課程創(chuàng)建班級(jí) alex為python班級(jí)的講師、egon為linux班級(jí)的講師、yuanhao為go班級(jí)的講師
>>:1 Please input username:admin Please input password:admin 2018-04-09 14:18:51,475 - access - INFO - [admin] Login Success! [admin] Login Success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:1 ================創(chuàng)建學(xué)校================= Please input name of school:beijing Please input city of school:beijing Please input address of school:beijing Create school success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:1 ================創(chuàng)建學(xué)校================= Please input name of school:shanghai Please input city of school:shanghai Please input address of school:shanghai Create school success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:2 ================創(chuàng)建課程================= Please input course name:python Please input price:8000 Please input term:18 Please input associated school:beijing Create course success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:2 ================創(chuàng)建課程================= Please input course name:linux Please input price:8000 Please input term:35 Please input associated school:beijing Create course success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:2 ================創(chuàng)建課程================= Please input course name:go Please input price:10000 Please input term:20 Please input associated school:shanghai Create course success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:3 ================創(chuàng)建老師================= Please input username:alex Please input password:alex123 Please input password confirmation:alex123 Please input associated school:beijing Registry Success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:3 ================創(chuàng)建老師================= Please input username:egon Please input password:egon123 Please input password confirmation:egon123 Please input associated school:beijing Registry Success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:3 ================創(chuàng)建老師================= Please input username:yuanhao Please input password:yuanhao123 Please input password confirmation:yuanhao123 Please input associated school:shanghai Registry Success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:4 ================創(chuàng)建班級(jí)================= Please input class name:python18 Please input associated school:beijing Please input associated course:python Please input associated teacher:alex Create class success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:4 ================創(chuàng)建班級(jí)================= Please input class name:linux35 Please input associated school:beijing Please input associated course:linux Please input associated teacher:egon Create class success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:4 ================創(chuàng)建班級(jí)================= Please input class name:go20 Please input associated school:shanghai Please input associated course:go Please input associated teacher:yuanhao Create class success! ===============歡迎進(jìn)入管理視圖=============== 1. 創(chuàng)建學(xué)校 2. 創(chuàng)建課程 3. 創(chuàng)建講師 4. 創(chuàng)建班級(jí) 5. 返回 ============================================== >>:5
學(xué)員管理視圖:可以查看學(xué)校的學(xué)員情況,并可以分配已經(jīng)報(bào)名課程的學(xué)員到具體的班級(jí)中。我們已經(jīng)注冊(cè)了一個(gè)henry的學(xué)生,這個(gè)學(xué)生報(bào)名了python的課程,所以管理員需要將他分配到python18這個(gè)班級(jí)中。
===============歡迎進(jìn)入管理視圖=============== 1. 學(xué)員信息 2. 分配班級(jí) 3. 返回 ============================================== >>:1 Please input school:beijing ==================學(xué)生信息================== ID: 027e4180beedb29744413a7ea6b84a42 Account: henry Type: 3 Status: 0 School: beijing Course: python Class: 未分配班級(jí) Teacher: 未分配導(dǎo)師 ============================================ ===============歡迎進(jìn)入管理視圖=============== 1. 學(xué)員信息 2. 分配班級(jí) 3. 返回 ============================================== >>:2 ================分配班級(jí)================= Please input name of school:beijing Please input account of student:henry Please input name of course:python Please input name of class:python18 Students have bound courses!二、學(xué)員功能測(cè)試
學(xué)員視圖界面
===============歡迎進(jìn)入學(xué)員視圖=============== 1. 注冊(cè)賬號(hào) 2. 填寫(xiě)賬戶信息 3. 查看賬戶信息 4. 選擇課程并付費(fèi) 5. 查看學(xué)習(xí)記錄 6. 修改密碼 7. 注銷 ==============================================
學(xué)員可以注冊(cè)賬號(hào),也可以補(bǔ)全自己的個(gè)人信息。這些基本功能,這里就不進(jìn)行詳細(xì)的測(cè)試了。主要看一下選課和查看學(xué)習(xí)記錄。我還是使用henry學(xué)員,henry再報(bào)名一個(gè)linux課程。來(lái)實(shí)現(xiàn)報(bào)名,由于henry的成績(jī)老師還沒(méi)有下發(fā)分?jǐn)?shù),所以暫時(shí)還看不到成績(jī)。
===============歡迎進(jìn)入學(xué)員視圖=============== 1. 注冊(cè)賬號(hào) 2. 填寫(xiě)賬戶信息 3. 查看賬戶信息 4. 選擇課程并付費(fèi) 5. 查看學(xué)習(xí)記錄 6. 修改密碼 7. 注銷 ============================================== >>:4 Please input username:henry Please input password:henry123 2018-04-09 15:15:01,863 - access - INFO - [henry] Login Success! [henry] Login Success! ================購(gòu)買(mǎi)課程================= Please choise school:beijing Please choise course:linux Please pay tuition [8000 RMB]:8000 The success of the course purchase! ===============歡迎進(jìn)入學(xué)員視圖=============== 1. 注冊(cè)賬號(hào) 2. 填寫(xiě)賬戶信息 3. 查看賬戶信息 4. 選擇課程并付費(fèi) 5. 查看學(xué)習(xí)記錄 6. 修改密碼 7. 注銷 ============================================== >>:5 ================學(xué)習(xí)記錄================= Score: 成績(jī)未公布 =========================================三、教師功能測(cè)試
教師視圖
===============歡迎進(jìn)入教師視圖=============== 1. 填寫(xiě)賬戶信息 2. 查看賬戶信息 3. 班級(jí)管理 4. 修改密碼 5. 注銷 ==============================================
我們主要來(lái)看一下班級(jí)管理功能。班級(jí)管理功能可以查看自己班級(jí)的學(xué)生、并未學(xué)生下發(fā)成績(jī)
===============歡迎進(jìn)入教師視圖=============== 1. 填寫(xiě)賬戶信息 2. 查看賬戶信息 3. 班級(jí)管理 4. 修改密碼 5. 注銷 ============================================== >>:3 Please input username:alex Please input password:alex123 2018-04-09 15:17:51,271 - access - INFO - [alex] Login Success! [alex] Login Success! ===============歡迎進(jìn)入管理視圖=============== 1. 選擇班級(jí) 2. 學(xué)生列表 3. 批改作業(yè) 4. 返回 ============================================== >>:1 Please input name of class:python18 Choice class success! ===============歡迎進(jìn)入管理視圖=============== 1. 選擇班級(jí) 2. 學(xué)生列表 3. 批改作業(yè) 4. 返回 ============================================== >>:2 ================班級(jí)學(xué)生列表================= Class: python18 Students: henry ============================================= ===============歡迎進(jìn)入管理視圖=============== 1. 選擇班級(jí) 2. 學(xué)生列表 3. 批改作業(yè) 4. 返回 ============================================== >>:3 ================作業(yè)批改================= Please input name of student:henry Please input score of student:95 Confirm input "yes". Back off input "b":yes [henry] homework to be corrected
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41466.html
摘要:入門(mén),第一個(gè)這是一門(mén)很新的語(yǔ)言,年前后正式公布,算起來(lái)是比較年輕的編程語(yǔ)言了,更重要的是它是面向程序員的函數(shù)式編程語(yǔ)言,它的代碼運(yùn)行在之上。它通過(guò)編輯類工具,帶來(lái)了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語(yǔ)言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺(jué)已經(jīng)到來(lái)了,總結(jié)過(guò)去的 2017,相信小伙們一定有很多收獲...
摘要:入門(mén),第一個(gè)這是一門(mén)很新的語(yǔ)言,年前后正式公布,算起來(lái)是比較年輕的編程語(yǔ)言了,更重要的是它是面向程序員的函數(shù)式編程語(yǔ)言,它的代碼運(yùn)行在之上。它通過(guò)編輯類工具,帶來(lái)了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語(yǔ)言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺(jué)已經(jīng)到來(lái)了,總結(jié)過(guò)去的 2017,相信小伙們一定有很多收獲...
摘要:入門(mén),第一個(gè)這是一門(mén)很新的語(yǔ)言,年前后正式公布,算起來(lái)是比較年輕的編程語(yǔ)言了,更重要的是它是面向程序員的函數(shù)式編程語(yǔ)言,它的代碼運(yùn)行在之上。它通過(guò)編輯類工具,帶來(lái)了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語(yǔ)言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺(jué)已經(jīng)到來(lái)了,總結(jié)過(guò)去的 2017,相信小伙們一定有很多收獲...
摘要:面向?qū)ο缶幊虖牟煌慕嵌葋?lái)看待計(jì)算機(jī)程序,它注重的是計(jì)算機(jī)所完成的任務(wù),而非處理方式。傳統(tǒng)的語(yǔ)言屬于面向過(guò)程編程,語(yǔ)言屬于面向?qū)ο缶幊?。面向?qū)ο缶幊谈鶕?jù)要解決的問(wèn)題,可以抽象出如下對(duì)象客戶銀行卡現(xiàn)金票據(jù)等。 面向過(guò)程編程&面向?qū)ο缶幊?從面向過(guò)程到面向?qū)ο螅粌H僅是編程方式的改變,更重要的是思維方式的改變。 面向過(guò)程編程按照順序執(zhí)行的一系列指令,通常是分析出解決問(wèn)題所需要的步驟,然后用...
摘要:我是由貝爾實(shí)驗(yàn)室的在年年間發(fā)明創(chuàng)造的,瞧,就他你們眼中的語(yǔ)言之父。與此同時(shí),由于庫(kù)函數(shù)的缺失,導(dǎo)致新手在開(kāi)發(fā)任何一塊小程序的時(shí)候都必須得親力親為。對(duì)了,我爸是微軟,由和派生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言。對(duì),我曾是世界上最好的編程語(yǔ)言。 ...
閱讀 1353·2019-08-30 12:49
閱讀 3235·2019-08-28 18:14
閱讀 892·2019-08-26 11:38
閱讀 1758·2019-08-23 18:23
閱讀 2881·2019-08-23 17:04
閱讀 639·2019-08-23 16:52
閱讀 4133·2019-08-23 16:43
閱讀 2852·2019-08-23 16:12