C++機(jī)房預(yù)約系統(tǒng)實(shí)現(xiàn)流程實(shí)例
1.機(jī)房預(yù)約系統(tǒng)分析
1.1身份簡介
學(xué)生代表:申請使用機(jī)房
教師:審核學(xué)生的預(yù)約申請
管理員:給學(xué)生、教師創(chuàng)建賬號(hào)
1.2機(jī)房簡介
1號(hào)機(jī)房—最大容量20人
2號(hào)機(jī)房—最大容量50人
3號(hào)機(jī)房—最多容量100人
1.3申請簡介
申請訂單每周由管理員負(fù)責(zé)清空。
學(xué)生可以預(yù)約未來一周的機(jī)房使用,預(yù)約的日期為周一至周五,預(yù)約時(shí)需要選擇預(yù)約時(shí)段(上午、下午)
教師審核預(yù)約,依據(jù)實(shí)際情況審核預(yù)約通過或不通過。
1.4系統(tǒng)具體需求
首先進(jìn)入登陸界面,可以選擇登錄身份以及身份驗(yàn)證有:
學(xué)生代表:學(xué)號(hào)、姓名、登錄密碼
老師:職工號(hào)、姓名、登錄密碼
管理員:管理員姓名、登錄密碼
退出
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();
//查看賬號(hào)
void ShowPerson();
//查看機(jī)房信息
void ShowComputer();
//清空預(yù)約記錄
void ClearFile();
//初始化容器
void InitVector();
//學(xué)生容器
vector<Student>VStu;
//老師容器
vector<Teacher>VTea;
//檢測重復(fù) 參數(shù)1代表檢測的ID號(hào) 參數(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();
//職工號(hào)
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é)號(hào)
int M_Id = 0;
};
3.文件處理
3.1管理者的文件
通過文件記錄管理者的姓名和密碼,將信息存在文本文件上。管理者的的有參構(gòu)造函數(shù)將對機(jī)房文本文件的信息寫入到創(chuàng)建機(jī)房容器當(dāng)中,機(jī)房容器存儲(chǔ)著對應(yīng)的機(jī)房號(hào)和最大容量信息。
//初始化機(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ù)。利用追加的方式分別寫入要?jiǎng)?chuàng)建的學(xué)生或者老師的信息。
//利用追加的方式寫文件 ofs.open(File_names, ios::out | ios::app); int id;//學(xué)號(hào)/職工號(hào) 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語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)希爾排序算法
這篇文章主要為大家介紹了C語言希爾排序算法實(shí)現(xiàn)植物大戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
c++中string類成員函數(shù)c_str()的用法
c_str()函數(shù)返回一個(gè)指向正規(guī)c字符串的指針,內(nèi)容和string類的本身對象是一樣的,通過string類的c_str()函數(shù)能夠把string對象轉(zhuǎn)換成c中的字符串的樣式2013-09-09
C++中實(shí)現(xiàn)把表的數(shù)據(jù)導(dǎo)出到EXCEL并打印實(shí)例代碼
這篇文章主要介紹了實(shí)現(xiàn)把表的數(shù)據(jù)導(dǎo)出到EXCEL并打印實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04

