c语言课程设计

发布 2022-09-30 17:54:28 阅读 5921

《数据结构》课程设计报告。

2015-2016学年第一学期。

学生姓名: 陈宇星

学生学号: 20140902402

所在系部: 计算机工程系

班级名称:计算机科学 2014级(4)班。

实验课时: 32

指导教师: 康丽军

2024年 01月 15日。

目录。一.实习目的 3

二.问题描述 3

三.需求分析 3

四.概要设计 3

1.系统用到的抽象数据类型定义: 3

2.本程序用到的模块: 4

五.详细设计 4

1.车辆信息类型 4

2.车辆进出停车场信息类型 5

3.主函数伪码算法 8

六.使用说明 9

七.c语言实现 9

八.运行结果 15

1.汽车停车: 15

2.汽车离开: 15

3.获得当前停车信息: 16

九.参考文献: 17

了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。

当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。

该程序所做的工作的是实现停车场管理。此程序规定:

要求以顺序栈模拟停车场,以链队列模拟便道;从终端读入汽车到达或离去的数据,每组数据包括三项:①是“停车”“离开”还是“获得当前停车信息”;②汽车牌照号码;③“到达”或“离去”的时刻;

程序每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中的位置和存入时间;如果是离去的车辆,则输出其在停车场存入和离开时间和应交的费用;

程序的功能包括:

汽车进入车场。

添加车辆信息:车牌号,进车时间,如果停车场已满,则将车辆停在临时便道内。

汽车退出车场。

根据退出车辆的车牌号,进行优先推出,再根据退出时间计算停车费用。并将临时便道中的车辆停入停车厂内。

获取当前停车信息。

1)adt stack

数据对象:可以是任意类型的数据,但必须属于同一数据对象。

数据关系:栈中数据元素之间是线性关系。

基本操作:initstack (s);

push (s,x);

pop (s,x);

adt stack:

adt linkqueue

数据元素:可以是任意类型的数据,但必须属于同一个数据对象。

关系:队列中数据元素之间是线性关系。

基本操作:initqueue (q);

enterqueue (q,x);

deletequeue (q,y);

adt linkqueue

主程序模块:

void main (

声明定义。调用栈与队列的函数。

主信息。栈模块——实现栈抽象数据类型。

队列模块——实现队列抽象数据类型。

结构体模块——用于对对象及变量的管理。

各模块之间的调用关系如下:

主函数程序。

结构体模块。

栈模块。队列模块。

typedef struct

int a;

string b;

int c;

int d;

car;typedef struct

car elem [2];

int top;

seqstack;

typedef struct node

car d;

int n;

struct node *next;

lqnode;

typedef struct

lqnode *front;

lqnode *rear;

linkqueue;

void initstack (seqstack *s)

s->top=-1;

int push (seqstack *s,car x)

if (s->top==1)

return (0);

s->top++;

s->elem [s->top]=x;

return (1);

int pop (seqstack *s,car *x)

if (s->top==-1)

return (0);

elseint initqueue (linkqueue *q)

q->front= (lqnode *)malloc(sizeof (lqnode));

if (q->front!=null)

else return (0);

int enterqueue (linkqueue *q,car x)

lqnode *newnode=new lqnode;

newnode= (lqnode *)malloc(sizeof (lqnode));

if (newnode!=null)

else return (0);

int deletqueue (linkqueue *q,car *x)

lqnode *p;

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

return (0);

p=q->front->next;

q->front->next=p->next;

q->rear->n--;

if (q->rear==p)

*x=p->d;

delete p;

return (1);

int in (seqstack *s,linkqueue *q,car x)

if (s->top<1)

elsereturn (1);

int out (seqstack *s,seqstack *l,linkqueue *q,car a)

car x;

float money;

if (s->top==-1) else

if (if (q->rear->n!=0)

return (1);

else

int l=q->rear->n;//便道出车会打乱车次,将存有编号车辆数目信息的n备份。

linkqueue e; /定义临时便道帮助遍历便道上的车辆。

initqueue (&e);

while (deletqueue (q,&x)!=0&&

C语言课程课程设计

课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...