数据结构旅店管理系统课程设计报告文档格式.docx

上传人:b****5 文档编号:15734015 上传时间:2022-11-15 格式:DOCX 页数:43 大小:829.04KB
下载 相关 举报
数据结构旅店管理系统课程设计报告文档格式.docx_第1页
第1页 / 共43页
数据结构旅店管理系统课程设计报告文档格式.docx_第2页
第2页 / 共43页
数据结构旅店管理系统课程设计报告文档格式.docx_第3页
第3页 / 共43页
数据结构旅店管理系统课程设计报告文档格式.docx_第4页
第4页 / 共43页
数据结构旅店管理系统课程设计报告文档格式.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

数据结构旅店管理系统课程设计报告文档格式.docx

《数据结构旅店管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构旅店管理系统课程设计报告文档格式.docx(43页珍藏版)》请在冰豆网上搜索。

数据结构旅店管理系统课程设计报告文档格式.docx

2012年6月8日

课程设计评语

成绩:

指导教师:

_______________

年月日

3.数据结构

本次数据结构课程设计,做的是旅店管理系统,定义了三个结构体链表,给等级链表设置了一个头结点,采用链表嵌套方法,等级链表嵌套房间链表,房间链表再嵌套旅客链表。

(1)对旅客结构体定义

typedefstructcustomer

{

charname[15];

//旅客姓名

intage;

//旅客年龄

intsex;

//旅客性别

intlv;

//旅客住宿时的等级号

intbed_num;

//旅客的床位号

intyear;

//开始住宿日期:

intmonth;

//开始住宿日期:

intday;

structcustomer*next;

//指向下一旅客

}cus;

(2)对旅店结构体定义

typedefstructhotel_lv

intlv_num;

//旅店等级号

structhotel_lv*next;

//指向下一等级

structfangjian*fj_next;

//指向房间

}hotel_lv;

(3)房间结构体定义

typedefstructfangjian

intfj_num;

//房间号

intmax;

//房间的最大床位数目

intmem_num;

//房间内的当前人数

structfangjian*next;

//指向下一房间

structcustomer*cus_next;

//指向旅客

}fangjian;

4.总体设计

(1)主函数

(2)有旅客来住宿时:

(3)有旅客来退房时:

(4)查询旅客信息时:

(5)统计旅店当前入住人数:

(5)各函数名

①初始化函数:

voidInit(hotel_lv*L)

②判断是否客满:

intfull(hotel_lv*L)

③打印旅客信息:

voidPr_divide(cus*p,fangjian*q)

④旅客住宿函数:

⑤旅客退房函数:

cus*Delete(hotel_lv*L)

⑥查询旅客信息:

voidcx_customer(hotel_lv*L)

⑦统计旅店当前入住人数:

voidTongji_cus(hotel_lv*L)

⑧主函数:

voidmain()

5.详细设计

关键步骤设计

(1)初始化旅店函数

采用链表方式,进行旅店的初始化操作,给旅店等级设置了头结点。

输入房间等级,每个等级的房间数目,每个房间的床位数目。

voidInit(hotel_lv*L)//初始化

inti,j,k,l;

hotel_lv*p,*q;

fangjian*p1,*p2,*p3;

printf("

请输入房间分为几个等级:

\n"

);

scanf("

%d"

&

j);

//输入房间共分为几个等级

q=L;

for(i=1;

i<

=j;

i++)//初始化该等级的房间

{

p=(hotel_lv*)malloc(sizeof(hotel_lv));

q->

next=p;

p->

lv_num=i;

//给房间等级赋值

printf("

请输入房间等级为%d的房间个数:

p->

lv_num);

l);

//输入该等级的房间数目

if(l==0)

continue;

else//初始化该房间内的床位

{

p2=(fangjian*)malloc(sizeof(fangjian));

p2->

fj_num=1;

printf("

请输入房间等级为%d房间号为1的床位个数的最大值:

lv_num,k);

scanf("

(p2->

max));

//输入房间1的床位数目

mem_num=0;

//该房间内当前人数赋为零

fj_next=p2;

p3=p2;

for(k=2;

k<

=l;

k++)

{

p1=(fangjian*)malloc(sizeof(fangjian));

p3->

next=p1;

p1->

fj_num=k;

请输入房间等级为%d房间号为%d的床位个数的最大值:

(p1->

//输入房间k的床位数目

//该房间内的当前人数赋为零

p3=p1;

}

next=NULL;

//房间链表尾指针赋为空

}

q=q->

next;

}

q->

//等级链表尾指针域赋为空

}

(2)旅客住宿情况

采用尾插法,判断是否有空床位,有就进行旅客的入住操作。

voidinput(hotel_lv*L)

charc;

cus*s,*p2,*p3;

hotel_lv*l;

l=L->

fangjian*p1;

inti,lv;

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

旅店客满,不能入住。

system("

pause"

else

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

"

//输入旅客所需的等级

lv);

while(l!

=NULL)//等级不为空时

if(l->

lv_num!

=lv)

l=l->

else//有此等级时

p1=l->

fj_next;

while(p1!

=NULL)//房间不为空

{

if(p1->

mem_num==p1->

max)//是否有空床位

{

p1=p1->

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"

\n旅客的信息:

"

\n请输入旅客姓名:

scanf("

%s"

s->

name);

\n请输入旅客年龄:

(s->

age));

\n请输入旅客性别(如:

男1:

女0):

sex));

\n请输入旅客住宿开始日期(如:

19911021):

%d%d%d"

s->

year,&

month,&

day);

s->

lv=lv;

//修改指针

p1->

cus_next=s;

mem_num++;

//房间当前人数加1

bed_num=1;

//尾指针置为空

Pr_divide(s,p1);

//打印房间分配表

system("

cls"

break;

else

p2=p1->

cus_next;

p3=p2;

i=1;

while(i<

=p1->

mem_num)

{

if(i==p3->

bed_num)

{

p3=p3->

i++;

}

else

break;

}

if(p3==NULL)

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

printf("

age);

sex);

\n请输入旅客住宿开始日期(如:

s->

lv=lv

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

当前位置:首页 > 求职职场 > 简历

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

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