数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx

上传人:b****4 文档编号:16577666 上传时间:2022-11-24 格式:DOCX 页数:21 大小:168.55KB
下载 相关 举报
数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx_第1页
第1页 / 共21页
数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx_第2页
第2页 / 共21页
数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx_第3页
第3页 / 共21页
数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx_第4页
第4页 / 共21页
数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx

《数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

数据结构课程设计 停车场模拟管理系统报告含源码Word下载.docx

(三)界面设计

1、主菜单界面

图1

2、车辆到达界面

图2

3、车辆离开界面

图3

4、列表显示界面

图4列表显示菜单

图5停车场情况

图6便道等待情况

5、车辆查询界面

图7

五、设计结果与分析

测试结果已达到我预期的结果,可以模拟实现车辆的进入、离开停车场,可以大体上让人了解到停车场的工作情况。

六、总结(收获和不足)

(一)课设的不足

本次课程设计完成的系统,只能简单的模拟停车场的车辆进出、收费情况和查询功能,没有将进入停车场的车辆信息进行存盘保存。

而且功能单一,有车离开时,还有可能要其他的车退出停车场让车(不够人性化);

模拟的停车场只是一个狭长的通道,存放的车辆只能是一种类型的,即占地面积是一样的;

按道理停车场可以存放各种类型的车,各种车的收费标准也应该不一样,这都应该是要完善的。

(二)课设的收获

历时四天,终于把数据结构课程设计做完了!

本次课设,我还是挑了比较简单的题目(停车场模拟管理系统)来做,在这个题目里,只用到了两个数据结构:

顺序栈和链式队列.顺序栈模拟停车场,队列模拟便道.通过这次课设,确实对自己的水平提高了很多,至少再次熟悉了本学期所学的栈和队列的使用和应用.记得在刚开始的时候,看到课设指导书上面的题目,感觉自己什么都做不出来,所以迟迟不敢动手。

当时间一天天逼近时,不能再拖了,就只能开工了。

抱着试一试的心态,我参考着资料上面的指示,一步一步地做,居然做出了一个简单的系统;

最后通过请教XX同学,对系统做了些完善(虽然还不是很完善),在此对他表示感谢!

通过这次课设,我再次强烈的感受到:

只要敢于尝试,很多我们自己认为做不到的事情都是可能做到的.勇于尝试,定有收获!

附录程序源码

#include<

iostream。

h〉

fstream。

h>

iomanip。

#include<

windows。

stdio.h〉

#include〈math.h〉

#definemaxnum5

#defineprice0.5

enumreturninfo{ok,error};

typedefstructtime//时间结构体

inthour;

intminute;

}TIME;

typedefstructnodea//汽车结构体

{

charnumber[10];

TIMEreach;

TIMEleave;

}CARNODE;

typedefstructnodeb//停车场

CARNODE*stack[maxnum+1];

inttop;

}SEQSTACKCAR;

typedefstructcar//车场中已停有的车链表结点

CARNODE*data;

structcar*next;

}QUEUENODE;

classLINKQUEUECAR//链表,存放等待进入停车场的车

public:

QUEUENODE*head;

QUEUENODE*rear;

LINKQUEUECAR()

{

head=rear=NULL;

};

};

voidstackpark(SEQSTACKCAR*s)

inti;

s->

top=0;

for(i=0;

i<

=maxnum;

i++)

s-〉stack[i]=NULL;

intqueuehall(LINKQUEUECAR*q)//

if(q—>

head==NULL)

q—〉head=(QUEUENODE*)malloc(sizeof(QUEUENODE));

q-〉head->

next=NULL;

q—>

rear=q-〉head;

returnok;

else

returnerror;

voidprint(CARNODE*p,introom)//已选中的停车场中的车,确定其离开的时间,并显示计费

inta1,a2,b1,b2;

doublePrice;

cout〈<

"

请输入车辆离开的时间(时和分用空格隔开):

cin>

>

p-〉leave。

hour〉〉p-〉leave.minute;

while(p->

leave。

hour〈0||p-〉leave.hour>

24||p-〉leave。

minute〈0||p—〉leave.minute>

60)

cout<

<

时间输入有错,请重新输入:

;

cin〉〉p—>

leave.hour>

〉p—〉leave.minute;

}

\n离开车辆的车牌号码:

”;

cout<

p->

number;

\n该车辆到达的时间为:

if(p—〉reach。

hour<

10)

cout〈〈"

0”<

〈p-〉reach。

”:

cout〈<

p—>

reach。

hour〈<

if(p—〉reach.minute<

0"

〈〈p—〉reach.minute〈〈endl;

cout〈〈p->

minute<

endl;

〈”离开时间为:

if(p—>

hour〈10)

”0”〈〈p—>

hour〈〈"

:

p-〉leave.hour〈〈"

”;

leave.minute<

〈<

minute〈〈endl;

〈endl;

a1=p—>

reach.hour;

a2=p->

minute;

b1=p—〉leave.hour;

b2=p->

leave.minute;

Price=((b1-a1)*60+(b2-a2))*price;

if(Price<

1)

Price=1;

〈"

\n该车应交费用为:

〈〈setprecision

(2)〈〈setiosflags(ios:

fixed)〈〈Price〈〈”元"

endl;

free(p);

}

intArrive(SEQSTACKCAR*enter,LINKQUEUECAR*w)//车进入停车场

CARNODE*p;

QUEUENODE*t;

p=(CARNODE*)malloc(sizeof(CARNODE));

请输入车牌号码(鄂C12345):

cin〉>

p—〉number;

if(enter—〉top〈maxnum)

enter—〉top++;

\n车辆在停车场的第”<

〈enter->

top〈<

”个位置。

〈〈endl;

cout〈〈”请输入车辆到达的时间的时和分(用空格隔开):

cin>

p-〉reach.hour〉>

p-〉reach。

minute;

while(p->

0||p—〉reach。

hour>

24||p—〉reach。

minute〈0||p->

reach.minute〉60)

{

cout〈<

cin>

hour〉〉p-〉reach.minute;

enter—〉stack[enter->

top]=p;

车辆停放完毕!

”<

〈”\n该车辆需在便道等待!

\n"

flush;

t=(QUEUENODE*)malloc(sizeof(QUEUENODE));

t—〉data=p;

t—>

w—>

rear—>

next=t;

w-〉rear=t;

returnok;

voidLeave(SEQSTACKCAR*enter,SEQSTACKCAR*temp,LINKQUEUECAR*w)//确定要离开的车所在的车道

introom;

CARNODE*p,*t;

QUEUENODE*q;

if(enter—〉top〉0)

while

(1)

\n请输入车所在停车场的位置:

cin〉>

room;

if(room〉=1&&room<

=enter-〉top)

break;

while(enter—〉top>

room)

temp—〉top++;

temp->

stack[temp—>

top]=enter->

stack[enter—>

top];

enter-〉stack[enter—>

top]=NULL;

enter-〉top--;

}

p=enter-〉stack[enter—>

top];

enter—>

stack[enter-〉top]=NULL;

enter-〉top——;

while(temp->

top〉=1)

enter->

top++;

enter—〉stack[enter—>

top]=temp->

stack[temp->

top];

temp-〉stack[temp—〉top]=NULL;

temp—〉top——;

print(p,room);

〈”\n车辆已离开!

〈endl;

system("

pause"

);

if((w—>

head!

=w—〉rear)&

&

enter—>

top<

maxnum)

q=w—〉head—〉next;

t=q->

data;

enter—>

”\n便道的”<

t-〉number〈〈"

号车进入停车场"

〈enter—>

〈”号位置。

cout<

”请输入现在的时间(时和分用空格隔开):

cin〉〉t—>

〉t->

while(t->

0||t—>

reach.hour>

24||t-〉reach。

cout〈〈”时间输入有错,请重新输入:

cin〉〉t—>

t—>

reach.minute;

}

w—>

head—>

next=q-〉next;

if(q==w—>

rear)

w—>

rear=w-〉head;

stack[enter->

top]=t;

free(q);

停车场里没有车!

endl〈<

system(”pause"

);

intsearchcar(SEQSTACKCAR*enter,LINKQUEUECAR*w)

charnum[256]="

intpos=enter-〉top,flag=0;

QUEUENODE*p=NULL;

”请输入要查询的车牌号:

”〈〈endl;

num;

while(pos〉0)

if(!

strcmp(enter—〉stack[pos]-〉number,num))

flag=1;

break;

pos—-;

if(flag)

{

车位号到达时间车牌号\n”;

if(pos<

”"

〈〈”0”<

pos<

\t\t”;

else

”<

pos〈〈”\t\t"

if(enter—〉stack[pos]->

0”〈〈enter—〉stack[pos]—>

〈”:

enter-〉stack[pos]-〉reach。

if(enter-〉stack[pos]->

0”〈〈enter-〉stack[pos]-〉reach.minute;

cout〈〈enter->

stack[pos]—〉reach.minute;

\t\t"

stack[pos]—〉number〈〈endl;

pause”);

p=w—>

head-〉next;

while(p)

if(!

strcmp(p—>

data—>

number,num))

flag=1;

break;

p=p—>

next;

if(flag)

〈”\n车牌号状态\n”;

cout〈〈””<

〈p—>

data-〉number<

\t\t等待中”<

〈endl〈<

system(”pause”);

”停车场内没有此车!

system("

returnflag;

voidlist1(SEQSTACKCAR*s)//显示停车场中的停车情况

if(s-〉top〉0)

”\n停车场:

车位号到达时间车牌号\n"

for(i=1;

=s—〉top;

if(i<

cout<

”0”〈〈i〈〈"

\t\t"

else

"

i〈<

”\t\t"

if(s->

stack[i]-〉reach.hour<

〈s-〉stack[i]—>

hour〈〈”:

〈s—〉stack[i]—>

stack[i]->

reach.minute<

0”〈<

s—〉stack[i]-〉reach.minute〈<

”\t\t"

cout〈〈s—>

stack[i]->

reach.minute〈〈”\t\t”;

〈s-〉stack[i]—〉number<

\n停车场里没有车!

voidlist2(LINKQUEUECAR*w)//显示正在等待进入停车场的车

QUEUENODE*p;

p=w-〉head—>

if(w—〉head!

=w-〉rear)

\n等待车辆的号码有:

while(p!

=NULL)

p=p-〉next;

cout〈〈”\n便道里没有车!

voidlist(SEQSTACKCARs,LINKQUEUECARw)//列表显示

intflag,tag;

flag=1;

while(flag)

cls”);

cout〈〈”**************************”〈〈endl;

|列表显示菜单|”<

cout〈〈”**************************"

”||"

|1。

车场停车情况|"

cout〈〈”|2。

便道车辆等待情况|"

”|3。

返回主菜单|"

||”〈〈endl;

**************************”<

”请输入你的选择:

〉tag;

while(tag〈1||tag>

3)

”你的输入有错!

请重新输入:

〉tag;

switch(tag)

case1:

system(”cls"

list1(&

s);

case2:

system(”cls”);

list2(&

w);

case3:

system(”cls”);

flag=0;

default:

intinstruct()//说明

rewind(stdin);

〈”=====================欢迎阅读系统说明========================="

||||”<

cout〈〈”||请仔细阅读以下说明:

||"

”||||"

”||1、本系统设置车位数固定,车位数为2(便于操作);

||"

〈”||2、该停车场最低收费1元,小于1元均按1元收费;

||”〈〈endl;

”||3、时间输入:

按24进制输入,时和分用空格隔开;

”||4、车牌输入:

先输入一个省号简称和字母,后输入一串数字;

||"

||5、车辆离开:

当输入车位号时,再输入离开的时间;

〈”||车辆离开后,便道的第一辆车进入停车场;

||6、车辆停留时间最长为一天,驶离时间应大于驶入时间;

||"

〈”||||"

”=======================停车场,谢谢阅读======================="

return0;

intmain()

SEQSTACKCARenter,temp;

LINKQUEUECARwait;

intchoice;

system(”colorf0”);

stackpark(&

enter);

temp);

queuehall(&

wait);

while

(1)

system(”cls”);

╭────────────╮”<

|停车场模拟管理系统|”〈〈endl;

|T1123—03-|"

”|2013.7。

1|"

”╰─────────────╯"

〈”===========================”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1