您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 客房管理系统—C语言
三峡大学理学院2010级电子信息科学与技术专业《高级语言程序设计》课程设计说明书设计题目:客房管理系统班级:20101421学号:2010142139姓名:徐晶完成日期:2011-11-23目录一、设计任务……………………(2)二、需求分析……………………(2)三、系统模块图…………………(2)四、模块说明……………………(3)五、用户说明…………………(18)六、测试结果…………………(18)七、设计小结…………………(19)八、参考目录…………………(19)一、设计任务:客房管理系统实现用户登记功能,要提供结构体的输入操作,实现统计功能,要提供相应的统计操作,实现查询功能,要提供查找操作,实现修改功能,要提供修改操作;另外还有提供键盘式菜单实现功能选择。二、需求分析:1.总体分析:整个客房管理系统被设计为用户登记模块,统计模块,查询模块,和修改模块。2.详细分析:(1)用户登记模块提示用户输入自身信息以及客房信息,把数据存入Room数组中。(2)统计模块18设置计数器,顺序遍历ROOM数组来实现,实现对房客数、某一天的房客数的统计。(3)查询模块通过基本查找算法查找Room数组,可以按房间号、价格、房间标记、用户姓名、居民身份证查询。(4)修改模块采用基本查找算法在数组找到要修改的数据。三、系统模块图根据需求分析,可以对这个系统的设计分为以下几个模块:客户信息管理系统数据输入数据统计数据查询数据修改数据删除四、模块说明:一个较大的C语言程序不外乎由多个函数组成,本程序也并不例外。现就本程序中涉及的各个函数的代码和功能分别进行说明。1、主函数部分:程序:voidmain()/**主函数**/{intn,w;menu();do{printf(\t\tPleasechoiceyounumber(1-5));scanf(%d,&n);if(n1||n5)w=1,getchar();elsew=0;}while(w==1);switch(n){case1:regist();break;case2:stati();break;case3:search();break;case4:modify();break;case5:exit(0);}}voidmenu()/**菜单函数**/{printf(\t\t\t************客房管理系统************\n);puts(\n\t\t\t(1).登记\n);puts(\t\t\t(2).统计\n);puts(\t\t\t(3).查询\n);puts(\t\t\t(4).修改\n);puts(\t\t\t(5).退出\n);puts(\n\t***********************************************************\n);}voidreturn_confirm(void){printf(\n按任意键返回……\n);getchar();}#includestdio.h#includestring.h//在使用中要用到的字符串都包含在本文件中#includestdlib.h#includemath.h#defineNUM50structClient{charName[20];intSex;//famale0,male1;intAge;charID_card[20];/*居民身份证*/intyear;intmonth;intdate;/*住店时间*/};structHotel{charRoom_ID[10];/*房间号*/charTel[10];intPrice;/*住房单价*/intSign;structClientClient_list;/*实现两个结构体的嵌套*/}Room[NUM];注:menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。并用结构体来存放客户信息。2、各功能模块函数部分:(1)输入模块:[需求分析]对信息进行输入程序:voidregist()/**登记函数**/{voidprintf_one(inti);voidsave(intn);voidprintf_back();intload();voidprintf_face();inti,n,c;n=load();do{for(i=0;in;i++){if(Room[i].Sign==1){printf(Room[%s]hasbeenfull\n,Room[i].Room_ID);}else{puts(\nregisternewrecord\n);printf(\nRoom[%s]isempty,Room[i].Room_ID);printf(\npleaseenterRoom[%s]'sinformation,Room[i].Room_ID);puts(\npleaseentercustomer'sName\n);scanf(%15s,&Room[i].Client_list.Name);printf(\npleaseenterSexandAge\n);scanf(%3d%3d,&Room[i].Client_list.Sex,&Room[i].Client_list.Age);puts(\npleaseentercustomer'sID_card\n);scanf(%20s,&Room[i].Client_list.ID_card);printf(\npleaseenteryearandmonthanddate\n);scanf(%5d%5d%5d,&Room[i].Client_list.year,&Room[i].Client_list.month,&Room[i].Client_list.date);Room[i].Sign=1;//把房间标记为已满printf_face();printf_one(i);printf(\n\nAreyousure?\n\n\t1.sure\t2.cancleandagain\t3.Backwithoutsave[]\b\b);scanf(%d,&c);if(c==1){save(n);printf_back();}elseif(c!=2)menu();}}}while(c==2);return_confirm();}intload(){FILE*fp;inti;if((fp=fopen(Hotel.txt,r))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;!feof(fp);i++)fscanf(fp,\n%s%s%d%d%s%d%d%s%d%d%d\n,&Room[i].Room_ID,&Room[i].Tel,&Room[i].Price,&Room[i].Sign,&Room[i].Client_list.Name,&Room[i].Client_list.Sex,&Room[i].Client_list.Age,&Room[i].Client_list.ID_card,&Room[i].Client_list.year,&Room[i].Client_list.month,&Room[i].Client_list.date);fclose(fp);return(i);}voidprintf_one(inti){printf(\n%-5s%5s%5d%d,Room[i].Room_ID,Room[i].Tel,Room[i].Price,Room[i].Sign);printf(\n%-s%5d%5d%10s,Room[i].Client_list.Name,Room[i].Client_list.Sex,Room[i].Client_list.Age,Room[i].Client_list.ID_card);printf(\n%-5d%5d%5d\n,Room[i].Client_list.year,Room[i].Client_list.month,Room[i].Client_list.date);}voidsave(intn){FILE*fp;inti;if((fp=fopen(Hotel.txt,w))==NULL){printf(\nCannotopenfile\n);exit(0);}for(i=0;in;i++)fprintf(fp,%-5s%-15s%-5d%-5d%-15s%-5d%-5d%-20s%-5d%-5d%-5d\n,Room[i].Room_ID,Room[i].Tel,Room[i].Price,Room[i].Sign,Room[i].Client_list.Name,Room[i].Client_list.Sex,Room[i].Client_list.Age,Room[i].Client_list.ID_card,Room[i].Client_list.year,Room[i].Client_list.month,Room[i].Client_list.date);fclose(fp);}voidprintf_face(){printf(\nRoom_IDTelPriceSign);printf(\nNameSexAgeID_card);printf(\nyearmonthdate);}voidprintf_back(){intw;printf(\n\n\tSuccessful.^-^\n\n);printf(Doyouwanttoback?\n\n\t1).Yes\t2).No:[]\b\b);scanf(%d,&w);if(w==1)menu();}本函数的功能为登记用户及房间信息,包括姓名、性别、年龄、年份、月份、日期及身份证、。系统依次分配房间号并定义此房间为非空。管理员可根据具体情况登记相应用户人数的信息。在此申明由于本程序并未将用户信息存入磁盘,因此务必先登记用户信息再执行功能菜单中的其他功能。(2)统计模块:[需求分析]该模块的功能是显示所有客户记录信息。程序:voidstati()/***统计函数***/{voidTime_stati();voidRoom_ID_stati();voidPrice_stati();intc;do{puts(\n\nstatisticby=\n\n1).Time2).Room_ID3)Price);printf(Whichyouneed1-3?:[]\b\b);scanf(%d,&c);if(c3||c1){puts(\nChoiceerrror!Pleaseagain!);getchar();}}while(c3||c1);switch(c){case1:Time_stati();break;case2:Room_ID_stati();break;case3:Price_stati();break;}return_confirm();}voidTime_stati()/******统计入住的时间*****/{intn,i,k=0,w,w0=1,w2=0;structHotels;n=load();do{do{w=-1;puts(\npleaseenterthetimethatyouwanttostatistic.\n);puts(\npleaseentertheyear:);scanf(%d,&s.Client_list.year);puts(\npleaseenterthemonth:);scanf(%d,&s.Client_list.month);puts(\npleaseenterthedate:);scanf(%d,&s.Client_list.date);for(i=0,k=0;in;i++)if(s.Client_list.year==Room[i].Client_list.year&&s.Client_list.mont
本文标题:客房管理系统—C语言
链接地址:https://www.777doc.com/doc-341951 .html