C语言课程设计报告宾馆客房管理系统报告Word文件下载.docx
《C语言课程设计报告宾馆客房管理系统报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告宾馆客房管理系统报告Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
![C语言课程设计报告宾馆客房管理系统报告Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/12/a2d38d73-f895-4837-a5ca-9f21fe39349b/a2d38d73-f895-4837-a5ca-9f21fe39349b1.gif)
四、选题背景
C语言是目前世界上流行、使用最广泛的高级程序设计语言。
1972年,C语言在美国贝尔实验室里问世,后来又被多次改进,并出现了多种版本。
80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准。
目前,在微机上广泛使用的C语言编译系统有MicrosoftC、TurboC、VisualC++等。
这
C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
C语言是一种结构化语言。
它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。
它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的开发,也适合于应用软件的开发。
此外,C语言还具有效率高,可移植性强等特点。
因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
为了将本学期所学C语言知识应用于实际,加深对C语言的理解与掌握,我院开设了C语言课程设计这门课程。
而我们小组选取了宾馆客房管理系统这个课题,以此来锻炼我们编写程序的能力。
宾馆客房管理系统由8个函数组成,包括main函数、menu函数、checkin函数、checkout函数、lookfor函数,其中checkin函数又包括一个add子函数,lookfor函数包括search1和search2两个子函数。
main函数主要是对menu函数、checkin函数、checkout函数、lookfor函数进行声明,建立静态链表并且对结构体中num、sex进行赋值。
menu函数是界面函数,有两个功能。
一是输出一个界面,二是作为进入其它函数的入口。
输入1则执行checkin函数;
输入2则执行checkout函数,输入3则执行lookfor函数。
checkin函数的功能是对入住房客的信息进行统计。
首先、函数先对五个房间的入住情况进行检查,并输出相应的信息。
例如、若房间301是空的,则显示可住两人信息;
若已住一人,则显示可住一人信息,并且同时显示可住房客的性别;
若已有两人入住,则不显示任何信息。
如果房客已决定入住,则输入1,进入add函数,按提示输入房客信息即可。
若要返回menu函数,则输入1。
checkout函数的功能是退房。
按提示信息输入房间号和姓名即可实现退房。
若要返回menu函数,输入1。
lookfor函数的功能是查询房客的信息,有按姓名查找和按房间号查找两种查询方式。
输入1则执行search1子函数,即按姓名查找;
输入2则执行search2子函数,即按房号查找;
输入3,执行manu函数。
若按姓名查找,则输入姓名即可;
若按房间号查找,则输入房间号即可;
若要退回lookfor函数,则输入1。
代码:
#include<
stdio.h>
conio.h>
string.h>
#defineNULL0
structrestaurant
{intnum;
charname[2][20];
charsex[2];
structrestaurant*next;
};
voidmain()
{
voidmenu(structrestaurant*pt0);
voidcheckin(structrestaurant*pt1);
voidcheckout(structrestaurant*pt2);
voidlookfor(structrestaurant*pt3);
structrestauranta,b,c,d,e,*head,*p;
a.num=301,b.num=302,c.num=303,d.num=304,e.num=305;
a.sex[0]=a.sex[1]=b.sex[0]=b.sex[1]=c.sex[0]=c.sex[1]=d.sex[0]=d.sex[1]=e.sex[0]=e.sex[1]='
'
;
head=&
a;
a.next=&
b;
b.next=&
c;
c.next=&
d;
d.next=&
e;
e.next=NULL;
p=head;
menu(p);
}
voidmenu(structrestaurant*pt0)
{
inti;
clrscr();
textcolor(5);
gotoxy(10,5);
cprintf("
TheHotelManagementSystem\n"
);
gotoxy(10,7);
Welcome\n"
gotoxy(10,8);
**************Menu************\n"
gotoxy(10,9);
*1.checkin*\n"
gotoxy(10,10);
*2.checkout*\n"
gotoxy(10,11);
*3.lookfor*\n"
gotoxy(10,12);
******************************\n"
gotoxy(10,13);
PleaseEnterYourChoice<
1~3>
:
"
scanf("
%d"
&
i);
switch(i)
{
case1:
checkin(pt0);
break;
case2:
checkout(pt0);
case3:
lookfor(pt0);
}
voidcheckin(structrestaurant*pt1)
{voidadd(structrestaurant*pt1);
inti,k;
structrestaurant*p;
p=pt1;
for(i=0;
i<
5;
i++)
{if(pt1->
sex[0]=='
&
pt1->
sex[1]=='
)
printf("
room:
%d\ntwopersoncanlivehere\n"
pt1->
num);
elseif(pt1->
sex[1]!
='
{printf("
rome:
%d\n"
onepersoncanlivehere,sex:
%c\n"
sex[1]);
sex[0]!
sex[0]);
pt1=pt1->
next;
1:
continue\n2:
return\nInputyourchioce:
k);
switch(k)
{case1:
add(p);
case2:
menu(p);
}
voidadd(structrestaurant*pt1)
{structrestaurant*p;
inti,j,k;
charch1,ch2,str[20];
Inputroomnumberandsexandname:
\n"
%d%c%c%s"
i,&
ch1,&
ch2,&
str);
for(j=0;
j<
j++)
{if(i==pt1->
num)
{for(k=0;
k<
2;
k++)
if(pt1->
sex[k]=='
{pt1->
num=i;
sex[k]=ch2;
strcpy(pt1->
name[k],str);
j=5;
}
checkin(p);
voidcheckout(structrestaurant*pt2)
{structrestaurant*p;
charstr[20];
p=pt2;
do{pt2=p;
Inputromenumberandname:
if(k==1){menu(p);
else{scanf("
%s"
str);
for(i=0;
{if(k==pt2->
{for(j=0;
if(strcmp(str,pt2->
name[j])==0)
{memset(pt2->
name[j],'
20);
pt2->
sex[j]='
break;
pt2=pt2->
}while
(1);
voidlookfor(structrestaurant*pt3)
{voidsearch1(structrestaurant*pt4);
voidsearch2(structrestaurant*pt4);
searchbyinputingname\n2:
searchbyinputingroomnumber\n3:
return\n"
pleaseinputyourchoice:
search1(pt3);
search2(pt3);
menu(pt3);
voidsearch1(structrestaurant*pt4)
intn,i,j;
charstr1[20]={'
1'
},str2[20];
p=pt4;
do{pt4=p;
printf("
Inputname:
str2);
if(strcmp(str1,str2)==0)lookfor(p);
elsefor(i=0;
if(strcmp(str2,pt4->
%d\tsex:
%c\tname:
%s\n"
pt4->
num,pt4->
sex[j],pt4->
name[j]);
pt4=pt4->
voidsearch2(structrestaurant*pt4)
Inputroomnumber:
j);
if(j==1){lookfor(p);
{if(j==pt4->
{for(k=0;
if(pt4->
sex[k]!
printf("
sex[k],pt4->
name[k]);
break;
pt4=pt4->
}while
(1);
调试:
1、菜单函数执行结果:
进入程序后进入程序主菜单
结果如下:
输入1进入checkin函数,输入2进入checkout函数,输入3进入lookfor函数.
2、checkin入住函数结果:
进入入住函数界面
运行结果如下
输入1继续
运行结果如下:
输入房间号性别和姓名
例如:
输入301myewei
输入1返回到menu函数
3、lookfor(查询)函数结果:
输入1按姓名查找,输入2按房间号查找,输入3返回menu函数。
选择查找方式:
输入1按姓名查找;
例如输入yewei
结果:
输入1返回lookfor函数。
输入2按房间号查找,结果:
例如输入301
输入1返回到lookfor函数
4、checkout(退房)函数结果:
输入房间号和姓名即可实现退房
例如输入301yewei即可
通过这次课程设计,在我和我们小组成员的共同的努力下,将《宾馆客房管理系统》这个软件编写出来并运行成功。
在此同时,也加深了我对谭浩强的《C语言程序设计》这本书的体会和了解。
我对很多的函数有了新的认识,也学会了运用多种函数,我也明白了写软件的基本过程和基本方法。
写软件的过程中我又学到了曾经自己不知道的函数或是自己不会的
函数的用法。
这次课程设计课总的来说让我受益匪浅。
在软件的设计过程中遇到了很多的困难。
在软件一次一次的调试失败下曾经想过要放弃。
我最后还是让自己坚持了下来,毫不畏惧困难,在同学和老师的帮助与讲解下我总算是顺利的完成了软件的设计。
虽然在调试程序遇到了很多的困难,当软件调试成功时那种喜悦的感觉没有什么东西可以代替的。
在程序的编写过程中我发现我自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。
在这几天的编写过程中我对C语言有了更进一步的认识和了解。
此次编程过程的经验和知识肯定能促进我以后的学习。
此次课程设计不仅给了我很多很好的经验,也让我体会到了失败时的焦急和难受,成功时的兴奋与喜悦。
同时我们小组成员互帮互助,让我认识到团队的力量,团结就是力量。
[1]谭浩强,C程序设计教程,清华大学出版社,2007年
[2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年
[3]夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年
[4]谭浩强编著,《C程序设计》,清华大学出版社,1991年
[5]GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006.
[6]AlKelley,IraPohl,ABookonC:
ProgramminginC(FourthEdition),ChinaMachinePress,2004.
[7]BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006.