数据结构课程设计宾馆客房管理系统.docx

上传人:b****0 文档编号:353924 上传时间:2022-10-09 格式:DOCX 页数:33 大小:91.77KB
下载 相关 举报
数据结构课程设计宾馆客房管理系统.docx_第1页
第1页 / 共33页
数据结构课程设计宾馆客房管理系统.docx_第2页
第2页 / 共33页
数据结构课程设计宾馆客房管理系统.docx_第3页
第3页 / 共33页
数据结构课程设计宾馆客房管理系统.docx_第4页
第4页 / 共33页
数据结构课程设计宾馆客房管理系统.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数据结构课程设计宾馆客房管理系统.docx

《数据结构课程设计宾馆客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计宾馆客房管理系统.docx(33页珍藏版)》请在冰豆网上搜索。

数据结构课程设计宾馆客房管理系统.docx

数据结构课程设计宾馆客房管理系统

数据结构课程设计报告

实验名称:

宾馆订房和退房系统

名:

胡山权

号:

111714110

院:

计算机科学与技术学院

业:

网络工程

指导老师:

陈建新

.需求分析

1.实验题目:

宾馆订房和退房系统

2.基本要求:

1)实现宾馆的订房业务

2)实现退房业务

3)实现统计业务

4)实现查询业务

其他:

要求在VC++6.0下运行通过

.概要设计本程序主要有以下几个功能模块voidmain()//主函数

voidtongji_cus(hotel_lv*L)voidcx_customer(hotel_lv*L)cus*Delete(hotel_lv*L)voidinput(hotel_lv*L)voidPr_divide(cus*p,fangjian*q)voidInit(hotel_lv*L)typedefstructcustomertypedefstructhotel_lvtypedefstructfangjian

//统计当前客人人数函数//查询客人信息函数//退房函数//订房函数//打印客人信息函数//初始化函数//客人结构体定义//宾馆结构体定义

//房间结构体定义

本程序通过主函数调用voidmain()主函数,主函数再调用其他几个功能模块,其中客房数量通过初始化函数来实现,输入客房的数量和床位的数量来确定。

详细设计

1.程序运行流程图

 

宾馆客房初始化

Main

录入客

L人信息

查询客人信息丿

查询入住情况

统计入住情况

退出系统

2•入住流程图

 

(3)退房业务

 

(4)查询业务

客人信息查询

输入客人姓名

遍历各等级

不为空

遍历各房间

 

(5)统计业务

3.各功能模块源代码及详细介绍

⑴主菜单

Init(L);

while

(1)

{

system("cis");printf("\n\n\n");

printf

//进入菜单选项

H**********************************************************

**\n");

printf("*printf("*

欢迎进入宾馆客房管理系统

*\n");

*\n");

*\n");

printf(

\\******************************************************

**\n");

printf("*

printf("******湖北工程学院计算机学院1117141班胡山权*********\n\n");

printf("

版权所有,XX\n");

printf("1录入客人信息\n");

printf("2退房业务\n");

printf("3查询客人信息\n");

printf("4统计客人信息\n");

printf("

printf("scanf("%d",&c);getchar();

switch(c)

0退出系统\n");请选择你要办理的业务\n");

//做选择

case1:

case2:

input(L);

break;

p=Delete(L);free(p);

case3:

case4:

break;

cx_customer(L);

break;tongji_cus(L);

break;

 

case0:

return;

}

(2)统计当前客人人数函数

voidtongji_cus(hotel_lv*L){hotel_lv*l;fangjian*f;

cus*t;

inti=0,j=0;

intflag;

l=L->next;

while(l!

=NULL)

flag=0;

i++;

f=l->fj_next;

while(f!

=NULL)

{

if(f->mem_num==0)f=f->next;

else

{t=f->cus_next;while(t!

=NULL)

{flag++;j=j+flag;t=t->next;

}f=f->next;

}

}

printf("等级为%d的房间的入住人数为%d\n",i,flag);l=l->next;

}

if(!

j)

printf("此时无人入住。

\n");system("pause");

}

(3).退房业务

cus*Delete(hotel_lv*L)

{cus*p,*q;charc;fangjian*f;intlv,hotel_num,bed_num;hotel_lv*l;l=L->next;

printf("请输入该退房客人的房间等级号码:

\n");scanf("%d",&lv);

getchar();

while(l!

=NULL)

{.

{

f->mem_num--;printf("退房成功!

\n");system("pause");return(q);

}elsereturnNULL;

}

}

//如果该房间内床位为空

}if(q=NULL)

printf("没有找到该床位,请核对信息后重新输入。

\n");

}

}

}

if(f==NULL)//如果该等级的房间为空

{

printf("没有找到该房间号,请从新输入。

\n");

}

}

}

if(l==NULL)//如果等级链表为空

{

printf("没有找到该房间等级,请核对后输入!

\n");

}

system("pause");

}

(4)查询客人信息

voidcx_customer(hotel_lv*L)

{

chars[15];

hotel_lv*l;

fangjian*f;

cus*t;

intflag=0;

printf("请输入要查询的客人姓名:

scanf("%s",s);

getchar();

l=L->next;

while(l!

=NULL)

{

f=l->fj_next;

while(f!

=NULL)

{

if(f->mem_num==0)f=f->next;

else

{t=f->cus_next;while(t!

=NULL)

//设置标志量

\n");

//输入要查询的客人姓名

//等级不为空时,走向房间

//房间不为空时,走向床位

//若此房间当前人数为0,走向下一见房

if(!

strcmp(t->name,s)){

Pr_divide(t,f);

t=t->next;

flag++;

}

else

t=t->next;

}

f=f->next;

}

}

l=l->next;

}

if(!

flag)

{

//如果找到该客人

//打印信息//指向下一个人,继续查找

//标量加1

printf("没有找到该客人,请核对再输入system("pause");

}

}

//标志量为0,则未查找到

\n");

//统计函数与查询函数基本类似

(5)入住函数voidinput(hotel_lv*L){

charc;

inti,lv;fangjian*p1;

cus*s,*p2,*p3;hotel_lv*l;l=L->next;

if(full(L))//判断是否客满

{

printf("房间已满,不能入住。

\n");

system("pause");

}

else

{

printf("请输入旅客所需的房间等级:

");scanf("%d",&lv);

while(l!

=NULL)//等级不为空时

{

if(l->lv_num!

=lv)

l=l->next;

else

//有此等级时

{p1=l->fj_next;while(p1!

=NULL)//房间不为空

{

if(p1->mem_num==p1->max)//是否有空床位

{p1=p1->next;

if(p1==NULL)

{

getchar();

printf("此等级为%d的所有房间均无空位\n是否愿意更好等级[y/n]",lv);scanf("%c",&c);//选择

if(c=='y')

input(L);

else

return;

}

}

else//客人信息登记

{//因为床位没有设置头结点,所以对于第一个结点要特别判断

if(p1->mem_num==0)

{

s=(cus*)malloc(sizeof(cus));

printf("\n\n");

printf("\n入住客人信息:

");

printf("\n请输入客人的姓名:

");

scanf("%s",s->name);

printf("\n请输入客人年龄:

");

scanf("%d",&(s->age));

printf("\n请输入客人的性别(如:

男1;女0):

");scanf("%d",&(s->sex));

printf("\n请输入客人入住的时间(如:

19901011):

");scanf("%d%d%d",&s->year,&s->month,&s->day);

s->lv=lv;p1->cus_next=s;p1->mem_num++;s->bed_num=1;s->next=NULL;

Pr_divide(s,p1);system("cls");

//指针修改

//房间当前最大人数加1

//尾指针设置为空

//打印房间分配表

break;

}

else

{p2=p1->cus_next;p3=p2;i=1;while(i<=p1->mem_num){

if(i==p3->bed_num)

{p3=p3->next;i++;

}

else

{

i++;break;

}

}

if(p3==NULL)

{s=(cus*)malloc(sizeof(cus));printf("\n\n");

printf("\n入住客人信息:

");printf("\n请输入客人的姓名:

");

scanf("%s",s->name);

printf("\n请输入客人年龄:

");

scanf("%d",&(s->age));

printf("\n请输入客人的性别(如:

男1;女0):

");scanf("%d",&(s->sex));

printf("\n请输入客人入住的时间(如:

19901011):

");scanf("%d%d%d",&s->year,&s->month,&s->day);s->lv=lv;

while(p2->next!

=p3)p2=p2->next;

p2->next=s;p1->mem_num++;s->bed_num=i;s->next=NULL;

Pr_divide(s,p1);system("cls");break;

els

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1