資源簡介
這是基于C++的實驗室預約系統,它可以實現學生和老師等功能,學生可以登錄預約實驗室,修改預約時間,查看預約結果等。
代碼片段和文件信息
/*實驗題目:實驗室預約系統
????計算機學院單位實驗室實行全天開放,學生可以根據自己的學習進度自行安排實驗時間,
但是每個實驗有一個限定的時間,例如某實驗要在近兩周內完成。
假設近期將要做的實驗可以有周一下午、周三下午、周五下午三個時間(可以根據實際情況進行調整),
不妨稱為時間一、時間二、時間三,這三個時間做實驗的學生可以用隊列來存儲,要求完成如下功能:
⑴?插入:將預約做實驗的學生插入到合適的時間隊列中;
⑵?刪除:時間隊列中前5位學生可以在該時間做實驗;
⑶?查詢:教師可以隨時查詢某個時間隊列中學生的預約情況;
⑷?修改:在沒做實驗之前,學生可以對預約的時間進行修改;?
⑸?輸出:輸出每個時間隊列中預約的學生名單。
*/
#include
#include
#include
#include
#include
#define?Max?10
typedef?struct?Qunode
{
int?time;???????????????????//定義一個存放時間的整型變量
char?mima[Max];?????????????//定義一個存放密碼的整型變量
char?name[Max];?????????????//定義一個存放姓名的字符數組
char?ban[Max];??????????????//定義一個存放班別的字符數組
char?xueno[Max];????????????//定義一個存放學號的字符數組
char?pername[Max];
struct?Qunode?*next;??????
}qnode;?
typedef?struct?timenode?????????//定義時間結點類型
{
int?Time;???????????????????//定義一個存放時間的整型變量
qnode?*front;???????????????//定義一個隊首指針
qnode?*rear;????????????????//定義一個隊尾指針?????????????//指向學生信息
struct?timenode?*dirctnext;???????//指向下一個時間的頭結點
}LiQueue;??????????????????????
???????????????
typedef?struct
{
int?maxnum;?????????????????//實驗室做實驗的最大人數
int?number;??????????????????//記錄有幾個人在預約實驗
qnode?*next2;????????????????//指向申請好賬號的學生結點的指針
LiQueue?*next1;???????????????//指向時間隊列頭結點的指針????????????????????
}liqueue;??????????????????????//鏈隊類型定義
int?empty(liqueue?*q);?????????//對判斷隊列為空的函數作全局聲明
//**********學生申請賬號*************
void?apply(liqueue?*&q)
{
char?sXueNo[Max];
int?flag=0;
qnode?*p*p1*t;
qnode?*p2;
p=(qnode*)malloc(sizeof(qnode));
cout<<“請輸入你的姓名:?“;
cin>>p->name;
cout<<“請輸入你的班別:?“;
cin>>p->ban;
cout<<“請輸入你的學號:?“;
cin>>XueNo;
if(q->next2)
{
p2=q->next2;
while(p2?&&?flag==0)
{
if(strcmp(p2->xuenoXueNo)==0)
{
cout<<“學號有相同!“< cout<<“請重輸入你的學號:?“;
cin>>XueNo;
flag=1;
}
p2=p2->next;
}
}
strcpy(p->xuenoXueNo);
cout<<“請輸入你的密碼:?“;
cin>>p->mima;
cout<<“你是否確定?請選擇(y/n):?“;
cin>>s;
if(s==‘y‘||?s==‘Y‘)
{
if(q->next2==NULL)
{
q->next2=p;
p->next=NULL;
}
else
{
p1=q->next2;
while(p1)
{
t=p1;
p1=p1->next;
}
t->next=p;
p->next=NULL;
}
cout<<“你已成功申請賬號!“< fstream?out(“mima.dat“ios::out|ios::app);
out<xueno<<“\t“<mima<<“\t“<name<<“\t“<ban< out.close();
}
}
//************從文件讀取數據到三條時間隊列中去*******************
void?Read(liqueue?*&q)
{
char?XueNo[Max]MiMa[Max]Ban[Max]Name[Max];
qnode?*p;
qnode?*r*t*p1;
fstream?in(“mima.dat“ios::in|ios::app);
if(!in.eof())
{
in>>XueNo;
while(!in.eof())
{
in>>MiMa>>Name>>Ban;
p=(qnode*)malloc(sizeof(qnode));
strcpy(p->xuenoXueNo);
strcpy(p->mimaMiMa);
strcpy(p->nameName);
strcpy(p->banBan);
if(q->next2==NULL)
{
q->next2=p;
p->next=NULL;
}
else
{
p1=q->next2;
while(p1)
{
t=p1;
p1=p1->next;
}
t->next=p;
p->next=NULL;
}
in
- 上一篇:標準C語言程序設計第五版部分習題答案
- 下一篇:拉格朗日插值法c語言版
評論
共有 條評論