停车管理系统._第1页
停车管理系统._第2页
停车管理系统._第3页
停车管理系统._第4页
停车管理系统._第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告(本科)课程:数据结构学号:Xxxx姓名:Xxxxx班级:2013级计算机科学与技术教师:Xxxx时间:2014/11/20-2014/12/25计算机科学与技术系设计名称:停车场管理系统设计内容、目的与要求:根据停车场的环境因素,综合考虑停车场相关事项,根据普通停车场进行制定收费模式及车辆进入停车场的车位安排,设计系统涵盖内容包括:1. 停车场管理系统管理员的登陆;2. 停车场管理系统语音播报;3. 停车场管理系统车辆进入时登记及车位安排;4. 停车场车辆驶出登记及所需缴纳停车费用的计算;5. 停车场内车位情况观察等功能。计划与进度安排:2014/11/202014/11/30

2、实地考察合肥市中小型停车场及网上查阅停车场收费及车位安排情况;2014/12/012014/12/06 根据停车场内部情况设计出所需功能;2014/12/072014/12/14 根据设计的方案编写主程序及各函数,实现功能;2014/12/152014/12/17 主程序调试,解决需要改进的函数2014/12/182014/12/20 编写系统语音播报代码及系统管理员登录函数;2014/12/212014/12/23 代码完善及程序改进;2014/12/242014/12/25 实验报告及说明书填写。设计过程、步骤登陆欢迎界面管理账号密码输入车辆进入车辆驶出场内信息退出系统一、 设计方案:二、

3、 设计步骤:1.欢迎登陆界面:在欢迎登陆界面中,调用void Voice1()函数对系统进行语音播报提示:“欢迎登陆停车场管理系统,本系统开发者由2013级计算机科学与技术一班吴志友、江强强、周继文开发”具体调用函数为:void Voice1()char *cmd="F:停车管理系统1.vbs" system(cmd); 2.构造函数PassWord()输入管理员密码,使用strcmp函数进行对输入的密码和账号的判断,输入正确进入停车场管理系统,否则输出“输入有误”提示字样并进行语音提醒。3.在程序中为了使管理系统有更好的美观性,登入系统后汽车模型滑过屏幕,后于屏幕中央停下

4、,使用函数CarPhoto();函数具体为:int CarPhoto()char graphics10100=小车造型(见附录代码); int i,j,k;for(i=0;i<10;i+) system("CLS"); for(j=0;j<10;j+) for(k=0;k<5*i;k+)printf(" ");printf("%sn",graphicsj);Sleep(200); return 0;4.车辆进入:车辆进入需记录汽车车牌号,例如皖H1688;需记录汽车进入停车场时间为12:12,实现此方案需定义一个函数

5、arrive( );函数参数为SqStack *In,LinkQueue *W ;此时每当进入一车时,系统自动分配一空余停车位,在车位满员情况下,系统将提示汽车需在通道中停留等待其他车辆驶出停车场。5.车辆驶出:车辆在驶出时,只需输入停车场的位置,例如1号车位,再输入车辆驶出停车场时间即可,系统根据检索,将车辆车牌显示出来,判断是否正确;再计算出该车在停车场的费用;使用leave( )函数;6.场内信息:实时监测停车场内车位及所停汽车情况,方便管理;使用info( )函数;并有两种实时情况:通道有车和通道无车,利用递归函数思想对其进行判断;7.退出系统:在while选择语句中,如果前面选择语句

6、的值为4,则直接在while语句中转至: printf("谢谢使用!n");exit(0);退出程序结果与分析(可以加页): 本停车场管理系统经实地考察与网络收集资料,基本满足停车场所需要求,涵盖停车场管理中三大方面及其他收费、停车位安排等细则方面;实现功能有车辆进入停车场、车辆驶出停车场、停车场内停车信息及车辆停留于此停车场需支付的停车费用;具体实现情况为: 图一、进入管理系统图二、成功登陆管理系统图三、登陆管理系统失败图四、登陆系统后信息提示图五、登入系统进入使用图六、车辆到达进入停车场图七、车辆离开停车场图八、停车场内信息存在的不足之处:1 登入停车场管理系统时间较长

7、,不切合在实际中应用;2 车辆无法自己选择合适的车位;3 该停车场管理系统未能成功自动调用系统时间,从而容易造成错误;4 语音提示部分只能等待播报结束才可输入账号、密码及其他信息,造成时间上的浪费,在真实应用中使用该系统会带来很多不便;5 程序功能还不是特别齐全,需改进地方比较大;设计体会与建议: xxx:从选题开始,我觉得这个课题设置的很切合实际,一方面,不仅可以考察我的动手编程能力,另一方面更是对我们课外实践活动的一次体验,编写停车场管理系统,我首先是通过网络了解到此系统需要具备的条件,例如:车辆进入需要记录的内容信息;在了解了部分信息之后,我自己也在课余时间去合肥市的一些中小型停车场为此

8、课题了解到更多的信息,例如:停车场的收费细则,是按时收费还是按需收费,进行前期一番调查之后,收费模式采取按时计费。在前期策划阶段,对于停车场管理系统的要求小组成员仔细商定之后,便各自分工完成;在完成期间我遇到了很多的问题,我很庆幸我能够遇到这些问题,例如:车子进入停车场之后,采用何种结构进行存储?如何对停车场内车辆停靠情况进行查询等;功夫不负有心人,经过自己的努力,上网查阅了大量资料及阅读书本,我解决了这些难题,使系统内容基本完善。但该系统仍存在些许遗憾,比如说驾驶者无法根据自己的喜好选择满意的停车位;语音播报期间不可跳跃,造成时间浪费严重,实际应用较低!xxx:在此次数据结构课程设计中,编写

9、了一个停车场管理系统,为实现系统的各大功能,运用了课堂上所学的链表,栈,队列等知识,同时为了追求系统界面上的美观以及更加贴近生活,如密码的设置,系统主界面的移动车型,以及语音播放功能和背景音乐的加入,查阅了大量的课外资料.在这次项目中,很用心去做,但是,在项目中也出现了很多的问题,最大的问题就是对程序设计框架结构的不了解,在实现代码与功能的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。许多错误不知从哪修改,以致托了整个设计的后腿。课程设计中,既回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大。此次停车场管理系统的设计让自己对数据结构的了解更深入,可以把它同

10、实际相结合,同时,又让我们学会了如何更好的从网上查找资料,还有同系学长之间的交流。虽然我对数据结构有了一定的掌握,但是到了真正使用,做课设的时候还是遇到了许多的问题。 在仔细研究过课设要求和功能需求后,我有了初步的想法。 在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了对事情的分析能力,通过怎样解决过程中出现的问题提高了我们编写代码的能力,查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。xxx:本次数据机构课程设计,对于我来说是一次比较大的挑战。这次的选题是停车场管理系统,是一个相对全面而较复杂的系统。不过也许是因为这个程序比较复杂,我学到了

11、许多很重要的知识,除了巩固设计语言外,而且了解了很多程序设计的实现方法,对数据结构这本书有了更深程度的认同。后来,我把程序给敲完了,我才发现,其实你只要把这个程序分模块完成,其实一点都不难,这好像数据结构中所学的“递进”思想吧,先算简单的,然后再返回再做比较复杂的。通过这次的课程设计,我拓宽了知识面,锻炼了能力。比如对于队列的队满或者队空的状态呀,或者队列的长度呀。我收获了如下的几点: 1. 程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的程序可以让大家很快的明白你的思想,而且很方便的来实现它。还有不管这程序有多长,只要你解释了之后,别人很快就能明白,看程序也比较

12、简单了。 2.数据结构是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,要善于捕获资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。在这里我特别感谢我们团队里的队友,没有他们,我想我是无法完成这样一个任务的.附录:#include<stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h>#include <windows.h&

13、gt;#include<mmsystem.h>#pragma comment(lib,"WINMM.LIB")int MAX; /*定义一个全局变量用来存储车库最大容量*/ float price;/*每车每小时的费用*/ typedef struct time int hour; int min; Time; /*时间结点*/ typedef struct node char num10; Time reach; Time leave; Car; /*车辆信息结点*/ typedef struct NODE Car *stack100; int top; Sq

14、Stack; /*停车站*/ typedef struct car Car *data; struct car *next; QNode; typedef struct Node QNode *head; QNode *rear; LinkQueue; /*通道*/ void InitStack(SqStack *); /*初始化栈*/ int InitQueue(LinkQueue *); /*初始化便道*/ int arrive(SqStack *,LinkQueue *); /*车辆到达*/ void leave(SqStack *,SqStack *,LinkQueue *); /*车

15、辆离开*/ void info(SqStack,LinkQueue); /*显示停车场信息*/ void PRINT(Car *p,int room);int CarPhoto();/*移动车型*/int PassWord();/*设置密码*/void Voice1();/*播放声音*/void Voice2();void Voice3();void Enter();/*登入*/void Introduce();/*介绍*/int loadSound();/*播放音乐*/void Enter() printf("-欢迎登入停车场管理系统-n");printf("请

16、输入账号和密码!n");printf("*n");void Introduce()printf("-欢迎使用停车场管理系统-n");printf("本系统开发者:(2013级计算机科学与技术一班)江强强,吴志友,周继文nn");int loadSound() PlaySound("F:停车管理系统ydyj.wav",NULL,SND_ASYNC|SND_FILENAME); return true;int PassWord()char szUser20 = 0;char *PUser3="JQQ

17、","WZY","ZJW"char *Pword3="123","321","111"char chPwd4;int flag_u=0,i=0,flag_p=0,num=0;printf(" 账号:"); gets(szUser); /printf("szUser=%sn",szUser);while(i<2) if(strcmp(szUser,PUseri)=0) flag_u=1; break; elseflag_u=0;i+; num

18、=i; /printf("num=%d,flag_u=%dn",num,flag_u);printf(" 密码:");i=0;while (i<10)chPwdi=getch();if(chPwdi=13)break;printf("%c", chPwdi);Sleep(500);printf("b*"); i+; chPwd3='0' /printf("chPwd=%sn",chPwd);printf("n");if(strcmp(chPwd,Pwor

19、dnum)=0)flag_p=1;elseflag_p=0;if(flag_u=1)&&(flag_p=1)printf(" 登录成功!n");elseprintf(" 您输入的账号或密码错误!请重新输入!nn");Voice3();PassWord();/递归getch();system("cls");loadSound();CarPhoto();Introduce();return 0;void InitStack(SqStack *s) /*初始化栈*/ int i; s->top=0; for(i=0;i

20、<=MAX;i+) s->stacks->top=NULL; int InitQueue(LinkQueue *Q) /*初始化便道*/ Q->head=(QNode *)malloc(sizeof(QNode); if(Q->head!=NULL) Q->head->next=NULL; Q->rear=Q->head; return(1); else return(-1); int CarPhoto()char graphics10100=" *"," * *","* * *"

21、," * *"," * * * * * *"," * * * * * *"," * * *"," * * * *"," * * * *",;/存储小汽车的图案 int i,j,k;for(i=0;i<10;i+) /控制小汽车运动的次数,如果无法跑到屏幕右端,可调大该数值 system("CLS");/清屏 for(j=0;j<10;j+)/输出小汽车图案 for(k=0;k<5*i;k+)/i前5是下一次图案距离上次图案的空格数,用来表

22、示小汽车每次运动的位移/若要运动快点可以调整这个数值 printf(" ");printf("%sn",graphicsj);Sleep(200);/控制显示的频率,200表示睡眠200ms return 0;void Voice1()char *cmd="F:停车管理系统1.vbs" system(cmd); void Voice2()char *cmd="F:停车管理系统2.vbs" system(cmd); void Voice3()char *cmd="F:停车管理系统3.vbs" sy

23、stem(cmd); void main() Enter();Voice2();PassWord();Voice1();system("cls");CarPhoto();SqStack In,Out; LinkQueue Wait; int ch; InitStack(&In); /*初始化停车站*/ InitStack(&Out); /*初始化让路的临时栈*/ InitQueue(&Wait); /*初始化通道*/ while(1) printf("-欢迎使用停车场管理系统-n");printf(" 本系统开发者:(2

24、013级计算机科学与技术一班)江强强,吴志友,周继文nn");printf("请输入停车场的容量:");scanf("%d",&MAX);printf("请输入停车场的收费标准(元/小时):");scanf("%f",&price);printf("*n");printf("* (1)车辆到达 (2)车辆离开*n");printf("* (3)场内信息 (4)退出系统*n");printf("*n");prin

25、tf("请选择:");while(1) ch=getch();switch(ch) case 49:arrive(&In,&Wait);break; /*车辆到达*/ case 50:leave(&In,&Out,&Wait);break; /*车辆离开*/ case 51:info(In,Wait);break; /*输出车站信息*/case52:printf(" 谢谢使用!");exit(0); /*退出主程序*/ default:printf("n按键无效,请重新按键选择!");/*49-

26、52分别表示"1"-"4"这四个按键的键值*/system("CLS");printf("-欢迎使用停车场管理系统-n");printf("本系统开发者:(2013级计算机科学与技术一班)江强强,吴志友,周继文nnn");printf("您输入的停车场容量为%d位,费用为%2.1f元/小时。n",MAX,price);printf("*n"); printf("*(1)车辆到达 (2)车辆离开 *n"); printf("*

27、(3)场内信息 (4)退出系统 *n"); printf("* ");printf("请选择:"); int arrive(SqStack *In,LinkQueue *W) /*车辆到达*/ Car *p; QNode *t; p=(Car *)malloc(sizeof(Car); flushall(); printf("n停车场还有%d停车位(若停车位为0,车可先进入便道等待)",MAX-In->top);printf("n 请输入车牌号码(例:湘D0734):"); gets(p->n

28、um); if(In->top<MAX) /*停车场未满,车进车场*/ In->top+;printf("n 停车的位置:%d号停车位。",In->top); printf("n请输入车到达的时间(格式*:*):"); scanf("%d:%d",&(p->reach.hour),&(p->reach.min); In->stackIn->top=p;printf("请按任意键返回");getch(); return(1); else /*停车场已满,

29、车进便道*/ printf("n停车位已满,该车须在便道等待!"); t=(QNode *)malloc(sizeof(QNode); t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; printf("请按任意键返回"); getch();return(1); void leave(SqStack *In,SqStack *Out,LinkQueue *W) /*车辆离开*/ int room; Car *p,*t; QNode *q; /*判断车场内是否有车*/ if

30、(In->top>0) /*有车*/ while(1) /*输入离开车辆的信息*/ printf("n请输入车在停车场的位置(1-%d):",In->top); scanf("%d",&room); if(room>=1&&room<=In->top) break; while(In->top>room) /*车辆离开*/ Out->top+; Out->stackOut->top=In->stackIn->top; In->stackIn->

31、;top=NULL; In->top-; p=In->stackIn->top; In->stackIn->top=NULL; In->top-; while(Out->top>=1) In->top+; In->stackIn->top=Out->stackOut->top; Out->stackOut->top=NULL; Out->top-; PRINT(p,room); /*判断通道上是否有车及车站是否已满*/ if(W->head!=W->rear)&&In-&

32、gt;top<MAX) /*便道的车辆进入停车场*/ q=W->head->next; t=q->data; In->top+; printf("n便道的%s号车进入车场第%d号停车位。",t->num,In->top); printf("n 请输入现在的时间(格式*:*):"); scanf("%d:%d",&(t->reach.hour),&(t->reach.min); W->head->next=q->next;if(q=W->rear) W->rear=W->head; In->stackIn->top=t; free(q); else printf("n停车场里没有车n"); /*没车*/printf("请按任意键返回");getch();void info1(SqStack *S) /*列表输出车场信息*/ int i; if(S->top>0) /*判断停车场内是否有车*/ printf("n车场:"); printf("n位置 到达时间 车牌号n"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论