宾馆管理系统课程设计说明书.docx
- 文档编号:17645137
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:24
- 大小:260.36KB
宾馆管理系统课程设计说明书.docx
《宾馆管理系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《宾馆管理系统课程设计说明书.docx(24页珍藏版)》请在冰点文库上搜索。
宾馆管理系统课程设计说明书
目录
一设计目的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 {//添加 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 管理 系统 课程设计 说明书