收藏 分销(赏)

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

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


点击查看更多>>
资源描述
目 录 一、 课程设计题目 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 

客服