C语言课程设计宾馆管理系统.docx
- 文档编号:25785697
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:19
- 大小:147.67KB
C语言课程设计宾馆管理系统.docx
《C语言课程设计宾馆管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计宾馆管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
C语言课程设计宾馆管理系统
C语言课程设计报告
程序名称:
宾馆管理系统
姓名:
学号:
年级专业:
09级电子信息工程
指导老师:
同组人员:
完成时间:
2010年6月15日
安徽师范大学物理与电子信息学院
CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity
1.设计题目的内容、任务及具体要求3
2.总体设计思路及流程图4
3.宾馆关系系统程序详细代码5
4.功能模块的具体设计9
4.1主界面分析9
4.2入住功能的界面9
4.3退房功能的界面10
4.4查找功能的界面10
4.5显示功能的界面11
5.程序设计中的数据设计11
6.功能模块的测试13
6.1进入程序主菜单模块13
6.2入住宾馆模块13
6.3实现退房模块14
6.4显示客房情况模块14
6.5查找模块15
7.总结16
致谢16
物理与电子信息学院课程设计评定意见17
1.设计题目的内容、任务及具体要求
本程序是非数值计算型算法设计,我设计出了宾馆管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。
我设计的这个宾馆系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。
某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;
链表存储结构:
姓名、性别、房号、后续指针,按房间号有序;
能实现入住(注意性别)和退房,能按给定姓名、房号查询;
建议采用链表结构,但用其它方法实现也可。
2.总体设计思路及流程图
此程序首先设计了主函数,然后根据要求的功能分别设计了显示、入住、退房、查找功能的子函数。
退房checkout()函数的设计是首先从结构体内通过检测标志位找到要退房的人,然后通过写一个实现退房目的的FOR循环将存储该人信息的结构体的标志符改变达到退房的目的。
查找是通过检测所输入的姓名能否与结构体中的入住者相同,实现查找功能。
入住checkin()函数初始时新建的结构体中初始化为简单字符,不使系统默认为0,通过对结构体信息的输入从而实现入住功能。
下面就是总的程序流程图:
3.宾馆关系系统程序详细代码
#include
#include
#include
structhotel
{charname[2][20];
charsex[2][2];
intflag;
}room[5]={{"a","a",0},{"a","a",0},{"a","a",0},{"a","a",0}};
voidmain()
{voidprint(void);
voidcheckin(void);
voidcheckout(void);
voidsearch(void);
voidshow(void);
intj,n,m;
textcolor(14);
n=1000;
clrscr();
for(;n;)
{print();
scanf("%d",&n);
switch(n)
{case1:
checkin();break;
case2:
checkout();break;
case3:
search();break;
case4:
show();break;
case5:
n=n-5;break;
default:
printf("\n\n\n\n\n\n\nError,chooseagain!
\n\n");break;
}
}
}
voidprint()
{printf("\n\n\n\n\t\t\thotel'smanagementsystem\n\n\n\n");
printf("\t\t*************Welcometothehotel*************\n");
printf("\t\t\tPleasechooseaoption:
\n");
printf("\t\t\t1.Checkin\n\t\t\t2.Checkout\n\t\t\t3.Search\n\t\t\t4.Showcustomer'smessage\n\t\t\t5.quit\n");
printf("\t\t\toption:
");
}
voidcheckout()
{inti,j;
charsure[20];
printf("\n\n\t\t******Pleaseinputanameoraroomnumber:
");
scanf("%s",sure);
for(i=301;i<306;i++)
if(strcmp(room[i-301].name[0],sure)==0||strcmp(room[i-301].name[1],sure)==0||i==atoi(sure))break;
if(i>305)printf("\n\n\t\t***Theroomnumberornameiswrong!
\n\n");
else
{if(room[i-301].flag==0)printf("Withoutcustomer.\n");
elseif(room[i-301].flag==2)
{printf("\n\t\t%d%s%s%s%s\n",i,room[i-301].name[0],room[i-301].name[1],room[i-301].sex[0],room[i-301].sex[1]);
printf("\n\t\tAreyousuretocheckout?
1.Yes2.No\n\n\t\t\tpleasechoose:
");
scanf("%d",&j);
if(j==1)room[i-301].flag=0;
printf("Theroomhascheckout,thanksforyourwelcome.\n");
}
elseif(room[i-301].flag==1)
{printf("\n\t\t%d%s%s\n",i,room[i-301].name[0],room[i-301].sex[0]);
printf("\n\t\tAreyousuretocheckout?
1.Yes2.No\n\n\t\t\tpleasechoose:
");
scanf("%d",&j);
if(j==1)room[i-301].flag=0;
printf("Theroomhascheckout,thanksforyourwelcome.\n");
}
}
}
voidcheckin()
{inti,j,k,m,t;
t=0;
for(i=301;i<=305;i++)
if(room[i-301].flag==0)break;
if(i==306)printf("\n\t\t******sorry,novacancy******\n");
else
{printf("\n\n\t\t***pleasechoose1.oneperson2.twoperson3.chummage4.quit\n\t\t\t");
scanf("%d",&j);
if(j==2)
{printf("\t\tpleaseinputnameandsex(f/m):
\n\t\t\t");
scanf("%s%s%s%s",room[i-301].name[0],room[i-301].sex[0],room[i-301].name[1],room[i-301].sex[1]);
printf("\n\n\n\n\t\t\t************finish************\n\n\n");
room[i-301].flag=2;
printf("\t\tnum\tname1\t\tsex\tname2\tsex\n");
printf("\t\t%d\t%s\t%s\t%s\t%s\n",i,room[i-301].name[0],room[i-301].sex[0],room[i-301].name[1],room[i-301].sex[1]);
}
elseif(j==1)
{printf("\t\tpleaseinputnameandsex:
\n\t\t\t");
scanf("%s%s",room[i-301].name[0],room[i-301].sex[0]);
printf("\n\n\n\n\t\t\t************finish************\n\n\n");
room[i-301].flag=1;
printf("\n\n\t\t\tnum\tname\t\tsex\n");
printf("\t\t\t%d\t%s\t%s\n",i,room[i-301].name[0],room[i-301].sex[0]);
}
elseif(j==3)
{for(i=301;i<306;i++)
if(room[i-301].flag==1)
{printf("\t\t%d\t%s\t%s\n",i,room[i-301].name[0],room[i-301].sex[0]);t++;
}
if(t!
=0)
{printf("\t\t\tPleasechoosetheroomnumber:
");
scanf("%d",&k);
if(room[k-301].flag==1)
{printf("\n\n\t\t\tpleaseinputyournameandsex(f/m)\n\t\t\t");
scanf("%s%s",room[k-301].name[1],room[k-301].sex[1]);
printf("\t\tThecustomer'ssexis%s.Areyousuretocheckin?
1.Yes2.No\n\n\t\toption:
",room[k-301].sex[0]);
scanf("%d",&m);
if(m==1)
{room[k-301].flag=2;printf("\n\n\t\t\t**********Finish**********\n");
}
}
elseif(room[k-301].flag!
=1)
printf("\n\n\t\tError!
theroomnumberofinputtingisnotonlyonecustomer.\n");
}
elseprintf("\n\n\t\t*********Sorry,cannotfinishchummage*********\n");
}
elseif(j==4);
else{printf("\n\n\t\t************error,tryagain************\n\t\t\t");checkin();}
}
}
voidsearch()
{charname[20];
inti;
printf("\n\t\tPleaseinputaname:
");
scanf("%s",name);
for(i=301;i<306;i++)
if(strcmp(room[i-301].name[0],name)==0||strcmp(room[i-301].name[1],name)==0)break;
if(i<306)
{if(room[i-301].flag==2)
{printf("\nmessage:
%d%s%s%s%s\n",i,room[i-301].name[0],room[i-301].sex[0],room[i-301].name[1],room[i-301].sex[1]);
}
if(room[i-301].flag==1)
{printf("\nmessage:
%d%s%s\n",i,room[i-301].name[0],room[i-301].sex[0]);
}
}
elseprintf("\n\n\t\tWithoutthecustomer!
\n");
}
voidshow()
{inti,n,m;
printf("\n\n\t\t*********Choose1.Allroom2.Oneroom**********\n\n\t\t\toption:
");
scanf("%d",&n);
if(n==1)
{printf("\t\tnum\tname1\tsex\tname2\tsex\n");
for(i=301;i<306;i++)
{if(room[i-301].flag==2)printf("\t\t%d\t%s\t%s\t%s\t%s\n",i,room[i-301].name[0],room[i-301].sex[0],room[i-301].name[1],room[i-301].sex[1]);
elseif(room[i-301].flag==1)printf("\t\t%d\t%s\t%s\n\n",i,room[i-301].name[0],room[i-301].sex[0]);
elseprintf("\t\t%d\twithoutcustomers\n",i);
}
}
if(n==2)
{printf("Pleaseinputtheroomnumber:
");
scanf("%d",&m);
if(room[m-301].flag==0)printf("Withoutcustomers.\n");
elseif(room[m-301].flag==2)
{printf("\n\n\t\tnum\tname1\tsex\tname2\tsex\n");
printf("\t\t%d\t%s\t%s\t%s\t%s\n",m,room[m-301].name[0],room[m-301].sex[0],room[m-301].name[1],room[m-301].sex[1]);
}
elseif(room[m-301].flag==1)
{printf("\n\n\t\tnum\tname\tsex\n");
printf("\t\t%d\t%s\t%s\n",m,room[m-301].name[0],room[m-301].sex[0]);
}
}
if(n!
=1&&n!
=2){printf("Tryagain.\n");show();}
}
4.功能模块的具体设计
4.1主界面分析
4.2入住功能的界面
4.3退房功能的界面
4.4查找功能的界面
4.5显示功能的界面
hotel’smanagementsystem
*************Welcometothehotel*************
Pleasechooseaoption:
1.Checkin
2.Checkout
3.Search
4.Showcustomer’smessage
5.quit
option:
4
*********Choose1.Allroom2.Oneroom**********
Option:
5.程序设计中的数据设计
在程序中使用了结构体和结构体数组,如:
structhotel
{charname[2][20];
charsex[2][2];
intflag;
}room[5]={{"a","a",0},{"a","a",0},{"a","a",0},{"a","a",0}};
其中:
charname[2][20];
charsex[2][2];
intflag;
分别对姓名、性别、标志符进行储存
还运用了头文件:
#include
#include
#include
其中还使用了大量的子函数,例如:
voidprint(void);
voidcheckin(void);
voidcheckout(void);
voidsearch(void);
voidshow(void);
子函数详细代码如:
voidcheckout()
{inti,j;
charsure[20];
printf("\n\n\t\t******Pleaseinputanameoraroomnumber:
");
scanf("%s",sure);
for(i=301;i<306;i++)
if(strcmp(room[i-301].name[0],sure)==0||strcmp(room[i-301].name[1],sure)==0||i==atoi(sure))break;
if(i>305)printf("\n\n\t\t***Theroomnumberornameiswrong!
\n\n");
else
{if(room[i-301].flag==0)printf("Withoutcustomer.\n");
elseif(room[i-301].flag==2)
{printf("\n\t\t%d%s%s%s%s\n",i,room[i-301].name[0],room[i-301].name[1],room[i-301].sex[0],room[i-301].sex[1]);
printf("\n\t\tAreyousuretocheckout?
1.Yes2.No\n\n\t\t\tpleasechoose:
");
scanf("%d",&j);
if(j==1)room[i-301].flag=0;
printf("Theroomhascheckout,thanksforyourwelcome.\n");
}
elseif(room[i-301].flag==1)
{printf("\n\t\t%d%s%s\n",i,room[i-301].name[0],room[i-301].sex[0]);
printf("\n\t\tAreyousuretocheckout?
1.Yes2.No\n\n\t\t\tpleasechoose:
");
scanf("%d",&j);
if(j==1)room[i-301].flag=0;
printf("Theroomhascheckout,thanksforyourwelcome.\n");
}
}
}
通过对这些资源的合理利用初步实现了宾馆管理系统的基本功能。
6.功能模块的测试
6.1进入程序主菜单模块
主选单具有所有函数的功能实现的选择功能,通过主选单的操作
进入各个功能。
主选单主要由主函数提供,其功能由子函数实现。
6.2入住宾馆模块
6.3实现退房模块
6.4显示客房情况模块
6.5查找模块
7.总结
通过这次课程设计,我对很多的函数有了新的认识,也学会了运用多种函数。
写程序的过程中不断积累,不断思考,经过长时间的设计与调试,最终完成了这次的课程设计,这次课程设计总的来说让我受益匪浅。
在程序的设计过程中遇到了很多的困难,在程序一次一次的调试失败下更让我学会了坚持,毫不畏惧困难,在同学的帮助和老师的讲解下顺利的完成了课程设计。
此次课程设计不仅给了我很多的经验,也让我体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。
致谢
这个程序的实现固然需要自身的努力,当然也离不开同学们的帮助与讲解。
缺少了这些也许我的程序就无法调试完成。
在此我向在此次课程设计时对我伸出援助之手的靳蓓蓓、王元航老师,还有帮助我的同学们表示感谢。
签名:
日期:
2010-6-15
物理与电子信息学院课程设计评定意见
指导教师评语
主要内容包括:
设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。
成绩:
签名:
年 月 日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 宾馆 管理 系统