数据结构课设报告-理发馆经营状况模拟系统

找一份属于自己的风景 范文 报告范文
精选回答

数据结构课设报告-理发馆经营状况模拟系统本文简介:数据结构课设报告——理发馆经营状况模拟系统数据结构课设报告姓名:xxx学号:xxxxxxxx学院:计算机学院完成日期:2013年9月题目:理发馆经营状况模拟系统一、程序基本功能1.能够从文件中读取所需条件。2.随机产生每个顾客进门时的理发时间durtime、间隔时间intertime、服务选项sel

数据结构课设报告-理发馆经营状况模拟系统本文内容:

数据结构课设报告——理发馆经营状况模拟系统

姓名:xxx

学号:xxxxxxxx

学院:计算机学院

完成日期:2013年9月

题目:理发馆经营状况模拟系统

一、

程序基本功能

1.

能够从文件中读取所需条件。

2.

随机产生每个顾客进门时的理发时间durtime、间隔时间intertime、服务选项select。

3.

统计每天不同级别理发师的营业时间、创收和每天理发馆总创收并写入到文本文件中

二、

需求分析

1.

本演示程序中用户和计算机以文本方式进行交流,即用户将所需数据写入到data.txt文件中,计算机将结果输出到sesult.txt文件中。

2.

演示程序以图形界面输出当前状况。

3.

演示程序中需要用到数据结构中的离散模型、顺序存储、有序表、线性结构。

4.

程序执行命令包括:

a)

读出data.txt文件中的相应数据。

b)

生成顾客信息。

c)

进行理发服务,并计算相应数据。

d)

结果存入到result.txt文件中。

5.

测试数据

09:30

18:00

9

1

3

2

1

3

2

4

1

5

2

6

3

7

3

8

1

9

2

三、

概要设计

本程序主要分为四大模块

为了实现上述程序功能,应以有序表表示理发队列

1.

理发队列:

typedef

struct

Qnode

{

int

num;

//理发者编号

struct

Qnodenext;

}Qnode,*Queueptr;

2.

等待队列:

typedef

struct

{

Queueptr

front;

//队头指针

Queueptr

rear;

//队尾指针

}LinkQueue;

LinkQueue

A;

//等待队列A为1

LinkQueue

B;

//等待队列B为2

LinkQueue

C;

//等待队列C为3

3.

顾客参数的抽象数据类型;

typedef

struct

customer

{

int

no;

//编号

int

intime;

//进入理发店间

int

durtime;

//所需服务时间

int

intertime;

//下一个顾客到达所需时间

int

select;

//选择服务等级:1,2,3

int

starttime;

//开始理发时间

int

leavetime;

//离开时间

int

serve_flag;

//是否在理发

float

turnover;

//营业额

}customer

;

4.

理发师参数的抽象数据类型:

struct

barber

{

int

No;

//理发师编号

int

level;

//理发师级别

}Br[N];

//理发师

5.

离散模型:

while(currenttime0

while(Bchair>0

while(Cchair>0

}

if((cus[totalcustom].intime+cus[totalcustom].intertime)==currenttime)

customer_in();

//判断有无人进入

currenttime++;

}

while(!QueueEmpty(A))

{

char

sInfo[128]

=

{0};

currenttime++;

for(i=1;i0

}

}

OutputDebugString(“while

2

is

done.“);

while(!QueueEmpty(B))

{

currenttime++;

for(i=1;i0

}

}

while(!QueueEmpty(C))

{

currenttime++;

for(i=1;i0

}

}

lasttime=cus[1].leavetime;

//求出最后离开的顾客的离开时间

for(i=2;i是从电脑的库文件里边取

#include

#include

#include

#include

#include

#include

#include

#include

#define

MAX

30000

#define

TRUE

1

#define

FALSE

0

#define

R

rand()

#define

N

20

float

wait_length;

//等待队列长度

int

totalcustom;

//总顾客数

int

totaltime;

//总理发时间

int

currenttime;

//当前时间

int

addtime;

//加班时间

int

Achair;

//当前A级可用椅子

int

Bchair;

//当前B级可用椅子

int

Cchair;

//当前C级可用椅子

int

h1;

//开始时间

int

min1;

//开始分钟

int

h2;

//结束时间

int

min2;

//结束分钟

double

wait_A;

double

wait_B;

double

wait_C;

double

aver_serve_time;

//平均服务时间

double

aver_wait_len;

//平均等待长度

double

wait_len_A;

//理发队列长度

double

wait_len_B;

double

wait_len_C;

int

n;

//理发师人数

float

discount;

//折扣

int

x,y;

//画方格横纵坐标

int

i,a,b,c,d,e,f,h,k;

//参数

int

T;

//营业总时长(分钟)

int

lasttime;

//最后一个离开时间

float

allturnover;

//总营业额

int

Atime;

//1级理发师营业额

int

Btime;

//2级理发师营业额

int

Ctime;

//3级理发师营业额

float

Aturnover;

//1级理发师营业时间

float

Bturnover;

//2级理发师营业时间

float

Cturnover;

//3级理发师营业时间

int

r;

struct

barber

{

int

No;

//理发师编号

int

level;

//理发师级别

}Br[N];

//理发师

typedef

struct

customer

{

int

no;

//编号

int

intime;

//进入理发店时间

int

durtime;

//所需服务时间

int

intertime;

//下一个顾客到达所需时间

int

select;

//选择服务等级:1,2,3

int

starttime;

//开始理发时间

int

leavetime;

//离开时间

int

serve_flag;

//是否在理发

float

turnover;

//营业额

}customer

;

customer

cus[MAX];

typedef

struct

Qnode

{

int

num;

//理发者编号

struct

Qnodenext;

}Qnode,*Queueptr;

typedef

struct

{

Queueptr

front;

//队头指针

Queueptr

rear;

//队尾指针

}LinkQueue;

LinkQueue

A;

//等待队列A为1

LinkQueue

B;

//等待队列B为2

LinkQueue

C;

//等待队列C为3

void

Myinterface();

//输出界面

void

load();

//读取文件

void

InitQueue(LinkQueue

//队列初始化

int

Queue_length(LinkQueue

//求等待队列当前长度

void

EnQueue(LinkQueue

//将顾客插入队尾

int

DeQueue(LinkQueue

//队头出队,e返回去编号

int

QueueEmpty(LinkQueue

//判断队列是否为空,空返回1

void

customer_serve(int

n);

//服务

void

customer_in();

//顾客到达

void

customer_leave(int

n);

//顾客离开

void

list();

//平均等待长度和等待时间

void

save();

//存取数据

void

click();

//显示当前状态

void

close();

//关闭图形界面

void

currentstate(int

e,int

f);

//修改界面

void

clearstate();

void

initialize();

//初始化

void

time_initialize();

//时间初始化

void

haircut();

void

clk(int

n);

void

outget();

int

_tmain(int

argc,_TCHAR*

argv[])

{

initialize();

load();

Myinterface();

time_initialize();

click();

InitQueue(A);

//初始化队列

InitQueue(B);

InitQueue(C);

customer_in();

haircut();

for(b=1;bnext=NULL;

}

int

Queue_Length(LinkQueue

Queueptr

p;

p=Q.front;

while(p->next)

{

p=p->next;

++length;

}

return

length;

}

void

EnQueue(LinkQueue

p=(Queueptr)malloc(sizeof(Qnode));

p->num=e;

p->next=NULL;

Q.rear->next=p;

Q.rear=p;

}

int

DeQueue(LinkQueue

int

e;

p=Q.front->next;

e=p->num;

Q.front->next=p->next;

if(Q.rear==p)

Q.rear=Q.front;

free(p);

return

e;

}

int

QueueEmpty(LinkQueue

}

void

customer_serve(int

n)

//理发

{

cus[n].starttime=currenttime;

cus[n].leavetime=cus[n].durtime+currenttime;

switch(cus[n].select)

//理发座位-1

{

case

1:

Achair--;

click();

break;

case

2:

Bchair--;

click();

break;

case

3:

Cchair--;

click();

break;

default:

break;

}

cus[n].serve_flag=TRUE;

}

void

customer_in()

{

totalcustom++;

cus[totalcustom].no=totalcustom;

cus[totalcustom].intime=currenttime;

//记录顾客进入时间

cus[totalcustom].durtime=25+rand()%50;

//生成所需服务时间

cus[totalcustom].intertime=15+rand()%30;

//下一个顾客到达时间

cus[totalcustom].select=1+R%3;

//生成服务等级1-3

cus[totalcustom].turnover=(20.0000+cus[totalcustom].durtime*cus[totalcustom].select/1.0000)*(discount/100.0000);//单人营业额

switch(cus[totalcustom].select)

{

case

1:

if(QueueEmpty(A)

}

else

{

cus[totalcustom].serve_flag=FALSE;

//否则入队等待

EnQueue(A,totalcustom);

wait_len_A=wait_len_A+Queue_Length(A);

//累计队长

char

lengthA[5];

sprintf(lengthA,“%d“,Queue_Length(A));

outtextxy(100,400,lengthA);

}

break;

case

2:

if(QueueEmpty(B)

}

else

{

cus[totalcustom].serve_flag=FALSE;

//否则入队等待

EnQueue(B,totalcustom);

wait_len_B=wait_len_B+Queue_Length(B);

//累计队长

}

break;

case

3:

if(QueueEmpty

}

else

{

cus[totalcustom].serve_flag=FALSE;

//否则入队等待

EnQueue(C,totalcustom);

wait_len_C=wait_len_C+Queue_Length(C);

//累计队长

}

break;

default:

break;

}

}

void

customer_leave(int

n)

//顾客离开

{

cus[n].serve_flag=FALSE;

switch(cus[n].select)

//理发座位+1

{

case

1:

Achair++;

click();

break;

case

2:

Bchair++;

click();

break;

case

3:

Cchair++;

click();

break;

default:

break;

}

totaltime

=

totaltime+currenttime-cus[n].intertime;

}

void

list()

{

aver_serve_time=totaltime/totalcustom-c;

wait_length=wait_len_A+wait_len_B+wait_len_C;

aver_wait_len=wait_length/(totalcustom*1.00000);

for(i=1;i=220

while(Bchair>0

while(Cchair>0

}

if((cus[totalcustom].intime+cus[totalcustom].intertime)==currenttime)

customer_in();

云天轻舞 2022-07-12 04:47:34

相关推荐

古人读书的方法

读书有很多种方法,适合自己的才是最好的,让我们来看看古代名人都是怎么读书的,并从中借鉴一些好的读书方法。1、董遇:“三余”读书法汉代的著名学者董遇提倡利用“三余”时间读书。他说:“冬者岁之余,夜者日之余,雨者晴...
展开详情

集中注意力的基础是

集中注意力的基础是对大脑进行科学的锻炼,促使脑神经变得发达和强壮。注意力是指人的心理活动指向和集中于某种事物的能力。“注意”,是一个古老而又永恒的话题。俄罗斯教育家乌申斯基曾精辟地指出:“注意是我们心灵的唯一门...
展开详情

一年之计在于春,一日之计在于晨是什么意思

这句话的意思是:只有在春天辛勤劳动才能获得丰收,一天最宝贵的时间是早晨。这句话一般用于激励人刻苦学习,充分利用学习时间,达到提升自我的目的!出处有:1、南朝·梁·萧绎《纂要》:“一年之计在于春,一日之计在于晨。...
展开详情

无人与我是什么

无人与我,意思是:没有人和我一起。“无人”,是一个汉语词汇,是没有人才、没有人、没人在的意思,出自《史记·范雎蔡泽列传》:“秦王屏左右,宫中虚无人。”...
展开详情

人不如旧 衣不如新的意思

人不如旧,衣不如新的意思是:衣服是新的好,朋友是旧的好。(因此旧的东西或朋友不可轻易舍弃)形容事物的前后比较。“衣不如新,人不如故”可以用作宾语、定语,一般常用作书面语。这句话最早出自于《晏子春秋·第五卷内篇杂...
展开详情

精选推荐更多>

高考报名教育局周末上班吗

教育局周末不上班,所以高考报名不要选择在周末,在周一至周五去教育局报名即可。学校是高考报名单位,教育局是官方确认单位。应届毕业生在学校报名,不需要到教育局进行确认,其他考生应该在招生办指定的高考报名点报名,之后可去教育局确认是否报名成功。
高等教育自学考试简称自考,是对自学者进行的以学历考试为主的高等教育国家考试,是个人自学、社会助学和国家考试相结合的高等教育形式,是我国社会主义高等教育体系的重要组成部分。中华人民共和国公民,不受性别、年龄、民族、种族和已受教育程度的限制,均可依照国家有关规定参加高等教育自学考试。
根据自考取得学历的不同,自考分为自考专科学历和自考本科学历。关于自考的报考条件没有要求,但是在考取本科毕业证书时,申请毕业的时候一定要出具专科毕业证书。所有科目考试成绩合格后,通过毕业论文答辩、学位英语考核达到规定成绩,符合学位申请条件的,可申请授予成人学士学位,并可继续攻读硕士学位和博士学位。

富饶的西沙群岛第二自然段主要写了什么

《富饶的西沙群岛》的第二自然段主要写西沙群岛一带的海水五光十色、瑰丽无比的特点。原文:西沙群岛一带海水五光十色,瑰丽无比:有深蓝的,淡青的,浅绿的,杏黄的。一块块,一条条,相互交错着。因为海底高低不平,有山崖,有峡谷,海水有深有浅,从海面看,色彩就不同了。
赏析:这篇文章可按总、分、总的记叙顺序分为三段。第一段是全文的总述,写西沙群岛风景优美、物产丰富,是个可爱的地方。第二段是分述,按照由上到下、由近及远的顺序从海面、海底、海滩和岛上四方面描述,具体写出西沙群岛的美丽富饶。第三段是总结,写守卫在岛上的英雄儿女必将使西沙群岛变得更加美丽和富饶。

类比是什么意思

类比是将两个本质上不同的事物就其共同点进行比较,是通过比喻手法的综合运用帮助说明道理或描述某种复杂情况。在文学中,类比属于比喻范畴,与明喻、隐喻紧密相连,但又同中存异。
类比的作用是借助类似的事物的特征刻画突出本体事物特征,更浅显形象地加深本体事物理解,或加强作者的某种感情,烘托气氛,引起读者的联想。
类比的逻辑推理能引起读者丰富的想象和强烈共鸣。
在文学中,类比属于比喻范畴,与明喻、隐喻紧密相连,但又同中存异。类比是扩展式的比喻,所涉及的两事物间的相似点往往非止一端,各各对应,形成逻辑推理的前提。

诚信的名言10条

诚信的名言有:
1、诚实是人生的命脉,是一切价值的根基。——德莱塞
2、诚实是一个人得以保持的最高尚的东西。——乔臾
3、若有人兮天一方,忠为衣兮信为裳。——卢照龄
4、言必诚信,行必忠正。——孔子
5、没有诚信,何来尊严。——西塞罗
6、没有诚实何来尊严。——西塞罗
7、当信用消失的时候,肉体就没有生命。——大仲马
8、失足,你可能马上复站立,失信,你也许永难挽回。——富兰克林
9、信用就像一面镜子,只要有了裂缝就不能像原来那样连成一片。——阿米尔
10、信用既是无形的力量,也是无形的财富。——松下幸之助
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200