C语言旅馆信息管理程序.docx
- 文档编号:13992067
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:21
- 大小:53.15KB
C语言旅馆信息管理程序.docx
《C语言旅馆信息管理程序.docx》由会员分享,可在线阅读,更多相关《C语言旅馆信息管理程序.docx(21页珍藏版)》请在冰点文库上搜索。
C语言旅馆信息管理程序
C语言旅馆信息管理程序
externintGuestNumber;
#include"Structs.h"
intGuestNumber;
intGuestNumber=0;
voidmain(void)
{
LoadHotelInfo(rooms);
LoadGuestInfo();
LoadGARInfo();
handlemenu();
}
voidprintMenu()
{
printf(
"1查看旅店信息\n"
"2查看某一房间信息\n"
"3查看旅客信息\n"
"4查看某一旅客信息\n"
"5旅客入住\n"
"6旅客换房\n"
"7旅客退房\n"
"8退出\n"
);
}
voidhandlemenu()
{
inti=0;
do
{
printMenu();
printf("请选择:
");
scanf("%d",&i);
fflush(stdin);
switch(i)
{
case1:
ViewAllHotel();
printf("\n\n");
break;
case2:
ViewOneRoom();
printf("\n\n");
break;
case3:
}Room;
typedefstructguestandroom
{
charGuestID[20];
intGustInRoom;
charCheckInTime[30];
charCheckOutTime[30];
}GuestAndRoom;
typedefstructguestandroom
{
charName[10];
charsex[3];
charID[20];
}Guest;
voidmenu();
voidLoadHotelInfo(Roompararoom[FLOORNUMBER][]);
voidViewAllHotel();
voidSaveHotelInfo(Roompararoom[FLOORNUMBER][]);
voidLoadGuestInfo();
voidSaveGuestInfo();
voidviewOneGuest();
voidViewAllGuest();
voidAppendGuestInfo();
voidGuestCheckIn();
voidGuestChangeRoom();
voidGuestCheckOut();
voidChangeBookDay();
voidAppendGARInfo();
voidLoadGARInfo();
voidSabeGARInfo();
voidAppendGuestHistoryInfo(intGuesti,intGARj);
voidhandlemenu();
voidpeintMenu();
voidViewOneRoom();
intIsOldGuest();
intDelGuest(charID[]);
intCountGuest(Roompararoom[FLOORNUMBER][]);
intCheckRAGIndex(charID[]);
intCheckGreeRoom(charSex[]);
intFindOneGuest();
char*CheckRoomSex(intRoomNumber);
Roomrooms[FLORNUMBER][ROOMNUMBER];
Guestptoguest[55];
GuestAndRoomGAR[55];
#include"Structs.h"
externintGuestNumber;
voidAppendGARInfo()
{
FILE*fp;
if((fp=fopen("guestandroom.txt","a"))==NULL)
{
printf("文件读取失败");
exit(0);
}
fprintf(fp,"%d\t%s\t%s\n",GAR[GuestNumber-1].GuestInRoom,GAR[GuestNumber-1].CheckInTime);
fclose(fp);
}
voidLoadGARInfo()
{
FILE*fp;
intiCount=0;
chartemp[10]="";
if((fp=fopen("guestandroom.txt","r"))==NULL)
{
printf("文件读取失败!
决策管理\n");
exit(0);
}
fscanf(fpp,"%*s%*s%*s%*s",temp,temp,temp,temp);
for(iCount=0;iCount { fscanf(fp,"%d%s\t\t\t",&GAR[iCount].GuestInRoom,GAR[iCount].GuestID); fgets(GAR[iCount].CheckInTime,25,fp); strcpy(GAR[iCount].CheckOutTime,""); } fclose(fp); } voidSaveGARInfo() { FILE*fp; intiCount=0; if((fp=fopen("guestandroom.txt","w"))==NULL) { printf("文件读取失败"); exit(0); } fprintf(fp,"%s\t%s\t%s\t%s\n","房间","身份证","入住时间","退房时间"); for(iCount=0;iCount fprintf(fp,"%d\t\t%s\t\t\t%s\t\t\t%s\n",GAR[iCount].GuestInRoom,GAR[iCount].GuestID,GAR[iCount].CheckInTime,GAR[iCount].CheckOutTime); fclose(fp); } intCheckRAGIndex(charID[]) { intgindex=-1; intgarindex=-1; inticount; for(icount=0;icount { if(! strcmp(ID,ptoguest[icount].ID)) { gindex=icount; break; } } if(gindex! =-1) { for(icount=0;icount { if(! strcmp(ptoguest[gindex].ID,GAR[icount].GuestID)) { garindex=gindex; break; } } } returngarindex; } voidGuestCheckIn() { intNewRoomNumber; intNewGuestSexN; inti; intj; intCheckSex=0; time-tt; t=time(NULL); printf("请输入旅客姓名: \n"); scanf("%s",ptoguest[GuestNumber].Name); do { printf("请选择旅客性别: \n"); printf("1男\n2女\n"); scanf("%d",&NewGuestSexN); switch(NewGuestSexN); { case1: strcpy(ptoguest[GuestNumber].sex,"男"); break; case2: strcpy(ptoguest[GuestNumber].sex,"女"); break; } } while(NewGuestSexN! =1&&NewGuestSexN! =2); printf("请输入旅客身份证号码: \n"); scanf("%s",ptoguest[GuestNumber].ID); CheckSex=CheckGreeToom(ptoguest[GuestNumber].sex); if(! CheckSex) { strcpy(ptoguest[GuestNumber].ID,""); strcpy(ptoguest[GuestNumber].Name,""); strcpy(ptoguest[GuestNumber].sex,""); return; } printf("请输入旅客选择入住房间号码: \n"); scanf("%d",&NewRoomNumber); for(i=0;i<4;i++) { for(j=0;j<5;j++) { if(rooms[i][j].RoomNumber==NewRoomNumber) { rooms[i][j].CheckInNumber=rooms[i][j].CheckInNumber+1; } } } GuestNumber+=1; strcpy(GAR[GuestNumber-1].CheckInTime,ctime(&t)); printf("入住时间为%s\n",GAR[GuestNumber-1].CheckInTime); strcpy(GAR[GuestNumber-1].GuestID,ptoguest[GuestNumber-1].ID); GAR[GuestNumber-1].GuestInRoom=NewRoomNumber; AppendGuestInfo(); AppendGARInfo(); SaveHotelInfo(rooms); } voidGuestCheckOut() { floatdiscount=0,money=0; intDays=0,i; charID[20]=""; do { printf("请输入旅客身份证: "); scanf("%s",ID); for(i=0;i { if(! strcmp(ID,proguest[i].ID)) { break; } } if(i==GuestNumber) { printf("您输入的用户不存在! "); i=-1; } }while(i==-1); discount=(IsOldGuest(ID)<2)? 1: (IsOldGuest(ID)<=4)? 0.9: (IsOldGuest(ID)<=6)? 0.8: 0.7; printf("此为顾客此次为第次住店,打折率为: %f\n",IsOldGuest(ID)+1,discount); money=(float)DelGuest(ID); printf("请输入入住天数: \n"); scanf("%d",&Days); money=money*Days*discount; printf("应该付%f元\n",money); SaveGARInfo(); SaveGuestInfo(); SaveHotelInfo(rooms); } voidGuestChangeRoom() { charname[10]=""; charID[19]=""; intRAGindex=-1; intGuestIndex=-1; charchoice='\0'; intday=0; inti=0,j=0; intsum=0; introomnumber=0; printf("请输入旅客的姓名: \n"); gets(name); printf("请输入要换房的旅客的身份证: \n"); gets(ID); RAGindex=CheckRAGIndex(ID); for(i=0;i<=GuestNumber;i++) { if(! strcmp(ID,proguest[i].ID)) { printf("该旅客的信息如下\n""姓名\t性别\t入住的房间\t入住的时间\n"); printf("%s\t%s\t%d\t%s\n",ptoguest[i].Name,ptoguest[i].sex,GAR[RAGindex].GuestInRoom,GAR[RAGindex].CheckInTime); GuestIndex=i; break; } } printf("确认以上信息企业员工培训实战教程(47个ppt26个doc): choice=getchar(); if(choice=='N'||choice=='n') { return; } printf("请输入该旅客的入住天数: \n"); scanf("%d",&day); for(i=0;i { for(j=0;j { if(rooms[i][j].RoomNumber==GAR[RAGindex].GuestInRoom) { sum=day*rooms[i][j].RoomPrice; break; } } if(sum) { break; } } printf("请旅客缴纳前面的房款%d.\n",sum); CheckRAGIndex(ptoguest[GuestIndex].sex); printf("请输入要换入的房间号: \n"); scanf("%d",&roomnumber); if(roomnumber==GAR[RAGindex].GuestInRoom) { printf("不能换入原房间"); return; } GAR[RAGindex].GuestInRoom==roomnumber; rooms[i][j].CheckInNumber--; for(i=0;i for(j=0;j { if(rooms[i][j].RoomNumber==roomnumber) { rooms[i][j].CheckInNumber++; break; } } SaveGARInfo(); SaveGuestInfo(); SaveHotelInfo(rooms); } Guests.c: #include"Structs.h" externintGuestNumber; voidAppendGuestInfo() { FILE*fp; if((fp=fopen("guest.txt","a"))==NULL) { printf("文件读取失败"); exit(0); } fprintf(fp,"%s\t%s\t%s\t\n",ptoguest[GuestNumber-1].Name,ptoguest[GuestNumber-1].sex,ptoguest[GuestNumber-1].ID); fclose(fp); } intCountGuest(Roompararoom[FLOORNUMBER][ROOMNUMBER]) { intiFloor=0; intjRoom=0; intsum=0; for(iFloor=0;iFloor for(jRoom=0;jRoom { if(pararoom[iFloor][jRoom].CheckInNumber>0) { sum+=pararoom[iFloor][jRoom].CheckInNumber; } } returnsum; } voidLoadGuestInfo() { FILE*fp; intiCount=0; chartemp[10]=""; if((fp=fopen("guest.txt","r"))==NULL) { printf("文件读取失败! \n"); exit(0); } GuestNumber=CountGuest(rooms); fscanf(fp,"%*s%*s%*s",temp,temp,temp); for(iCount=0;iCount { fscanf(fp,"%s\t%s\t%s",ptoguest[iCount].Name,ptoguest[iCount].sex,ptoguest[iCount].ID); } fclose(fp); } voidSaveGuestInfo() { FILE*fp; intiCount=0; if((fp=fopen("guest.txt","w"))==NULL) { printf("文件读取失败"); exit(0); } fprintf(fp,"%s\t%s\t%s\n","姓名","性别","身份证"); for(iCount=0;iCount fscanf(fp,"%s\t%s\t%s\n",ptoguest[iCount].Name,ptoguest[iCount].sex,ptoguest[iCount].ID); fclose(fp); } voidViewOneGuest() { inti=FindOneGuest(); intGARNUM; if(i! =-1) { GARNUM=CheckRAGIndex(ptoguest[i].ID); printf("姓名\t性别\t身份证\t\t房间\t入住时间\n"); printf("%s\t%s\t%s\t\t%d\t%s\t\n",ptoguest[i].Name,ptoguest[i].sex,ptoguest[i].ID,GAR[RAGindex].GuestInRoom,GAR[RAGindex].CheckInTime); return; } else { printf("没有此用户信息! \n"); return; } } intFindOneGuest() { inti; charGuestID[25]; printf("\n请输入旅客的省份证: \n"); scanf("%s",GuestID); fflush(stdin); for(i=0;i { if(! strcmp(GuestID,ptoguest[i].ID)) { rerurni; } } printf("没有此名顾客! "); return-1; } voidViewAllGuest() { inti=0; intGARNUM; printf("--------------所有旅客信息--------------\n"); printf("姓名\t性别\t身份证\t房间\t入住时间\n"); for(i=0;i { GARNUM=CheckTAGIndex(ptoguest[i].ID); printf("%s\t%s\t%s\t%d\t%s\t\n",ptoguest[i].Name,ptoguest[i].sex,ptoguest[i].ID,GAR[RAGindex].GuestInRoom,GAR[RAGindex].CheckInTime); } printf("打印结束! \n"); } intISOldGuest(charNWEID[]) { FILE*fp; chartemp[20]=""; charname[10]=""; charID[20]=""; intRoom=0; charCheckInTime[30]=""; charCheckOutTime[30]=""; inta=0; if((fp=fopen("guesthistory.txt","r"))==NULL) { printf("文件读取失败"); exit(0); } fscanf(fp,"%*s%*s%*s%*s%*s",temp,temp,temp,temp,temp); while(! feof(fp)) { fscanf(fp,"%s%s%d%s%s",name,ID,&Room,CheckInTime,CheckOutTime); if(! strcmp(NewID,ID)) { a++; } } returna; } voidAppendGuestHistoryInfo(intGuesti,intGARj) { FILE*fp; if((fp=fopen("guesthistory.txt","a"))==NULL) { printf("文件读取失败"); exit(0); } fprintf(fp,"%s\t%s\t%d\t\t\t%s\t\t\t%s\n",ptoguest[Guesti].Name,ptoguest[Guesti].ID,GAR[GARj].GustInRoom,GAR[GARj].CheckInTime,GAR[GARj].CheckOutTime); } voidViewOldGuest() { FILE*fp; charname[10]; intID; intRoom; charCheckInTime[30]; charCheckOutTime[30]; if((fp=fopen("guesthistory.txt","r"))==NULL) { printf("文件读取失败"); exit(0); } printf("姓名\t\t身份证\t\t房间号\t\t入住时间\t\t退房时间\t\t\n"); do { fscanf(fp,"%s%d%d%s%s\n",name,&ID,&Room,C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 旅馆 信息管理 程序