ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:188.85KB ,
资源ID:2938522      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2938522.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程课程设计_停车管理系统(包含源代码).doc)为本站会员(tangtianxu1)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

软件工程课程设计_停车管理系统(包含源代码).doc

1、I学 年 设 计课程名称: 软件工程学年设计实验项目: 停车场收费管理系统姓 名: XXX专 业: 计算机科学与技术班 级: XXX学 号: XXXX指导教师 XXXII计算机科学与技术学院实验教学中心XXXX 年 XX 月 XX 日摘要 目前,我国经济逐渐发达,自行车王国逐步向汽车进军。因此,大量的停车场也随之而至。虽然某些大型停车场在工作中已经开始向计算机化靠拢,但仍不够完善。而中小型停车场更为稀少,陈旧的管理手段给顾客带来极大的不便,同时为了提高工作效率及服务质量,一套完整的停车厂管理系统的出现就十分必要了。本次设计,仅为一个简单的小型停车场管理系统。采用 C 语言编写,为dos 界面。

2、主要强调车辆的进站和出站操作,以及车场和通道之间的相互关系。根据车场内车道狭长且为一边开口的特点,将车道用先进后出的栈结构来描述。外面狭长的通道,为先进先出,可采用队列结构,为方便起见,采用链式队列结构来描述。本程序中的数据对象是汽车,为使操作更方便,将给每辆进车道的汽车编号,根据编号出场。其中,还包括入场时间、出厂时间、收取费用等项。关键字:停车场管理系统 栈结构 队列结构 软件工程 III目录1 需求分析 .11.1 引言 11.1.1 设计目的 11.1.2 任务概述 11.2 基本要求 11.3 系统用户分析 .21.4 用数据流程图描述 .22 概要设计 .42.1 设计思想 42.

3、2 实现方法 42.3 主要模块 42.4 各模块的主要功能及实现 52.2.1 车辆到达模块 52.2.2 车辆离开模块 52.2.3 停车场内与通道停放车辆的信息模块 52.2.4 获取时间 62.5 函数间调用关系 .63 详细设计 .83.1 界面及各模块详细设计 84 系统测试 .104.1 功能测试 104.1.1 车进站时车牌号的测试 105 总结 .125.1 用户手册 125.2 设计体会 12参考文献 13附 1401 需求分析1.1 引言1.1.1 设计目的a.通过课程设计,加深对软件工程思想的理解,能对系统功能进行分析,并设计合理的模块化结构。b. 通过课程设计,提高程

4、序开发功能,能运用合理的控制流程编写清晰高效的程序。通过课程设计,训练 C 程序调试能力,能将一个中小型各级组织系统联调通过。c. 通过课程设计,开发一个中小型系统,掌握运用软件工程思想研来发系统全过程。d. 通话课程设计,培养分析问题、解决实际问题的能力。1.1.2 任务概述设有一个可以停放 20 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面) 。如果停车场已放满 20 辆车,则后来的车辆只能在停车场大门外的通道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某

5、辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在通道上等待的车辆的次序。编制一程序模拟该停车场的管理 。要求程序输出每辆车到达后的停车位置(停车场或便道上) ,以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。1.2 基本要求1要求程序输出每辆车到达后的停车位置(停车场) ,以及某辆车离开停车场应交纳的费用和它在停车场内停留的时间。1.3 系统用户分析“停车场管理系统”主要是针对车辆存取工作而开发

6、的应用软件。通常有系统管理员、停车场车辆管理员和顾客三种用户,他们的使用权限如下:系统管理员:计算机人员,对系统进行维护。图书管理员:对停车信息进行数据操作。顾客:仅限于查阅。1.4 用数据流程图描述图 1-1 是根据操作流程建立的流程图。表 1-1 是车能否进停车场的判定表。图 1 -1 停车场流程图2表 1-1 进站停车判定表车场内车数 20 20车牌号位数 5 2 且5 2 且2 and top=-1;14int isemptystack(SeqStack *s)/判断栈是否为空if(s-top=-1)return 1;else return 0;int isfullstack(SeqS

7、tack *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;car gettop(SeqStack*s)/取栈顶元素car x;if(s-top!=-1)x=s-ds-top;return x;15typedef struct sln

8、ode/定义链队列的结点性质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-rear=q-head;q-head-next=null;q-rear-next=null;void addq(linkq*q,struct car x)/进队列 slnodetype *p;p=(slno

9、detype*)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-rear)p=q-head-next;if(p-next=null)x=p-data;q-rear=q-head;16free(p);elseq-head-next=p-next;x=p-data;free(p);return x;int isemptyq(linkq *q)/判断链队列是否为空if(q

10、-rear=q-head)return 1;elsereturn 0;void printstack(SeqStack *s)/车进站时输入信息显示,及提示站内情况int i;if(isemptystack(s) printf(“车站内没有车。“);elseprintf(“tt 车站内n 位置t 车牌t 进站时间t 站内状况n“);for(i=0;itop;i+)printf(“n“);printf(“%dt“,s-di.position);printf(“%st“,s-di.num);printf(“%st“,s-di.intime);printf(“共%d 辆“,s-top+1);if(s

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

12、tf(“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-data.num,p-data.intime);while(p-next!=null)p=p-next;printf(“%st%sn“,p-data.num,p-data.intime);elseprintf(“n 过道上有没有车在等待n“);void review(SeqStack*s,linkq*q)/查看车站和过道上

13、的情况printf(“*n“);printstack(s);18printq(q);printf(“*n“);void gettime(char a)/获取时间int i;static char nowtime30;time_t t;time(strcpy(nowtime,ctime(for(i=0;i5)printf(“车牌号位数不对!“);for(i=0;itop;i+)if(!(strcmp(k.num,s-di.num)flg=1;while(1)if(flg=1)printf(“车牌号已存在!n“);gets(k.num);19elsebreak;gettime(nowtime1);

14、strcpy(k.intime,nowtime1);/fprintf(fp,“车牌号 %s 时间: %sn“,k.num,k.intime); if (!isfullstack(s)push(s,k);printstack(s);else if(isfullstack(s)|!isemptyq(q)/若过道上还有车,则必须放在过道上printf(“*警告*n 车站已满,请暂时放在过道。n 现在情况如下:n“);k.position=Maxsize;addq(q,k);/放在过道上printstack(s);/输入车站情况printq(q);/同时输入当时过道上的情况printf(“*n“);v

15、oid outcar(SeqStack *s,linkq *q) /车出站SeqStack p; /申请临时放车的地方init(char nowtime10;int i,pos;long cost;int hour,min,sec;20struct car x,b,y1,y2,z;if(isemptystack(s)printf(“车站是空的,不能再出站了!n“);printf(“a“);elseprintf(“现在车站的情况是:n“);printstack(s);printf(“你要出站的车的序号是:n“);scanf(“%d“,if(pos0ipos;i-)x=pop(s);x.posit

16、ion=x.position-1;push(b=pop(s);gettime(nowtime);strcpy(b.outtime,nowtime);hour=(b.outtime0-0)*10+(b.outtime1-0)-(b.intime0-0)*10+(b.intime1-0);min=(b.outtime3-0)*10+(b.outtime4-0)-(b.intime3-0)*10+(b.intime4-0);sec=(b.outtime6-0)*10+(b.outtime7-0)-(b.intime6-0)*10+(b.intime7-0);b.delay=hour*3600+min

17、*60+sec;cost=b.delay;b.expense=cost;printout(/输出车出站时的情况-进入时间,出站时间,原来位置,花的费用等while(!isemptystack(push(s,z);if(!isfullstack(s)21strcpy(y1.intime,nowtime);push(s,y1);while(!isfullstack(s)push(s,y2);else printf(“有没有你要的车号n“);printf(“a“);int main()SeqStack park;linkq q;init(initq(char mess10;/fp=fopen(“ca

18、r_list.text“,“w“);printf(“ttt 车场管理系统 ntttn*nn“);printf(“提示:车站内最多只能放 Maxsize(由系统中定义)辆车,多余的暂时放在过道上。n 车站内收费标准:1 角/秒,过道上不收费。n“);printf(“n 你想进行什么操作?nIN- 车进站nOUT-车出站nLIST-查看车站及过道中的情况nHELP-获取帮助nEND-退出系统n“);printf(“n 操作:“);gets(mess);while(1)if(strcmp(mess,“END“)=0)22printf(“ttt 欢迎下次再来,再见!n“);break;else if(

19、strcmp(mess,“HELP“)=0)printf(“n 你想进行什么操作?nIN-车进站nOUT-车出站nLIST-查看车站及过道中的情况nHELP-获取帮助nEND-退出系统nn“);printf(“操作:“);clear(mess);gets(mess);elseif(strcmp(mess,“LIST“)=0)review(printf(“操作:“);else if(strcmp(mess,“IN“)=0)incar(printf(“操作:“);else if(strcmp(mess,“OUT“)=0)outcar(elseprintf(“操作:“);clear(mess);gets(mess);/问题:车牌号位数且车牌号可以重复

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报