C语言课程设计宾馆客房管理系统报告.docx
- 文档编号:1821189
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:18
- 大小:313.96KB
C语言课程设计宾馆客房管理系统报告.docx
《C语言课程设计宾馆客房管理系统报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计宾馆客房管理系统报告.docx(18页珍藏版)》请在冰豆网上搜索。
C语言课程设计宾馆客房管理系统报告
《C语言》
课程设计报告
标题:
宾馆客房管理系统
学号:
姓名:
同组人员:
年级专业:
09电子信息工程
指导老师:
完成日期:
2010/6/21
一、程序的具体分工
二、课题要求
三、课题分析及设计
四、选题背景
五、程序介绍
六、源程序代码及调试
七、流程图
八、结语
九、参考书目
一、程序的具体分工
第一部分包括主函数和menu菜单函数是由叶伟完成,第二部分包括客人的入住(checkin)函数和退房(checkout)函数由我完成,第三部分为查询(lookfor)函数由王业生负责。
二、课题要求
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
#include
#include
#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);
cprintf("Welcome\n");
gotoxy(10,8);
cprintf("**************Menu************\n");
gotoxy(10,9);
cprintf("*1.checkin*\n");
gotoxy(10,10);
cprintf("*2.checkout*\n");
gotoxy(10,11);
cprintf("*3.lookfor*\n");
gotoxy(10,12);
cprintf("******************************\n");
gotoxy(10,13);
cprintf("PleaseEnterYourChoice<1~3>:
");
scanf("%d",&i);
switch(i)
{
case1:
checkin(pt0);break;
case2:
checkout(pt0);break;
case3:
lookfor(pt0);break;
}
}
voidcheckin(structrestaurant*pt1)
{voidadd(structrestaurant*pt1);
inti,k;
structrestaurant*p;
p=pt1;
clrscr();
for(i=0;i<5;i++)
{if(pt1->sex[0]==''&&pt1->sex[1]=='')
printf("room:
%d\ntwopersoncanlivehere\n",pt1->num);
elseif(pt1->sex[0]==''&&pt1->sex[1]!
='')
{printf("rome:
%d\n",pt1->num);
printf("onepersoncanlivehere,sex:
%c\n",pt1->sex[1]);}
elseif(pt1->sex[0]!
=''&&pt1->sex[1]=='')
{printf("rome:
%d\n",pt1->num);
printf("onepersoncanlivehere,sex:
%c\n",pt1->sex[0]);}
pt1=pt1->next;
}
printf("1:
continue\n2:
return\nInputyourchioce:
");
scanf("%d",&k);
switch(k)
{case1:
add(p);break;
case2:
menu(p);break;
}
}
voidadd(structrestaurant*pt1)
{structrestaurant*p;
inti,j,k;
charch1,ch2,str[20];
p=pt1;
printf("Inputroomnumberandsexandname:
\n");
scanf("%d%c%c%s",&i,&ch1,&ch2,&str);
for(j=0;j<5;j++)
{if(i==pt1->num)
{for(k=0;k<2;k++)
if(pt1->sex[k]=='')
{pt1->num=i;pt1->sex[k]=ch2;strcpy(pt1->name[k],str);break;}
j=5;}
pt1=pt1->next;
}
checkin(p);
}
voidcheckout(structrestaurant*pt2)
{structrestaurant*p;
inti,j,k;
charstr[20];
p=pt2;
clrscr();
do{pt2=p;
printf("Inputromenumberandname:
\n");
scanf("%d",&k);
if(k==1){menu(p);break;}
else{scanf("%s",str);
for(i=0;i<5;i++)
{if(k==pt2->num)
{for(j=0;j<2;j++)
if(strcmp(str,pt2->name[j])==0)
{memset(pt2->name[j],'',20);pt2->sex[j]='';break;}
break;}
pt2=pt2->next;}
}
}while
(1);
}
voidlookfor(structrestaurant*pt3)
{voidsearch1(structrestaurant*pt4);
voidsearch2(structrestaurant*pt4);
inti;
charstr[20];
clrscr();
printf("1:
searchbyinputingname\n2:
searchbyinputingroomnumber\n3:
return\n");
printf("pleaseinputyourchoice:
");
scanf("%d",&i);
switch(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 宾馆 客房 管理 系统 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)