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