前言
銜接上一篇“c++學(xué)習(xí)筆記-STL案例-機房預(yù)約系統(tǒng)5-學(xué)生模塊”,本文主要設(shè)計老師模塊,從,老師登錄和注銷、查看所有預(yù)約、審核預(yù)約三個方面進行分析和實現(xiàn)。
目錄
9 教師模塊
9.1 教師登錄和注銷
9.1.1 構(gòu)造函數(shù)
9.1.2 教師子菜單
?編輯
9.1.3 菜單功能實現(xiàn)
9.1.4 接口對接
9.1.5 測試結(jié)果
9.2 查看所以預(yù)約
9.2.1 所有預(yù)約功能實現(xiàn)
9.2.2 測試結(jié)果
9.3 審核預(yù)約
9.3.1 審核功能實現(xiàn)
9.3.2 測試審核功能
9 教師模塊
9.1 教師登錄和注銷
9.1.1 構(gòu)造函數(shù)
在Teacher類的構(gòu)造函數(shù)中,初始化教師信息,代碼如下:
//有參構(gòu)造 參數(shù):職工號,姓名,密碼
Teacher::Teacher(int empid, string name, string pwd)
{
this->m_EmpId = empid;
this->m_Name = name;
this->m_Pwd = pwd;
}
?添加位置如圖:
9.1.2 教師子菜單
- 在機房預(yù)約系統(tǒng).cpp中,當(dāng)用戶登錄的是教師,添加教師菜單接口
- 將不同的分支提供出
????????查看所有預(yù)約
????????審核預(yù)約
? ? ? ? 注銷功能
- 實現(xiàn)注銷功能:
添加全局函數(shù) void TeacherMenu(Identity*&manager)代碼如下:
//進入老師子菜單
void teacherMenu(Identity*& teacher)
{
while (true)
{
//調(diào)用子菜單界面
teacher->operMenu();
//將父類指針 轉(zhuǎn)為子類指針 調(diào)用子類指針特有的功能
Teacher * tea = (Teacher*)teacher;
int select;//接收用戶選擇
cin >> select;
if (select == 1) //查看所以預(yù)約
{
tea->showAllOrder();
}
else if (select == 2) //審核預(yù)約
{
tea->validOrder();
}
else
{
delete teacher;
cout << "注銷成功" << endl;
system("pause");
system("cls");
return;
}
}
}
??添加位置如圖:
9.1.3 菜單功能實現(xiàn)
//菜單界面
void Teacher::operMenu()
{
cout << "歡迎教師" << this->m_Name << "登錄!" << endl;
cout << "\t\t -------------------------------------------------" << endl;
cout << "\t\t| |\n";
cout << "\t\t| 1.查看所有預(yù)約 |\n";
cout << "\t\t| |\n";
cout << "\t\t| 2.審核預(yù)約 |\n";
cout << "\t\t| |\n";
cout << "\t\t| 0.注銷登錄 |\n";
cout << "\t\t| |\n";
cout << "\t\t -------------------------------------------------" << endl;
cout << "請選擇您的操作:" << endl;
}
??添加位置如圖:
9.1.4 接口對接
//進入教師身份子菜單
teacherMenu(person);
???添加位置如圖:
9.1.5 測試結(jié)果
登錄老師賬號:
注銷老師賬號:
9.2 查看所以預(yù)約
9.2.1 所有預(yù)約功能實現(xiàn)
該功能與學(xué)生身份的查看所有預(yù)約功能相似,用于顯示所以預(yù)約記錄
在Teacher.cpp中實現(xiàn)成員函數(shù)void Teacher::showAllOrder()
//查看所有預(yù)約
void Teacher::showAllOrder()
{
OrderFile of;
if (of.m_Size == 0)
{
cout << "無預(yù)約記錄!" << endl;
system("pause");
system("cls");
return;
}
for (int i = 0; i < of.m_Size; i++)
{
cout << i + 1 << "、";
cout << "預(yù)約日期:周" << of.m_orderDate[i]["data"];
cout << "預(yù)約時段:" << (of.m_orderDate[i]["interval"] == "1" ? "上午" : "下午");
cout << "學(xué)號:" << of.m_orderDate[i]["stuId"];
cout << "姓名:" << of.m_orderDate[i]["stuName"];
cout << "機房號:" << of.m_orderDate[i]["roomId"];
string status = "狀態(tài):";
//1審核中 2已預(yù)約 -1預(yù)約失敗 0取消預(yù)約
if (of.m_orderDate[i]["status"] == "1")
{
status += "審核中";
}
else if (of.m_orderDate[i]["status"] == "2")
{
status += "已預(yù)約";
}
else if (of.m_orderDate[i]["status"] == "-1")
{
status += "預(yù)約失敗,審核未通過";
}
else if (of.m_orderDate[i]["status"] == "0")
{
status += "預(yù)約已經(jīng)取消";
}
cout << status << endl;
}
system("pause");
system("cls");
}
?添加位置如圖:
9.2.2 測試結(jié)果
9.3 審核預(yù)約
9.3.1 審核功能實現(xiàn)
//審核預(yù)約
void Teacher::validOrder()
{
OrderFile of;
if (of.m_Size == 0)
{
cout << "無預(yù)約記錄" << endl;
system("pause");
system("cls");
return;
}
vector<int>v;
int index = 0;
cout << "審核中的預(yù)約記錄如下:" << endl;
for (int i = 0; i < of.m_Size; i++)
{
if (of.m_orderDate[i]["status"] == "1")//審核中的預(yù)約
{
v.push_back(i);
cout << ++index << "、";
cout << "預(yù)約日期:周" << of.m_orderDate[i]["date"];
cout << " 時間段:" << (of.m_orderDate[i]["interval"] == "1" ? "上午" : "下午");
cout << " 學(xué)生編號:" << of.m_orderDate[i]["stuId"];
cout << " 學(xué)生姓名:" << of.m_orderDate[i]["stuName"];
cout << " 機房編號:" << of.m_orderDate[i]["roomId"];
string status = " 狀態(tài):審核中";
cout << status << endl;
}
}
cout << "請輸入審核的預(yù)約記錄,0代表返回" << endl;
int select = 0;//接受用戶選擇的預(yù)約記錄
int ret = 0;//接受預(yù)約結(jié)果記錄
while (true)
{
cin >> select;
if (select >= 0 && select <=v.size())
{
if (select == 0)
{
break;
}
else
{
cout << "請輸入審核結(jié)果" << endl;
cout << "1、通過" << endl;
cout << "2、不通過" << endl;
cin >> ret;
if (ret == 1)
{
//通過情況
of.m_orderDate[v[select - 1]]["status"] = "2";
}
else
{
//不通過情況
of.m_orderDate[v[select - 1]]["status"] = "-1";
}
of.updateOrder();//更新預(yù)約記錄
cout << "審核完畢!" << endl;
break;
}
}
cout << "輸入有誤,重新輸入!" << endl;
}
system("pause");
system("cls");
}
??添加位置如圖:
9.3.2 測試審核功能
審核通過測試:
order.txt文件第一條預(yù)約也對應(yīng)更改為“2”表示審核通過:?
審核不通過測試:
order.txt文件第一條預(yù)約也對應(yīng)更改為“-1”表示審核不通過:??
查看所有預(yù)約,?第一條預(yù)約為"已預(yù)約”、?第二條預(yù)約為"預(yù)約失敗,審核未通過”,符合上面兩個操作審核的過程結(jié)果:
總結(jié)?
教師模塊查看預(yù)約、審核預(yù)約、注銷登錄三大功能,其中教師的查看所有預(yù)約和學(xué)生模塊的查看所有預(yù)約功能一致,審核預(yù)約需要篩選出預(yù)約狀態(tài)為“審核中”的預(yù)約條目,記錄這些條目在實際order.txt中的編號,然后根據(jù)人選擇的編號更改選中編號的預(yù)約狀態(tài)為“審核通過”或“審核不通過”,在根據(jù)審核結(jié)果更新orderFile的成員函數(shù)m_orderDate從而更新?order.txt文件。
流程圖如下:???????
文章來源:http://www.zghlxwxcb.cn/news/detail-818582.html
數(shù)據(jù)通過文件方式進行流通。明天加個數(shù)據(jù)流圖文章來源地址http://www.zghlxwxcb.cn/news/detail-818582.html
到了這里,關(guān)于c++學(xué)習(xí)筆記-STL案例-機房預(yù)約系統(tǒng)6-老師模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!