《停车场管理系统软件工程课程设计报告.doc》由会员分享,可在线阅读,更多相关《停车场管理系统软件工程课程设计报告.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .软件工程试卷论文2021-2021 学年 第1学期题 目:停车场管理系统的分析和设计学生XX:琦系 别: 信息与计算科学系 专业年级:2021级计算机科学与技术指导教师:兆辉 2021 年 1 月 1 日. .word.zl. .目 录第一章 工程概述 31.1 开发背景 31.2 开发目的 31.3 开发运行境 31.4 系统功能 3第二章 需求分析42.1 系统需求 4 2.2 功能需求 42.3 业务流图 4第三章 总体设计63.1 根本设计概念和处理流程 63.2 系统层次模图6第四章 数据库计74.1 数据库的逻辑设计 74.2 数据库的配置10第五章详细设计135.1主菜单模
2、块的设计与实现135.2 初始化模块的设计与实现:145.3 车辆进入模块的设计与实现145.4 车辆离开并收费模块的设计与现15第六章 测试及提交 16七 附: 模块源代码 17参考文献20第一章 工程概述1.1 开发背景:近年来,随着我国经济的快速开展,人们生活水平的不断提高,物质需求和生活式也发生着深刻的变化,以前属于奢侈品的汽车己经逐步走入了市民的日常生活。伴随汽车消费群众化和各种机动车辆大围的迅速普及,车辆对其配套设施特别是停车场提出了更高的要求。停车是速度为零的交通,停车场及附属相关设施是静态交通的重要组成局部。停车场收费管理系统是伴随着公用收费停车场这一新生事物而诞生的。 目前的
3、多数停车场存在着以下几个问题,管理漏洞、系统的可靠性、独立性强、收费过程比较繁琐、劳动强度高、停车场利用率低下、票款易流失等。针对这些问题该停车场系统从以下面进展设计。针对管理进展了优化,采用划卡消费和现金支付相结合,系统计时计费。采用Java高级编程语言和WEB相关技术开发设计管理系统软件,实现网络管理操作。优化后的系统使用便、效劳高效、收费透明、防止票款的流失,提高可靠性同时也提高了操作者的工作效率。1.2 开发目的:随着计算机技术的开展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性设有一个可以停放n辆
4、汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放最先到达的第一辆车放在停车场的最里面。如果停车场已放满n辆车,那么后来的车辆只能在停车场大门外的便道上等待,一旦停车场有车开走,那么排在便道上的第一辆车就进入停车站。停车站如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。1.3 开发运行环
5、境:开发工具:java语言开发环境:JDK1.4 系统功能:(1) 登录、注册功能.(2) 车辆离开查询功能(3) 车辆进入查询功能第二章 需求分析2.1 系统需求根据题目要求,因为停车场是一个单条的序列,可以用构造体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开场时,停车场要初始化。2.2 功能需求实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。2.3 业务流程图车进入车场车辆到达以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号初始
6、化车站, 初始化让路的临时栈, 初始化通道车场未满,车进车场车场已满,车进便道判断车场是否已满车输入车子到达时间,车牌号未满判断车场内是否有车不做任何计算无点x有输入离开车辆的离开时间,进展停车费用的计算此车后面的车辆退出并进入临时栈车子离开图 3-1第三章 总体设计3.1 根本设计概念和处理流程互联网技术的飞速开展,Java等设计工具的便实用,以及数据库技术的开展给本系统的设计和实现提供了技术上的支持。系统根本的流程是:用户登录主界面选择各项子系统。3.2 系统层次模块图停车场管理系统退出系统查看车位使用状况计算停车费用车辆离开信息车辆到达信息车牌号到达时间离开时间该车腾出的车位号无空余车位
7、有空余车位每小时所需停车费用到达时间车牌号离开时间车牌号该车使用的车位号有车离开时新到来车辆停放新到来车辆在便道上等候新到来车辆停放第四章 数据库设计4.1数据库的逻辑设计:下面给出各个表的详细构造。表4-1-1 卡信息表字段名描述类型长度是否为空是否主键id自增int4否是cardid卡编号varchar20是否cardno卡号varchar20是否cardtype卡类型varchar20是否cardmoney余额money8是否sendtime发卡时间datetime8是否activetime有效时间datetime8是否sendflag已发tinyint1是否loseflag挂失tiny
8、int1是否表4-1-2 停车场参数表字段名描述类型长度是否为空是否主键id自增int4否是parkname停车场名字varchar20是否parktotal总车位int4是否entertotal入口车道数int4是否exittotal出口车道数int4是否parktel停车场varchar20是否parkadd停车场地址varchar20是否表4-1-3 用户表字段名描述类型长度是否为空是否主键id编号varchar20否是name用户名varchar20是否sex性别char2是否telvarchar20是否cardno卡号varchar20是否carno车牌varchar20是否addr
9、ess地址varchar20是否表4-1-4 车信息表字段名描述类型长度是否为空是否主键id自增int4否是carid编号varchar20否是carno车牌号varchar20是否cartype车类型varchar20是否表4-1-5 权限表字段名描述类型长度是否为空是否主键id自增int4否是poperatorid编号varchar20否是poperatornameXXvarchar20是否poperatorsex性别char10是否poperatorpsw密码varchar20是否poperatorright权限varchar20是否表4-1-6时收费表字段名描述类型长度是否为空是否主键
10、id自增int4否是timeno时间号int4否是starttime开场时间char10是否endtime完毕时间char20是否表4-1-7 次收费表字段名描述类型长度是否为空是否主键id自增int4否是times_no时间号int4否是starttime开场时间char10是否endtime完毕时间char10是否表4-1-8 入场表字段名描述类型长度是否为空是否主键id自增int4否是encardid入场编号varchar20否否encardno卡号varchar20是否encarno车牌varchar20是否enway入场车道varchar20是否entime入场时间datetime8
11、是否enposition指定车位varchar20是否表4-1-9 出场表字段名描述类型长度是否为空是否主键id自增int4否是exited出场编号varchar20否否excardno卡号varchar20是否excarno车牌varchar20是否exway出场车道varchar20是否extime出场时间datetime8是否表4-1-10 交班表字段名描述类型长度是否为空是否主键id自增int4否是tnoperator操作员varchar20否否tnlogintime登录时间datetime8是否tnturntime交班时间datetime8是否entimes进场次数int4是否ext
12、imes出场次数int4是否totalmoney金额总计money8是否表4-1-11 收费表字段名描述类型长度是否为空是否主键id自增int4否是chargeid收费编号varchar20否否chcardno卡号varchar20是否chcarno车牌varchar20是否chmoney收费金额money8是否表4-1-12 车位表字段名描述类型长度是否为空是否主键id自增int4否是cpcarno车牌varchar20是否positionstate车位状态varchar20是否表4-1-13 收费标准表字段名描述类型长度是否为空是否主键id自增int4否是chargestid标准编号int
13、4是否cardtype卡类型varchar20是否cartype车类型varchar20是否chargetype收费类型varchar20是否timeno时间编号int4是否unittime单位时间int4是否unitsum单位金额int4是否mostsum最大金额int4是否4.2数据库设置模块:此模块只有超级管理员才能进展相关的操作,一般用户无法进入该页面进展操作。所有的管理员级别的用户都有该超级管理员进展授权产生。图 4-2-1 系统设置界面管理员进入档案管理界面,查询操作员的权限档案信息,并可以进展添加删除修改。数据流程图4-2-2档案管理界面数据管理页面主要是对停车场的数据进展管理,
14、场车辆管理信息的查询,进出场数据的查询,操作员收费金额信息的查询,以及操作员交班记录的查询。在设计交班数据表中的数据时候,考虑到该表中的记录会在上班的过程中随时发生变化,所以在本系统中,所有与该表数据关联的模块中都实现了对交班记录表数据的更新。由于这些记录可能会出现很多,所以在页面进展了分页显示。实现对停车场和操作员的综合管理4-2-3数据管理页面操作员登录该界面进展档案管理的功能,包括卡档案、车档案以及用户的档案管理实现对以上档案的编辑。4-2-4用户档案管理界面如果有车入场,首先要检测一下是否还有空闲的车位,如果没有空闲车位,入场不成功。这一过程的实现通过设置每个车位的状态来进展实现,每个
15、车位的信息都存储在车位信息表中。入场管理需要手动输入一些信息,提交之后要进展必要的判断之后按照指定车位进入停车场,在指定车位的时候是根据车位在车位表中的顺序来进展指定的。为了记录停车场的一些人员操作的信息,入场时的操作员实行自动签名的式,实现该式是根据其登陆时候的名称在入场模块中有系统写入。4-2-5入场数据页面用户取车时操作员使用该功能,手动输入出场车辆的卡号,输入出场车道编号。4-2-6出场数据页面收费管理是停车场管理系统最重要的功能之一,综合以上入场时提供的信息,根据设置的计费标准计算出收费金额,并打印出收费清单。4-2-7收费管理界面第五章 详细设置 程序系统的构造main()函数体包
16、含了界面选那么局部menu(),并单独抽出来作为一个独立函数,目的在于系统执行每局部模块后能够便返回到系统界面。即main()函数写为如下:开场显示一系列选项功能输入n,判断n是不是1-4?Y 根据n的值调用各功能模块函数完毕void main()/*主函数*/menu();/*菜单函数*/N5.1主菜单模块的设计与实现:5.2初始化模块的设计与实现:5.3车辆进入模块的设计与实现:以上分别举例0,1,2三个车的进场情况5.4车辆离开并收费模块的设计与实现:第六章 测试及提交七 附:模块源代码7.1 菜单函数void menu()int n,w;doputs(tt*MENU*nn);puts(
17、ttt 1.初始化);puts(ttt 2.有车进入);puts(ttt 3.有车离开);puts(ttt 4.退出);puts(nntt*n);printf(Please choice your number(1-4): bb);scanf(%d,&n);if(n4) /*对选择的数字作判断*/w=1;getchar();else w=0;while(w=1);switch(n)case 1:chushi();break; /*初始化函数*/case 2:jinru();break; /*车辆进入函数*/case 3:likai();break; /*车辆离开函数*/case 4:exit(
18、0); /*退出*/7.2初始化模块设计struct changnei/*场车道信息*/int neikong;chnN-1;struct changwai/*场外车道信息*/int waikong;chwM-1;N和M分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改变。#define N 100/*预设停车场有100个车位*/#define M 100/*预设便道有100个出位*/ void chushi()/*初始化函数*/int i,j;for(i=0;i=N-1;i+)chni.neikong=0;/*将场车道设置为空*/for(j=0;j=M-1;j+)chwi.wai
19、kong=0;/*将便道车道设置为空*/printf(nntt已初始化nn);menu();函数出示化后将回到菜单界面。7.3车辆进入函数struct car/*车辆信息*/int car_num;/*车辆次序号*/int car_arr;/*车辆到达时间*/int car_lef;/*车辆离开时间*/int car_stay;/*车辆停放位置*/carCIXUHAO;void jinru()/*车辆进入函数*/int i,a;int h=0;printf(nn请输入该车次序号从0号开场:);scanf(%d,&a);for(i=0;iN;i+)if(chni.neikong=0);/*无车标
20、记0*/if(chni.neikong=1)/*有车标记1*/h=h+1;if(h=N)printf(停车场已停满,请停在便道上n);else cara.car_stay=h;chnh.neikong=1;printf(该车应该停在停车场第道%d从0道开场记n,h);printf(请输入该车进停车场时刻24小时整点计时:n);scanf(%d,&cara.car_arr);便道上还有车吗?menu();程序执行完后回到菜单。 7.4车辆离开函数void likai()/*车辆离开函数*/int i,k,choi,time;double fee;printf(请输入离开车辆次序号 ,并将此车之后
21、的车先全部退出停车场!);scanf(%d,&i);printf(n请输入离开车辆的离开时刻24小时整点计时:n);scanf(%d,&cari.car_lef);fee=D*(cari.car_lef-cari.car_arr);time=cari.car_lef-cari.car_arr;printf(次序号为%d的车停车时间%d小时,应收费%f元n,i,time,fee);printf(nnn请让场退出的车再依次进场!nnn);printf(便道上现在有车吗?(请选择1或2)n1.有n2.没有n);/*因便道上可能没有车,因此要做选择*/scanf(%d,&choi);if(choi=2
22、)menu();if(choi=1)printf(请让便道上的第一辆车进场n);printf(该车次序号为:n);scanf(%d,&k);printf(请输入该车进场时间:n);scanf(%d,&cark.car_arr);menu();参考文献1 梁建全,力,孟志勇,田利军精通轻量级Java EE框架整合案M人民邮电,20212 夏昕,晓刚,唐勇深入浅出HibernateM电子工业,20053 凤翥,马皓Java语言程序设计M清华大学,20064 更新,宾晟,峰Struts框架构造的Java Web开发技术根底与实践教程M电子工业,20215 明日科技,梁冰,宇,继迪JavaScript技术开发大全M人民邮电,20216 俊标精通Java Web开发基于Struts、E、Hibernate、uilderM人民邮电,2007. .word.zl.