文档库 最新最全的文档下载
当前位置:文档库 › 课题设计 停车场车辆管理系统(C语言版数据结构)

课题设计 停车场车辆管理系统(C语言版数据结构)

课题设计 停车场车辆管理系统(C语言版数据结构)
课题设计 停车场车辆管理系统(C语言版数据结构)

//设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。

//汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),

//若车场内已停满n辆汽车,则后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;

//当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车长为它让路,待该车开出大门外,

//其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

//基本要求:以栈模拟停车场,以队列模拟车场外的便道

//部分源代码(栈和队列的数据结构自己定义,在清华版的数据结构课本上有详细的描述) //停车场管理系统

//停车场管理系统

#include

typedef struct Car {

//结构体:车辆Car

int number;

int inTime;

int outTime;

}Car;

typedef Car User; //用户自定义类型

#define FEIYONG 0.05 //停车费用单价

#define MAXSIZE 5 //停车场容量

//--------------系统库函数------------------

#include "stdlib.h"

//--------------通用变量、常量、类型声明------------------

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int Status;

typedef User SElemType;

//---------------存储表示---------------------

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

typedef struct {

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

//---------------函数原型---------------------

//Status InitStack(SqStack &S);

//构造空栈

//Status DestroyStack(SqStack &S);

//销毁栈S

//Status ClearStack(SqStack &S);

//置空

//Status StackEmpty(SqStack S);

//判空;空:TRUE,不空:FALSE。

//int StackLength(SqStack S);

//返回S的元素的个数,即栈的长度。

//Status GetTop(SqStack S,SElemType &e);

//若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR。

//Status Push(SqStack &S,SElemType e);

//插入元素e为新的栈顶元素

//Status Pop(SqStack &S,SElemType &e);

//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR。//Status StackTraverse(SqStack S,Status ( * visit)());

//从栈底到栈顶依次对栈中每个元素调用函数visit()。一旦visit()失败,则操作失败。

//---------------基本操作---------------------

Status InitStack(SqStack &S) {

//构造空栈

S.base = (SElemType * )malloc(STACK_INIT_SIZE * sizeof(SElemType));

if(!S.base) exit(OVERFLOW);

S.top = S.base;

S.stacksize = STACK_INIT_SIZE;

return OK;

}//InitStack

Status DestroyStack(SqStack &S){

//销毁栈S

free(S.base);

return OK;

}//DestroyStack

Status ClearStack(SqStack &S){

//置空

return OK;

}//ClearStack

//Status ClearStack(SqStack &S);

//置空

Status StackEmpty(SqStack S){

//判空;空:TRUE,不空:FALSE。

if(S.top == S.base) return TRUE;

else return FALSE;

}//QueueEmpty

int StackLength(SqStack S){

//返回S的元素的个数,即栈的长度。

return S.top - S.base;

}

Status GetTop(SqStack S,SElemType &e){

//若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR。

if(S.top == S.base) return ERROR;

e = *(S.top-1);

return OK;

}//GetTop

Status Push(SqStack &S,SElemType e){

//插入元素e为新的栈顶元素

if(S.top - S.base >= S.stacksize){//栈满,追加存储空间

S.base = (SElemType *)realloc(S.base,

(S.stacksize + STACKINCREMENT) * sizeof(SElemType));

if(!S.base) exit(OVERFLOW);//存储分配失败

S.top = S.base + S.stacksize;

S.stacksize += STACKINCREMENT;

}

*S.top++ = e;

return OK;

}//Push

Status Pop(SqStack &S,SElemType &e){

//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR。

if(S.top == S.base) return ERROR;

e = * --S.top;

return OK;

}//Pop

Status StackTraverse(SqStack S){//,Status ( * visit)()){

//从栈底到栈顶依次对栈S中每个元素调用函数visit()。一旦visit()失败,则操作失败。

for(SElemType *p = S.base; p < S.top; p++)

printf("%d\n",p->number);

return OK;

}//StackTraverse

typedef int Status;

typedef User QElemType;

//---------------存储表示---------------------

typedef struct QNode {

QElemType data;

struct QNode *next;

}QNode, *QueuePtr;

typedef struct {

QueuePtr f ront;

QueuePtr r ear;

}LinkQueue;

//---------------函数原型---------------------

//Status InitQueue(LinkQueue &Q);

//构造空队列Q

//Status DestroyQueue(LinkQueue &Q);

//销毁队列Q

//Status ClearQueue(LinkQueue &Q);

//置空

//Status QueueEmpty(LinkQueue Q);

//判空;空:TRUE,不空:FALSE。

//int QueueLength(LinkQueue Q);

//返回S的元素的个数,即队列的长度。

//Status GetHead(LinkQueue Q,QElemType &e);

//若队列不空,则用e返回S的队头元素,并返回OK;否则返回ERROR。

//Status EnQueue(LinkQueue &Q,QElemType e);

//插入元素e为新的队尾元素

//Status DeQueue(LinkQueue &Q,QElemType &e);

//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;否则返回ERROR。//Status QueueTraverse(LinkQueue Q,Status ( * visit)());

//从队头到队尾依次对队列Q中每个元素调用函数visit()。一旦visit()失败,则操作失败。//---------------基本操作---------------------

Status InitQueue(LinkQueue &Q){

//构造空队列Q

Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));

if(!Q.front) exit(OVERFLOW);

Q.front->next = NULL;

return OK;

}//InitQueue

Status DestroyQueue(LinkQueue &Q){

//销毁队列Q

while(Q.front) {

Q.rear = Q.front->next;

free(Q.front);

Q.front = Q.rear;

}

return OK;

}//DestroyQueue

//Status ClearQueue(LinkQueue &Q);

//置空

Status QueueEmpty(LinkQueue Q){

//判空;空:TRUE,不空:FALSE。

if(Q.front == Q.rear) return TRUE;

else return FALSE;

}//QueueEmpty

//int QueueLength(LinkQueue Q);

//返回Q的元素的个数,即队列的长度。

Status GetHead(LinkQueue Q,QElemType &e){

//若队列不空,则用e返回Q的队头元素,并返回OK;否则返回ERROR。

if(Q.front == Q.rear) return ERROR;

e = Q.front->next->data;

return OK;

}//GetHead

Status EnQueue(LinkQueue &Q,QElemType e){

//插入元素e为新的队尾元素

QueuePtr p;

p = (QueuePtr)malloc(sizeof(QNode));

if(!p) e xit(OVERFLOW);

p->data = e; p->next = NULL;

Q.rear->next = p;

Q.rear = p;

return OK;

}//EnQueue

Status DeQueue(LinkQueue &Q,QElemType &e){

//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;否则返回ERROR。

QueuePtr p;

if(Q.front == Q.rear) return ERROR;

p = Q.front->next;

e = p->data;

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

if(Q.rear == p) Q.rear = Q.front;

free(p);

return OK;

}//DeQueue

Status QueueTraverse(LinkQueue Q){//,Status ( * visit)()){

//从队头到队尾依次对队列Q中每个元素调用函数visit()。一旦visit()失败,则操作失败。

for(QueuePtr p = Q.front->next; p !=NULL; p = p->next)

printf("%d\n",p->data.number);

return OK;

}//QueueTraverse

//函数声明部分

void Welcome(); //主选项画面

void GoIn(); //进场部分

int GoOut(); //出场部分

void LookChang(); //查看停车场部分

void LookDao(); //查看便道部分

void LookCopyRight();//查看版权信息

//全局变量声明

SqStack S1,S2; //S1为停车场,S2为暂存的地方

LinkQueue Q; //Q为便道

void Welcome(){

//主选项画面

//clrscr();

printf("****************欢迎使用停车场管理系统****************\n");

printf(" 请选择以下功能:\n\n");

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

printf(" 2. 车辆离去\n");

printf(" 3. 查看停车场内情况\n");

printf(" 4. 查看便道情况\n");

printf(" 5. 退出\n\n");

printf("****************Made by YanJingTu2008*****************\n");

printf("请输入1~6之间的数字选择相应功能:");

}//Welcome

void GoIn(){

//进场部分

Car e;

printf("您选择的是1.车辆到达\n");

printf("请输入车号:");

scanf("%d",&e.number);

printf("请输入到达时间(格式:HHMM):");

scanf("%d",&e.inTime);

int i = StackLength(S1);

if(i >= MAXSIZE){ //停车场内已满,车辆在便道等待

printf("\n停车场内已满,请在便道内等待!\n\n");

EnQueue(Q,e);

}else{ //停车场没满,车辆进入

Push(S1,e);

printf("\n车辆%d已于%d时%d分停放在第%d位。\n\n",\

e.number,e.inTime/100,e.inTime-e.inTime/100*100,i+1);

//e.inTime / 100 为车辆进入停车场的时间(小时)

//e.inTime - e.inTime / 100 * 100 为车辆进入停车场的时间(分钟)

//i+1 为停车位

}

}//GoIn

int GoOut(){

//出场部分

int CarNum; //车号

SElemType *CarID; //车辆在停车场中的位置,指向停车场栈的基址指针printf("您选择的是2.车辆离去\n");

if(StackEmpty(S1) == TRUE)

printf("停车场内没有车辆!\n\n"); //看停车场内是否有车else{

//车辆离开

printf("请输入要离开的车辆的车号:");

scanf("%d",&CarNum);

for(CarID = S1.base; CarID < S1.top; CarID++) //遍历,检查输入的车号if(CarID->number == CarNum) break;

if(CarID == S1.top) //没有这辆车

printf("对不起,没有这辆车!请检查您输入的车号:%d\n\n",CarNum);

else //找到这辆车了,让其离开停车场

{

printf("车辆%d进入停车场的时间是(格式:HHMM):%d",CarID->number,CarID->inTime);

printf("\n请输入车辆离开的时间(格式:HHMM):");

scanf("%d",&CarID->outTime);

if(CarID->outTime <= CarID->inTime)

{

printf("\n时间不正确,离开时间居然会早于到达时间?!\n\n");

return 0;

}

//计算费用,输出费用

int hh1,hh2,mm1,mm2,hh,mm;

float money; //停车金额

hh1 = CarID->inTime / 100;

mm1 = CarID->inTime - hh1 * 100;

hh2 = CarID->outTime / 100;

mm2 = CarID->outTime - hh2 * 100;

if(mm2 - mm1 <0)

{

hh2--;

mm2+=60;

}

hh = hh2 - hh1;

mm = mm2 - mm1;

money = (float)((hh * 60 + mm) * FEIYONG); ////费用四舍五入

printf("您本次的停车费用为%2.1f 元。谢谢使用。\n\n", money);

//车辆出栈(该车后面的车先出栈并入栈S2暂存)

SElemType e;

Pop(S1,e);

while(e.number != CarID->number || e.inTime != CarID->inTime)

{

Push(S2,e);

Pop(S1,e);

}

while(!StackEmpty(S2))

{

Pop(S2,e);

Push(S1,e);

}

//检查便道中是否有车辆,有的话第一辆车出队列并入栈S1

if(!QueueEmpty(Q))

{

DeQueue(Q,e);

e.inTime = hh2 * 100 + mm2;

Push(S1,e);

//显示提示:便道中的车进入停车场

printf("便道中的第一辆车%d于%d时%d分进入停车场!\n\n",e.number,hh2,mm2);

}

}

}

return 0;

}//GoOut

void LookChang(){

//查看停车场部分

printf("您选择的是3.查看停车场内情况\n");

StackTraverse(S1);

printf("\n");

}//LookChang

void LookDao(){

//查看便道部分

printf("您选择的是4.查看便道情况\n");

QueueTraverse(Q);

printf("\n");

}//LookDao

int main(){

//主函数

InitStack(S1); //初始化S1

InitStack(S2); //初始化S2

InitQueue(Q); //初始化Q

while(1){

Welcome();

char i = getchar(); //获取按键(主菜单)

if(i == 10) i = getchar(); //清空字符缓冲区

char i2 = getchar();

while(i2 != 10) i2 = getchar(); //清空字符缓冲区

switch(i){

case '1':

//选择进场

GoIn();break;

case '2':

//选择出场

GoOut();break;

case '3':

//选择查看场内情况

LookChang();break;

case '4':

//选择查看便道情况

LookDao();break;

case '5':

//退出

printf("程序已退出!谢谢使用!\n\n");

exit(0);

break;

default:

//其它

printf("您必须选择1~5之间的数字!\n");

}

}//while(1)

DestroyStack(S1);

DestroyStack(S2);

DestroyQueue(Q);

return 0;

}

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

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

数据结构c语言版课程设计停车场管理系统汇编

课程设计:停车场 c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统

停车场停满车后车会停在便道上面 下面附上源码,vc:(下编译 #include //#include //malloc #include //获取系统时间所用函数#include //getch() #include //设置光标信息mallco #define MaxSize 5 /*定义停车场栈长度*/ #define PRICE 0.05 /*每车每分钟收费值*/ #define BASEPRICE 0.5 //基础停车费

#define Esc 27 //退出系统 #define Exit 3 //结束对话 #define Stop 1 //停车 #define Drive 2 //取车 int jx=0,jy=32; //全局变量日志打印位置 typedef struct {int hour; int minute; }Time,*PTime; /*时间结点*/ typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/ Time arrtime; /*到达时刻或离区时刻*/ }CarNode; typedef struct /*定义栈,模拟停车场*/ {CarNode stack[MaxSize]; int top; }SqStackCar; typedef struct node /*定义队列结点的类型*/ {int num; /*车牌号*/ struct node *next; }QueueNode; typedef struct /*定义队列,模拟便道*/ {QueueNode *front,*rear; }LinkQueueCar; /*函数声明*/ PTime get_time(); CarNode getcarInfo(); void qingping(int a); void gotoxy(int x,int y); void printlog(Time t,int n,int io,char ab,int po,double f); void printstop(int a,int num,int x0,int y0); void printleave(int a,int po,int num); /*初始化栈*/ void InitSeqStack(SqStackCar *s) { s->top=-1; } /* push入站函数*/ int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈{ if(s->top==MaxSize-1) return(0); //如果栈满,返回0 else

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

实验二停车场管理 班级: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

停车场管理系统设计

面向对象程序设计(C++课程大作业 设计题目:停车场管理系统设计 院系:计算机科学与信息工程学院专业班级: 学号姓名: 指导教师:

目录 一、成员分工 (1) 二、需求分析 (2) 三、总体设计 (3) 四、详细设计 (6) 五、系统测试 (17) 六、总结 (20) 七、参考文献 (21)

成员分工 我们小组成员共有三名,分别是,为了能按时圆满的完成这次 VC++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该停车场管理系统需要以下 几个功能模块: (1)需求分析 (2)界面的设计 (3)添加功能 (4)显示功能 (5)查询功能 (6)编辑功能 (7)删除功能 (8)统计功能 (9)保存功能 (10)读取功能 经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工 神 1 具体完成以下模块的设计与实现: (1 )需求分析 (2 )界面的设计 (3 )添加功能 保存功能 (4 ) 神 2 具体完成以下模块的设计与实现: (1)显示功能 (2)查询功能 显示功能 (3) 神 3 主要具体完成以下模块的设计与实现: (1)编辑功能 (2)删除功能 (3)读取功能

二需求分析 1. 问题描述 定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、至U达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体 要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场 内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走, 则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 2. 基本要求 (1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一, 如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显 示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。 (5 )删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,贝U提示“记录为空!”并返回操作。 (6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。 (7 )保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 3 .系统运行环境 (1)硬件环境。联想双核处理器, 2G内存,2G独立显卡,80G硬盘。 (2) 软件环境。Microsoft Visual C++6 ?0,WindosXP 系统。

停车场管理系统—C语言课程设计.doc

停车场管理系统 1题目要求 设有一个可以停放n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。 2需求分析 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 3总体设计 这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。 4详细设计 main()函数体内包含了界面选则部分menu(),并单独 抽出来作为一个独立函数,目的在于系统执行每部分 模块后能够方便返回到系统界面。即main()函数写为 如下: void main()/*主函数*/ { menu();/*菜单函数*/ } 菜单函数: void menu() { int n,w; do { puts("\t\t**************MENU**************\n\n"); puts("\t\t\t 1.初始化"); puts("\t\t\t 2.有车进入"); puts("\t\t\t 3.有车离开"); puts("\t\t\t 4.退出"); puts("\n\n\t\t*********************************\n"); printf("Please choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) /*对选择的数字作判断*/ { w=1; getchar(); } else w=0; }while(w==1); switch(n) { case 1:chushi();break; /*初始化函数*/ case 2:jinru();break; /*车辆进入函数*/

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

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

基于WEB的停车场管理系统设计和实现

2009 届毕业论文(设计) 论文(设计)题目基于WEB的停车场管理系统的 设计和实现 院系名称计算机科学与技术系 专业(班级)计算机科学与技术 2005级本科1班 (学号)段景辉(0510101005) 指导教师正茂 系负责人袁暋 二O O九年五月三十日

摘要 随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,与此同时停车问题也越来越受到人们的关注,为了实现对停车场进行有效的管理,结合一些停车场的模式和现状开发出本停车场管理系统。 停车场管理系统是典型的信息管理系统,本停车场管理系统设计的主要功能包括场内车辆管理和后台数据库管理,其中场内车辆管理又分为出入场管理模块、收费模块、用户管理模块、停车场参数、停车场数据管理模块、系统管理模块等。我们从系统的设计和功能实现方面阐述了管理系统软件的开发过程。 系统采用了B/S架构,Tomcat6.0作为运行服务器,基于J2EE标准、JSP技术利用Hibernate3.1和Struts1.2框架作为开发工具,MyEclipse6.0开发环境,数据库采用Microsoft SQL Server 2000。开发过程利用MVC开发模式,层次分明。成功实现了该系统。试运行结果表明,该系统具有良好的性能和扩展性,较高的响应速度和效率,该系统符合实际的停车场管理系统,为停车场管理供一个快速,简单规范的管理平台。这对提高信息化程度,降低人力成本有着重要的意义。 关键词:停车场管理系统,J2EE,Hibernate3.1,Struts1.2

Abstract With the rapid development of modern society, people's living standards improve and the number of vehicles increases rapidly. People pay more attention to parking problems at the same time. In order to manage the parking lots more efficiently, we have developed a Parking Management System, with some modes and the actuality of present parking lots considered. Parking Management System is typically one of the information management systems. The main functions in the Parking Management System include vehicle management and background database management, and vehicle management is divided into the passing in and out module, the charging module, the user management module, the parking parameters,parking data management module, and the system management module. We discussed the management systems development process from the system design and function of the realization in the Papers. T omcat6.0 as a running server is used in this system on the basis of B/S structure. Based on J2EE standards, JSP technology as development tools which is taken advantage of Hibernate3.1 and Struts1.2 framework and MyEclipse6.0 as development environment are applied in the system. Microsoft SQL Server 2000 is used as background database. We develop the use of MVC pattern in development process. T est results show that the system has good performance and scalability, high response speed and efficiency which is in line with the actual park management system and can provide a fast, simple and standardized management platform. It is important to improve the information level and reduce labor costs. Key words: p arking management system,J2EE, Hibernate3.x, Struts1.2

C语言课程设计报告停车场管理系统

停车场管理一 一.要求: 1.设计一个停车场用长度为N的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。 2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 二、程序中所采用的数据结构及存储结构的说明 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。栈以顺序结构实现,队列以链表实现。 程序中分别采用了“栈”和“队列”作为其存储结构。 “栈”的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈的元素总是当前栈顶元素使次栈元素成为新的栈顶元素,即最后进栈者先出栈。程序中采用的结构是: typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车库*/ “队列”是限定所有插入操作只能在表的一端进行,而所有的删除操作都只能在表的另一端进行。插入端叫队尾,删除端叫对头。按先进先出规则进行。程序中采用的结构是:typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟通道*/ 三、算法的设计思想 由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求汽车停车

场内按车辆到达时间的先后顺序,依次由北向南排列。由此很容易联想到数据结构中的堆栈模型,因此可首先设计一个堆栈,以堆栈来模拟停车场,又每个汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素我设计成汽车的车牌号。当停车场内某辆车要离开时,在他之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。由于时间不象汽车一样需要让道,我设计了一个顺序表来存放时间。又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。 四.设计原理、框图

停车场管理系统方案设计

实用文档 停车场管理系统设计方案

重庆冠超科技有限公司

第一章项目概述 一、项目情况说明 本次方案设计主要针对物流园区停车场管理系统进行设计,同时结合我公司对整个停车场管理系统的总体规划,提供的管理模式以供参考。 此次停车场管理系统为一进一出(可脱机收费)停车场管理系统,入口人工识别车型发卡,出口刷卡软件显示收费金额(LED同步),在停车场系统的出口设置收费管理电脑近距离读卡系统、图像对比系统、收费等。设置系统管理中心,数据的查询、管理等。 第二章系统设计思路 一、系统总体规划设计 本方案中提供停车场管理模式以供参考: 管理模式: 此为目前行业所有厂家最为通用的一种模式,停车场系统只在本地独立运行,停车场系统为独立的局域网,不借用办公网络,只能在本地存储、备份、查询和管理系统数据。 二、系统组成及功能设计 1、入口设备组成及功能设计 (1)入口设备组成 停车场入口设备由入口自动道闸(车辆检测器)、摄像机、聚光灯、近距离读卡器等组成。 一卡一车的逻辑控制功能:同一张卡如果已经入场,必须出场后才能再次入场,确

保一卡一车、一进一出的逻辑控制。 收费及记录存储功能:控制机标准设计用户数为10000,脱机记录数为10000万条。 满足大系统有更大容量要求。 手动开闸记录功能:系统具有手动开闸记录功能,给管理人员提供更多的监管手段。 图像抓拍对比功能:车辆入场时,系统会抓拍车辆的入场图片并存储,以供车辆出场时进行人工比对。 2、出口设备组成及功能设计 (1)出口设备组成 停车场出口设备由出口(含近距离读卡器、CAK3000控制器、显示屏、语音提示系统及附件)、自动道闸(车辆检测器)、摄像机、聚光灯、远距离读卡器等组成。 (2)出场功能设计 信息显示及广告发布功能:出口票箱显示屏能通过管理电脑软件加载广告信息或停车场信息,在无车情况时,显示屏会滚动显示当前时间和用户发布的广告等信息。 语音提示功能:当有车行驶至出口票箱车辆检测线圈上时,出口票箱检测到有车,会根据当前的时间,立即通过语音提示系统发出礼貌用语并在显示屏上显示礼貌用 语(提示信息:如一路顺风等等)。对于控制机使用过程中的操作,语音提示系统 也会进行相应的提示。 一卡一车的逻辑控制功能:同一张卡如果已经出场,必须再次入场后才能再次出场,确保一卡一车、一进一出的逻辑控制。 手动开闸记录功能:系统具有手动开闸记录功能,给管理人员提供更多的监管手段。 图像抓拍对比功能:车辆出场时,系统会抓拍车辆的出场图片并存储,以便操作人员与入场图像进行人工比对。 3、出口岗亭管理设备组成及功能设计 (1)出口岗亭管理设备组成 停车场出口岗亭管理设备由收费电脑、网络交换机、临时卡计费器、视频捕捉卡等组成。 (2)出口岗亭管理功能设计 临时卡收费功能:临时卡出场可通过岗亭内临时卡计费器读卡(也可在出口票箱面板读卡感应区),并根据相应的收费标准进行收费并提示收费金额、停车时间等。

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

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

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

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

停车场管理系统-c语言

2015-2016学年第二学期《高级语言程序设计》 课程设计报告 题目:停车场管理系统 专业:计算机科学与技术 班级:15级计科<1>班 :胡玉玉 指导教师:广宏 成绩: 计算机学院 2016 年 4月 25 日

目录 1. 设计容及要求 (1) 1.1 课程设计容 (1) 1.2 课程设计的要求 (2) 2概要设计 (3) 2.1 设计思路 (3) 2.2 程序基本框架结构图 (4) 3设计过程或程序代码 (5) 3.1 主要程序代码及解释 (5) 4设计结果与分析 (13) 4.1 程序运行结果截图与分析 (13) 5参考文献 (16)

1.设计容及要求 1.1 课程设计容 ①通过本次课程设计,强化上级动手能力,在理论和实践的基础 上巩固《C语言程序设计》课程的学习容。掌握软件设计的基本方法。 ②熟悉C语言的基本容从而掌握C语言的基本知识以及了解C语 言的基本编写及运行。 ③了解程序的分模块编写并对程序的每个模块进行详细的设计并 且能理解一般C语言编写的程序。 ④掌握书写程序设计说明文档的能力。 ⑤熟悉C程序设计的开发环境及C程序的调试过程 1.2 课程设计的要求 ①分析课程设计题目的要求。 ②写出详细设计说明。 ③编写程序代码,调试程序使其能正确运行。 ④设计完成的软件要便于操作和使用。 ⑤设计完成后提交课程设计报告。

2.概要设计 2.1设计思路 停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车”到达”或”离去” 信息,汽车牌照以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:如是车辆到达,则输入汽车在停车场。 2.2程序基本框架结构图

停车场管理系统设计方案

停车场管理系统 设 计 方 案

目录 第一章概述 (3) 1.1传统停车场面临的问题 (3) 1.2用户需求分析 (3) 1.3设计思想 (4) 1.4设计依据 (5) 第二章系统设计 (6) 2.1系统方案 (6) 2.2系统功能特点 (7) 1)资料管理 (7) 2)费用管理 (8) 3)实时监控 (8) 4)故障报修 (8) 3、车牌识别系统功能 (8) 3.1、基本功能 (8) 3.2车牌识别系统优势 (11) 3.3系统使用流程 (13) 第三章系统技术参数及功能 (14)

3.1系统硬件 (14) 3.2系统软件功能 (19)

第一章概述 1.1传统停车场面临的问题 传统的停车场收费模式大多采用近距离读卡方式或取票的方式,车主必须停车刷卡/取票后方能通行,使用非常不方便,有的车主还需要下车刷卡/取票。因此会碰到以下问题: 1)下雨天刷卡/取票容易被淋湿; 2)上下坡道停车刷卡/取票容易造成溜车、碰撞等事故。 3)停车刷卡更有通行速度慢的缺点,尤其是在进出高峰容易造成拥堵。 4)各个项目管理独立分散,给管理带来极大不便。 1.2需求分析 一个好的建筑必须具备先进的技术、现代化的硬件设施,以保证车辆进出快捷、方便、顺畅、有序,泊车安全、防盗;同时还需要优秀的收费系统以保证管理方便、收费的公开、公正、合理、费用不流失,真正实现人性化、智能化、自动化的管理。 应着停车场的信息化、智能化管理的现实需求,能给予车主提供一种更加安全、舒适、方便、快捷和开放的环境,实现停车场运行的高效化、节能化、环保化;

1.3设计思想 在系统设计过程中,所有的步骤和目的都是为了建设一个具有规范性,实用性,先进性,可靠性,经济性,可维护性,可扩充性等诸多优点的系统,带有前瞻性的设计保障系统在当前具有业界先进性,尽量延长使用周期而不会因过时而淘汰. 1)规范性:系统的设计严格遵守系统相关的国家标准和行业标准,所使用到的设备符合对应的检测标准,设备和设备的接口,通讯数据格式等都采用国际通用的相关标准格式,最大限度保障系统的标准化和规范化. 2)实用性:系统在设计之前,已经充分了解和把握项目的实际需求和项目的相关情况,根据实际使用环境选择最为合适的硬件设备,同时根据具体的客户化要求对软件平台进行优化,满足项目所有的功能要求和实际使用需求,力求做到量身订作,丝丝入扣. 3)先进性:整个系统采用了先进的开放式分布模块化设计思想,充分使用了物联网技术,自动控制技术,网络通讯技术,RFID无线射频技术,传感器技术,接口转换技术等等诸多高新技术,从基础上保障了系统的技术含量高,思想超前,提升用户形象. 4)可靠性:先有成熟的技术做基础,再加上系统在多个实际项目中的实际使用,经过实践检验和不断完善的过程,现在的系统具有良好的稳定性,平均无故障允许时间长,系统容错能力良好,个别部件故障不影响系统其他部分的正常允许. 5)经济性:在高质量地实现项目功能需求的同时,系统在设计中从用户角度出发,设备选择遵循高品质,适当价格的前提.优化设计布线方案和设备安装,连接方式,力求给用户营造一个物超所值的优质的一卡通系统. 6)可维护性:系统采用模块化设计,各功能子系统相对独立,当某个子系统发生故障,不影响其他子系统的正常允许.设备的连接和数据通讯完全采用标准化设计,不受使用环境和设备具体类型等外在因素的制约.

C语言 停车场管理系统

附件二【学生用】 西北农林科技大学信息工程学院 数据结构实习报告 题目:停车场管理系统 学号2011013200 姓名阮屹 专业班级电子商务111 指导教师戴涛、杨会君 实践日期2012-7-6至2012-7-15

目录 一、综合训练目的与要求 (1) 二、综合训练任务 (1) 三、总体设计 (1) 四、详细设计说明 (1) 五、调试与测试 (7) 六、实习日志 (13) 七、实习总结 (13) 八、附录:核心代码清单 (14)

一、综合训练目的与要求 正文 综合训练的目的 本综合训练是计算机科学与技术、信息管理与信息系统、软件工程专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》、《数据结构》课程后进行的一次全面的综合练习。本课综合训练的目的和任务: 1. 巩固和加深学生对C语言、数据结构课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言、数据结构解决实际问题的能力 综合训练要求 1. 分析综合训练题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 4. 设计完成后提交课程设计报告 二、综合训练任务 通过此系统可以实现如下功能: 若是车辆到达,则输入汽车在停车场内或便道上的停车位置以及进站时间,当车子出站时,则显示在停车场内停车时间,并;应当支付的金额 要求:设计合理的存储结构,设计界面,设计程序完成功能; 三、总体设计 该程序是模拟了一个特殊车站,车站是一条直线,只有一个入口,车子要出站则他前边的车子都要为其让路,然后再回来并且覆盖出站车子原来的位置,这明显是一个要用到栈的环境。而当车站满了之后,便在一旁的便道里排队等待,先排队的当然先进车站。这是原题,我做了些许改动,设计了会员系统,会员享受9折优惠并且有会员专用便道,在车站满的情况下优先进入车站。 四、详细设计说明 整体设计如上,那么现在详细分析程序。这个程序每辆车实际在内存中保存了两次,一个是在主函数中的Car c的结构体数组中,一个在栈或队列中,而不是只用栈来储存,这样方便后来的车辆的查找和程序的管理,当然这样也相对好编写程序,思路相对清晰。这也是我本身对数据结构不熟练的结果。程序中用到的结构体:

数据结构 停车场管理

实习报告 题目:停车场管理姓名:袁韬博学号: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)队列模块:实现便道抽象数据类型

停车场管理系统设计

面向对象程序设计(C++)课程大作业 设计题目:停车场管理系统设计 院系:计算机科学与信息工程学院 专业班级: 学号姓名: 指导教师: 年1月

目录 一、成员分工 (1) 二、需求分析 (2) 三、总体设计 (3) 四、详细设计 (6) 五、系统测试 (17) 六、总结 (20) 七、参考文献 (21)

一成员分工 我们小组成员共有三名,分别是,为了能按时圆满的完成这次VC++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该停车场管理系统需要以下几个功能模块: (1)需求分析 (2)界面的设计 (3)添加功能 (4)显示功能 (5)查询功能 (6)编辑功能 (7)删除功能 (8)统计功能 (9)保存功能 (10)读取功能 经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工: 神1具体完成以下模块的设计与实现: (1 )需求分析 (2 )界面的设计 (3 )添加功能 (4 )保存功能 神2具体完成以下模块的设计与实现: (1)显示功能 (2)查询功能 (3)显示功能 神3主要具体完成以下模块的设计与实现: (1)编辑功能 (2)删除功能 (3)读取功能

二需求分析 1.问题描述 定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 2. 基本要求 (1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。 (5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。 (6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。 (7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 3.系统运行环境 (1)硬件环境。联想双核处理器,2G内存,2G独立显卡,80G硬盘。 (2)软件环境。Microsoft Visual C++6.0,WindosXP系统。

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

《计算机软件技术基础》实验报告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这个时刻离去。 二、需求分析

相关文档
相关文档 最新文档