C++機(jī)房預(yù)約系統(tǒng)實(shí)現(xiàn)流程實(shí)例
1.機(jī)房預(yù)約系統(tǒng)分析
1.1身份簡介
學(xué)生代表:申請使用機(jī)房
教師:審核學(xué)生的預(yù)約申請
管理員:給學(xué)生、教師創(chuàng)建賬號
1.2機(jī)房簡介
1號機(jī)房—最大容量20人
2號機(jī)房—最大容量50人
3號機(jī)房—最多容量100人
1.3申請簡介
申請訂單每周由管理員負(fù)責(zé)清空。
學(xué)生可以預(yù)約未來一周的機(jī)房使用,預(yù)約的日期為周一至周五,預(yù)約時需要選擇預(yù)約時段(上午、下午)
教師審核預(yù)約,依據(jù)實(shí)際情況審核預(yù)約通過或不通過。
1.4系統(tǒng)具體需求
首先進(jìn)入登陸界面,可以選擇登錄身份以及身份驗(yàn)證有:
學(xué)生代表:學(xué)號、姓名、登錄密碼
老師:職工號、姓名、登錄密碼
管理員:管理員姓名、登錄密碼
退出
2.系統(tǒng)實(shí)現(xiàn)
2.1建立身份類
三種類型的使用者都有相同的共性,通過建立父類,將三者的共同屬性建立起來。其中用虛函數(shù)創(chuàng)建子菜單,通過不同的登錄選擇選項(xiàng)進(jìn)入不同的子菜單。這里為了方便將成員變量設(shè)置為公共屬性,如果設(shè)置為私有屬性需要通過友元函數(shù)或者成員函數(shù)提供的接口來訪問私有屬性變量。
using namespace std; class Identity { public: //不同的操作菜單 virtual void Mainpulation_Menu() = 0; //用戶名 string M_Name; //密碼 string M_Password; };
2.2建立管理者類
管理者類在繼承原有的身份類成員變量和虛函數(shù)的基礎(chǔ)上創(chuàng)建了其自身的成員函數(shù),通過成員函數(shù)來實(shí)現(xiàn)對應(yīng)功能選擇。
class Manager :public Identity { public: virtual void Mainpulation_Menu(); Manager(); ~Manager(); Manager(string name, string password); void AddAccount(); //查看賬號 void ShowPerson(); //查看機(jī)房信息 void ShowComputer(); //清空預(yù)約記錄 void ClearFile(); //初始化容器 void InitVector(); //學(xué)生容器 vector<Student>VStu; //老師容器 vector<Teacher>VTea; //檢測重復(fù) 參數(shù)1代表檢測的ID號 參數(shù)2檢測類型 bool CheckRepeat(int id, int type); //機(jī)房容器 vector<ComputerRoom>VCom; };
2.3建立老師類
class Teacher :public Identity { public: ~Teacher(); Teacher(); Teacher(int empleid, string name, string password); //操作菜單 virtual void Mainpulation_Menu(); //查看預(yù)約 void ShowAllorder(); //審核預(yù)約 void ChackOrder(); //職工號 int M_EmpId; };
2.4建立學(xué)生類
class Student :public Identity { public: Student(); Student(int id, string name, string password); ~Student(); //菜單界面 virtual void Mainpulation_Menu(); //申請預(yù)約 void ApplyOreder(); //查看自身預(yù)約 void ShowMyOreder(); //查看所有預(yù)約 void ShowAllOrder(); //取消預(yù)約 void CancelOrder(); //機(jī)房容器 vector<ComputerRoom>VCom; //學(xué)號 int M_Id = 0; };
3.文件處理
3.1管理者的文件
通過文件記錄管理者的姓名和密碼,將信息存在文本文件上。管理者的的有參構(gòu)造函數(shù)將對機(jī)房文本文件的信息寫入到創(chuàng)建機(jī)房容器當(dāng)中,機(jī)房容器存儲著對應(yīng)的機(jī)房號和最大容量信息。
//初始化機(jī)房信息 ifstream ifs; ifs.open(COMPUTER_FILE, ios::in); ComputerRoom com; while (ifs >> com.M_ComId && ifs >> com.M_MaxNum) { VCom.push_back(com); } ifs.close();
管理者類建立添加賬戶的成員函數(shù)。利用追加的方式分別寫入要創(chuàng)建的學(xué)生或者老師的信息。
//利用追加的方式寫文件 ofs.open(File_names, ios::out | ios::app); int id;//學(xué)號/職工號 string name;//姓名 string pwd;//密碼
3.2老師的文件
通過讀取老師文件中的信息與老師登錄選項(xiàng)做對比。
OrderFile of; cout << "請輸入審核的預(yù)約記錄,0代表返回" << endl; int select = 0;//接受用戶的選擇的預(yù)約記錄 int ret = 0;//接受預(yù)約結(jié)果的記錄
3.3學(xué)生文件
OrderFile of; if (of.M_Size == 0) { cout << "沒有預(yù)約記錄!" << endl; system("pause"); system("cls"); return; } cout << "審核中或預(yù)約的記錄可以取消,請輸入取消的記錄!" << endl; int index = 1; vector<int>v;
4.程序下載地址
鏈接: https://pan.baidu.com/s/1E_6YrUu2YOWZt-hybhP9mQ?pwd=unv8
提取碼: unv8
到此這篇關(guān)于C++機(jī)房預(yù)約系統(tǒng)實(shí)現(xiàn)流程實(shí)例的文章就介紹到這了,更多相關(guān)C++機(jī)房預(yù)約系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C語言中index()函數(shù)和rindex()函數(shù)的用法
這篇文章主要介紹了C語言中index()函數(shù)和rndex()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,要的朋友可以參考下2015-08-08C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除)
本文主要介紹了C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02QT中在QLabel顯示圖片并且利用鼠標(biāo)點(diǎn)擊畫線問題
這篇文章主要介紹了QT中在QLabel顯示圖片并且利用鼠標(biāo)點(diǎn)擊畫線問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11C++順序容器(vector、deque、list)的使用詳解
本文主要介紹了C++順序容器(vector、deque、list)的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06