<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現酒店客房管理系統的具體程式碼,供大家參考,具體內容如下
設計目標:設計一個酒店客房管理系統,用C語言實現。對該系統的要求如下:
系統角色:
1.總檯服務員
能夠根據住客需求完成住客登記任務,並完成客房管理功能。
1)登記入住功能
2)結賬功能
3)查詢房間功能
4)客房資訊列印
5)統計功能
2.系統管理員
能夠新增、刪除和修改系統使用者(總檯服務員),設定使用者許可權。包括
1)新增新使用者
2)刪除使用者
3)修改使用者許可權
系統啟動則進入登陸選單。
1.登陸流程
(1)程式執行,顯示登陸介面,請使用者輸入角色、賬號及密碼。
(2)使用者輸入賬號密碼後,系統校驗正確與否,正確則進入功能選單。錯誤則提示輸入錯誤,繼續顯示登陸介面。
2.總檯服務員使用流程描述:
1)主介面:
總檯服務員登陸成功後,系統顯示功能選單:“1. 登記入住 2. 結賬3.查詢客房資訊 4.客房資訊列印6.客房統計7.退出”。
2)登記入住
(1)服務員輸入數位1,系統進入登記入住介面,要求總檯服務員輸入客戶資訊及房間資訊。
(2)總檯服務員輸入客戶姓名、性別、年齡、身份證號、所需房間型別、房間號、房間單價、入住天數。
(3)系統根據輸入資訊顯示應付費用。總檯服務員收取費用後輸入收費金額。系統在客房記錄中新增該客戶的記錄並寫入磁碟。
(4)系統應保證在所需房間不足時報告錯誤。
3)結賬
(1)服務員輸入數位2,系統進入結賬介面,要求總檯服務員輸入房間資訊。
(2)總檯服務員輸入房間號,系統顯示客戶名稱、房間單價、入住天數、總金額、應付房款、實付房款、欠費金額或退款額等相關資訊。並提示總檯服務員收取欠費金額或退還押金。
(3)總檯服務員輸入補交房款或退還押金數額後,系統將該客戶的入住記錄放入歷史入住記錄中。並將該房間設定為空閒。
4)查詢客房資訊
(1)服務員輸入數位3,系統進入查詢介面,並顯示“1.按顧客名稱查詢 2.按房間號查詢”。
(2)總檯服務員輸入1.系統提示服務員輸入顧客名稱,輸入後,系統顯示該顧客的入住記錄,包括顧客資訊及入住房間號、房間單價、入住天數、總金額等相關資訊。 如無該顧客的資訊則列印“沒有此客戶的入住資訊。”
(3)總檯服務員輸入2.系統提示服務員輸入房間號及查詢起止時間。輸入房間號及起止時間後,系統顯示該房間從起始時間到結束時間的入住客戶的姓名、身份證號、入住天數等資訊。
5)客房資訊列印
服務員輸入數位4,系統進入客房資訊列印介面。系統列印所有房間資訊,按房間號排序,包括房間號、房間型別、是否有人入住、入住人數、入住天數等資訊。
6)客房統計
服務員輸入數位5,系統進入客房統計介面。系統列印本日的入住人數、入住房間數、空置房間數、入住率統計、空房率統計、實收房款。
7)退出
服務員選擇退出,則系統返回到登陸介面。
3.系統管理員使用流程
1)主介面:
管理員登陸成功後,系統顯示功能選單:“1.使用者資料列印 2.新增使用者 3.刪除使用者 4.修改使用者許可權 5退出”
2)使用者資料列印:
管理員選擇使用者資料列印功能,則進入使用者資料列印介面,提示管理員輸入使用者賬號,管理員輸入後,系統列印該使用者的賬號、密碼、角色、許可權等資訊。
3)新增使用者
管理員選擇新增使用者功能,則進入新增使用者介面,提示管理員輸入使用者賬號和初始密碼。管理員輸入後,系統列印該使用者相關資訊並返回主介面。
4)刪除使用者
管理員選擇刪除使用者功能,則進入刪除使用者介面,提示管理員輸入要刪除的使用者賬號。管理員輸入後,系統提示已刪除該使用者資訊並返回主介面。
5)修改使用者許可權
管理員選擇修改使用者許可權功能,則進入修改使用者許可權介面,提示管理員輸入要修改的使用者賬號。管理員輸入後,系統列印該使用者的許可權,並提示管理員輸入要修改後的許可權,管理員輸入後,系統列印該使用者的資訊並返回主介面。
6)退出
管理員選擇退出,則系統返回到登陸介面。
1)宣告部分
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<Windows.h> #include<string.h> #define LEN sizeof(struct hotel) typedef struct hotel { int might1;//管理員存取許可權1 int might2;//服務員存取許可權2 int might3;//客房存取許可權3 char account[20];//賬戶 char possword[20];//密碼 char name[20];//姓名 char sex[5];//性別 int age;//年齡 char ID[20];//身份證號 char time[20];//入住時間 char phone[20];//聯絡電話 char room[15];//房間型別 int numder;//房間號 int price;//房間單價 int day;//入住天數 int cope;//總價 int payment;// int debt; char manage[5];//是否結賬 struct hotel *next;// }LinkList; void menu1(struct hotel *p); void menu22(struct hotel *p); void menu2(struct hotel *p); void menu33(struct hotel *p); void menu3(struct hotel *p); void ADD(LinkList *p);//新增客戶 void ADD1(LinkList *p);//新增服務員 void amend(LinkList *p);//修改自己或服務員的密碼 void Remove(LinkList *p);//刪除服務員 void Seller(LinkList *p);//客房結賬 void amend2(LinkList *p);//修改客戶資訊 void Inquire(LinkList *p);//客房查詢 void statistics1(LinkList *p);//某日客房統計 void statistics3(LinkList *p);//客房統計 void statistics2(LinkList *p);//服務員統計 void set(LinkList *p);//設定房間數量 void statistics(LinkList *p);//客房列印
2)新增客戶
void ADD(LinkList *p) { struct hotel *q, *n = p; struct hotel *h = p->next; struct hotel *m = p->next; int flag = 0; system("cls"); q = (struct hotel *)malloc(sizeof(struct hotel)); q->next = NULL; printf("請依次輸入:客戶姓名,性別,年齡,ID,入住時間(年.月.日),聯絡電話n"); scanf("%s%s%d%s%s%s", q->name, q->sex, &q->age, q->ID, q->time, q->phone); printf("請依次輸入客戶的:房間型別,房間號,房間單價,入住天數,付款n"); scanf("%s%d%d%d%d", q->room, &q->numder, &q->price, &q->day, &q->payment); strcpy(q->manage, "NO"); getchar(); q->cope = q->price *q->day; q->debt = q->cope - q->payment; q->might1 = 0; q->might2 = 0; q->might3 = 3; strcpy(q->account, "0"); strcpy(q->possword, "0"); if (q->numder>m->age) { printf("超出房間限額!n"); Sleep(2000); menu3(p); } while (h != NULL) { if (h->numder == q->numder &&strcmp(h->manage, "NO") == 0) { flag = 1; printf("此房間客戶暫未退房"); Sleep(1000); ADD(p); break; } h = h->next; } while (n->next != NULL) { n = n->next; } n->next = q; if (flag == 0) { printf("t新增成功n"); printf("t請按確認鍵返回選單n"); } else printf("t新增失敗n"); getchar(); menu3(p); }
3)新增服務員
void ADD1(LinkList *p) { struct hotel *q, *n = p; struct hotel *h = p->next; int flag = 0; system("cls"); q = (struct hotel *)malloc(sizeof(struct hotel)); q->next = NULL; printf("請輸入新增的賬號n"); scanf("%s", q->account); printf("請輸入新增的密碼n"); scanf("%s", q->possword); getchar(); q->might1 = 0; q->might2 = 2; q->might3 = 0; strcpy(q->name, "0"); strcpy(q->sex, "0"); q->age = 0; strcpy(q->ID, "0"); strcpy(q->room, "0"); strcpy(q->manage, "0"); strcpy(q->time, "0"); strcpy(q->phone, "0"); q->numder = 0; q->price = 0; q->day = 0; q->debt = 0; q->payment = 0; q->cope = 0; while (h != NULL) { if (strcmp(h->account, q->account) == 0) { flag = 1; printf("賬號重複!"); Sleep(1000); menu2(p); break; } h = h->next; } while (n->next != NULL) { n = n->next; } n->next = q; if (flag == 0) { printf("t新增成功n"); printf("t請按確認鍵返回選單n"); } else printf("t新增失敗n"); getchar(); menu2(p); }
4)修改密碼或賬戶
void amend(LinkList *p) { struct hotel *q = p->next; char acc[20], poss[20], ac[20]; int flag = 0, i; system("cls"); printf("請輸入要修改的賬號:"); scanf("%s", acc); while (q != NULL) { if (strcmp(q->account, acc) == 0) { flag = 1; printf("1.僅修改密碼n2.密碼賬戶均修改n"); scanf("%d", &i); if (i == 1) { printf("請輸入新密碼:"); scanf("%s", poss); strcpy(q->possword, poss); break; } if (i == 2) { printf("請輸入新賬號:"); scanf("%s", ac); getchar(); printf("請輸入新密碼:"); scanf("%s", poss); strcpy(q->account, ac); strcpy(q->possword, poss); break; } } q = q->next; } if (flag == 0) { printf("賬戶錯誤!n"); printf("t請按確認鍵返回選單n"); } if (flag == 1) { printf("修改成功!n"); printf("t請按確認鍵返回選單n"); } getchar(); getchar(); menu2(p); }
5)修改客戶資訊
void amend2(LinkList *p) { struct hotel *q = p->next; int i, j = 0, k; char na[20], se[5], I[20], ti[20], Ph[20], roo[15]; int ag, nu, pr, da; system("cls"); printf("請輸入修改內容的房間號:n"); scanf("%d", &nu); while (q != NULL) { if (q->numder == nu) { printf("請選擇將要修改的內容:n"); printf("1.姓名n"); printf("2.性別n"); printf("3.年齡n"); printf("4.身份證號n"); printf("5.聯絡電話n"); printf("6.入住時間n"); printf("7.房間號"); printf("8.房間型別n"); printf("9.房間單價n"); printf("10.入住天數n"); printf("11.返回上一層n"); scanf("%d", &i); switch (i) { case 1:printf("請輸入新修改的姓名n"); scanf("%s", na); j = 1; strcpy(q->name, na); break; case 2:printf("請輸入新修改的性別n"); scanf("%s", se); j = 1; strcpy(q->sex, se); break; case 3:printf("請輸入新修改的年齡n"); scanf("%d", &ag); j = 1; q->age = ag; break; case 4:printf("請輸入新修改的身份證號n"); scanf("%s", I); j = 1; strcpy(q->ID, I); break; case 5:printf("請輸入新修改的聯絡電話n"); scanf("%s", Ph); j = 1; strcpy(q->phone, Ph); break; case 6:printf("請輸入新修改的入住時間n"); scanf("%s", ti); j = 1; strcpy(q->time, ti); break; case 7:printf("請輸入新修改的房間號n"); scanf("%d", &nu); j = 1; q->numder = nu; break; case 8:printf("請輸入新修改的房間型別n"); scanf("%s", roo); j = 1; strcpy(q->room, roo); break; case 9:printf("請輸入新修改的房間單價n"); scanf("%d", &pr); j = 1; q->price = pr; q->cope = (q->price)*(q->day); q->debt = q->cope - q->payment; break; case 10:printf("請輸入新修改的入住天數n"); scanf("%d", &da); j = 1; q->day = da; q->cope = q->price*q->day; q->debt = q->cope - q->payment; break; case 11:menu3(p); break; default:printf("請輸入合法量!n"); break; } } q = q->next; } if (j == 1) { printf("修改成功!n"); } if (j == 0) { printf("修改失敗n"); } printf("按確認鍵返回n"); getchar(); getchar(); menu3(p); }
6)刪除
void Remove(LinkList *p) { struct hotel *n = p->next; struct hotel *h = p->next->next; int flag = 0; char acc[20]; system("cls"); printf("請輸入要刪除的賬戶:"); scanf("%s", acc); while (h != NULL) { if (strcmp(h->account, acc) == 0) { n->next = h->next; flag = 1; free(h); break; } n = h; h = h->next; } if (flag == 1) { printf("刪除成功!n"); printf("t請按確認鍵返回選單n"); } if (flag == 0) { printf("刪除失敗!n"); printf("t請按確認鍵返回選單n"); } getchar(); getchar(); menu2(p); }
7)結賬
void Seller(LinkList *p) { struct hotel *q = p->next; char man[5]; int nu, i; int flag = 0; system("cls"); printf("請輸入該客戶房間號:"); scanf("%d", &nu); while (q != NULL) { if ((q->numder == nu)&&strcmp(q->manage,"NO")==0) { flag = 1; printf("客戶:%s 身份證號:%s 房間號:%d 房間單價:%d 入住天數:%d 實付:%d 再付:%d 共計%d元n", q->name, q->ID, q->numder, q->price, q->day, q->payment, q->debt, q->cope); printf("再付%dn", q->debt); printf("1.確定結賬n2.返回n"); scanf("%d", &i); switch (i) { case 1:q->debt = 0; q->payment = q->cope; strcpy(q->manage, "YES"); break; case 2:menu3(p); break; } } q = q->next; } if (flag == 0) { printf("t無該客戶資訊n"); printf("t請按確認鍵返回選單n"); } else { printf("結賬成功n"); printf("t請按確認鍵返回選單n"); } getchar(); getchar(); menu3(p); }
8)客房查詢
void Inquire(LinkList *p) { struct hotel *q = p->next; int nu; char na[20]; int a; int flag = 0; system("cls"); printf("1.按照姓名查詢;n2.按照房間號查詢;n"); scanf("%d", &a); getchar(); if (a == 1) { printf("請輸入姓名:"); scanf("%s", na); while (q != NULL) { if (strcmp(q->name, na) == 0) { flag = 1; printf("姓名:%s 性別:%s 年齡:%d 身份證號:%s 入住時間:%s 聯絡電話:%s", q->name, q->sex, q->age, q->ID, q->time, q->phone); printf("房間型別:%s 房間號:%d 房間單價:%d 入住天數:%d 總計:%d 實付:%d 再付:%d 是否結賬:%sn", q->room, q->numder, q->price, q->day, q->cope, q->payment, q->debt, q->manage); } q = q->next; } } if (a == 2) { printf("請輸入房間號:"); scanf("%d", &nu); while (q != NULL) { if (q->numder == nu) { flag = 1; printf("姓名:%s 性別:%s 年齡:%d 身份證號:%s 入住時間:%s 聯絡電話:%s", q->name, q->sex, q->age, q->ID, q->time, q->phone); printf("房間型別:%s 房間號:%d 房間單價:%d 入住天數:%d 總計:%d 實付:%d 再付:%d 是否結賬:%sn", q->room, q->numder, q->price, q->day, q->cope, q->payment, q->debt, q->manage); } q = q->next; } } if (flag == 0) { printf("t無該客戶資訊n"); printf("t請按確認鍵返回選單n"); } if (flag == 1) { printf("t查詢結束n"); printf("t請按確認鍵返回選單n"); } getchar(); getchar(); menu3(p); }
9)某日客房統計
void statistics1(LinkList *p) { struct hotel *q = p->next; int m = 0, i = 0; float a = 0, b = 0, c = 0,k=0; char tim[20]; system("cls"); printf("請輸入統計時間:n"); scanf("%s", tim); while (q != NULL) { if (strcmp(q->time, tim) == 0) { a = a + 1; if (m == 0) { printf("%s結賬房間有n", tim); m = m + 1; } if (strcmp(q->manage, "YES") == 0) { printf("%dn", q->numder); k= k+1; b = b + 1; } if (b == 0) { printf("無n"); b = b + 1; } if (i == 0) { printf("%s入住房間有n", tim); i = i + 1; } if (strcmp(q->manage, "NO") == 0) { printf("%dn", q->numder); c = c + 1; } if (c == 0) { printf("無入住n"); } } q = q->next; } if (a != 0) { printf("此日結賬率:百分之%0.0f %n", (k / a) * 100); printf("此日入住率:百分之%0.0f %nn", (c / a) * 100); } if (a == 0) { printf("t暫時無客戶資訊n"); } printf("t請按確認鍵返回選單n"); getchar(); getchar(); menu3(p); }
10)客房統計
void statistics3(LinkList *p) { struct hotel *q = p->next->next; struct hotel *n = p->next; float m = p->next->age; int i, j = 0, k, c = 1; float a = 0, b = 0; system("cls"); printf("空置房間有:n"); for (i = 1; i <= m; i++) { j = 0; q = p->next; while (q != NULL) { if (i == q->numder&&strcmp(q->manage, "NO") == 0) { c++; j = 1; } q = q->next; } if (j == 0) { printf("%d ", i); c++; } a++; } q = p->next; printf("n"); printf("暫住房間有:n"); while (q != NULL) { if (strcmp(q->manage, "NO") == 0) { printf("%d ", q->numder); b++; k = 1; } q = q->next; } if (k = 0) { printf("暫無入住!n"); } printf("n"); printf("當前空房率:百分之%0.0fn", ((m - b) / m) * 100); printf("當前住房率:百分之%0.0fn", (b / m) * 100); printf("按確認鍵返回主選單!n"); getchar(); getchar(); menu3(p); }
11)服務員統計
void statistics2(LinkList *p) { struct hotel *q = p->next; int c = 0, i = 0; system("cls"); while (q != NULL) { if (i == 0) { printf("賬號 密碼n"); i = 2; } if (q->might2 == 2) { printf("%s %sn", q->account, q->possword); c = c + 1; } q = q->next; } if (c == 0) { printf("暫無服務員資訊n"); } printf("t請按確認鍵返回選單n"); getchar(); getchar(); menu2(p); }
12)設定房間數量
void set(LinkList *p) { struct hotel *q = p->next; system("cls"); printf("當前房間數量為:%dn", q->age); printf("請輸入房間數量:n"); scanf("%d", &(q->age)); printf("設定成功!n"); printf("按確認鍵返回選單!n"); getchar(); getchar(); menu2(p); }
13)客房列印
void statistics(LinkList *p) { struct hotel *q = p->next; system("cls"); if (q == NULL) { printf("t暫時無客戶資訊n"); } else { printf("姓名 性別 年齡 身份證號 入住時間 聯絡電話 房間型別 房間號 房間單價 入住天數 共計 實付 再付 是否結賬 n"); while (q != NULL) { if (q->might3 == 3) { printf("%s %s %d %s %s %s %s %d %d %d %d %d %d %s n", q->name, q->sex, q->age, q->ID, q->time, q->phone, q->room, q->numder, q->price, q->day, q->cope, q->payment, q->debt, q->manage); } q = q->next; } } printf("t請按確認鍵返回選單n"); getchar(); getchar(); menu3(p); }
14)讀入磁碟檔案
void saveHotelFile(LinkList *L) { FILE *fp; LinkList *p; p = L->next; fp = fopen("hotel.txt", "w"); if (fp == NULL) { printf("無法開啟此檔案n"); exit(0); } while (p) { fprintf(fp, "%d %d %d %s %s %s %s %d %s %s %s %s %d %d %d %d %d %d %s n", p->might1, p->might2, p->might3, p->account, p->possword, p->name, p->sex, p->age, p->ID, p->time, p->phone, p->room, p->numder, p->price, p->day, p->cope, p->payment, p->debt, p->manage); p = p->next; } fclose(fp); }
15)開闢節點
void ListInsert(LinkList *L, LinkList *n) { LinkList *q = L; n->next = NULL; while (q->next != NULL) { q = q->next; } q->next = n; }
16)向連結串列讀取
void readHotelput(LinkList* L) { FILE* fp; LinkList* n; LinkList* m; char ch; char acc[20], po[20], na[20], se[5], I[20], ti[20], Ph[20], roo[15], man[5], a[20], b[20]; int mi1, mi2, mi3, ag, nu, pr, da, co, s, pa, de; fp = fopen("hotel.txt", "r"); if (fp == NULL) { fp = fopen("hotel.txt", "w"); } else { if (fgetc(fp) == -1) { printf("此程式為首次使用,請自定義賬號和密碼n"); printf("賬號:n"); scanf("%s", a); getchar(); printf("密碼:n"); scanf("%s", b); getchar(); m = (LinkList*)malloc(sizeof(LinkList)); strcpy(m->account, a);//初始賬戶 strcpy(m->possword, b);//初始密碼 strcpy(m->name, "0"); strcpy(m->sex, "0"); strcpy(m->ID, "0"); strcpy(m->room, "0"); strcpy(m->manage, "0"); strcpy(m->time, "0"); strcpy(m->phone, "0"); m->might1 = 1; m->might2 = 0; m->might3 = 0; m->age = 0; m->numder = 0; m->price = 0; m->day = 0; m->debt = 0; m->payment = 0; m->cope = 0; m->next = NULL; L->next = m; } if (fgetc(fp) != -1) { fseek(fp, -2L, 1); } while (!feof(fp)) { fscanf(fp, "%d %d %d %s %s %s %s %d %s %s %s %s %d %d %d %d %d %d %s ", &mi1, &mi2, &mi3, acc, po, na, se, &ag, I, ti, Ph, roo, &nu, &pr, &da, &co, &pa, &de, man); n = (LinkList*)malloc(sizeof(LinkList)); strcpy(n->account, acc); strcpy(n->possword, po); strcpy(n->name, na); strcpy(n->sex, se); strcpy(n->ID, I); strcpy(n->time, ti); strcpy(n->phone, Ph); strcpy(n->room, roo); strcpy(n->manage, man); n->might1 = mi1; n->might2 = mi2; n->might3 = mi3; n->age = ag; n->numder = nu; n->price = pr; n->day = da; n->debt = de; n->payment = pa; n->cope = co; ListInsert(L, n); /*n=n->next;*/ } } fclose(fp); }
17)判斷是否為服務員
void menu33(struct hotel *p) { int i = 0; struct hotel *h = p->next->next; char a[20], b[20]; system("cls"); printf("請輸入賬戶:"); scanf("%s", a); getchar(); printf("請輸入密碼:"); scanf("%s", b); getchar(); while (h != NULL) { if ((strcmp(h->account, a) == 0) && (strcmp(h->possword, b) == 0) && h->might2 == 2) { i = 1; menu3(p); break; } h = h->next; } if (i == 0) { Sleep(1500); printf("密碼或賬號錯誤!n"); menu1(p); } }
18)頁面3
void menu3(struct hotel *p) { int i; system("cls"); while (1) { printf("t--------------------------n"); Sleep(50); printf("t **歡迎登陸酒店管理系統** n"); Sleep(50); printf("t| 1.登記入住 |n"); Sleep(50); printf("t| 2.結賬 |n"); Sleep(50); printf("t| 3.修改客戶資訊 |n"); Sleep(50); printf("t| 4.查詢客房資訊 |n"); Sleep(50); printf("t| 5.某日客房資訊統計 |n"); Sleep(50); printf("t| 6.客房統計 |n"); Sleep(50); printf("t| 7.客房資訊列印 |n"); Sleep(50); printf("t| 8.返回上一層 |n"); Sleep(50); printf("t| 9.退出(儲存) |n"); Sleep(50); printf("t--------------------------n"); printf("t請選擇您要進行的操作:n"); scanf("%d", &i); switch (i) { case 1:ADD(p); break; case 2:Seller(p); break; case 3:amend2(p); break; case 4:Inquire(p); break; case 5:statistics1(p); break; case 6:statistics3(p); break; case 7:statistics(p); break; case 8:menu1(p); break; case 9:saveHotelFile(p); exit(0); default:printf("t輸入不合法量n"); Sleep(1500); system("cls"); } } }
19)判斷是否為管理員
void menu22(struct hotel *p) { struct hotel *h = p->next; char a[20], b[20]; int i = 0; system("cls"); printf("請輸入賬戶:"); scanf("%s", a); getchar(); printf("請輸入密碼:"); scanf("%s", b); getchar(); while (h != NULL) { if ((strcmp(h->account, a) == 0) && (strcmp(h->possword, b) == 0) && h->might1 == 1) { i = 1; menu2(p); break; } h = h->next; } if (i == 0) { Sleep(1500); printf("密碼或賬號錯誤!n"); menu1(p); } }
20)頁面2
void menu2(struct hotel *p) { int c; system("cls"); while (1) { printf("t---------------------------n"); Sleep(50); printf("t **請選擇您要進行的操作** n"); Sleep(50); printf("t| 1.新增服務員 |n"); Sleep(50); printf("t| 2.修改賬戶或密碼 |n"); Sleep(50); printf("t| 3.刪除服務員 |n"); Sleep(50); printf("t| 4.統計服務員資訊 |n"); Sleep(50); printf("t| 5.返回上一層 |n"); Sleep(50); printf("t| 6.設定房間數量 |n"); Sleep(50); printf("t| 7.退出(儲存) |n"); printf("t---------------------------n"); printf("t請選擇您要進行的操作:n"); scanf("%d", &c); switch (c) { case 1:ADD1(p); break; case 2:amend(p); break; case 3:Remove(p); break; case 4:statistics2(p); break; case 5:menu1(p); break; case 6:set(p); break; case 7:saveHotelFile(p); exit(0); default:printf("請輸入合法量!n"); Sleep(1500); system("cls"); } } }
21)頁面1
void menu1(struct hotel *p) { int a; system("cls"); while (1) { printf("t_________________________n"); Sleep(50); printf("t| 歡迎進入酒店管理系統 |n"); Sleep(50); printf("t| **請選擇您的身份** |n"); Sleep(50); printf("t| 1.管理員 |n"); Sleep(50); printf("t| 2.服務員 |n"); Sleep(50); printf("t| 3.退出 |n"); Sleep(50); printf("t_________________________nn"); printf("t請選擇您要進行的操作:n"); scanf("%d", &a); switch (a) { case 1:menu22(p); break; case 2:menu33(p); break; case 3:saveHotelFile(p); exit(0); default:printf("請輸入合法量!n"); Sleep(1000); menu1(p); } } }
22)主函數
int main() { LinkList *p; p = (struct hotel *)malloc(sizeof(struct hotel)); p->next = NULL; readHotelput(p); menu1(p); /*saveHotelFile(p);*/ system("pause"); return 0; }
稍微改了一下,管理員初始賬號和密碼可以自定義,有了管理員的密碼和賬號之後才可以新增服務員哦。
這個程式碼使用傳首地址的方法,也可以通過設定靜態指標存首尾地址,這樣會更簡單。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45