1、C语言旅馆信息管理程序 extern int GuestNumber; #include "Structs.h" int GuestNumber; int GuestNumber=0; void main(void) { LoadHotelInfo(rooms); LoadGuestInfo(); LoadGARInfo(); handlemenu(); } void printMenu() { printf( "1 查看旅店信息\n" "2 查看某一房间信息\n" "3 查看旅客信息\n" "4 查看某一旅客信息\n"
2、"5 旅客入住\n" "6 旅客换房\n" "7 旅客退房\n" "8 退出\n" ); } void handlemenu() { int i=0; do { printMenu(); printf("请选择:"); scanf("%d",&i); fflush(stdin); switch(i) { case 1: ViewAllHotel(); printf("\n\n"); break; case 2: ViewOneRoom(); printf("\n\
3、n"); break; case 3: ViewAllGuest(); printf("\n\n"); break; case 4: ViewOneGuest(); printf("\n\n"); break; case 5: GuestCheckIn(); printf("\n\n"); break; case 6: GuestChangeRoom(); printf("\n\n"); break; case 7: GuestCheckOut
4、);
printf("\n\n");
break;
case 8:
SabeGARInfo();
SabeGuestInfo();
SaveHotelInfo(rooms);
exit(0);
}
}
while(1);
}
#include
5、enum RoomType{Single=1,Double=2,Triangle=3}RoomType; typedef struct room { int RoomNumber; RoomType roomtype; int CheckInNumber; int RoomPrice; }Room; typedef struct guestandroom { char GuestID[20]; int GustInRoom; char CheckInTime[30]; char CheckOutTime[30]; }GuestAndRoom; ty
6、pedef struct guestandroom { charName[10]; char sex[3]; char ID[20]; }Guest; void menu(); void LoadHotelInfo(Room pararoom[FLOORNUMBER][]); void ViewAllHotel(); void SaveHotelInfo(Room pararoom[FLOORNUMBER][]); void LoadGuestInfo(); void SaveGuestInfo(); void viewOneGuest(); void V
7、iewAllGuest(); void AppendGuestInfo(); void GuestCheckIn(); void GuestChangeRoom(); void GuestCheckOut(); void ChangeBookDay(); void AppendGARInfo(); void LoadGARInfo(); void SabeGARInfo(); void AppendGuestHistoryInfo(int Guesti,int GARj); void handlemenu(); void peintMenu(); void ViewOn
8、eRoom(); int IsOldGuest(); int DelGuest(char ID[]); int CountGuest(Room pararoom[FLOORNUMBER][]); int CheckRAGIndex(char ID[]); int CheckGreeRoom(char Sex[]); int FindOneGuest(); char *CheckRoomSex(int RoomNumber); Room rooms[FLORNUMBER][ROOMNUMBER]; Guest ptoguest[55]; GuestAndRoom GAR[55
9、]; #include "Structs.h" extern int GuestNumber; void AppendGARInfo() { 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); } void LoadGARInf
10、o()
{
FILE *fp;
int iCount=0;
char temp[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 11、GAR[iCount].GuestID);
fgets(GAR[iCount].CheckInTime,25,fp);
strcpy(GAR[iCount].CheckOutTime,"");
}
fclose(fp);
}
void SaveGARInfo()
{
FILE *fp;
int iCount=0;
if((fp=fopen("guestandroom.txt","w"))==NULL)
{
printf("文件读取失败");
exit(0);
}
fprintf(fp,"%s\t%s\t%s\t%s\n","房间" 12、"身份证","入住时间","退房时间");
for(iCount=0;iCount 13、unt;
for(icount=0;icount 14、ak;
}
}
}
return garindex;
}
void GuestCheckIn()
{
int NewRoomNumber;
int NewGuestSexN;
int i;
int j;
int CheckSex=0;
time-t t;
t=time(NULL);
printf("请输入旅客姓名:\n");
scanf("%s",ptoguest[GuestNumber].Name);
do
{
printf("请选择旅客性别:\n");
printf("1 男\n2 女\n");
s 15、canf("%d",&NewGuestSexN);
switch(NewGuestSexN);
{
case 1:
strcpy(ptoguest[GuestNumber].sex,"男");
break;
case 2:
strcpy(ptoguest[GuestNumber].sex,"女");
break;
}
}
while(NewGuestSexN!=1&&NewGuestSexN!=2);
printf("请输入旅客身份证号码:\n");
scanf("%s",ptoguest[GuestNumber]. 16、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++) 17、
{
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[GuestN 18、umber-1].GuestID,ptoguest[GuestNumber-1].ID);
GAR[GuestNumber-1].GuestInRoom=NewRoomNumber;
AppendGuestInfo();
AppendGARInfo();
SaveHotelInfo(rooms);
}
void GuestCheckOut()
{
float discount=0,money=0;
int Days=0,i;
char ID[20]="";
do
{
printf("请输入旅客身份证:");
scanf("%s",ID); 19、
for(i=0;i 20、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);
}
void GuestChangeRoom()
{
char name[10]="";
char ID[19]="";
int RA 21、Gindex=-1;
int GuestIndex=-1;
char choice='\0';
int day=0;
int i=0,j=0;
int sum=0;
int roomnumber=0;
printf("请输入旅客的姓名:\n");
gets(name);
printf("请输入要换房的旅客的身份证:\n");
gets(ID);
RAGindex=CheckRAGIndex(ID);
for(i=0;i<=GuestNumber;i++)
{
if(!strcmp(ID,proguest[i].ID))
{
22、 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个ppt 26个doc):
choice=getchar();
if(choice=='N'||choice=='n')
{
23、
return;
}
printf("请输入该旅客的入住天数:\n");
scanf("%d",&day);
for(i=0;i 24、旅客缴纳前面的房款%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 25、i++)
for(j=0;j 26、LE *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);
}
int CountGuest(Room pararoom[FLOORNUMBER][ROOMNUMBER])
{
int iFloor=0;
i 27、nt jRoom=0;
int sum=0;
for(iFloor=0;iFloor 28、
char temp[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 29、guest[iCount].ID);
}
fclose(fp);
}
void SaveGuestInfo()
{
FILE *fp;
int iCount=0;
if((fp=fopen("guest.txt","w"))==NULL)
{
printf("文件读取失败");
exit(0);
}
fprintf(fp,"%s\t%s\t%s\n","姓名","性别","身份证");
for(iCount=0;iCount 30、[iCount].Name,ptoguest[iCount].sex,ptoguest[iCount].ID);
fclose(fp);
}
void ViewOneGuest()
{
int i=FindOneGuest();
int GARNUM;
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].s 31、ex,ptoguest[i].ID,GAR[RAGindex].GuestInRoom,GAR[RAGindex].CheckInTime);
return;
}
else
{
printf("没有此用户信息!\n");
return;
}
}
int FindOneGuest()
{
int i;
char GuestID[25];
printf("\n请输入旅客的省份证:\n");
scanf("%s",GuestID);
fflush(stdin);
for(i=0;i 32、strcmp(GuestID,ptoguest[i].ID))
{
rerurni;
}
}
printf("没有此名顾客!");
return -1;
}
void ViewAllGuest()
{
int i=0;
int GARNUM;
printf("--------------所有旅客信息--------------\n");
printf("姓名\t性别\t身份证\t房间\t入住时间\n");
for(i=0;i 33、].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");
}
int ISOldGuest(char NWEID[])
{
FILE *fp;
char temp[20]="";
char name[10]="";
char ID[20]="";
int Room=0;
char 34、 CheckInTime[30]="";
char CheckOutTime[30]="";
int a=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); 35、
if(!strcmp(NewID,ID))
{
a++;
}
}
return a;
}
void AppendGuestHistoryInfo(int Guesti,int GARj)
{
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,ptogues 36、t[Guesti].ID,GAR[GARj].GustInRoom,GAR[GARj].CheckInTime,GAR[GARj].CheckOutTime);
}
void ViewOldGuest()
{
FILE *fp;
char name[10];
int ID;
int Room;
char CheckInTime[30];
char CheckOutTime[30];
if((fp=fopen("guesthistory.txt","r"))==NULL)
{
printf("文件读取失败");
exit(0);
}
pr 37、intf("姓名\t\t身份证\t\t房间号\t\t入住时间\t\t退房时间\t\t\n");
do
{
fscanf(fp,"%s %d %d %s%s\n",name,&ID,&Room,CheckInTime,CheckOutTime);
printf("%s\t\t %d\t\t %d\t\t%s\t\t %s\t\t\n",name,ID,Room,CheckInTime,CheckOutTime)
}
while(!feof(fp));
}
int DelGuest(char ID[])
{
int i=0,j=0,GARj=0,roomi=0 38、roomj=0;
int money=0;
int out=1;
time_t t;
t=time(NULL);
for(i=0;i 39、\n",GAR[GARj].CheckOutTime);
for(roomi=0;roomi<4&&out;roomi++)
{
for(roomj=0;roomj<5;roomj++)
{
if(GAR[GARj].GustInRoom==rooms[roomi][roomj].RoomNumber)
{
money=rooms[roomi][roomj].RoomPrice;
rooms[roomi][roomj].CheckInNumber=rooms[roomi][roomj].Ch 40、eckInNumber-1;
SaveHotelInfo(rooms);
out=0;
break;
}
}
}
AppendGuestHistoryInfo(i,GARj);
GuestNumber=GuestNumber-1;
for(j=i;j 41、]=GAR[j+1];
}
break;
}
}
return money;
}
Hotels.c:
#include"Structs.h"
extern int GuestNumber;
char *CheckRoomSex(int RoomNumber)
{
int i,j;
for(i=0;i 42、strcmp(GAR[i].GuestID,ptoguest[i].ID))
return ptoguest[j].sex;
}
break;
}
}
return NULL;
}
int CheckFreeRoom(char Sex[])
{
int i,j,find=0;
char roomsex[3];
printf("能入住的房间:\n");
for(i=0;i<4;i++)
{
for(j=0;i<5;j++)
{
if(!rooms[i][j].CheckInNumber)
43、{
printf("%d\t",rooms[i][j].RoomNumber);
find=1;
}
else
{
strcpy(roomsex,CheckRoomSex(rooms[i][j].RoomNumber));
if((rooms[i][j].roomtype>rooms[i][j].CheckInNumber&&(strcmp(Sex,roomsex)==0)))
{
printf("%d\t",rooms[i][j].RoomNumber);
find=1;
}
44、 else
{
printf("\t");
}
}
}
printf("\n");
}
if(!find)
{
printf("没有合适房间!\n房间已满。\n");
}
return find;
}
void LoadHotelInfo(Roominnerroom[FLOORNUMBER][ROOMNUMBER])
{
FILE *fp;
int iFloor=0;
int jRoom=0;
char temp[9];
if((fp=fopen("hotel.txt","r"))==NUL 45、L)
{
printf("文件读取失败");
exit(0);
}
fscanf(fp,"%*s %*s %*s%*s\n",temp,temp,temp,temp);
for(iFloor=0;iFloor 46、innerroom[iFloor][jRoom].CheckInNumber,
&innerroom[iFloor][jRoom].RoomPrice);
}
fclose(fp);
}
void ViewAlllHotel()
{
int i,j;
printf("房间号码\t房间类型\t入住天数\t房间价格\t\n");
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
printf("%d\t\t",rooms[i][j].RoomNumber);
switch(rooms[i][j].ro 47、omtype)
{
case 1:
printf("单人房\t\t");break;
case2:
printf("双人房\t\t");break;
case3:
printf("三人房\t\t");break;
}
printf("%d\t\t%d\t\t\n",rooms[i][j].CheckInNumber,rooms[i][j].RoomPrice);
}
printf("\n");
}
}
void SaveHotelInfo(Room pararoom[FLOORNUMBER][ 48、ROOMNUMBER])
{
FILE *fp;
int iFloor=0;
int jRoom=0;
if((fp=fopen("hotel.txt","w"))==NULL)
{
printf("文件读取失败");
exit(0);
}
fprintf("房间号码\t房间类型\t入住天数\t房间价格\t\n");
for(iFloor=0;iFloor 49、t\t%d\t\t\t%d\t\n",pararoom[iFloor][jRoom].RoomNumber,
pararoom[iFloor][jRoom].roomtype,
pararoom[iFloor][jRoom].CheckInNumber,
pararoom[iFloor][jRoom].RoomPrice);
}
fprintf(fp,"\n");
}
fclose(fp);
}
void ViewOneRoom()
{
int RoomNum,i,j,IsNull=0;
printf("请输入房间号码:");
scanf("%d",&RoomNum);
for(i=0;i






