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

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

数据结构课程设计

《停车场管理》

班级:

姓名:

学号:

设计日期:2012年7月2日——2012年7月11

1)需求分析

本次的数据结构课程设计所选的题目是停车场管理系统。根据题目要求,已知停车场是一个可停放n辆汽车的狭长通道,只有一个大门可供汽车出入,由此可将停车场的类型定义为栈,其容量为n。当停车场已经停满n辆车后,后来的车辆只能在便道上等待。当停车场内有车开走,便道上的第一辆汽车便可以进入停车场中。根据其先入先出的特点,可以将便道的类型定义为队列,容量不限。由题目可知,需停车辆的信息包括:车牌号码、汽车“到达”“离去”的信息、“到达”“离去”的时刻等。按照从终端读入的数据序列进行模拟管理。每辆车需要三个数据,其中车辆数据为:A表示到达,D表示离去,E表示程序结束。车辆牌照号码为整型数据,车辆到达或离开的时刻同样为整型数据。输入车辆到达应该输出的信息为:汽车在停车场内或便道上的停车位置;输入车辆离开应该输出的信息为汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

停车场管理系统主要实现以下几个功能:

(1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。

(2)该程序设计能够通过车牌号能查到该车辆在停车场或便道中的位置。

(3)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。实现停车场的调度功能。

该程序设计可以完整的模拟停车场的管理过程。

2)概要设计

停车场管理系统是充分利用数据结构中栈和队列的思想实现的,栈是一种只能在叫做栈的一段进行进栈或者出栈操作的线性数据结构。栈的主要特点是”后进先出”,即后进栈的元素先处理。停车场的容量即为栈的存储空间,停车场的车辆的停靠是无秩序的,因此采用链式存储的方式更适合,也方便车辆的调度。

队列是限定仅能在表的一端进行插入,在表的另一端进行删除的线性表。队列中可以插入的一端称为队尾,可以删除的一端称为队首。把一个元素插入队列中的操作为进队,队列中删除一个元素的操作为出队。队列存取操作符合:先进先出。停车场的车辆到达停车和车辆的离开的管理方式就是采用队列的“先进先出”的移动的思想。停车场的入口就是队列的队首,停车场的出口就是队列的队尾。

图1 停车场管理系统流程图

3.详细设计

1.全局变量及编译预处理语句

#define ERROR 0

#define OK 1

#define NULL 0

int count=0; //队列是否为空的标志

int times;

stack s,temp; //初始化栈

LinkQueue Q; //初始化队列

2.车辆信息类型

typedef struct node{

int passport; //存储车辆牌照信息

int time; //存储进场时间信息

}node;

3.栈类型(停车场)

typedef struct stack{

node *base;

node *top;

int stacksize;

}stack;

void initstack(stack &S,int n){ //构造空栈

S.base=(node *)malloc(n*sizeof(node));

S.top=S.base;

S.stacksize=n;

}

void push(stack &S,node e){ //入栈函数

if((S.top-S.base)>=S.stacksize){EnQueue(Q,e);} //如果栈满,调用入队函数else {

S.top->passport=e.passport;

S.top->time=e.time;

S.top++;

}

}

int pop(stack &S,node &e){ //出栈函数

if(S.top==S.base)return ERROR; //如果栈空,返回ERROR

--S.top;

e.passport=S.top->passport;

e.time=S.top->time;

return OK;

}

4.队列类型(便道)

typedef struct Qnode{

node Qdata;

struct Qnode *next;

}Qnode;

typedef struct {

Qnode *rear;

}LinkQueue;

void EnQueue(LinkQueue &Q,node e){ //入队函数

Qnode *q;

q=(Qnode *)malloc(sizeof(Qnode));

q->Qdata.passport=e.passport;

q->Qdata.time=e.time;

q->next=NULL;

if(count==0){Q.front=q;count++;} //若创建节点前队空,头指针指向节点Q.rear->next=q;

Q.rear=q;

}

void DeQueue(LinkQueue &Q,node &e){ //出队函数

if(Q.rear==NULL){}

else {

e.passport=Q.front->Qdata.passport;

e.time=Q.front->Qdata.time;

Q.front=Q.front->next;

if(Q.front==NULL){Q.rear=Q.front;count=0;}

}

}

5.主函数及其他函数的C++算法

void main(){

int n,exit;

float money;

char info;

int pass;

Q.rear=(Qnode *)malloc(sizeof(Qnode));

Q.rear->next=Q.rear;

printf("欢迎使用停车场管理系统\n本停车场容量为:"); cin>>n;

initstack(s,n);

initstack(temp,n);

printf("停车场费率为:");

cin>>money;

while(exit!=OK){

printf("\n请输入车辆数据\nA到达D离去E结束:"); cin>>info;

printf("请输入车辆牌照号码:");

cin>>pass;

if(info=='A'||info=='E')printf("请输入车辆进场时间:"); if(info=='D')printf("请输入车辆离场时间:");

cin>>times;

if(info=='E'){exit=OK;}

else if(info=='A'){

int i,j;

node a;

a.passport=pass;

a.time=times;

push(s,a);

for(i=1;i<=n;i++){

if(s.base[i-1].passport==a.passport){

printf("停车位置(停车场内):%d\n",i);

}

}

Qnode *tp;

tp=Q.front;

if(tp==NULL){}

else{

j=1;

while(tp!=Q.rear){

tp=tp->next;

j++;

}

printf("停车位置(便道):%d\n",j);

}

}

else if(info=='D'){

node d;

int tp,counter=0;

do{

counter++;

tp=pop(s,d);

while(tp!=ERROR){

if(d.passport==pass){

float m;

m=(times-d.time)*money;

printf("停留时间:%d您需交费:%f\n",times-d.time,m); while(temp.base!=temp.top){

pop(temp,d);

push(s,d);

}

wait(s);

d.passport=9999;

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

数据结构实验报告 ——实验三停车场模拟管理程序的设计与实现 本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 一、【问题描述】 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。为了以下描述的方便,停车场的停车场用“停车位”进行叙述,停车场的便道用“便道”进行叙述。 二、【数据结构设计】 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;

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

停车场管理系统应用软件 需求分析 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 图及基本符号:

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设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’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

停车场管理系统设计报告

数字频率计 班级:XXX班指导老师:XXX XXX 学生:A b C 学号:A B C 一内容提要: 停车场车位管理系统是用显示于车位空余数的管理系统.它的基本功能是显示车 位数,置数,清零,一键置最大泊车位数及显示器数字保持,报警。本文粗略讲 述了我在本次实习中的整个设计过程及收获。 讲述了停车场车位管理系统的工作原理以及其各个组成部分,记述了我在整 个设计过程中对各个部分的设计思路、对各部分电路设计方案的选择、元器件的 筛选、以及对它们的调试、对调试结果的分析,到最后得到比较满意的实验结果 的方方面面。 二设计内容及要求: 主要要求及指标: 1.设一个强制清空键。清空后, 显示停车场最大泊车位数(如40) 。设两个手动调 整键(个位,十位), 方便调整现场实际空余泊车位数,此键应去抖动。两位 LED显示. 2.设计一个方向识别电路供加/减计数器使用,进车后空余的泊车位数目减1, 出 车后空余的泊车位数目加1 。 3.当无空位时应将无空位告警提示灯点亮,此时若有车强行进入,无空位状态要 保持不变, 若有出车自动解除无空位状态。 4.(*) 设计两个红外线光发射/接收传感器电路供方向识别电路使用,传感器的输 出信号需整形处理。 三设计思路及原理: 停车场车位管理系统由四部分组成:显示器,计数器,加减脉冲发生器。 重点介绍小功能器,即包括置数,清零,一键置最大,保持,报警等功能的电路置数采用单脉冲置数

四:设计分析 包括了时基电路,光电门,出、入埠信号生成,信号判断,计数器和显示部分。 1. 时基电路 时基电路采用1kHz 自动脉冲或者也可以用555定时器多谐振荡器输出1kHz 的脉冲。考虑到整体电路的出错率与系统的耦合程度有很大关联,故采用实验电路箱的自动脉冲以确保整体电路稳定性。 但是,毕竟是课程设计实验,故一并附上555定时器组成的时基电路图,及OSC 监视图 被测信号 计数器 译码器 逻辑控制电路 显示器 时基电路 光电门 出、入埠信号生成 555_VIRTUAL Timer GND DIS OUT RST VCC THR CON TRI 101kΩR1 21.65kΩ R2 100ΩRl 10nF C 10nF Cf 12V Vs

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

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

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

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

停车场管理系统 C语言实习报告

C 语 言 课 程 实 习 报 告 【要求】 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟停车场管理。 【提示】 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某

辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 根据题目要求,停车场可以用一个长度为n 的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车辆都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场,所以可以设两个堆栈。 一、需求分析 根据题目要求,程序应该提供“到达/离去,汽车牌照号码,到达/离去”的输入、输出操作;在程序中需要浏览停车场的车位信息,应提供显示、查找、排序等操作;此外还应提供键盘式菜单实现功能选择。 二、总体设计: 根据需求分析,可以将系统的设计分为以下五大模块:(1)车辆进入;(2)车辆退出; (3)车辆等待;(4)车辆查询;(5)退出。 一、详细设计: 主函数中只包含菜单函数,菜单部分单独写成函数,只提供输入、功能处理和输出部分的函数调用,其中各功能模块用菜单方式选择。 [程序] #define N 30 /*等待车辆*/ #define M 20 /*车位*/ #define P 2 /*单位时间所收费用*/ #include #include #include struct cars /*定义车辆信息*/ { char state; int num; int in_time; 停车场 管理系统 车辆进入 车辆退出 车辆等待 车辆信息 显示 车辆查询 退出系统

智能化停车场管理系统组成及施工方法【最新版】

智能化停车场管理系统组成及施工方法停车场管理系统主要由以下三部分组成: 管理中心 管理控制中心由高性能工控机、打印机、停车场系统管理软件组成,管理控制中心负责处理进、出口设备采集的信息,并对信息进行加工处理,控制外围设备,并将信息处理成合乎要求的报表,供管理部门使用。该部分主要用得的接口转换器一般是485转换卡,TCP/IP 集线器,光纤转换器,停车场卡授权器等设备. 入口设备 进口设备由图像抓拍系统、智能补光、道闸、停车场出入口控制机,车辆检测器,自动发卡系统,远距离读卡设备等组成,主要负责对进入停车场的内部车辆进行自动识别、身份验证并自动起落道闸;对外来车辆进行发卡,抓拍记录进入时间、车辆信息并自动起落道闸。该部分有时候需要安装停车场管理系统车位显示屏系统,还有的需要安装停车场诱导系统! 出口设备

出口设备由图像抓拍系统、智能补光、道闸、停车场出入口控制器,车辆检测器,远距离读卡设备,临时计费器等组成,主要负责对驶出停车场的内部车辆进行自动识别、身份验证并自动起落道闸;对外来车辆进行计费,收费后自动起落道闸。 工作原理 固定卡用户车辆进入停车场时,入口控制机主动检测到车辆的进入,并检测卡是否有效。如有效,则道闸开启,车辆便可开进停车场,摄像机并抓拍下该车辆的照片,并存储在管理电脑。车辆离开停车场时,出口控制机自动检测到车辆的到来,并判断所持卡的有效性。如有效,则道闸开启,并触发出口摄像机对车辆进行抓拍,车辆便可离开停车场。 临时卡用户车辆进入停车场时,从入口控制机领取临时卡,入口摄像机抓拍下该车辆的照片,并存储在电脑里,控制器记录下该车辆进入的时间,联机时传入电脑。离开停车场时,入口控制机能检测到是临时卡,提示司机必须交费,临时车必须将临时卡交还保安,并需交一定的费用,经保安确认后方能离开。 说完了原理,那咱们说说施工。按先后顺序,可分为以下几个步

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

停车场管理系统测试报告

停车场管理系统测试分析报告 08软件工程(2) 20081344082 张伟东

1引言 1.1编写目的 随着时代的发展,私家车越来越多,而车位却十分紧张。在市区内有很多空间没有被充分利用,大多车辆是停在路边或者简易停车场,缺乏管理,这样导致了资源的浪费,也造成了街道的拥堵。为了适应社会的发展,大量的现代化大规模的停车场会被投入使用,但管理方面又容易出现问题。因此,停车场管理系统的开发和应用是十分必要的。 1.2项目背景 开发软件名称:停车场管理系统 项目开发者:某软件开发小组 用户单位:某公司 大体框架: 智能停车场收费管理系统 门禁管理系统 智能通道管理系统 闭路监视系统(CCTV) 消防安全系统(FA)和保安系统(SA) 1.3定义 一级错误:不能完全满足系统要求,基本功能未完全实现 二级错误:严重地影响系统要求或基本功能的实现,且没有更正办法(重新安装或重新启动该软件不属于更正办法)。 三级错误:严重地影响系统要求或基本功能的实现,但存在合理的更正办法(重新安装或重新启动该软件不属于更正办法)。 四级错误:使操作者不方便或遇到麻烦,但它不影响执行工作功能或重要功能。 五级错误:其他错误。 回测:产生测试错误或缺陷的测试项由软件开发人员进行修改调试正确后,由软件测试人员再次进行的针对该测试项及其相关项的测试。 1.4参考资料 钱乐秋等,《软件工程》,青还大学出版社;

张害藩,《软件工程导论》(第四版),清华大学出版社; 王珊等,《数据库原理及设计》,清华大学出版社; 2测试计划执行情况 2.1项目名称 项目中文简称:停车场管理系统 2.2测试项目 2.3测试方案 采用黑盒测试方法,整个过程采用自底向上,逐个集成的办法,一次进行单元测试,组装测试,测试用例的设计应包括合理的何不合理的输入条件。 2.4测试结果 3软件需求测试结论

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

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

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

停车场管理系统分析设计报告

《停车场管理系统分析设计报告》 专业:信息管理与信息系统 班级:信息06乙 学号: 姓名: 2009年06月 1.1项目背景 (1) 1.2现有系统存在的问题 (1) 1.3系统目标 (2) 1.4系统可行性研究 (2) 1.5系统实施计划 (2) 第2章系统分析 (3) 2.1业务流程分析 (3) 2.2功能分析 (3) 2.3 数据分析 (4) 第3章系统设计 (4) 3.1 模块结构图 (4) 3.2 代码设计 (4) 3.3 数据库设计 (5) 3.4 输出设计 (5) 3.5 输入设计 (5) 第4章系统实现 (6) 4.1 主控模块 (6) 4.2 信息录入模块 (8) 4.3 信息查询模块 (10) 第五章系统评价 (12)

第一章前言 1.1项目背景 智能停车场管理系统的发展背景:目前中国已经成为世界第三大汽车生产国和第二大汽车消费国,据权威部门数据表明,截至2006年底,中国汽车保有量突破3500万辆,私人汽车拥有量已达2925万辆,其中4年以内的新车占到百分之六十。预计2010年国内汽车保有量将达到5600万辆左右,而且每年汽车增长率都以50%-80%的速度增长,这就导致了50%的汽车无序停放现象,智能停车已经成为推动城市发展不可或缺的一部分,但随之而来的,车多位少、停车难的问题也日渐突出,成为当前社会普遍的关注点。 随着社会的进步和发展,人们的生活方式发生着深刻的变化。城市的交通拥挤便是这种变化引起的现象之一。城市由于交通设施的增加造成的交通拥挤甚至混乱给人们的生活带来极大的不便,这种不便迫使人们去寻找高技术的有效手段去解决这种不便。 智能化的停车场就是顺应这一时代需求的高技术产物。这不仅可以有效地解决交通拥堵,使车辆迅速通过。而且可以促进交通设施的正规化建设,同时也尽可能地减少车主失车被盗的忧虑。另外,在技术方面,其高技术性匹配于现有其他智能化系统,具有很好的开放性,易于与其他智能化系统组合成更强大的综合系统,顺应各种综合方式的高级管理。 近几年来,我国停车场自动管理技术已逐渐走向成熟,停车场管理系统向大型化、复杂化和高科技化方向发展,已经成为智能建筑的重要组成部分,并作为楼宇自控系统的一个子系统与计算机网络相联,使远距离的管理人员可以监视和控制停车场。建筑学生联盟。 智能停车场管理系统采用先进技术和高度自动化的机电设备,并结合用户在停车场收费管理方面的需求,以及交通管理方面的经验而开发的系统。该系统提供了一种高效率的管理方式,为用户提供更方便、更有效的服务。 智能停车场管理系统将机械、电子计算机和自控设备以及智能IC卡技术有机地结合起来,通过电脑管理可实现车辆出入管理、自动存储数据等功能,实现脱机运行并提供—种高效管理服务的系统。 新型的智能停车场将生活理念和建筑艺术、信息技术、计算机电子技术等现代高科技完美结合,提供的是一种操作简单、使用方便、功能先进的人性化系统。它依靠高科技,以人为本,采用图形人机界面操作方式,具有操作简单、使用方便、功能先进等优点,提供一种更加安全、舒适、方便、快捷和开放的智能化、信息化生活空间,促进了人文环境的健康发展。车场使用者可以在最短的时间进入或离开停车场,以提高车库管理质量,取得高的经济效益和良好的社会效益。 1.2现有系统存在的问题 (1)人工现金收费方式,一方面是劳动强度大、效率低,另一方面是在财务上造成很大的漏洞和现金流失、乱收费、管理成本高等弊端。 (2)停车场没有明码标价

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

相关文档
最新文档