C 案例總結 機房預約系統(一)

2021-10-21 19:30:34 字數 3206 閱讀 3850

學校有一些規模不同的機房,製作機房預約系統

1、身份簡介

分別有三種身份使用該程式,三種身份有各自的功能:

學生:申請預約機房、檢視自身的預約、檢視所有的預約、取消自身的預約、登出登入 ;

學生的屬性:學號、姓名、登入密碼。

教師:檢視所有預約、審核預約(審核通過或不通過)、登出登入;

教師的屬性:職工編號、姓名、登陸密碼。

管理員:新增賬號(新增老師或學生的賬號)、檢視賬號(檢視教師和學生的所有資訊)、檢視機房資訊、清空所有預約記錄、登出登入;

管理員的屬性:姓名、密碼。

2、申請事項

申請的訂單由管理員每週負責清空;

學生可以預約未來一周內機房的使用,預約的日期為周一至周五,預約時需要選擇預約時段(上午、下午);

教師來審核預約,依據實際情況審核預約通過或不通過。

3、系統操作流程

首先進入登入介面,選擇登入身份:學生、教師、管理員

選擇1:進入學生子選單介面; 選擇2:進入教師子選單介面;

選擇3:進入管理員子選單介面; 選擇0:退出系統

選擇身份後,輸入學號/職工編號、姓名、密碼登入。輸入正確則進入相應子選單介面,輸入錯誤則重新輸入。

進入子選單介面後可以選擇各項功能,如選擇0、登出登入,則退出當前賬號,返回初始選單介面。

//管理員檔案

#define admin_file "admin.txt"

//學生檔案

#define student_file "student.txt"

//教師檔案

#define teacher_file "teacher.txt"

//機房資訊檔案

#define computer_file "computerroom.txt"

//訂單檔案

#define order_file "order.txt"

2、建立類

學生、教師、管理員三種身份擁有類似的功能(顯示子選單介面)和屬性(姓名、登陸密碼),所以建立基類identity;三個身份又有各自不同的屬性和功能,所以分別建立學生類、教師類、管理員類,繼承基類。

其中的容器都用於和文字檔案進行資料讀取。在建立物件執行建構函式時,就從文字檔案中讀取相關資訊,存放在容器中。若其他功能函式需要使用文字檔案的資料,無需再開啟檔案進行讀取,直接呼叫容器即可。

//身份抽象類   

class

identity

;

//學生類

class

student

:public identity

;

//教師類

class

teacher

:public identity

;

class

manager

:public identity

;

此外,由於對預約記錄的處理比較複雜,所以建立類orderfile,便於和order.txt交換資訊。

class

orderfile

;

3、系統操作流程

控制系統流程的主要函式在main.cpp中實現。

int

main()

}}

main函式重複執行一段關於初始選單介面的程式。首先顯示主選單,使用者選擇身份後呼叫loginin函式,向該函式傳遞不同的身份資訊。loginin函式實現登入功能,兩個形參分別表示匯入哪個身份的文字檔案,和正在登入的使用者身份型別。

例如,若是學生登入,則開啟student.txt,讀取裡面的學號、姓名、密碼資訊,檢測是否與使用者輸入的資訊一致。若一致則建立指向student類物件的基類指標,同時程式會自動實現student的建構函式,向容器中寫入資訊,然後呼叫學生子選單函式。

//登入功能  引數1:操作的檔名稱 引數2:操作的身份的型別

void

loginin

(string filename,

int type)

//準備接收使用者的資訊

int id=0;

string name;

string pwd;

//判斷身份

if(type ==1)

//學生身份

else

if(type ==2)

cout <<

"請輸入使用者名稱"

<< endl;

cin >> name;

cout <<

"請輸入密碼"

<< endl;

cin >> pwd;

if(type==1)

}}else

if(type ==2)

}}else

if(type ==3)

}}cout <<

"驗證登入失敗!"

<< endl;

system

("pause");

system

("cls");

}

若不按0登出登入,系統將一直停留在子選單功能中,由使用者選擇實現各項功能。

//進入學生子選單介面

void

studentmenu

(identity*

& student)

}}

//進入管理員子選單介面

void

managermenu

(identity*

& manager)

}}

//進入教師子選單介面

void

teachermenu

(identity*

& teacher)

}}

C 機房預約系統之總結

機房預約系統 這個專案是b站黑馬的教程 c 從0到1入門程式設計的綜合練習專案 本人在最近終於將這個專案完整的敲過一遍,有很多收穫,也產生了許多疑問。但是,正所謂讀書百遍其義自現,再敲一遍,很多疑惑便迎刃而解。而今天這篇部落格則是從這個專案的尾部開始複習.在這個專案裡,教師的主要功能是 1.檢視所有...

機房收費系統(一)

這是我在敲機房的時候遇到的幾個小問題,機房還在進行,問題會不斷產生,努力去解決!問題一 查詢視窗不報錯但是也不顯示查詢的內容 錯誤原因 語句錯誤。end if寫錯位置 圖為正解 問題二 一般這種問題不是資料庫沒連好就是 有問題,大部分情況是 有問題。問題三 實時錯誤3021 困了我好幾天的問題 事實...

重構機房收費系統(一)

從10月 1號開始重構學校機房收費系統 沒想到這次重構,推翻 再重構 用了兩周時間。這次整體架構採用三層,並融入了一些設計模式。下面介紹這次重構的過程 一 從uml 用例圖開始 對於機房收費系統的需求已經很熟悉了,用例和角色都已經提取出來了,在這裡遇到乙個問題,就是,究竟是根據角色劃分用例,還是根據...