C语言课程设计宾馆客房管理系统报告文档格式.docx
《C语言课程设计宾馆客房管理系统报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计宾馆客房管理系统报告文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
二、课题要求
1)某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;
2)链表存储结构:
姓名、性别、房号、后续指针,按房间号有序;
3)能实现入住(注意性别)和退房,能按给定姓名、房号查询;
4)建议采用链表结构,但用其它方法实现也可。
本程序是非数值计算型算法设计,我们设计出了宾馆客房管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是结构体和链表的相关操作,包括结构体数组的输入、输出、查找、删除等。
我们设计的这个宾馆客房系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。
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:
switch(i