课程设计停车管理系统(包含源代码)_第1页
课程设计停车管理系统(包含源代码)_第2页
课程设计停车管理系统(包含源代码)_第3页
课程设计停车管理系统(包含源代码)_第4页
课程设计停车管理系统(包含源代码)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计说明书题目: 停车场管理系统 院 系: 计算机学院 专业班级: *级*班 学 号: * 学生: * * * 指导教师: * * 年 * 月 * 日 29 / 34理工大学课程设计(论文)任务书 计算机学院 院系 * 教研室学 号*学生*专业(班级)*级计*设计题目停车管理系统设计技术参数在VC环境下编程实现,使用C语言实现DOS界面与算法。设计要求(1) 设计一个停车场计费系统,该停车场只有一个大门供进出车辆,按进站的先后顺序进站,而且出站时后来的车辆要依次退出,为要出站的车辆让道。若车场满了,车辆可在外面通道上等停,并要求记录进出站时间,计算出停车费用。(2) 为来停车的司机提供是否

2、有空车位的信息。(3) 为管理员提供查询车场信息,便于操作管理。 工作量课程设计任务要求不少于10页的报告。工作计划第一天:查找相关资料,并绘制草图!第二天:确定选用C语言为编程语言。第三天:写需求分析报告。第四天:着手进行编程,实现算法,并调试程序。第五天:测试程序并优化功能,最终完成设计报告。参考资料1峰.数据结构(C语言版)M.:中国科学技术大学,20082R.C.T.Lee S.S.Tseng R.C.Chang.王卫东译.算法设计与分析导论M.:机械工业,20083Ira Pohl.朔鹰 马瑞 薛静锋 吕坤译.C+教程M.:人民邮电,2007指导教师签字教研室主任签字 年 月 日 指

3、导教师评语:成绩:指导教师:年 月 日理工大学课程设计(论文)成绩评定表摘要 目前,我国经济逐渐发达,自行车王国逐步向汽车进军。因此,大量的停车场也随之而至。虽然某些大型停车场在工作中已经开始向计算机化靠拢,但仍不够完善。而中小型停车场更为稀少,旧的管理手段给顾客带来极大的不便,同时为了提高工作效率与服务质量,一套完整的停车厂管理系统的出现就十分必要了。本次设计,仅为一个简单的小型停车场管理系统。采用C语言编写,为dos界面。主要强调车辆的进站和出站操作,以与车场和通道之间的相互关系。根据车场车道狭长且为一边开口的特点,将车道用先进后出的栈结构来描述。外面狭长的通道,为先进先出,可采用队列结构

4、,为方便起见,采用链式队列结构来描述。本程序中的数据对象是汽车,为使操作更方便,将给每辆进车道的汽车编号,根据编号出场。其中,还包括入场时间、出厂时间、收取费用等项。关键字:停车场管理系统 C语言 栈结构 队列结构 目录1需求分析11.1引言11.1.1课程设计目的11.1.2任务概述11.2基本要求11.3 系统用户分析21.4 用数据流程图描述22概要设计42.1设计思想42.2 实现方法42.3 主要模块42.4各模块的主要功能与实现52.2.1车辆到达模块52.2.2车辆离开模块52.2.3停车场与通道停放车辆的信息模块52.2.4获取时间62.5 函数间调用关系63详细设计83.1界

5、面与各模块详细设计84系统测试104.1功能测试104.1.1 车进站时车牌号的测试105总结125.1用户手册125.2设计体会12参考文献13附141需求分析1.1 引言1.1.1 课程设计目的a. 通过课程设计,加深对数据结构这一课程所学容的进一步理解与巩固。b. 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。c. 通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。d. 通过课程设计,开发一个中小型系统,掌握系统研发全过程。e. 通话课程设计,培养分析问题

6、、解决实际问题的能力。1.1.2 任务概述设有一个可以停放20辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满20辆车,则后来的车辆只能在停车场大门外的通道上等待,一旦停车场有车开走,则排以便道上的第一辆车就进入停车场。停车场如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在通道上等待的

7、车辆的次序。编制一程序模拟该停车场的管理 。要求程序输出每辆车到达后的停车位置(停车场或便道上),以与某辆车离开停车场应交纳的费用和它在停车场停留的时间。1.2 基本要求要求程序输出每辆车到达后的停车位置(停车场),以与某辆车离开停车场应交纳的费用和它在停车场停留的时间。1.3 系统用户分析“停车场管理系统”主要是针对车辆存取工作而开发的应用软件。通常有系统管理员、停车场车辆管理员和顾客三种用户,他们的使用权限如下:系统管理员:计算机人员,对系统进行维护。图书管理员:对停车信息进行数据操作。顾客:仅限于查阅。1.4 用数据流程图描述图1-1是根据操作流程建立的流程图。表1-1是车能否进停车场的

8、判定表。图1-1 停车场流程图车场车数<20<20>20>20车牌号位数<2或>5>2且<5<2或>5>2且<5进站进通道表1-1 进站停车判定表2概要设计2.1 设计思想此停车场管理系统是在一个狭长的通道上的,而且只有一个大门可以供车辆进出,并且要实现停车场某辆车要离开时,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场的功能,就可以设计两个堆栈,其中一个堆栈用来模拟停车场,另一个堆栈用来模拟临时停车场,该临时停车场用来存放当有车辆离开时,原来停车场为其让路的车辆。至于当停车场

9、已满时,需要停放车辆的通道可以用一个链队列来实现。当停车场开走一辆车时,通道上便有一辆车进入停车场,此时只需要改变通道上车辆结点的连接方式就可以了,使通道上第一辆车进入停车场这个堆栈,并且使通道上原来的第二辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头结点连到原来的第二辆车上就可以了。2.2 实现方法对于此停车场管理系统的实现,就是用两个堆栈来分别模拟停车场以与停车场车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点而已。对于要对停车场的车辆根据其停放时间收取相应的停车费用,可以记录下车辆

10、进入以与离开停车场的时间,再用时间差乘以相应的单价并且打印出最后的费用就可以实现了。2.3 主要模块此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车场的堆栈以与用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先打印出此停车场管理系统选择页面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场与通道停放车辆的信息以与获取时间这四个函数模块。其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以与显示便道上车辆信息的函数。最后,从调用的

11、这四个函数中回到主函数结束整个程序的运行。2.4 各模块的主要功能与实现2.2.1 车辆到达模块此模块主要实现车辆进入停车场功能,通过判断合法性决定车辆能否进入停车场。实现伪码:If 车场车数<20辆 and 车牌合法 then车辆进入停车场并编号与记录时间End ifIf 车场已满 then进入通道End if车牌合法性判断伪码:If 车牌号位数>2 and <5 and 无重复车牌 then车牌合法End if2.2.2 车辆离开模块此模块主要实现车辆离开停车场功能,并能打印出车辆停留时间与费用。实现伪码:If 车场不为空 and 序号存在 then车辆出停车场并打印出进

12、出时间与费用End if2.2.3 停车场与通道停放车辆的信息模块 此模块主要实现车场车辆的停放与通道的利用,是本设计的核心。就是用两个堆栈来分别模拟停车场以与停车场车辆为其它车辆让路时退出停车的临时停放地点。至于通道上车辆的停放则用一个链队列来实现,此时,通道上车辆的离开或者进入停车场只需改变此链队列上的结点。模块中出现的函数:void init(SeqStack *s);int isemptystack(SeqStack *s);int isfullstack(SeqStack *s);int isfullstack(SeqStack *s);void push(SeqStack *s);

13、struct car pop(SeqStack *s,struct car x);car gettop(SeqStack *s);void initq(linkq*q);void addq(linkq*q,struct car x);struct car delq(linkq *q);int isemptyq(linkq *q);void printout(struct car *x);void printq(linkq *q);void review(SeqStack*s,linkq*q);2.2.4 获取时间该模块主要获取车辆时间信息,用以计算车辆停车费用。2.5 函数间调用关系如下图2-

14、1所示主函数 reviewincar用户界面outcarclearprintstackprintqgettimeprintoutincaroutcar主函数结束图2-1 函数调用关系图图中函数解释:review 查看车站与通道停车情况函数。incar 车进站函数。outcar 车出站函数。clear 定义数组函数。printstack 车进站时输入信息显示,与提示站情况函数。printq 进过道信息函数。gettime 获取时间函数。printout 出站时的信息函数。3详细设计3.1 界面与各模块详细设计进入界面后如下图所示。图3- 1 首界面测试要点:各选项与相应的功能能否成功连接。1.车

15、进站(1).功能:添加车牌号排序后进站。(2).输入项:车牌号。(3).输出项:车在车站的“位置”“车牌”“进站时间”“站状况”。(4).测试要点:注意不合法的车牌号能否在系统通过。2.车出站(1).功能:实现收费后出车站。(2).输入项:车序号。(3).输出项:车的“车牌”“进站时间”“进/出站”状态“出站时间”“原来位置”“停留时间”“费用”。(4).测试要点:要出站的车序号是否存在。3.查看车站与过道中的情况(1).功能:查看车站与过道中车辆情况。(2).输入项:查看提示。(3).输出项:车场状态即停车数量,以与通道停车数量。(4).测试要点:能否正确显示车的数量。4.获取帮助(1).功

16、能:放回到开始界面。(2).测试要点:能否正确返回。5.结束(1).功能:结束程序。4系统测试4.1 功能测试4.1.1 车进站时车牌号的测试1.划分等价类与测试用例如下表所示。假设此时站有一辆编号为ABC的车。表4-1 车牌号等价类划分表输入条件合理等价类不合理等价类长度(1)小于5个字符,大于2个字符(3)小于2个字符(4)大于5个字符字符(2)与站车牌不重复(5)与站车牌一样表4-2 车牌号测试用例测试结果期望结果覆盖围ddd有效(1)(2)A无效(3)123456无效(4)ABC无效(5)2.车出站时的序号测试1.划分等价类与测试用例如下表所示。假设此时站有一辆编号为ABC的车,车的序

17、号为1。表4-3 车序号的合理等价类输入条件合理等价类不合理等价类存在性(1)存在(2)不存在表4-4 车序号的测试用例测试结果期望结果覆盖围1有效(1)3无效(2)5总结5.1 用户手册这个程序用来实现对停车场车辆的管理,整个操作界面为中英文结合,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。这个程序操作简单,对于进出停车场的时间,也简化了操作,系统会自动获取提交时的时间,即进站和出站的时间。而且该程序也给用户提供了选择的机会,当点击运行该程序后,如果想退出程序,可以输入END退出该运行程序。至于使用过程中的更具体的问题,可以

18、参照该报告书中详细设计,整个程序的运行界面大致就如详细设计中屏幕截图的容。5.2 设计体会通过这一周的课程设计,加深了我对数据结构这门课程所学容的进一步的理解与掌握;同时,通过对停车场管理系统的开发,使得我将计算机课程所学知识与实际问题很好地相联接在了一起。在这次课程设计中,不仅培养了我开发一个中小型程序的能力,而且也培养了我的团队合作能力。在这次对停车场管理系统的开发过程中,我们小组成员互相合作,互相帮助,其中有程序功能成功实现时的欣喜,也有遇到问题、解决问题时的执着以与迷茫。在这次课程设计中,使得我很好地了解了在开发程序过程中合作的重要性。在这周课程设计中,我们小组所开发的停车场管理系统,

19、基本上可以完成每一项功能。汽车进入停车场的信息、离开停车场的信息以与通道上的信息都可以在程序上一一实现。但是,该程序也有不足的地方。主要表现在车辆的车牌号上,现实中的车牌号是一串字符,可是,在这个程序中并无限制,任何字符均可,这个与现实是有些不符的。在改进的程序中,还应该增加时间的判断功能,即停车场有可能有车辆停放的时间超过一天。还有一个很重要的问题,对于停车场外的通道在现实中是不可能无限长的,而我们的设计中为了便于考虑就忽略了这一点。总之,在这周的课程设计中,我以与我们这组的收获还是挺大的,不仅对于专业课有了更好的认识,而且在合作的过程中更加了解了团队精神的重要性。参考文献1峰.数据结构(C

20、语言版)M.:中国科学技术大学,20082R.C.T.Lee S.S.Tseng R.C.Chang.王卫东译.算法设计与分析导论M.:机械工业,20083Ira Pohl.朔鹰 马瑞 薛静锋 吕坤译.C+教程M.:人民邮电,2007附源代码:#include"stdio.h"#include"string.h"#include"stdlib.h"#include"time.h"#define null 0#define Maxsize 10/定义最大停车辆数void clear(char a)int i,coun

21、ta;counta=strlen(a);for(i=0;i<counta;i+)ai='0'struct car/定义车的结构体 char message10;char num10;char intime10;char outtime10;int expense;int delay;int position;typedef structstruct car dMaxsize;int top;SeqStack;void init(SeqStack *s)/初始化栈s->top=-1;int isemptystack(SeqStack *s)/判断栈是否为空if(s-&

22、gt;top=-1)return 1;else return 0;int isfullstack(SeqStack *s)/判断栈是否为满if(s->top=Maxsize-1)return 1;elsereturn 0;void push(SeqStack *s,struct car x)/进栈if(!isfullstack(s)s->top+;s->ds->top=x;struct car pop(SeqStack *s)/取栈顶元素,出栈car x;if(s->top!=-1)x=s->ds->top;s->top-;return x;ca

23、r gettop(SeqStack*s)/取栈顶元素car x;if(s->top!=-1)x=s->ds->top;return x;typedef struct slnode/定义链队列的结点性质struct car data;struct slnode *next;slnodetype;typedef struct /定义链的性质slnodetype *head;slnodetype *rear;linkq;void initq(linkq*q)/初始化链队列q->head=(slnodetype*)malloc(sizeof(slnodetype);q->

24、rear=q->head;q->head->next=null;q->rear->next=null;void addq(linkq*q,struct car x)/进队列 slnodetype *p;p=(slnodetype*)malloc(sizeof(slnodetype);p->data=x;p->next=null;q->rear->next=p;q->rear=p;struct car delq(linkq *q)/出链队列slnodetype *p;struct car x;if(q->head!=q->r

25、ear)p=q->head->next;if(p->next=null)x=p->data;q->rear=q->head;free(p);elseq->head->next=p->next;x=p->data;free(p);return x;int isemptyq(linkq *q)/判断链队列是否为空if(q->rear=q->head)return 1;elsereturn 0;void print1(struct car x)/进站前的信息printf("车牌t进站时间t进/出站t停留时间t费用n&q

26、uot;);printf("%tt",x.num);printf("Moveintttn");void print3(struct car *x)/出站时的信息printf("车牌 进站时间 进/出站 出站时间 原来位置 停留时间(秒) 费用(美分)n");printf("%s",x->num);printf("%st",x->intime);printf("?");printf("%st",x->outtime);printf(&quo

27、t;%dt",x->position);printf("%dt",x->delay);printf("t%dn",x->expense);void printstack(SeqStack *s)int i;if(isemptystack(s)printf("车站没有车。");elseprintf("t车站n位置t车牌t进站时间 站状况n");for(i=0;i<=s->top;i+)printf("%dt",s->di.position);print

28、f("%st",s->di.num);printf("%sn",s->ime);printf("ttt?%d?",s->top+1);if(s->top=Maxsize-1)printf("(已满)n");elseprintf("(还能放%d辆n",Maxsize-1-s->top);printf("n");void printq(linkq *q)if(!isemptyq(q)slnodetype*p;p=q->head-&g

29、t;next;printf("t过道:n车牌:t进道时间:n");printf("%st%sn",p->data.num,p->ime);while(p->next!=null)p=p->next;printf("%st%sn,p->data.num,p->ime");elseprintf("n过道上有没有车在等待n");void review(SeqStack*s,linkq*q)/查看车站和过道上的情况printf("*n"

30、);printstack(s);printq(q);printf("*n");void gettime(char a)/获取时间int i;static char nowtime30;time_t t;time(&t);strcpy(nowtime,ctime(&t);for(i=0;i<9;i+)nowtimei=nowtimei+11;nowtimei='0'strcpy(a,nowtime);void incar(SeqStack*s,linkq*q) /车进站struct car k;static char nowtime110

31、;printf("请你输入车牌(2-5?):n");gets(k.num);gettime(nowtime1);strcpy(ime,nowtime1);if (!isfullstack(s)&&isemptyq(q) /若车站不满,而且过道上没有车,则直接进入车站k.position=(s->top)+2;push(s,k);printstack(s);else if(isfullstack(s)|!isemptyq(q)/若过道上还有车,则必须放在过道上printf("*警告*n车站已满,请暂时放在过道。n现在情况如下:n&qu

32、ot;);k.position=Maxsize;addq(q,k);/放在过道上printstack(s);/输入车站情况printq(q);/同时输入当时过道上的情况printf("*n");void outcar(SeqStack *s,linkq *q) /车出站SeqStack p; /申请临时放车的地方init(&p);char nowtime10;int i,pos;long cost;int hour,min,sec;struct car x,b,y1,y2,z;if(isemptystack(s)printf("车站是空的,不能再出站了!n

33、");printf("a");elseprintf("现在车站的情况是:n");printstack(s);printf("你要出站的车的序号是:n");scanf("%d",&pos);if(pos>0&&pos<=s->top+1)for(i=s->top+1;i>pos;i-)x=pop(s);x.position=x.position-1;push(&p,x);b=pop(s);gettime(nowtime);strcpy(b.out

34、time,nowtime);hour=(b.outtime0-'0')*10+(b.outtime1-'0')-(ime0-'0')*10+(ime1-'0');min=(b.outtime3-'0')*10+(b.outtime4-'0')-(ime3-'0')*10+(ime4-'0');sec=(b.outtime6-'0')*10+(b.outtime7-'0')-(ime6-&

35、#39;0')*10+(ime7-'0');b.delay=hour*3600+min*60+sec;cost=b.delay;b.expense=cost;print3(&b);/输出车出站时的情况-进入时间,出站时间,原来位置,花的费用等while(!isemptystack(&p) /车出来后把刚才退出的车重新放回z=pop(&p);push(s,z);if(!isfullstack(s)&&!isemptyq(q)y1=delq(q);strcpy(ime,nowtime);push(s,y1);wh

36、ile(!isfullstack(s)&&!isemptyq(q)y2=delq(q);push(s,y2);else printf("有没有你要的车号n");printf("a");void main()SeqStack park;linkq q;init(&park);initq(&q);char mess10;printf("ttt车场管理系统ntttnnn");printf("提示:车站最多只能放Maxsize(由系统中定义)辆车,多余的暂时放在过道上。n车站收费标准:1美分/秒,过道

37、上不收费。n");printf("你想进行什么操作?nin->车进站nout->车出站nlist->查看车站与过道中的情况nhelp->获取帮助nend->退出系统n");printf("n操作:");gets(mess);while(1)if(strcmp(mess,"end")=0)printf("ttt欢迎下次再来,再见!n");break;else if(strcmp(mess,"help")=0)printf("你想进行什么操作?nin

38、->车进站nout->车出站nlist->查看车站与过道中的情况nhelp->获取帮助nend->退出系统n");printf("操作:");clear(mess);gets(mess);elseif(strcmp(mess,"list")=0)review(&park,&q);printf("操作:");else if(strcmp(mess,"in")=0)incar(&park,&q);printf("操作:");el

39、se if(strcmp(mess,"out")=0)outcar(&park,&q);elseprintf("操作:");clear(mess);gets(mess);附源代码:#include"stdio.h"#include"string.h"#include"stdlib.h"#include"time.h"#define null 0#define Maxsize 20/定义最大停车辆数void clear(char a)int i,counta;c

40、ounta=strlen(a);for(i=0;i<counta;i+)ai='0'struct car/定义车的结构体 char num5; /车牌号char intime10; /进站时间char outtime10; /出站时间int expense; /费用int delay; /停留时间int position; /停车位置;typedef structstruct car dMaxsize;int top;SeqStack;void init(SeqStack *s)/初始化栈s->top=-1;int isemptystack(SeqStack *s)

41、/判断栈是否为空if(s->top=-1)return 1;else return 0;int isfullstack(SeqStack *s)/判断栈是否为满if(s->top=Maxsize-1)return 1;elsereturn 0;void push(SeqStack *s,struct car x)/进栈if(!isfullstack(s)s->top+;s->ds->top=x;struct car pop(SeqStack *s)/取栈顶元素,出栈car x;if(s->top!=-1)x=s->ds->top;s->to

42、p-;return x;car gettop(SeqStack*s)/取栈顶元素car x;if(s->top!=-1)x=s->ds->top;return x;typedef struct slnode/定义链队列的结点性质struct car data;struct slnode *next;slnodetype;typedef struct /定义链的性质slnodetype *head;slnodetype *rear;linkq;void initq(linkq*q)/初始化链队列q->head=(slnodetype*)malloc(sizeof(slno

43、detype);q->rear=q->head;q->head->next=null;q->rear->next=null;void addq(linkq*q,struct car x)/进队列 slnodetype *p;p=(slnodetype*)malloc(sizeof(slnodetype);p->data=x;p->next=null;q->rear->next=p;q->rear=p;struct car delq(linkq *q)/出链队列slnodetype *p;struct car x;if(q->

44、;head!=q->rear)p=q->head->next;if(p->next=null)x=p->data;q->rear=q->head;free(p);elseq->head->next=p->next;x=p->data;free(p);return x;int isemptyq(linkq *q)/判断链队列是否为空if(q->rear=q->head)return 1;elsereturn 0;void printstack(SeqStack *s)/车进站时输入信息显示,与提示站情况int i;if

45、(isemptystack(s) printf("车站没有车。");elseprintf("tt车站n位置t车牌t进站时间t 站状况n");for(i=0;i<=s->top;i+)printf("n");printf("%dt",s->di.position);printf("%st",s->di.num);printf("%st",s->ime);printf("共%d辆",s->top+1);if(s-

46、>top=Maxsize-1)printf("(已满)n");elseprintf("(还能放%d辆)n",Maxsize-1-s->top);printf("n");void printout(struct car *x)/出站时的信息printf("车牌进站时间进/出站出站时间原来位置停留时间(秒)费用(角)n");printf("%s ",x->num);printf("%s ",x->intime);printf("出 ")

47、;printf("%st",x->outtime);printf("%dt",x->position);printf("%dt",x->delay);printf("t%dn",x->expense);void printq(linkq *q) /进过道信息if(!isemptyq(q)slnodetype*p;p=q->head->next;printf("t过道:n车牌:t进道时间:n");printf("%st%sn",p->d

48、ata.num,p->ime);while(p->next!=null)p=p->next;printf("%st%sn",p->data.num,p->ime);elseprintf("n过道上有没有车在等待n");void review(SeqStack*s,linkq*q)/查看车站和过道上的情况printf("*n");printstack(s);printq(q);printf("*n");void gettime(char a)/获取时间in

49、t i;static char nowtime30;time_t t;time(&t);strcpy(nowtime,ctime(&t);for(i=0;i<9;i+)nowtimei=nowtimei+11;nowtimei='0'strcpy(a,nowtime);void incar(SeqStack*s,linkq*q) /车进站(即输入IN后)int i;int flg;struct car k;static char nowtime110;printf("请你输入车牌(2-5位):n");gets(k.num);if(str

50、len(k.num)<2|strlen(k.num)>5)printf("车牌号位数不对!");for(i=0;i<s->top;i+)if(!(strcmp(k.num,s->di.num)flg=1;while(1)if(flg=1)printf("车牌号已存在!n");gets(k.num);elsebreak;gettime(nowtime1);strcpy(ime,nowtime1);if (!isfullstack(s)&&isemptyq(q) /若车站不满,而且过道上没有车,则直接进入车站k.position=(s->top)+2;push(s,k);printstack(s);else if(isfullstack(s)|!isemptyq(q)/若过道上还有车,则必须放在过道上printf(&q

温馨提示

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

评论

0/150

提交评论