收藏 分销(赏)

用C语言实现的宾馆客房管理系统课程设计报告.doc

上传人:精*** 文档编号:3989932 上传时间:2024-07-24 格式:DOC 页数:10 大小:44.54KB 下载积分:8 金币
下载 相关 举报
用C语言实现的宾馆客房管理系统课程设计报告.doc_第1页
第1页 / 共10页
用C语言实现的宾馆客房管理系统课程设计报告.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
目 录 一、课程设计题目 3 二、运行环境(软、硬件环境) 3 三、算法设计的思想 3 四、算法的流程图 3 五、算法设计分析 4 六、源代码 4 七、运行结果分析 10 八、收获及体会 13 一、课程设计题目 宾馆客房管理系统. 二、运行环境(软、硬件环境) 中文版Windows XP和Microsoft Visual C++ 6。0. 三、算法设计的思想 1.定义宾馆客房管理信息结构体Hotel-Info。 2.建立一个简易的选择菜单,通过输入选择执行的动作。 3.主函数中,用switch case 实现选择功能,7项功能通过7个分支实现,每个对应一个函数。 4.写函数,包括Insert—插入,Amend—修改,Demand—查询,Del-删除,Skim—浏览,Balance-结算。 5.源程序可运行之后,将其数据、信息输入到文档中,使其能存档,可以写入文件和读出文件。 6.对程序进行修改、完善. 写函数 四、算法的流程图 联系文件 开始 定义结构体Hotel—Info 修改、完善 建立选择菜单 写主函数,实现选择功能 结束 图1 算法流程图 五、算法设计分析 1.这是一个小型的管理系统,使用结构体数组存储客房的信息. 2.一般的管理系统都应该具备插入,修改,查询,删除,浏览等功能,通过使用一个简易菜单进行执行动作的选择。 3。用函数实现模块化设计,调理清晰,使程序易读写. 4。把程序与文件联系,使数据能存储在磁盘中,更具实用性. 六、源代码 1结构体 struct Hotel_Info { char name[N],type[N],ID_card[N],in_time[N],leave_time[N]; char idly[N]; int prize,num,ad_payment; }Info[N]; 2主函数 int main() { FILE *fp; int i=0; fp=fopen("d:\\hotel manage system。txt”,”r"); //fscanf(fp,”%d”,&n); // for(i=0;i<n;i++) while(!feof(fp)) { int a; 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; int m; 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) { case 1: Insert(&count); break; case 2: Amend(count) ;break; case 3: Demand(count) ;break; case 4: Del(&count) ;break; case 5: Skim(count) ;break; case 6: Balance(count) ;break; case 7: break; default:printf(”错误选择!请重选");break; } }while(m!=7); return 0; } 3 函数 void Insert(int *count) //定义1-——-插入函数 { int i=0,in_num; n=n+1; if(*count==N) {printf(”overflow!");return;} FILE *fp; fp=fopen("d:\\hotel manage system。txt”,”a"); fprintf(fp,”%d”,n); for(i=*count;i〈N;i++) { printf("编号:"); scanf(”%d",&in_num); int flag = 1; while(flag) { flag=0; for(int ii=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)++; } void Amend(int count) //定义2———-修改函数 { int i,num,payment,tag=0;; char idly[N],name[N],ID_card[N],in_time[N],leave_time[N]; printf(”请输入要修改数据的编号:”); scanf("%d",&num); for(i=0;i〈n;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:\\hotel manage system。txt”,”w”); for(i=0;i〈n;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("没有查询到可修改的数据!"); } void Demand(int count) //定义3————查询函数 { int in_num,i=0,flag=1; printf("请输入要查询的客房号:”); scanf(”%d",&in_num); int tag=0; for(i=0;i〈n;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(”没有查询到!");} } void Del(int *count) //定义4---—删除函数 { int i,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].idly,""); strcpy(Info[*count-1]。in_time,”"); strcpy(Info[*count-1]。leave_time,""); strcpy(Info[*count—1].name,""); Info[*count-1]。num = 0; Info[*count—1].prize = 0; strcpy(Info[*count-1]。type,””); flag=0,tag=1; (*count)——; break; } } if(!tag) {printf("没有查询到可以删除的信息!”);} n=n—1; FILE *fp; fp=fopen(”d:\\hotel manage system.txt”,”w”); for(i=0;i〈n;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); } void Skim(int count) //定义5——-—浏览函数 { int i,flag=1; printf(”\n”); for(i=0;i<n;i++) { printf("第%d条记录:\n”,i+1); printf("客房号:%d\n”,Info[i].num); printf("客房类型:%s\n”,Info[i].type); printf("%客房价格:%d\n”,Info[i].ad_payment); printf("空闲情况:%d\n”,Info[i]。prize); printf(”客人姓名:%s\n",Info[i].idly); 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("\n"); flag=0; //return; } } void Balance(int conut) //定义6—-—-结算函数 { int i,x,fee,time; printf("请输入要结算的客房号:”); scanf(”%d",&x); for(i=0;i〈n;i++) if(Info[i]。num==x) {printf(”住房时间为%s--——%s。\n请输入住房时间:",Info[i]。in_time,Info[i]。leave_time); scanf(”%d”,&time); fee=Info[i]。ad_payment-time*Info[i]。prize; printf("结余金额为%d”,fee); break; } else {printf(”编号输入错误,请重新输入:”);return;} } 七、运行结果分析 1.运行程序后,按提示选择相应功能. (1)。功能1——登记.(图2) 图2 登记数据 (2).功能2—-修改。(图3) 图3 修改数据 (3)功能3-—查询。(图4) 图4查询信息 (3)功能4——删除。(图5) 图5 删除信息 (5)功能5——浏览.(图6) 图6 浏览信息 (6)功能6——结算.(图7) 图7 结算余额 2.进入相应功能后,进行数据处理。处理后的数据会保存在磁盘中便于系统的运作和数据的存储. 图8 3。信息可以在d:\\hotel manage system。txt 中查询到。 八、收获及体会 对C语言在编写程序时的用处有了更明确的认识,懂得了编写C程序的一般法方步骤。最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去)。下一步就是读程序了,读程序时一定要小心仔细,一条语句、一条语句的读,看是否能输出自己想要输出的结果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为至。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服