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

上传人:b****8 文档编号:11019844 上传时间:2023-02-24 格式:DOCX 页数:16 大小:116.51KB
下载 相关 举报
用C语言实现的宾馆客房管理系统课程设计报告.docx_第1页
第1页 / 共16页
用C语言实现的宾馆客房管理系统课程设计报告.docx_第2页
第2页 / 共16页
用C语言实现的宾馆客房管理系统课程设计报告.docx_第3页
第3页 / 共16页
用C语言实现的宾馆客房管理系统课程设计报告.docx_第4页
第4页 / 共16页
用C语言实现的宾馆客房管理系统课程设计报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《用C语言实现的宾馆客房管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《用C语言实现的宾馆客房管理系统课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

 

一、课程设计题目

宾馆客房管理系统。

二、运行环境(软、硬件环境)

中文版WindowsXP和MicrosoftVisualC++6.0。

三、算法设计的思想

1.定义宾馆客房管理信息结构体Hotel-Info。

2.建立一个简易的选择菜单,通过输入选择执行的动作。

3.主函数中,用switchcase实现选择功能,7项功能通过7个分支实现,每个对应一个函数。

4.写函数,包括Insert-插入,Amend-修改,Demand-查询,Del-删除,Skim-浏览,Balance-结算。

5.源程序可运行之后,将其数据、信息输入到文档中,使其能存档,可以写入文件和读出文件。

6.对程序进行修改、完善。

写函数

四、算法的流程图

联系文件

定义结构体Hotel-Info

修改、完善

建立选择菜单

写主函数,实现选择功能

图1算法流程图

五、算法设计分析

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;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;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;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;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;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].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:

\\hotelmanagesystem.txt","w");

for(i=0;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);

}

voidSkim(intcount)//定义5————浏览函数

{

inti,flag=1;

printf("\n");

for(i=0;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;

}

}

voidBalance(intconut)//定义6————结算函数

{

inti,x,fee,time;

printf("请输入要结算的客房号:

");

scanf("%d",&x);

for(i=0;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:

\\hotelmanagesystem.txt中查询到。

八、收获及体会

对C语言在编写程序时的用处有了更明确的认识,懂得了编写C程序的一般法方步骤。

最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。

分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去)。

下一步就是读程序了,读程序时一定要小心仔细,一条语句、一条语句的读,看是否能输出自己想要输出的结果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为至。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1