宾馆管理系统课程设计说明书.docx

上传人:b****0 文档编号:17645137 上传时间:2023-07-27 格式:DOCX 页数:24 大小:260.36KB
下载 相关 举报
宾馆管理系统课程设计说明书.docx_第1页
第1页 / 共24页
宾馆管理系统课程设计说明书.docx_第2页
第2页 / 共24页
宾馆管理系统课程设计说明书.docx_第3页
第3页 / 共24页
宾馆管理系统课程设计说明书.docx_第4页
第4页 / 共24页
宾馆管理系统课程设计说明书.docx_第5页
第5页 / 共24页
宾馆管理系统课程设计说明书.docx_第6页
第6页 / 共24页
宾馆管理系统课程设计说明书.docx_第7页
第7页 / 共24页
宾馆管理系统课程设计说明书.docx_第8页
第8页 / 共24页
宾馆管理系统课程设计说明书.docx_第9页
第9页 / 共24页
宾馆管理系统课程设计说明书.docx_第10页
第10页 / 共24页
宾馆管理系统课程设计说明书.docx_第11页
第11页 / 共24页
宾馆管理系统课程设计说明书.docx_第12页
第12页 / 共24页
宾馆管理系统课程设计说明书.docx_第13页
第13页 / 共24页
宾馆管理系统课程设计说明书.docx_第14页
第14页 / 共24页
宾馆管理系统课程设计说明书.docx_第15页
第15页 / 共24页
宾馆管理系统课程设计说明书.docx_第16页
第16页 / 共24页
宾馆管理系统课程设计说明书.docx_第17页
第17页 / 共24页
宾馆管理系统课程设计说明书.docx_第18页
第18页 / 共24页
宾馆管理系统课程设计说明书.docx_第19页
第19页 / 共24页
宾馆管理系统课程设计说明书.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

宾馆管理系统课程设计说明书.docx

《宾馆管理系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《宾馆管理系统课程设计说明书.docx(24页珍藏版)》请在冰点文库上搜索。

宾馆管理系统课程设计说明书.docx

宾馆管理系统课程设计说明书

目录

一设计目的1

二设计内容1

三设计要求2

四设计过程3

1任务解析3

2程序结构分析4

3数据结构分析4

4功能实现4

5系统测试4

五设计总结10

参考文献11

附录12

一设计目的

课程设计的目的与任务:

(1)使学生巩固和加强《C语言程序设计》课程的理论知识。

(2)使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。

(3)使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。

(5)使学生掌握调试程序的基本方法及上机操作方法。

(6)掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。

课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。

(7)通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。

为学生做毕业设计打好基础。

(8)初步掌握开发一个小型实用系统的基本方法:

结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

(9)培养学生的创新能力和创新思维。

学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

(10)培养学生良好的程序设计习惯。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

 

二设计内容

(一)系统功能要求:

(1)具有宾馆房间的录入功能。

(2)具有数据查询功能,可以实现查询全部信息和按条件执行查询。

显示房间是否有人住。

(3)具有按条件删除数据功能。

(4)具有按条件修改数据功能。

(5)系统以菜单方式工作

(二)性能要求

(1)界面比较美观,易操作;

(2)有一定的容错能力;

(3)最好用文件和链表的方式实现。

(三)算法分析

首先,一个宾馆客房包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:

是定义一个数组来存储,还是定义一个链表呢?

在这里以数组的方式来存储是可以的,那么定义一个数组的话,我们首先必须知道人数大概是多少,以便我们确定数组的大小。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

(四)其它要求:

(1)只能使用C语言,采用面向过程方法进行设计,要求源程序要有适当的注释,使程序容易阅读。

(2)系统采用命令行形式。

(3)学生可根据自身情况酌情增加新功能(视情况可另外加分)。

(4)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。

 

三设计要求

(1)只能使用C++语言,采用面向对象方法进行设计,要求使用结构体数组或链表编写程序,源程序要有适当的注释,是程序容易阅读。

(2)程序的界面、逻辑功能和数据的存储尽可能的分开,至少采用文本菜单界面(如果能采用图形菜单界面更好)。

(3)学生可根据自身情况酌情增加新功能(视情况可另外加分)。

(4)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。

(5)结合教师指定的题目或自主选择的题目(经教师认可)进行设计。

(6)必须基于面向对象的程序设计思想进行设计

(7)按要求的格式书写设计报告,并在课程设计最后一天提交报告。

 

四设计过程

1任务解析

要求需要对宾馆所有客房的住宿信息进行管理,主要包括客房基本信息、客户住宿信息。

需要包含的功能:

客房基本信息录入。

允许对已经录入的数据重新进行编辑、修改,各种基本数据的插入、删除,基于各种数据的查询等。

首先,一个客房包括这么多的属性,需定义一个结构,其次,应该考虑数据的存储形式:

是定义一个数组来存储,在这里以数组的方式来存储是可以的,那么定义一个数组的话,我们首先必须知道人数大概是多少,以便我们确定数组的大小。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后再进行判断,是否回到主菜单,再次进行操作。

程序采用文本菜单界面,程序数据结构采用数组来处理。

具有对客房基本信息的录入、显示、查询、添加、修改等功能。

程序虽简单,但具有完整的功能。

 

2程序结构分析

图2-1为主程序结构图

图2-2为录入功能菜单

3数据结构分析

主要数据结构:

typedefstruct

{

intfh;/*客房编号*/

charlx[15];/*客房类型*/

charplace[30];/*客房位置*/

floatarea;/*客房面积*/

intcs;/*床位数量*/

floatprice;/*住房单价*/

chardj[15];/*顾客登记*/

charjs[12];/*顾客结算*/

}kf;

客房信息包含客房编号,客房类型,客房位置,客房面积,床位数量,住房单价,顾客登记,顾客结算。

4功能实现

利用库函数实现输入输出;

利用对文件的操作实现对添加与删除功能;

利用文件实现修改功能;

各函数功能介绍

voidmenu();

宾馆管理系统菜单界面,用户使用系统的主菜单操作界面;

voidinput();

客房信息录入,用户通过这个函数输入客房信息;

voiddisplay();

客房信息显示,用以显示客房信息;

voidsearch();

客房信息查询,查询单个房间的客房信息;

voidincrese();

客房信息添加,用以添加客房信息;

voidmodi();

客房信息修改,用以修改客房信息;

5系统测试

1开始选择功能菜单

图5-1为选择功能菜单

打开程序,管理系统主界面启动,输入相对应的编号,按回车键,进行操作,执行相应的功能。

 

2录入功能

图5-2为录入功能界面

输入1,回车,按照提示依次输入客房信息,当需要结束时在编号处输入0,

回车,退出录入界面。

 

3显示功能

图5-3为显示功能界面

在主菜单界面输入2,回车,进入显示功能界面,显示当前已记录的客房信息。

 

4查询功能

图5-4为查询功能界面

在主界面输入3,回车,进入查询功能界面,输入对应的客房编号,查询单个客房信息。

5添加功能

图5-5为添加功能界面

在主菜单输入4,回车,进入添加功能界面,按提示输入需添加的客房信息。

 

6修改功能界面

图5-6为修改功能界面

在主菜单输入5,回车,进入修改功能菜单,输入需要修改的客房编号,输入正确的量,系统会显示修改后的客房信息。

 

五设计总结

通过这次课程设计,我收获很多,原本不太熟悉的编程也有点熟练,真为自己感到高兴。

程序在功能上比较简单,但基本实现了客房管理系统应该具有的基本功能,如录入、查询、添加、修改等功能,客房的结构体使用的数组结构,比链表有不足之处,可以继续修改。

虽然再编程过程中出现了很多问题,但通过我的努力,最终克服一切困难,努力完成了。

 

参考文献

[1]黄明,梁旭编著.Delphi信息系统设计实例.北京:

机械工业出版社.2005年3月第二版

[2]《 C程序设计语言》,BrianW.KernighanDennisM.Ritchie,清华大学出版社

[3]《C陷阱与缺陷》,AndrewKoenig,人民邮电出版社

[4]《C语言程序设计》,谭浩强编著,清华大学出版社

[5]《 C程序设计语言》,BrianW.KernighanDennisM.Ritchie,清华大学出版社

[6]《C语言参考手册》,哈比森,机械工业出版社

附录

//宾馆管理系统

#include

#include

#include

#defineN10

typedefstruct

{

intfh;/*客房编号*/

charlx[15];/*客房类型*/

charplace[30];/*客房位置*/

floatarea;/*客房面积*/

intcs;/*床位数量*/

floatprice;/*住房单价*/

chardj[15];/*顾客登记*/

charjs[12];/*顾客结算*/

}kf;

kfs[N];

voidmenu();

voiddisplay();

voidinput();

voidsearch();

//voidincrese();

voidmodi();

intm;

//功能菜单模块

voidmenu()

{

printf("\n\n\n\n\n");

printf("◇◆◇◆◇◆◇◆◇◆欢迎进入宾馆管理系统◇◆◇◆◇◆◇◆◇◆\n");

printf("|=======================================================|\n");

printf("@1、客房编号录入@\n");

printf("@2、客房信息显示@\n");

printf("@3、客房信息查询@\n");

printf("@4、客房信息添加@\n");

printf("@5、客房信息修改@\n");

printf("@6、退出宾馆管理系统@\n");

printf("|=======================================================|\n");

printf("◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆\n");

printf("\n");

}

voidinput()

{inti;

FILE*fp;

printf("\n请输入第一个记录:

\n");

printf("编号(用0表示结束输入):

");

scanf("%d",&s[0].fh);

printf("类型:

");

scanf("%s",s[0].lx);

printf("位置:

");

scanf("%s",s[0].place);

printf("面积:

");

scanf("%f",&s[0].area);

printf("床位数量:

");

scanf("%d",&s[0].cs);

printf("住房单价:

");

scanf("%f",&s[0].price);

printf("顾客登记:

");

scanf("%s",s[0].dj);

printf("顾客结算:

");

scanf("%s",s[0].js);

for(i=1;s[i-1].fh!

=0;i++)

{

printf("\n请输入第%d个记录:

\n",i+1);

printf("编号(用0表示结束输入):

");

scanf("%d",&s[i].fh);

printf("类型:

");

scanf("%s",s[i].lx);

printf("位置:

");

scanf("%s",s[i].place);

printf("面积:

");

scanf("%f",&s[i].area);

printf("床位数量:

");

scanf("%d",&s[i].cs);

printf("住房单价:

");

scanf("%f",&s[i].price);

printf("顾客登记:

");

scanf("%s",s[i].dj);

printf("顾客结算:

");

scanf("%s",s[i].js);

m=i;}

fp=fopen("kf.dat","w");

for(i=0;i

if(fwrite(&s[i],sizeof(kf),1,fp)!

=1)

printf("文件写入错误\n");

fclose(fp);}

//客房信息录入模块

voiddisplay()

{

FILE*fp;

inti,n=0;

//voidchoice();

//kfs[N];

system("cls");

if((fp=fopen("kf.dat","rb"))==NULL)

{printf("\n打开文件失败\n");return;}

printf("||***********************************************************************||\n");

printf("顾客已登记请输入Y,没登记输入N,当编号输入为0时结束\n");

printf("\n|编号|类型|位置|面积|床位数量|住房单价|顾客登记|顾客结算|\n");

for(i=0;fread(&s[i],sizeof(kf),1,fp)!

=0;i++)

{

printf("|---|-----|------|--------|---------|-----------|----------|----------|\n");

printf("|%4d|%5s|%6s|%5f|%10d|%10f|%10s|%10s|\n",s[i].fh,s[i].lx,s[i].place,s[i].area,s[i].cs,s[i].price,s[i].dj,s[i].js);

n++;}

printf("||**********************************************************************||\n");

if(n==0)printf("\n文件中无记录\n");

elseprintf("\n文件中共有%d个记录\n",n);

fclose(fp);}

//信息查询模块:

voidsearch()

{

FILE*fp;

inti,n=0,flag=0,temp_fh;

system("cls");

if((fp=fopen("kf.dat","rb"))==NULL)

{printf("cannotopenfile!

\n");return;}

printf("\n输入要查客房的编号:

");

scanf("%d",&temp_fh);

for(i=0;fread(&s[i],sizeof(kf),1,fp)!

=0;i++)

{

if(temp_fh==s[i].fh)

{if(flag==0)

printf("||***********************************************************************||\n");

printf("顾客已登记请输入Y,没登记输入N,当编号输入为0时结束\n");

printf("\n|编号|类型|位置|面积|床位数量|住房单价|顾客登记|顾客结算|\n");

printf("|---|-----|------|--------|---------|-----------|----------|----------|\n");

printf("|%4d|%5s|%6s|%5f|%10d|%10f|%10s|%10s|\n",s[i].fh,s[i].lx,s[i].place,s[i].area,s[i].cs,s[i].price,s[i].dj,s[i].js);

printf("||**********************************************************************||\n");

flag=1;}

n++;}

if(n==0)printf("文件里没有记录\n");

elseif(flag==0)

printf("文件中没有这个房间\n");}

//客房信息添加模块

voidincrese()

{

inti;

//kfs[N];

FILE*fp;

system("cls");

if((fp=fopen("kf.dat","rb"))==NULL)

{

printf("cannotopenfile!

\n");

exit(0);

}

fp=fopen("kf.dat","rb");

//for(i=0;i

//if(fread(&s[i],sizeof(kf),1,fp)!

=1)

//{printf("文件写入错误\n");exit(0);}

for(i=0;i

fread(&s[i],sizeof(kf),1,fp);

fclose(fp);

//k=i;

printf("\n输入添加的客房编号:

");scanf("%d",&s[i].fh);

printf("\n输入添加的客房类型:

");scanf("%s",s[i].lx);

printf("\n输入添加的客房位置:

");scanf("%s",s[i].place);

printf("\n输入添加的客房面积:

");scanf("%f",&s[i].area);

printf("\n输入添加的客房床位数量:

");scanf("%d",&s[i].cs);

printf("\n输入添加的客房住房单价:

");scanf("%f",&s[i].price);

printf("\n输入添加的顾客登记:

");scanf("%s",s[i].dj);

printf("\n输入添加的顾客结算:

");scanf("%s",s[i].js);

fp=fopen("kf.dat","ab+");

fwrite(&s[i],sizeof(kf),1,fp);

fclose(fp);

}

/*for(flag=1,i=0;flag&&i

{

while(!

feof(fp))

for(i=0;i

{

fread(&s[i],sizeof(kf),1,fp);

if(feof(fp))break;

i++;

}

flag=0;}

if(!

flag)

k=k+1;

//fclose(fp);

//flag=i;

//if(k=0)

{//添加

for(j=flag-1;j>=i;j--)

s[j+1]=s[j];

s[i]=flag;

//写回

if((fp=fopen("kf.dat","wb"))==NULL)

{

printf("不能建立文件!

\n");

}

for(i=0;i

fwrite((&s[i],sizeof(kf)),1,fp);

m=m+1;

}

else

{

if((fp=fopen("kf.dat","rb"))==NULL)

{

printf("不能建立文件!

!

\n");return;

}

fwrite((&s[i],sizeof(kf)),1,fp);

}

fclose(fp);*/

//客房信息修改:

输入客房的编号,查看客房的状态,修改此客房的单价和床数,并显示修改后的结果;

voidmodi()

{

FILE*fp1,*fp2;

inti,temp_fh,temp_cs;

floattemp_price;

system("cls");

if((fp1=fopen("kf.dat","rb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

if((fp2=fopen("kf3.dat","wb"))==NULL)

{printf("cannotopenfile\n");exit(0);}

for(i=0;i

if(fread(&s[i],sizeof(kf),1,fp1)!

=1)

{printf("文件写入错误\n");exit(0);}

printf("\n输入要修改客房的编号:

");

scanf("%d",&temp_fh);

for(i=0;i

{

if(s[i].fh!

=temp_fh)

fwrite(&s[i],sizeof(kf),1,fp2);

else

{

printf("\n输入正确的客房床位数量:

");scanf("%d",&temp_cs);

printf("\n输入正确的客房住房单价:

");scanf("%f",&temp_price);

s[i].cs=temp_cs;

s[i].price=temp_price;

fwrite(&s[i],sizeof(kf),1,fp2);

}

}

fclose(fp1);

fclose(fp2);

printf("输出修改后的客房信息如下\n");

if((fp2=fopen("kf3.dat","rb"))==NULL)

{

printf("不能打开这个文件\n");

exit(0);

}

printf("||*****************************宾馆客房管理系统***************************||\n");

printf("\n|编号|类型|位置|面积|床位数量|住房单价|顾客登记|顾客结算|\n");

for(i=0;fread(&s[i],sizeof(kf),1,fp2)!

=0;i++)

{

printf("|---|-----|------|--------|---------|-----------|----------|----------|\n");

printf("|%4d|%5s|%6s|%5f|%10d|%10f|%10s|%10s|\n",s[i].fh,s[i].lx,s[i].place,s[i].area,s[i].cs,s[i].price,s[i].dj,s[i].js);

}

printf("||**********************************************************************||\n");

fclose(f

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2