用C语言数组写的简易客房管理系统
生活随笔
收集整理的這篇文章主要介紹了
用C语言数组写的简易客房管理系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡易房客管理系統,用數組寫的,學籍管理系統也可以參考。
大學C語言小學期作業。
有不對的謝謝大家指正,有什么問題可以評論。
開始先定義密碼,賬號,結構體以及各個函數名。
賬號和密碼可以自定義。## C語言,管理系統
主函數和寫入文件操作
int main(){Getfile();Iput();}void Getfile(){Person x;num = 0;FILE *fp = fopen("1.txt", "at+");if (!fp){printf("打開文件失敗\n");exit(0);}fscanf(fp, "%s%s%s%d%d%d%s", x.numh, x.name, x.Intime, &x.Data, &x.Deposit, &x.Rent, x.houset);while (strcmp(x.numh, "END") != 0){person[num++] = x;fscanf(fp, "%s%s%s%d%d%d%s", x.numh, x.name, x.Intime, &x.Data, &x.Deposit, &x.Rent, x.houset);}fclose(fp);}輸入賬號和密碼
void Iput(){char a[20],b[20];printf("請輸入賬戶:");scanf("%s",a);getchar();printf("請輸入密碼:");scanf("%s",b);getchar();if(login(a,b)){printf("賬號密碼正確\n");meun(); }else{printf("賬號或密碼錯誤\n");Iput();} } int login(char a[],char b[]) {int flag=0;if((strcmp(a,Name)==0)&& (strcmp(b,Key)==0))flag=1;return flag; }菜單顯示
void meun(){int i;while (1){printf("\t--------------------------\n"); printf("\t **歡迎登陸酒店管理系統** \n");printf("\t| 1.登記入住 |\n"); printf("\t| 2.查詢客房信息 |\n"); printf("\t| 3.修改押金數目 |\n"); printf("\t| 4.刪除房客信息 |\n"); printf("\t| 5.房間入住數量排序 |\n"); printf("\t| 6.所有住房信息 |\n");printf("\t| 7.退出(保存) |\n"); printf("\t--------------------------\n");printf("\t請選擇您要進行的操作:\n");scanf("%d", &i);switch(i) {case 1:Goin(); break;case 2:chaxun(); break;case 3:xiugai(); break;case 4:deleteroom(); break;case 5:paixu(); break;case 6:print(); break;case 7:keep(); break;}}}對客人信息進行輸入
void Goin(){Person x;printf("請輸入房間號:\n");scanf("%s",x.numh);printf("請輸入姓名:\n");scanf("%s",x.name);printf("請輸入入住時間:\n");scanf("%s",x.Intime);printf("請輸入入住時長:\n");scanf("%d",&x.Data);printf("請輸入押金:\n");scanf("%d",&x.Deposit);printf("請輸入租金:\n");scanf("%d",&x.Rent);printf("請輸入房間類型:\n");scanf("%s",x.houset);person[num] = x;num++;}客人信息查詢
void chaxun(){int i=0,number;char a[10];printf("請輸入查詢的姓名:\n");scanf("%s",a);for (i = 0; i < num; i++){if (strcmp(person[i].name, a) == 0){break;}}if (i == num){printf("沒有該住客\n");}elseprintf("%s %s %s %d %d %d %s\n", person[i].numh, person[i].name, person[i].Intime, person[i].Data, person[i].Deposit, person[i].Rent, person[i].houset);printf("該住客結算金額:\n");number = person[i].Rent*person[i].Data;printf("%d\n", number);}客人信息修改
void xiugai(){int i,b;char a[10];printf("請輸入要修改的房間號:\n");scanf("%s",a);for ( i = 0; i < num; i++){if (strcmp(person[i].numh,a ) == 0){break;}}if (i == num){printf("沒有該住客");}elseprintf("請輸入押金;\n");scanf("%d",&b);person[i].Deposit = b;}客人信息刪除
void deleteroom(){int i;char number[10];printf("請輸入你想刪除的房間號:\n");scanf("%s",number);for (i = 0; i < num; i++){if (strcmp(person[i].numh, number) == 0){break;}}if (i == num){printf("沒有該住客");}elseperson[i] = person[i + 1];}客房類型數量統計和排序,這里我只是統計和排序,沒有相對應,有大佬可以改一下,并且循環可以寫一起。
void paixu(){int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0,k=0;int j[9];for (k = 0; k < num; k++){if (strcmp(person[k].houset, "經濟單人間") == 0){a++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "經濟雙人間") == 0){b++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "經濟三人間") == 0){c++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "標準單人間") == 0){d++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "標準雙人間") == 0){e++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "標準三人間") == 0){f++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪華單人間") == 0){g++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪華雙人間") == 0){h++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪華三人間") == 0){i++;}}printf("經濟單人間的數量為:%d\n", a);printf("經濟雙人間的數量為:%d\n", b);printf("經濟三人間的數量為:%d\n", c);printf("標準單人間的數量為:%d\n", d);printf("標準雙人間的數量為:%d\n", e);printf("標準三人間的數量為:%d\n", f);printf("標準單人間的數量為:%d\n", g);printf("標準雙人間的數量為:%d\n", h);printf("標準三人間的數量為:%d\n", i);j[0] = a; j[1] = b; j[2] = c; j[3] = d; j[4] = e; j[5] = f; j[6] = g; j[7] = h; j[8] = i;int m, n, y,t;for (m = 0; m < 9; m++){y = m;for (n = m + 1; n < 9; n++){if (j[n] > j[y]){y = n;}}if (y != n){t = j[m];j[m] = j[y];j[y] = t;}}printf("由大到小排序后:\n");for (m= 0; m < 9; m++){printf(" %d ",j[m]);}}對客人信息進行顯示和保存
void print(){for (int i = 0; i < num; i++){printf("%s %s %s %d %d %d %s\n", person[i].numh, person[i].name, person[i].Intime, person[i].Data, person[i].Deposit, person[i].Rent, person[i].houset);}}void keep(){FILE *fp=fopen("1.txt","wt");if (fp == NULL) exit(0);for(int i=0;i<num;i++){fprintf(fp,"%s %s %s %d %d %d %s\n",person[i].numh,person[i].name,person[i].Intime,person[i].Data,person[i].Deposit,person[i].Rent,person[i].houset);}fprintf(fp,"END");fclose(fp);}總結
以上是生活随笔為你收集整理的用C语言数组写的简易客房管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教师职业生涯随笔——关键实习事件
- 下一篇: 虹科PagerDuty为澳大利亚零售巨头