=0;i++)fprintf(fp,"%s%s%d%s%d%d%d%d%s%d%s\n",Room[i].name,Room[i].sex,Room[i].age,Room[i].ID_card,Room[i].year,Room[i].month,Room[i].date,Room[i].Room_ID,Room[i].Tel,Room[i].Price,Room[i].Sign);
//按照规定的格式保存客户信息
fclose(fp);
}
2.2.2读取函数
将文本文件客户信息.txt中的客户个人信息读取出来,从而实现统计、查询以及修改的功能。
voidread(){FILE*fp;inti;
if((fp=fopen("客户信息.txt","r"))==NULL)
{printf("\nCannotopenfile\n");
return;}
for(i=0;!
feof(fp);i++)//!
feof(fp)文件读到结束时读取停止fscanf(fp,"%s%s%d%s%d%d%d%d%s%d%s\n",&Room[i].name,&Room[i].sex,&Room[i].age,&Room[i].ID_card,&Room[i].year,&Room[i].month,&Room[i].date,&Room[i].Room_ID,&Room[i].Tel,&Room[i].Price,&Room[i].Sign,&now_no);
fclose(fp);}
2.3功能模块设计
2.3.1注册模块
用于完成客户个人信息的输入功能并保存。
本函数的功能为登记用户及房间信息,包括、性别、年龄、、年份、月份、日期、房间及房间价格。
系统依次分配房间号并定义此房间为非空。
voidinput()
inti=0,right,num;
charas,sex[10];
printf("顾客人数:
");
scanf("%d人",&num);//输入顾客的人数
do
{
printf("\t\t\t\t1.录入宾客信息\n输入第%d宾客的信息\n",i+1);
printf("\n输入宾客:
");
gets(Room[i].name);
do
{
printf("\n输入宾客性别:
");
scanf("%s",&sex);
if(strcmp(sex,"男")!
=0&&strcmp(sex,"女")!
=0)/*判断输入的字符
是否为“男”或“女”,否则输出“输入有误!
”*/
{printf("输入有误!
");
right=1;
getchar();}
else
right=0;
strcpy(Room[i].sex,sex);
}
while(right==1);
printf("\n输入宾客的年龄:
");
scanf("%d",&Room[i].age);
printf("\n输入宾客号:
");
scanf("%s",&Room[i].ID_card);
printf("\n输入宾客入住时间:
");
scanf("%d",&Room[i].year);
scanf("%d",&Room[i].month);
scanf("%d",&Room[i].date);
printf("\n输入宾客房间号:
");scanf("%d",&Room[i].Room_ID);
printf("\n输入宾客房间:
");scanf("%s",&Room[i].Tel);
printf("\n输入宾客房间价格:
");scanf("%d",&Room[i].Price);
printf("\n输入该房间是否入住(yes/no):
");scanf("%s",&Room[i].Sign);//输入客户的个人信息printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?
(Y/N)");//判断是否继续输入as=getch();
system("cls");
save();
}while(as!
='n'&&as!
='N');
system("cls");//清屏
}
2.3.2统计模块用于统计总共入住的人数,并且可以统计某一天住了多少人以及收入多少voidrecord()
{
inti,j,y,m,d,s=0,money=0;
charas;
intn=0;
read();
do
{printf("\n客房入住总数:
");fflush(stdin);
for(j=0;Room[j].age!
=0;j++)
n=n+1;
printf("%d间\n",n);//统计一共入住的人数
printf("输入查询日期:
");//按照日期统计入住人数及收入
scanf("%d%d%d",&y,&m,&d);
fflush(stdin);
for(i=0;i<=NUM;i++)if(((Room[i].year==y)&&(Room[i].month==m)&&(Room[i].date==d)))
//判断输入的日期与数据库中的哪些日期相同{s=s+1;
money=money+Room[i].Price;
printf("\n:
%s\n性别:
%s\n年龄:
%d\n号:
%s\n入住时间:
%d年%d月%d日\n房间:
%d\n:
%s\n价格:
%d\n是否入
住:
%s\n",Room[i].name,Room[i].sex,Room[i].age,Room[i].ID_card,Room[i].year,Room[i].month,Room[i].date,Room[i].Room_ID,Room[i].Tel,Room[i].Price,Room[i].Sign);
}
printf("\n该天客房入住总数:
%d人\n",s);
printf("该天共收入%d元\n",money);
printf("\t按任意键返回主菜单.");
as=getch();
system("cls");
}
while(!
as);system("cls");
}
2.3.3查询模块本函数的功能为输出查询功能菜单选项,包括根据房间号查询、根据查询系统根据输入的选项执行相应的函数。
voidfind()
{
inti,a,b;charstr[20],as;read();
do
{
printf("\n按以下条件查询:
1.2.房间号3.返回主菜单\n请选择:
");scanf("%d",&a);
switch(a)
{
case1:
do
{printf("输入要查询的宾客:
");
fflush(stdin);
gets(str);
for(i=0;iif(!
strcmp(Room[i].name,str))
printf("\n:
%s\n性别:
%s\n年龄:
%d\n号:
%s\n入住时间:
%d年%d月%d日\n房间:
%d\n房间:
%s\n房间价格:
%d\n该房间是否入住(yes/no)%s\n\n",Room[i].name,Room[i].sex,Room[i].age,
Room[i].ID_card,Room[i].year,Room[i].month,Room[i].date,Room[i].Room_ID,Room[i].Tel,Room[i].Price,Room[i].Sign);
else;
}
while(!
as);
break;
case2:
do
{
printf("输入要查询的房间号:
");
scanf("%d",&b);
for(i=0;iif(Room[i].Room_ID==b)
printf("\n:
%s\n性别:
%s\n年龄:
%d\n号:
%s\n入住时间:
%d年%d月%d日\n房间:
%d\n房间:
%s\n房间价格:
%d\n该房间是否入住
(yes/no)%s