目录一、课程设计题目........................................2二、运行环境(软、硬件环境)................2三、算法设计的思想....................................2四、算法的流程图........................................2五、算法设计分析........................................3六、源代码....................................................3七、运行结果分析........................................9八、收获及体会..........................................12一、课程设计题目宾馆客房管理系统。二、运行环境(软、硬件环境)中文版WindowsXP和MicrosoftVisualC++6.0。三、算法设计的思想1.定义宾馆客房管理信息结构体Hotel-Info。2.建立一个简易的选择菜单,通过输入选择执行的动作。3.主函数中,用switchcase实现选择功能,7项功能通过7个分支实现,每个对应一个函数。4.写函数,包括Insert-插入,Amend-修改,Demand-查询,Del-删除,Skim-浏览,Balance-结算。5.源程序可运行之后,将其数据、信息输入到文档中,使其能存档,可以写入文件和读出文件。6.对程序进行修改、完善。四、算法的流程图图1算法流程图写函数联系文件定义结构体Hotel-Info修改、完善建立选择菜单写主函数,实现选择功能开始结束五、算法设计分析1.这是一个小型的管理系统,使用结构体数组存储客房的信息。2.一般的管理系统都应该具备插入,修改,查询,删除,浏览等功能,通过使用一个简易菜单进行执行动作的选择。3.用函数实现模块化设计,调理清晰,使程序易读写。4.把程序与文件联系,使数据能存储在磁盘中,更具实用性。六、源代码1结构体structHotel_Info{charname[N],type[N],ID_card[N],in_time[N],leave_time[N];charidly[N];intprize,num,ad_payment;}Info[N];2主函数intmain(){FILE*fp;inti=0;fp=fopen(d:\\hotelmanagesystem.txt,r);//fscanf(fp,%d,&n);//for(i=0;in;i++)while(!feof(fp)){inta;fscanf(fp,%d,&a);fscanf(fp,客房号:%d,&Info[i].num);fscanf(fp,空闲情况:%s,Info[i].type);fscanf(fp,客房类型:%s,Info[i].idly);fscanf(fp,客房价格:%d,&Info[i].prize);fscanf(fp,客户姓名:%s,Info[i].name);fscanf(fp,身份证:%s,Info[i].ID_card);fscanf(fp,预付款:%d,&Info[i].ad_payment);fscanf(fp,入住时间:%s,Info[i].in_time);fscanf(fp,退房时间:%s,Info[i].leave_time);i++;}fclose(fp);n=i-1;intm;do{printf(\n);printf(***************************************************\n);printf(1————登记。\n);printf(2————修改。\n);printf(3————查询。\n);printf(4————删除。\n);printf(5————浏览。\n);printf(6————结算。\n);printf(7————退出。\n);printf(***************************************************\n);scanf(%d,&m);switch(m){case1:Insert(&count);break;case2:Amend(count);break;case3:Demand(count);break;case4:Del(&count);break;case5:Skim(count);break;case6:Balance(count);break;case7:break;default:printf(错误选择!请重选);break;}}while(m!=7);return0;}3函数voidInsert(int*count)//定义1————插入函数{inti=0,in_num;n=n+1;if(*count==N){printf(overflow!);return;}FILE*fp;fp=fopen(d:\\hotelmanagesystem.txt,a);fprintf(fp,%d,n);for(i=*count;iN;i++){printf(编号:);scanf(%d,&in_num);intflag=1;while(flag){flag=0;for(intii=0;ii=N;ii++)if(Info[ii].num==in_num){printf(已经有相同编号!\n);scanf(%d,&in_num);flag=1;break;}}Info[i].num=in_num;printf(客房号:);scanf(%d,&Info[i].num);fprintf(fp,客房号:%d,Info[i].num);printf(空闲情况:);scanf(%s,Info[i].idly);fprintf(fp,空闲情况:%s,Info[i].idly);printf(客房类型:);scanf(%s,Info[i].type);fprintf(fp,客房类型:%s,Info[i].type);printf(客房价格:);scanf(%d,&Info[i].prize);fprintf(fp,客房价格:%d,Info[i].prize);printf(客户姓名:);scanf(%s,Info[i].name);fprintf(fp,客户姓名:%s,Info[i].name);printf(身份证:);scanf(%s,Info[i].ID_card);fprintf(fp,身份证:%s,Info[i].ID_card);printf(预付款:);scanf(%d,&Info[i].ad_payment);fprintf(fp,预付款:%d,Info[i].ad_payment);printf(入住时间:);scanf(%s,Info[i].in_time);fprintf(fp,入住时间:%s,Info[i].in_time);printf(退房时间:);scanf(%s,Info[i].leave_time);fprintf(fp,退房时间:%s\n,Info[i].leave_time);break;}fclose(fp);(*count)++;}voidAmend(intcount)//定义2————修改函数{inti,num,payment,tag=0;;charidly[N],name[N],ID_card[N],in_time[N],leave_time[N];printf(请输入要修改数据的编号:);scanf(%d,&num);for(i=0;in;i++)if(Info[i].num==num){tag=1;printf(空闲情况:%s,Info[i].idly);printf(客人姓名:%s,Info[i].name);printf(身份证:%s,Info[i].ID_card);printf(入住时间:%s,Info[i].in_time);printf(退房时间:%s,Info[i].leave_time);printf(预付费用:%d\n,Info[i].ad_payment);printf(空闲情况:);scanf(%s,idly);printf(客人姓名:);scanf(%s,name);printf(身份证:);scanf(%s,ID_card);printf(入住时间:);scanf(%s,in_time);printf(退房时间:);scanf(%s,leave_time);printf(预付费用:);scanf(%d,&payment);strcpy(Info[i].idly,idly);strcpy(Info[i].name,name);strcpy(Info[i].ID_card,ID_card);strcpy(Info[i].in_time,in_time);strcpy(Info[i].leave_time,leave_time);Info[i].ad_payment=payment;FILE*fp;fp=fopen(d:\\hotelmanagesystem.txt,w);for(i=0;in;i++){fprintf(fp,%d,i+1);fprintf(fp,客房号:%d,Info[i].num);fprintf(fp,空闲情况:%s,Info[i].idly);fprintf(fp,客房类型:%s,Info[i].type);fprintf(fp,客房价格:%d,Info[i].prize);fprintf(fp,客户姓名:%s,Info[i].name);fprintf(fp,身份证:%s,Info[i].ID_card);fprintf(fp,预付款:%d,Info[i].ad_payment);fprintf(fp,入住时间:%s,Info[i].in_time);fprintf(fp,退房时间:%s\n,Info[i].leave_time);}fclose(fp);}if(!tag)printf(没有查询到可修改的数据!);}voidDemand(intcount)//定义3————查询函数{intin_num,i=0,flag=1;printf(请输入要查询的客房号:);scanf(%d,&in_num);inttag=0;for(i=0;in;i++)if(Info[i].num==in_num){tag=1;printf(客房号:%d\n,Info[i].num);printf(空闲情况:%s\n,Info[i].idly);printf(客房类型:%s\n,Info[i].type);printf(客房价格:%d\n,Info[i].prize);printf(客人姓名:%s\n,Info[i].name);printf(身份证:%s\n,Info[i].ID_card);printf(入住时间:%s\n,Info[i].in_time);printf(退房时间:%s\n,Info[i].leave_time);printf(预付费用:%d\n,Info[i].ad_payment);flag=0;break;}if(!tag){printf(没有查询到!);}}voidDel(int*count)//定义4————删除函数{inti,j,num,flag=1,tag=0;printf(请输入要删除的客房号信息:);scanf(%d,&num);for(i=0;i*count&&flag;i++){if(Info[i].num==num){for(j=i;j*count&&flag;j++)Info[j]=Info[j+1];Info[*count-1].ad_payment=0;strcpy(Info[*count-1].ID_card,);strcpy(Info[*count-1].