当前位置:文档之家› 数据结构上机--停车场管理问题

数据结构上机--停车场管理问题

数据结构上机--停车场管理问题
数据结构上机--停车场管理问题

实习指导

[实习题目]:

停车场管理。

[实习内容]:

首先,实现栈和队列的基本操作,在此基础上,实现停车场管理。

停车场管理问题描述:设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。

试编写程序,模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。

从终端读入汽车到达或离去的数据,每组数据包括三项:

①是“到达”还是“离去”;

②汽车牌照号码;

③“到达”或“离去”的时刻。

与每组输入信息相应的输出信息为:

如果是到达的车辆,则输出其在停车场中或便道上的位置;

如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。

(提示:需另设一个栈,临时停放为让路而从车场退出的车。)

[实习目的]:

通过实习,熟悉栈和队列的基本特点,掌握利用栈和队列解决具体问题的方法。

[实习步骤]:

1.实现顺序栈的基本操作

●基本思路

首先实现一个整型顺序栈的初始化、判栈空、进栈、出栈等基本操作,并在主程序中调用这些操作。

●基本框架

#include

#define TRUE 1

#define FALSE 0

#define Stack_Size 50

typedef int StackElementType;

typedef struct

{

StackElementType elem[Stack_Size];

int top;

} SeqStack;

/* 以下是函数原形说明。注意函数头后面有分号。*/

void InitStack(SeqStack *s);

int IsEmpty(SeqStack *s);

int Push(SeqStack *s, StackElementType e);

int Pop(SeqStack *s, StackElementType *e);

/* 以下是函数定义。注意函数头后面无分号。*/

void InitStack(SeqStack *s)

/* 顺序栈的初始化函数*/

{ ……; }

int IsEmpty(SeqStack *s)

/* 顺序栈的判栈空函数*/

{ ……; }

int Push(SeqStack *s, StackElementType e)

/* 顺序栈的进栈函数*/

{ ……; }

Status Pop(SeqStack *s, StackElementType *e)

/* 顺序栈的出栈函数*/

{ ……; }

void main(void)

{ ……; }

要点提示

主程序的基本过程如下:

void main(void)

{ SeqStack my_stack ;

StackElementType x;

StackElementType y;

InitStack(&my_stack );

if(IsEmpty(&my_stack)) 打印:“my_stack已被初始化为空栈”;

提示输入10个正整数;

循环10次,执行下面操作:

{

读入整数x;

Push(&my_stack, x);

}

while(!IsEmpty(&my_stack))

{

Pop(&my_stack, &y);

打印y;

}

}

●测试数据

读入数据:19,14,23,01,68,20,84,27,55,11

打印结果:读入序列的逆序。

2.同时实现顺序栈和链队列的基本操作

●基本思路

在前面已经实现的整型顺序栈的基础上,进一步实现一个整型链队列的基本操作。

●基本框架

(1)在上述程序框架的前面,增加如下包含语句:

#include

(2)在上述程序框架的类型定义部分,增加如下链队列定义:

typedef int QueueElementType;

typedef struct Node

{

QueueElementType data; /*数据域*/

struct Node *next; /*指针域*/

} LinkQueueNode;

typedef struct

{

LinkQueueNode * front;

LinkQueueNode * rear;

} LinkQueue;

(3)在上述程序框架的函数原型说明部分,增加如下链队列的操作函数原型说明:

int InitQueue(LinkQueue * Q);

int EmptyQueue(LinkQueue Q);

int EnterQueue(LinkQueue *Q, QueueElementType x);

int DeleteQueue(LinkQueue * Q, QueueElementType *x);

(4)在上述程序框架的函数定义部分,增加上述链队列的操作函数定义。(5)在上述程序框架的主程序中,增加调用链队列操作函数的有关语句。

●要点提示

主程序的基本过程如下:

void main(void)

{ SeqStack my_stack ;

LinkQueue my_queue;

int x;

InitStack(&my_stack );

InitQueue(&my_queue );

if(IsEmpty(&my_stack)) 打印:“栈为空”;

提示输入10个正整数;

循环10次,执行下面操作:

{

读入整数x;

Push(&my_stack, x);

}

while(!IsEmpty(&my_stack))

{

Pop(&my_stack, &x);

将x加入队列my_queue;

}

while(队列my_queue非空)

{

删除my_queue的队首元素,并送给x;

打印x;

}

}

注意指针参数的调用方法。

●测试数据

读入数据:19,14,23,01,68,20,84,27,55,11

打印结果:读入序列的逆序。

3.实现停车场管理问题

●基本思路

停车场管理问题可以用如下简图说明:

将“车库”和“暂时退车道”定义为两个栈,将“便道”定义为一个队列。

在前面程序的基础上,进行如下修改:

(1)定义一个表示“车辆信息”的结构体类型。

(2)将栈元素类型和队列元素类型均改为“车辆信息”结构体指针类型(或“车辆信息”结构体类型),并相应修改有关函数。

(3)定义一个“车辆到达处理”函数和“车辆离开处理”函数。

●基本框架

(1)在上述程序框架的类型定义部分,增加一个表示“车辆信息”的结构体类型定义,设置两个数据域:牌照号码、到达时刻。牌照号码用字符串表示,到达时刻可先用正整数表示(参后面测试数据)。

(2)在上述程序框架的函数原型说明部分,增加“车辆到达处理”函数和“车辆离开处理”函数的原型说明。

(3)在上述程序框架的函数定义部分,增加“车辆到达处理”函数和“车辆离开处理”函数的函数定义。

(4)为了简化参数传递,可以先将有关的栈和队列定义为全局变量,调通后再改为用参数传递。

●要点提示

主程序的基本过程如下:

void main(void)

{

重复如下过程,直到读入结束标志:

{

提示输入一辆车的信息(到达/离开,牌照号码,当前时刻);

读入这辆车的信息;

如果是到达车辆,则调用“车辆到达处理”函数;

否则调用“车辆离开处理”函数。

}

}

“车辆离开处理”函数的基本过程如下:

void leave(牌照号码,离开时刻)

{

当“车库”栈不空,并且栈顶车辆不是要离开的车时,重复下面操作:

{

将“车库”栈的栈顶车辆退出;

让退出的车辆进入“暂时退车道”栈;

}

如果找到要离开的车辆,则计算并输出停车费用;

将“暂时退车道”栈中的车辆倒回“车库”栈;

如果“便道”队列不空,则队头车辆出队,并进入“车库”栈;

}

注意将“出队车辆”的到达时刻改为“离开车辆”的离开时刻。

测试数据

假设用0表示车辆离开,1表示车辆到达,-1表示程序结束;用字符串表示车辆的牌照号码;用正整数表示时刻,每单位时间的停车费用是5元;停车场大小n=2。则运行结果如下:

输入数据:1,A001,5

输出结果:A001当前停放在车库1号位

输入数据:1,B002,10

输出结果:B002当前停放在车库2号位

输入数据:0,A001,15

输出结果:A001停放时间为10,停车费用为50元

输入数据:1,C003,20

输出结果:C003当前停放在车库2号位

输入数据:1,D004,25

输出结果:D004当前停放在便道1号位

输入数据:1,E005,30

输出结果:E005当前停放在便道2号位

输入数据:0,B002,35

输出结果:B002停放时间为25,停车费用为125元

便道上的D004进入车库,入库时刻为35,当前停放在车库2号位输入数据:0,D004,40

输出结果:D004停放时间为5,停车费用为25元

便道上的E005进入车库,入库时刻为40,当前停放在车库2号位输入数据:-1,#000,0

输出结果:当前车库中还有2辆车,便道上无车。再见!

[改进建议]:

1.每次输出结果中,打印整个车库和整个便道的当前停车情况一览表。

2.将车库”栈、“暂时退车道”栈改为对顶栈,共享同一空间。

3.根据车辆类型,分别收费。

4.便道上的车可以直接开走,此时排在它前面的车要依次开出,并排到队尾。5.停放在便道上的车也收费,但收费标准较低。

6.将时间改为时、分表示法。

7.到达时刻和离开时刻采用本机系统时间。

8.用随机数模拟车辆到达间隔和停车时间。

9.用动画演示运行过程。

源代码:

// parking.cpp : Defines the entry point for the console application.

#include

#include

#include "string.h"

#define TRUE 1

#define FALSE 0

#define Stack_Size 2

/**************车辆信息******************/

typedef struct Car

{

char Number[10]; /*车牌号*/

int time; /*到达时刻*/

} Car;

/******************车库栈定义**********************/

typedef struct

Car elem[Stack_Size];

int top;

} SeqStack;

/******************暂退车道栈定义**********************/

typedef struct

{

Car elem2[Stack_Size];

int top2;

} SeqStack2;

/*****************队列定义******************/

typedef struct Node

{

Car data; /*数据域*/

struct Node *next; /*指针域*/

} LinkQueueNode;

typedef struct

{

LinkQueueNode * front;

LinkQueueNode * rear;

int length;

} LinkQueue;

/* 以下是函数原形说明。注意函数头后面有分号。*/

void InitStack(SeqStack *s);

int IsEmpty(SeqStack *s);

int Push(SeqStack *s, Car e);

int Pop(SeqStack *s, Car *e);

int InitQueue(LinkQueue * Q);

int EmptyQueue(LinkQueue Q);

int EnterQueue(LinkQueue *Q, Car x);

int DeleteQueue(LinkQueue * Q, Car *x);

int CarArrive(SeqStack *s,LinkQueue *Q,char num[],int arrivetime);

int CarLeave(SeqStack *s,LinkQueue * Q,SeqStack *s2,char[],int leavetime ); /********** 以下是函数定义。注意函数头后面无分号。********/

void InitStack(SeqStack *s)

/* 顺序栈的初始化函数*/

{

s->top =-1;

}

int IsEmpty(SeqStack *s)

/* 顺序栈的判栈空函数*/

{

if(s->top ==-1)

return(TRUE);

else

return(FALSE);

}

int IsFull(SeqStack *s)

/* 顺序栈的判栈满函数*/

{

if(s->top ==Stack_Size)

return(TRUE);

else

return(FALSE);

}

int Push(SeqStack *s, Car *e)

/* 顺序栈的进栈函数*/

{

if(s->top==Stack_Size-1)return(FALSE); else

{

s->top ++;

s->elem [s->top]=*e;

return(TRUE);

}

}

int Pop(SeqStack *s, Car *e)

/* 顺序栈的出栈函数*/

{

if(s->top ==-1)

return(FALSE);

else

{

*e=s->elem [s->top];

s->top--;

return(TRUE);

}

}

int InitQueue(LinkQueue * Q)

/*链队列的初始化*/

{ Q->length=0;

Q->front=( LinkQueueNode*)malloc(sizeof( LinkQueueNode)); if(Q->front!=NULL)

{

Q->rear=Q->front;

Q->front->next=NULL;

return(TRUE);

}

else

return(FALSE); /*溢出*/

}

int EmptyQueue(LinkQueue *Q)

/*链队列的判空*/

{

if(Q->front==Q->rear)

return(TRUE);

else

return(FALSE);

}

int EnterQueue(LinkQueue *Q,Car *x)

/*链队列的入队操作,将数据元素x插入到队列中*/

{

LinkQueueNode *NewNode;

NewNode=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));

if(NewNode!=NULL)

{

NewNode->data=*x;

NewNode->next=NULL;

Q->rear->next=NewNode;

Q->rear=NewNode;

Q->length++;

return(TRUE);

}

else

return(FALSE);//溢出

}

int DeleteQueue(LinkQueue * Q,Car *x)

/*链队列的出队操作,对头出列,并存放到x所指的储存空间中*/

{

LinkQueueNode * p;

if(Q->front==Q->rear)

return(FALSE);

p=Q->front->next;

Q->front->next=p->next; /*对头元素p出列*/

if(Q->rear==p) /*如果对中只有一个元素p,则p出对后成为空队*/ Q->rear=Q->front;

*x=p->data;

free(p); /*释放存储空间*/

Q->length--;

return(TRUE);

}

/***********************车辆到达函数***************************************/ int CarArrive(SeqStack *s,LinkQueue *Q,char num[],int arrivetime)

{

Car *come;

come=(Car*)malloc(sizeof(Car));

strcpy(come->Number,num);//到达车辆的车牌号

come->time =arrivetime;//到达车辆的时间

if(s->top

{

Push(s,come);//车辆入栈

printf("-------------------------------------\n");

printf("车辆%s停在车库%d号位上\n",num,s->top+1);

}

else

{

EnterQueue(Q, come);/*若车库已满,就入队列*/

printf("-------------------------------------\n");

printf("车辆%s停在便道%d号位上\n",num,Q->length);

}

return 0;

}

/***********************车辆离开函数*******************************************/

void Carleave(SeqStack *s,LinkQueue * Q,char num[],int leavetime)

{ SeqStack s2;

InitStack(&s2 );

Car *Acar;//要离开车辆

Acar=(Car*)malloc(sizeof(Car));

int money,parktime;

while(!IsEmpty(s)&&(strcmp(s->elem[s->top].Number,num)))

//当"车库"栈不空,并且栈顶车辆不是要离开的车时,重复下面操作:

{

// 将"车库"栈的栈顶车辆退出;

Pop(s, Acar);

//让退出的车辆进入"暂时退车道"栈;

Push(&s2,Acar);

}

//如果找到要离开的车辆,则计算并输出停车费用;

Pop(s, Acar);

parktime=leavetime-Acar->time;

money=5*parktime;

printf("-------------------------------------\n");

printf("%s的停车时间为%d,停车费用为%d\n",num,parktime,money);

//将"暂时退车道"栈中的车辆倒回"车库"栈;

while(!IsEmpty(&s2))

{

Pop(&s2, Acar);

Push(s, Acar);

}

// 如果"便道"队列不空,则队头车辆出队,并进入"车库"栈;

if(!EmptyQueue(Q))

{

Car *Bcar;//出便道进车库的车

Bcar=(Car*)malloc(sizeof(Car));

DeleteQueue(Q,Bcar);

Bcar->time=leavetime;//将"出队车辆"的到达时刻改为"离开车辆"的离开时刻。

Push(s,Bcar);

printf("便道上的%s进入车库,入库时刻为%d,当前停放在车库%d号位\n",Bcar->Number,Bcar->time,s->top+1);

}

}

/***********************车库停车情况一览表函数*******************************************/

void printfstack(SeqStack s)

{

Car *Ccar;

Ccar=(Car*)malloc(sizeof(Car));

if(s.top ==-1)

printf("车库无车\n");

else

{

while(s.top !=-1)

{

*Ccar=s.elem [s.top];

s.top--;

printf("%s %d\n",Ccar->Number,Ccar->time);

}//end while

}//END ELSE

}

/***********************便道停车情况一览表函数*******************************************/

int printfQueen(LinkQueue Q)

{ Car *Dcar;

Dcar=(Car*)malloc(sizeof(Car));

LinkQueueNode * p;

p=Q.front->next;

if(Q.front==Q.rear)

{ printf("便道无车\n");

return(FALSE);

}

while(Q.front!=Q.rear)

{

*Dcar=p->data;

if(Q.rear==p) /*如果对中只有一个元素p,则p出对后成为空队*/ Q.rear=Q.front;

printf("%s %d\n",Dcar->Number,Dcar->time);

p=p->next;

// free(p); /*释放存储空间*/

}

return(TRUE);

}

/***************************主函数**************************************************/

void main(void)

{

char ch;

SeqStack my_stack ;

LinkQueue my_queue;

InitStack(&my_stack );

InitQueue(&my_queue );

while(1)

{ int t;

printf("*************************************\n");

printf(" WELCOME TO PARK \n");

printf("*************************************\n");

printf(" 请输入车辆信息: \n");

printf(" 0表示车辆离开\n");

printf(" 1表示车辆到达\n");

printf(" -1表示程序结束\n");

printf("------------------------------------\n");

scanf("%d",&t);

ch=getchar();

int now;

char c[10];

printf("-----------------------\n");

printf("请输入车牌和当前时刻\n");

printf("-----------------------\n");

scanf("%s",&c);

scanf("%d",&now);

if(t==1)

{

CarArrive(&my_stack,&my_queue, c,now);

printf("\n");

} //end if

else if(t==0)

{

Carleave(&my_stack,&my_queue,c,now);

printf("\n");

}//end else if1

else if(t==-1)

{

printf("-----------------------------\n");

printf("当前车库中还有%d辆车,便道上有%d辆车。再见!\n",my_stack.top+1,my_queue.length);

break;

}//end else if2

printf("+++++++++++++++++++\n");

printf("车库停车情况一览表:\n");

printfstack(my_stack);

printf("便道停车情况一览表:\n");

printfQueen(my_queue);

printf("+++++++++++++++++++\n");

}//end while

}//end main

停车场数据结构实验报告附代码

数据结构实验报告 ——实验三停车场模拟管理程序的设计与实现 本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 一、【问题描述】 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。为了以下描述的方便,停车场的停车场用“停车位”进行叙述,停车场的便道用“便道”进行叙述。 二、【数据结构设计】 1、为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型CAR,具体定义如下: typedef struct { char *license //汽车牌照号码,定义为一个字符指针类型 char state; //汽车当前状态,字符s表示停放在停车位上,//字符p表示停放在便道上,每辆车的初始状态用字符i来进行表示 } 2、①由于车位是一个狭长的通道,所以不允许两辆车同时出入停车位,当有车到来要进入停车位的时候也要顺次停放,当某辆车要离开时,比它后到的车要先暂时离开停车位,而且越后到的车就越先离开停车位,显然这和栈的“后进先出”特点相吻合,所以可以使用一个栈来描述停车位。 由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,为每个车位要分配一个固定的编号,不妨设为1、2、3、4、5(可利用数组的下标),分别表示停车位的1车位、2车位、3车位、4车位。5车位,针对这种情况使用一个顺序栈比较方便。 ②当某辆车要离开停车场的时候,比它后进停车位的车要为它让路,而且当它开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中。对辅助栈也采用顺序栈。

数据结构课程设计停车场管理系统

实验二停车场管理 班级:A0712 学号:12 姓名:冷清淼成绩:__________ 指导教师签名:__________ 一、问题描述 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 设计要求: 1.模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2.从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码; (3)“到达”或“离开”的时刻。 3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 二、算法说明 1.数据结构说明 (1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车场*/ (2)一个队列结构,存储便道车辆信息:

typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟便道*/ 2.算法说明 (1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 停车场系统车辆到达 车辆离开列表显示 3 2 1 图1 (2)以模块为单位分析算法 1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图2。 车辆到达 停车场是否满 结束 进入停车场 进入便道 是 否 图2

员工信息管理系统(数据结构)

员工信息管理系统课程设计报告 系别:计算机与信息工程系 班级: B080501 姓名:李海鹏 学号: B08050128 指导教师:张红霞 课设时间:2010-6-21到2010-6-25

摘要 员工信息管理系统属于信息管理系统。员工信息管理是每个公司不可缺少的。系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。 本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。整个系统使用起来也比较方便,入手简单,操作方便。论文主要介绍了程序设计过程、设计方案以及测试过程,重点讲解了设计过程中的思想,技术解决方案等等。 关键字:员工信息管理,C程序,数据结构

前言 (3) 第1章课设题目 (4) 第2章开发运行环境及相关知识 (4) 第3章程序总体设计 (5) 3.1 主要功能模块 (5) 3.2 数据结构 (6) 第4章程序详细设计及实现 (7) 4.1 输入函数 (7) 4.2 排序函数 (7) 4.3 显示函数 (7) 4.4 查找函数 (7) 4.5更改函数 (8) 4.6 删除函数 (8) 4.7 主函数 (8) 4.8 其他函数 (9) 第5章系统功能测试 (9) 5.1 系统主界面 (9) 5.2 输入数据 (9) 5.3 显示数据 (10) 5.4 信息排序 (10) 5.5 更改信息 (11) 5.6 删除信息 (11) 第6章课设总结 (12) 第7章程序清单 (13) 参考文献 (22)

前言 本课程设计旨在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。 本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。 报告将分6个章节来详细讲述本次课设题目的开发过程。 第1章主要描述课设的题目及要求; 第2章来介绍程序开发运行环境; 第3章介绍程序主体设计,网络程序概要; 第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息; 第5章为测试过程,主要用测试过程中的图片来表述最终信息; 第6章也是最后一章,为本次实践活动的心得体会。

收费停车场管理系统数据库设计

东方学院 实验(实训)报告 项目名称收费停车场管理系统 所属课程名称数据库原理及应用 项目类型设计、综合型 实验(实训)日期 班级 09信息2班 学号0920400204,0920400211姓名曹欢欢林婉怡 指导教师严素蓉

目录 1. 需求分析 (4) 1.1引言 (4) 1.2任务 (4) 1.2.1需求分析阶段的目标 (4) 1.2.2具体任务 (4) 1.2.3 结果 (5) 2. 概念设计 (11) 2.1目标 (11) 2.2设计过程 (11) 2.3阶段成果 (11) 3. 逻辑设计 (12) 3.1目标 (12) 3.2任务与结果 (12) 3.2.1数据组织 (12) 图9.系统功能模块图 (15) 4. 物理设计 (16) 4.1目标 (16) 4.2任务 (16) 4.2.1数据存取方面 (16) 4.2.2功能模块图 (16) 4.3结果 (18) 4.3.1 存储过程 (18) 4.3.2 触发器 (18) 5. 数据库实施阶段 (19) 5.1目标 (19) 5.2任务与结果 (19) 5.2.1建立数据库 (19) 6. 数据库调试与测试 (20)

1.需求分析 1.1引言 需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 目前停车场的管理方式比较落后,已经不能适应现代社会的实际需求,本系统的开发能给管理上带来新鲜的活力,提高管理的效率,具有较高的实用性和开发价值。 1.2任务

1.2.1需求分析阶段的目标 通过调查了解分析停车管理的现状,弄清用户对开发的数据库应用系统的确切要求,以及停车场管理的流程,系统的具体功能和数据库中数据信息。 1.2.2具体任务 (1)处理对象 系统处理的对象包括车辆信息、固定车位信息、自由车位信息、停车车辆信息以及收费记录等五个方面。即 固定车位信息:车位编号、车位位置、车牌号码、车主姓名、车辆品牌、车辆颜色、车辆照片、联系地址、联系方式、车位余额; 自由车位信息:车位编号、车位位置; 车辆信息:车牌号码、车辆品牌、车辆颜色; 停车信息:车位编号、车牌号码、进入时间、离开时间、时间段、车位类型、在位情况、收费费率; 收费记录:车位编号、车牌号码、停车时间、停车费用、发票编号。 (2)处理功能要求 整个系统具体包括三个子系统,分别为:停车处理子系统、车位综合管理子系统以及收费子系统。 处理的功能包括:车辆信息的查询以及更新;空闲车位信息的查询;固定车位信息的查询;进出车辆记录的更新和收费信息的查询与更新等。 (3)安全性与完整性要求 安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。还可以通过存取控制机制:即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。 完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,在服务器端编写触发器来实现。 1.2.3 结果 (1)体会和收获 通过对现在的停车场管理状况的调查,发现停车场管理缺少合适的管理系统,并了解了一下管理的大致流程。与此同时通过网络搜索查找现行的停车场管理系统,根据这两者综合来进行需求分析。调查时需要较强的信息捕捉能力以及事后的总结与思考,同时学会用网络较快较准确地搜索到需要的资料是很关键的。

数据结构停车场问题实验报告汇总

数据结构课程设计 ——停车场管理问题 姓名: 学号: 问题描述 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的

车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 二、实现要求 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 三、实现提示 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A',,1,5)表示1号牌照车在5这个时刻到达,而(‘ D ',,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘ E ',0,0)时结束。本题可用栈和队列来实现。 四、需求分析 停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。停车场的管理流程如 下 ①当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进栈(车辆进入停车场);如果停车场已满,则车辆进入等候队列(车辆进入便道等候)。 ②当车辆要求出栈时,该车到栈顶的那些车辆先弹出栈(在它之后进入的车辆必须先退出车场为它让路),再让该车出栈,其他车辆再按原次序进栈(进入车场)。当车辆出栈完毕后,检查等候队列(便道) 中是否有车,有车则从队列头取出一辆车压入栈中。

数据库设计作业 智能停车场管理系统 数据库设计(总14页)

数据库设计作业智能停车场管理系统数据库设计(总14 页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

数据库应用技术 期末作业 题目:智能停车场管理系统 学院:电子工程学院 学号: 姓名: 电话: 2014年12月28日

智能停车场管理系统 一、题目概述 随着21世纪的到来,信息化、智能化已变得越来越重要。在停车场的智能化中,涉及停车场车位管理的智能化、车主管理的智能化、停车信息管理的智能化。做好这些工作有利于提高停车场的管理效率,提升停车场的竞争力。 随着汽车工业的迅猛发展和人民生活水平的不断提高,我国汽车拥有量急剧增加。建设部统计数据显示,我国私人汽车拥有量年均增长20%左右,大大快于经济增速。截至2007年6月,全国汽车保有量达5356万辆,其中私人汽车3239万辆。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模式也有不同之处,管理者需要根据自身的条件,选择应用经济、稳定的管理程序,以免选择了高成本的管理系统。本智能停车场管理系统旨在设计一个简洁、稳定、实用的停车场管理信息系统,希望在容错性、实用性、易操作性等方面具有自己的特色,并且保持一定的可扩展性,以满足不同停车场的信息管理需求。 一个简洁、稳定、高效的智能停车场管理系统需要具备以下功能: 1.停车场员工个人信息记录、数据库访问权限设定; 2.停车场车位状况实时监控,能够得知某一时刻某车位是否空闲,如果停放了车辆,能获取车辆相关信息; 3.对于临时车辆,根据车辆进出时间差进行人工收费并记录; 4.车主可以通过手机客户端访问停车场网页,查询停车场停车信息、一段时间的停车记录、收费记录等。 二、需求分析 1 功能需求 一个典型的智能停车场管理信息系统需要包括车辆进出管理及收费功能、停车场车位及车辆信息查询功能和系统设置及管理功能。 1.1 停车场车位划分 首先将停车场划分为固定车位和自由车位两部分。固定车位又可以称为专用车位或内部车位,它的特点是使用者固定,交费采用包月制或包年制,平时进出停车场时不再交费。对于固定车位的车辆,系统有着详细的信息记录,包括车辆信息和车主信息。自由车位又可以称为公用车位或公共车位,它的特点是使用者不固定,针对临时性散客服务,车辆每次出停车场时,根据停车时间和车型交纳停车费用。固定车位的车辆总是停放在自己的车位上,而不停放在自由车位上。不同类型停车场的固定车位和自由车位数目比例是不同的,比如商场、车站、机场类停车场的自由车位数目相对较多,而住宅小区、单位自用类停车场的固定车位数目相对较多。停车场的固定车位和自由车位数目一般情

C++数据结构停车场管理

数据结构实验报告 实验题目:停车场管理 学生姓名: 班级: 学号: 问题描述 设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n 辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。 例题分析 每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。 若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。 程序源代码 #include #include #include #include #include #include #include

停车场管理系统(需求分析)

停车场管理系统应用软件 需求分析 1. 引言 IT 行业的高速发展让计算机技术深入日常生活的每一个细节,在各个领域中,计算机技术的应用帮助人们减少劳动量,提高工作效率,发挥着越来越重要的作用。随着城市化程度的加深,房地产行业日益兴盛,越来越多的停车场散布在城市里,停车场中来往的车辆与日俱增,对停车场的管理也就是非常重要。本讨论组结合此次的课程设计开发以下的停车场管理系统,使停车场里的车辆能得到有序并且相对全面的管理。 2. 数据流程图分析 2.1. 数据流程图基本符号: 数据接口 数据处理 数据存储 数据流 2.2. 入场停车与出场取车。 2.2.1. 入场流程图: (1)入场 根据系统提示的停车场的现有信息控制车辆的入场,停车场在有车位切卡被识别的情况下方能停车。 (2)停车 指定停车位置提示给用户。 2.2.2. 出场流程图: (1)收费 根据车辆信息,卡的类型以及停车的时间等依据收费标准计算收费额度实施审核通过

收费环节。 (2)出场 交费之后在出场的相关信息提示下完成停车管理过程。 3. 数据字典 数据字典的作用就是给数据流程图上的每个成分以定义与说明。停车场管理系统的数据流程图加上数据字典。能给出一个具有详细的、具体的文字内容与图形的系统逻辑模型,形成一个完整的说明。 基于本系统的规模较大,数据字典的内容繁杂等原因,现只对部分具有代表性的给予说明。 表1、1用户名 表1、2密码 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画,如果就是派生属性则用虚线椭圆表示。 联系:联系也称关系,信息世界中反映实体内部或实体之间的联系。实体内部的联系通常就是指组成实体的各属性之间的联系。 4.2. E-R 图及基本符号:

数据结构物流信息管理系统

2014-2015学年第一学期学号 《数据结构》 课程设计报告 题目:物流信息管理系统 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师: 成绩: 目录 摘要 (1) 1设计内容及要求 (1) 1.1内容描述 (1) 1.2基本要求 (1) 2详细设计 (1) 2.1概要设计 (1) 2.2功能模块详细设计 (1) 2.3程序流程图 (4) 3源代码 (5)

4程序结果 (9) 5总结 (12) 6参考文献 (12)

摘要 物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。 本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。 关键词结构体,链表,指针,函数 1设计内容及要求 1.1内容描述 对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。 1.2基本要求 1.采用一定的存储结构进行客户信息的存储; 2.对客户的信息可以进行修改、删除、查询; 2详细设计 2.1概要设计 本系统用到的主要数据结构为数组和文件。一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。然后将数组写入文件,查询时读取文件,提取相应信息。 2.2功能模块详细设计 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。 void create(Linklist &h){ Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode)); h->next=NULL;t=h; while(j){ s=(Listnode*)malloc(sizeof(Listnode)); printf("顾客取货号为%d\n",i); s->customer.m=i; printf("请输入身份证号码:"); scanf("%c",&x);

停车场数据库设计.

停车场数据库管理系统 姓名: 学号: 专业:

1.需求分析 背景 现在随着社会的发展,车为了人们出行的必备工具,因为它快捷方便,但在行程中快捷方便的同时,到哪停车成为了人们头疼的事。停车场因此存在了,但有的停车场比较大,车位比较多,管理起来较麻烦,这就需要有计算机的辅助。同时随着计算机的发展,计算机数据库可以很好的帮助人们去管理,管理员的工作变的更加简单程序化,且失误减少,效率变高,停车会更加方便。 停车场数据库实现的功能 1.输入及添加停车位、停车位资料,每个停车位信息包括:停车位编号、停车位地址、停车位类别编号、登记日期、是否被占用。停车证信息包括:客户停车证编号、客户姓名、客户性别、客户种类、登记时间。 2.对已存入的停车位、停车证信息进行插入添加。 3.对已存入的信息进行修改。 4.利用停车证对停车进行租借和退还停车位。 5.利用租借停车位时间向客户收费。 关系模式

2.方案图表设计 E-R图 根据所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。 图书管理信息系统可以划分为:停车位类别信息、客户信息实体、停车位信息、租借记录信息,退还记录信息。用E-R图一一描述这些实体。 2.1.1类别E-R图: 图2-1类别E-R图 客户信息E-R图: 图2-2 客户信息E-R图 2.1.3信息实体E-R图:

图2-3停车位信息E-R图2.1.4.记录信息E-R图: 图2-4 记录信息E-R图2.1.5记录信息E-R图: 图2-5记录信息E-R图

付款信息E-R图: 图2-6付款信息E-R图2.1.6总的信息实体E-R图: 图2-7总的信息E-R图

数据结构课程设计报告停车场管理系统

课程设计报告 课程名称数据结构课程设计 课题名称停车场管理系统 专业信息管理与信息系统 班级 09级1班 学号 200903110112 姓名洪俊斌 指导教师赵锦元、李峰、罗敬 2011年 1 月 9 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题停车场管理系统 专业班级信息管理0901班 学生姓名洪俊斌 学号200903110112 指导老师赵锦元、李峰、罗敬 审批 任务书下达日期2011 年1 月 3 日任务完成日期2011 年1 月20 日

一、设计内容与设计要求 1.设计内容: [问题描述] 设停车场只是一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出,还有一个等停的的狭长通道。汽车在停车场内按车辆的先后顺序依次排列,若车站内已停满汽车,则后来的汽车只能在门外的通道上等停,一旦停车场内有车开走,则排在通道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车站为它让路,待该车辆开出大门,为它让路的车辆再按原来次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。 [基本功能] (1)车辆成批入站。 当一个停车场刚开始投入运行的时候,会有很多车进来,因此,要设计一个函数来实现车辆批量进站。并要检测车辆的数目是否超过规定的最大容量,给出相关提示信息。 (2)单个车辆入站。 当系统正常投入运行后,会有零散的车辆进进出出,因此,设计一个函数实现单个车辆入站。 (3)车站内信息实时显示。 车站内信息包括两个部分:停车场内停放的车辆以及在外面通道上等停的车辆。 (4)车辆出站。 当停车场内车辆出站后,检查通道上是否有车等停,如果有,则要把排在最前面的车调入停车场内。

数据结构物流信息管理系统设计

数据结构物流信息管 理系统设计 Revised on November 25, 2020

目 录 摘要...................................................1 1设计内容及要求...........................................................................1 内容描述..............................................................................1 基本要求..............................................................................1 2详细设计....................................................................................1 概要设计..............................................................................1 功能模块详细设计..................................................................1 程序流程图...........................................................................4 3源代码 .....................................................................................5 4程序结果....................................................................................9 5总结...........................................................................................12 6参考文献 (12) 数据结构物流信息管理系统设计 【最新资料,WORD 文档,可编辑修改】

数据库设计作业 智能停车场管理系统 数据库设计

北京邮电大学 数据库应用技术 期末作业 题目:智能停车场管理系统 学院:电子工程学院 学号: 姓名: 电话:

2014年12月28日

智能停车场管理系统 一、题目概述 随着21世纪的到来,信息化、智能化已变得越来越重要。在停车场的智能化中,涉及停车场车位管理的智能化、车主管理的智能化、停车信息管理的智能化。做好这些工作有利于提高停车场的管理效率,提升停车场的竞争力。 随着汽车工业的迅猛发展和人民生活水平的不断提高,我国汽车拥有量急剧增加。建设部统计数据显示,我国私人汽车拥有量年均增长20%左右,大大快于经济增速。截至2007年6月,全国汽车保有量达5356万辆,其中私人汽车3239万辆。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模式也有不同之处,管理者需要根据自身的条件,选择应用经济、稳定的管理程序,以免选择了高成本的管理系统。本智能停车场管理系统旨在设计一个简洁、稳定、实用的停车场管理信息系统,希望在容错性、实用性、易操作性等方面具有自己的特色,并且保持一定的可扩展性,以满足不同停车场的信息管理需求。 一个简洁、稳定、高效的智能停车场管理系统需要具备以下功能: 1.停车场员工个人信息记录、数据库访问权限设定; 2.停车场车位状况实时监控,能够得知某一时刻某车位是否空闲,如果停放了车辆,能获取车辆相关信息; 3.对于临时车辆,根据车辆进出时间差进行人工收费并记录; 4.车主可以通过手机客户端访问停车场网页,查询停车场停车信息、一段时间的停车记录、收费记录等。 二、需求分析 1 功能需求

停车场管理系统数据库设计

停车场管理系统数据库设计说明书 文档名称数据库设计说明书 撰写人 审核/批准 创建时间

目录 1.目的.................................................................................................. 错误!未定义书签。 2.概念设计阶段 (4) 全局E-R图 (4) 3.逻辑设计阶段 (5) 任务与结果 (5) 4.物理设计阶段 (6) 功能模块图 (7) 5.数据库实施阶段 (9) 建立数据库 (9) 1.目的 21世纪以来,现代化产业高速发展,汽车作为日常交通工具已经普及社会的每一个角落,给人们的日常生活带来了极大的便利。但是随着汽车拥有量的急剧增加,车辆停放的问题随

之而来,如果没有合理的停放规则和秩序,势必引起许多不必要的麻烦,反而给生活带来不便。 停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。目前的许多停车场还处于一种纯人工的管理的模式,在车辆的管理上效率低下,而且十分容易出错。因此需要一种合适的管理系统来解决这些问题,达到高效,简易的效果,给广大人民的出行带来方便。 2.概念设计阶段 全局E-R图:

E-R图属性如下所示: 车辆:Car (Carno,Carsb,Carcolor) Carno是主码; 车位:Ffed(Cwno,Cwpace,Carno,Carpho,Caradd,Cartel,Carmon) Cwno是主码; 收费:Moneyt (Timetype,Montime) 停车:Stop (Cwno,Carno,Carin,Carout,Timetype,Cwtype,Montime) Cwno和Carno是外码; 3.逻辑设计阶段 任务与结果 数据组织 车辆信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Carno Char 是否否车牌号码Carsb Char 否否可车辆品牌Carcolor Char 否否可车辆颜色 车位信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Cwno Char 是否否车位编号Cwpace Char 否否否车位位置Cwtype Char 否否否车位类型Carno Char 否否可车牌号码Carpho Bit 否否可车牌号码Caradd Char 否否可车辆颜色Cartel Char 否否可车辆照片Carmon Float 否否100~200 可联系地址 停车信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Cwno Char 否是否车位编号Carno Char 否是否车牌号码Carat Bit 否否否在位情况Carin datetime 否否否进入时间Carout datetime 否否可离开时间 否时间段Timetype Char(6) 是否高峰、一般、 低谷

数据结构 停车场管理

实习报告 题目:停车场管理姓名:袁韬博学号:16030120021完成日期:2017.10.23 一、需求分析 1.本题目要求建立一个可指定长度的栈,和长度可变化的队列,以当作停车场和便道 的车的存放。 2.本题目要求在停车场的车离开时,便道的车按照先后顺序进入一辆,并开始于此时 记录时间。 3.在本题目之中在便道的停车不计费用,在此题中应判断在停车场还是在便道的信息。 4.本题目要求根据数据的第一位数据判断进入还是离开,根据要求输出信息。 5.程序执行命令为:1.存入车辆时输出停车信息2.车辆离开时输出停车时间和应缴纳 费用 3.输入‘E’时表示结束。 6.测试数据: n=2,m(每小时停车费用)=3,(A,1,5)(A,2,10)(D,1,15)(A,3,20)(A,4,25)(A,5,30) (D,2,35)(D,4,40)(E,0,0)其中A表示为Arrival(到达),D表示为Departure(离 开),E表示为End(结束)。 二、概要设计 1.设定栈的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } 基本操作: initStack(&S,d) 操作结果:建立一个长度为d的空栈 Push(&S, &e, &d) 初始条件:栈已存在,长度为d 操作结果:如栈已满返回false,否则将e,压入栈中,返回true Pop(&S,e) 初始条件:栈已存在 操作结果:如栈为空返回false,否则弹栈入e,返回true 2.设定队列的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } *SQTypeInit() 操作结果:建立一个空队列 InSQType(*q, &data) 初始条件:队列已存在 操作结果:将data压入队列之中 *OutSQType( *q) 初始条件:队列已存在 操作结果:弹出队列,返回其指针。 3.程序包含6个模块 1)主程序模块:包含栈与队列的对象建立,输入值的判断以及函数的实现 2)栈模块:实现停车场抽象数据类型 3)队列模块:实现便道抽象数据类型

数据结构简单的职工管理系统完整版

湖南涉外经济学院数据结构课程设计报告 题目:简单的职工管理系统 院系名称:计算机学院 专业名称:计算机科学与技术 班级:计科201001班 学生姓名:刘兴斌 学号:30 指导教师:张建明 设计起止时间:2011年11月20日~2011年12月30日

完成于2011年12月29日星期四 目录 第一章序 (1) 第二章系统总体功能的设计和分析 (3) 1、问题描述 (3) 2、详细要求 (3) 3、功能分析 (4) 1、具体要求.............................................................. 错误!未定义书签。 2、系统流程分析 (4) 3、系统功能结构 (5) 4、模块函数构造 (6) 第三章详细设计分析 (7) 1、抽象数据类型定义 (7) 2、主函数设计 (8)

3、查找算法设计 (9) 4、排序算法设计 (8) 第四章源程序代码 (11) 第五章系统实现 (29) 第六章课程设计总结 (31)

第一章序 电子信息时代由如洪水一样的凶猛,能在现实社会应用软件给我们的生活和工作带来方便和实用性就是软件存在的最大的价值。数据结构所能解决的就是这些复杂的问题简单化。 《数据结构》是计算机专业学生学习的一门基础课程,但十分的重要。本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点。 经过本次课程设计,我们对于数据结构基本理论和存储结构及算法设计将有更加深入的理解,并提高我们在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C++语言程序设计能力,以及培养学我们编写程序设计文档的能力,为将来在实战工作中打下良好的基础。 在经济发达的今天对于职工简单的管理都是有很大程度上的要求,一个工司能否较好较快的运行,与职工管理的好坏分不开关系,通过该系统,将一系列的问题系统化,能够更好的管理职工。简化管理,使管理更方便,准确性、直观性和实用性更强。本着以锻炼自己的能力为目的,通过设计与制作进一步学习和掌握简单的职工管理系统的原理和使用方法。虽然在一定程度上较为简单,但也能体现在出在人员管理上的方便快捷,也体现一个领导的管理水平是不是充满艺术。

数据结构实验报告—停车场问题

《计算机软件技术基础》实验报告I—数据结构 实验二:停车场管理问题 一、问题描述 1.实验题目: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)。若停车场内已经停满 n辆车,那么后来的车只能在门外的便道上等候。一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。 2.基本要求: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。每一组输入数据包括三个数据项:汽车的“到达”(‘A’表示)或“离去”(‘D’表示)信息、汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便道上的停车位置;若是车辆离去,则输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 3.测试数据: 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3, 20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。其中:(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,1,15)表示1号牌照车在15这个时刻离去。 二、需求分析

数据结构课程设计停车场管理系统

停车场管理 专业班级: XXXXXXX 学号: XXXXXXX 姓名: XXXXXXX 指导教师: XXXXXXX 课程设计时间: XXXXXXX

计算机专业数据结构课程设计任务书 学生姓名XXXXXX专业班级XXXXXX学号XXXXXX 题目停车场管理系统 课题性质工程设计课题来源XXXXXX 指导教师XXXXXX同组姓名XXXXXX 主要内容一、设计的任务及主要技术参数 1编写停车场管理系统。 2主要技术:C语言中的模块化程序设计;数据结构中的栈、队列 二、设计任务 1每组成员分工合作完成一个课程设计,每个人的任务不同; 2要求利用结构化程序设计方法以及C的编程思想来完成系统的设计; 3要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可; 4要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现; 5要求对各个功能模块进行算法设计,可用流程图表示算法思想; 6要求编程实现系统功能,并进行调试与测试,使系统能正常运行; 7要求源程序书写格式规范,可读性好,进行必要的注释,采用缩进格式; 8撰写课程设计说明书 三、设计工作量 1根据问题描述,分析系统功能,划分功能模块,完成程序的数据设计,确定各模块函数名称; 2程序的函数设计 3函数编码及调试 4程序整体调试 5完成设计文档和课程设计说明书

任务要求 1、系统应具备的功能:(1)停车场的车位管理(2)停车场的停车管理(3)停车场的记费管理 2、数据结构设计 3、主要算法设计 4、编程及上机实现 5、撰写课程设计报告 参考文献 1.《数据结构(C语言版)》,严蔚敏、吴伟民,清华大学出版社,1997. 2.谭浩强. C语言程序设计(第三版)[M]. 北京:清华大学出版社,2005 3.廖雷、罗代忠. C语言程序设计基础实验教程[M]. 北京:高等教育出版社,2005 4.谭浩强. C程序设计解题与上机指导(第三版) [M]. 北京:清华大学出版社,2005 . 审查意见指导教师签字: 教研室主任签字:年月日实验题目:停车场管理系统 一、要解决的问题 停车场是一条可以停放n辆车的狭窄通道,且只有一个大门汽车停放安到达时间的先后依次由北向南排列(大门在最南端,最先到达的第一辆车停在最北端)若停车场已经停满n辆车,后来的汽车在便道上等候,一旦有车开走,排在便道上的第一辆车可以开入;当停车场的某辆车要离开时,停在他后面的车要先后退为他让路,等它开出后其他车在按照原次序开入车场,每两停在车场的车要安时间长短缴费。要求:以栈模拟停车场,以队列车场外的便道,按照从终端输入的数据序列进行模拟管理。每一组数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、以及到达或离去

数据结构课程设计-职工管理系统

一、前言----------------------------------------------------------------------2 二、需求分析----------------------------------------------------------------3 三、概要设计----------------------------------------------------------------4 四、详细设计----------------------------------------------------------------5 五、调试分析----------------------------------------------------------------6 六、用户使用说明----------------------------------------------------------7 七、测试结果----------------------------------------------------------------8 八、总结---------------------------------------------------------------------11 九、主要参考文献和附录------------------------------------------------12

员工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来各个公司基本上都是靠传统的人工方式来管理员工信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。 当今社会,信息迅速膨胀,随着各个公司的规模增大,有关信息管理工作所涉及的数据量越来越大,员工信息量也大大增加,利用传统的手工查询、登记、修改等方法的处理速度远远跟不上公司的需求,有的公司不得不靠增加人力、物力来进行信息管理。 随着计算机技术的不断提高,计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识,它已进入人类社会的各个行业和领域并发挥着越来越重要的作用,成为人们工作和生活中不可缺少的一部分。 而作为计算机应用的一部分,使用计算机对员工进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工管理的效率,也是公司的科学化、正规化管理和与世界接轨的重要条件。 员工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且已达到了良好效果。

相关主题
文本预览
相关文档 最新文档