数据结构课程设计报告

发布 2022-10-05 03:35:28 阅读 6666

课程设计。

课程名称)题目。

班级: 专业班级。

姓名: 姓名学号。

指导教师:

系主任: 2024年02月01日。

目录。需求说明 2

功能描述 3

系统设计及实现 3

1.头文件及宏定义 3

2.时间和汽车信息结构体的定义(部分**) 3

3.栈和队列的定义(部分**) 3

4.栈和队列的初始化(部分**) 4

实现过程 4

1.开始界面:输入车库容量 4

2.输入车辆到达信息 4

3.当车库停满车时临时停到便道上不收车费 5

4.车辆离开后车库有车位便道上的车进入车库并显示离去车的收费记录 5

5.显示车库及便道信息 5

6.停止输入显示制作者信息及退出程序 6

附录(**) 6

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:

若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。

#include <>

#include <>

#include <>

#include <>

#include <>

#define clearscreen() system( "cls" )清空当前屏幕。

#define setcolor() system("color 2f")/设置背景前景颜色。

#define pause( szprompt ) printf( "s", szprompt ),getch()

typedef struct carinformation //车辆信息。

char szregistrationmark[64]; 车牌号。

char szarrivaltime[16]; 到达时间。

char szentrancetime[16]; 进入停车场(开始计费)时间。

char szdeparturetime[16]; 离开时间。

tcarinformation, *lptcarinformation;

typedef struct carqueue //链队。

lptcarnode lphead; /头结点。

lptcarnode lprear; /指向当前队尾的指针。

int neffectivesize; /当前队中元素个数。

tcarqueue, *lptcarqueue;

void initqueue( lptcarqueue &lpcarqueue )

lpcarqueue = lptcarqueue ) malloc( sizeof( tcarqueue )

lpcarqueue->lphead = lptcarnode) malloc( sizeof( tcarnode )

lpcarqueue->lphead->lpnext = null;

lpcarqueue->lprear = lpcarqueue->lphead;

lpcarqueue->neffectivesize = 0;

3.当车库停满车时临时停到便道上不收车费。

#include <>

#include <>

#include <>

#include <>

#include <>

/ 清空当前屏幕。

#define clearscreen() system( "cls" )

/设置背景前景颜色。

#define setcolor() system("color 2f")

/ 显示字符串 szprompt 并等待用户按下任意键。

#define pause( szprompt ) printf( "s", szprompt ),getch()

typedef struct carinformation //车辆信息。

char szregistrationmark[64]; 车牌号。

char szarrivaltime[16]; 到达时间。

char szentrancetime[16]; 进入停车场(开始计费)时间。

char szdeparturetime[16]; 离开时间。

tcarinformation, *lptcarinformation;

typedef struct carstack

lptcarinformation lpcarinformation; /车辆信息

int ntop; /栈顶元素下标。

int nstacksize; /栈容量。

tcarstack, *lptcarstack;

/ 初始化栈 lpcarstack, 将其容量设置为 nsize

void initstack( lptcarstack &lpcarstack, int nsize )

lpcarstack = lptcarstack ) malloc( sizeof ( tcarstack )

lpcarstack->lpcarinformation = lptcarinformation ) malloc(

nsize * sizeof ( tcarinformation )

lpcarstack->ntop = 1;

lpcarstack->nstacksize = nsize;

/ 车辆信息 carinfo 入栈 lpcarstack

void push( lptcarstack &lpcarstack, tcarinformation carinfo )

lpcarstack->ntop++;

lpcarstack->lpcarinformation[lpcarstack->ntop] =carinfo;

/ 车辆信息从栈 lpcarstack 中弹出并存入 carinfo

void pop( lptcarstack &lpcarstack, tcarinformation &carinfo )

carinfo = lpcarstack->lpcarinformation[lpcarstack->ntop];

lpcarstack->ntop--;

/ 若栈 lpcarstack 空,返回 true;否则,返回 false

bool isstackempty( lptcarstack lpcarstack )

return lpcarstack->ntop ==1;

/ 若栈 lpstackfull 满,返回 true;否则,返回 false

bool isstackfull( lptcarstack lpcarstack )

return lpcarstack->ntop ==lpcarstack->nstacksize - 1 );

/ 销毁栈 lpcarstack,将指针 lpcarstack 置为 null

void destroystack( lptcarstack &lpcarstack )

free( lpcarstack->lpcarinformation );

free( lpcarstack );

lpcarstack = null;

typedef struct carnode //链队结点信息。

tcarinformation carinfo; /车辆信息。

struct carnode *lpnext; /指向下一个元素的指针。

tcarnode, *lptcarnode;

typedef struct carqueue //链队。

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...