1、 软件工程试卷(论文)- 第1学期题 目: 停车场管理系统分析和设计学生姓名: 王琦 系 别: 信息和计算科学系 专业年级: 级计算机科学和技术 指导老师: 刘兆辉 1 月 1 日目 录第一章 项目概述 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主菜单模块设计和实现135.2 初始化模块设计和实现:14
2、5.3 车辆进入模块设计和实现145.4 车辆离开并收费模块设计和现15第六章 测试及提交 16七 附: 模块源代码 17参考文件20第一章 项目概述1.1 开发背景:多年来,伴随中国经济快速发展,大家生活水平不停提升,物质需求和生活方法也发生着深刻改变,以前属于奢侈品汽车己经逐步走入了市民日常生活。伴随汽车消费大众化和多种机动车辆大范围内快速普及,车辆对其配套设施尤其是停车场提出了更高要求。停车是速度为零交通”,停车场及隶属相关设施是静态交通关键组成部分。停车场收费管理系统是伴伴随公用收费停车场这一新生事物而诞生。 现在多数停车场存在着以下多个问题,管理漏洞、系统可靠性、独立性强、收费过程比
3、较繁琐、劳动强度高、停车场利用率低下、票款易流失等。针对这些问题该停车场系统从以下方面进行设计。针对管理进行了优化,采取划卡消费和现金支付相结合,系统计时计费。采取Java高级编程语言和WEB相关技术开发设计管理系统软件,实现网络管理操作。优化后系统使用方便、服务高效、收费透明、预防票款流失,提升可靠性同时也提升了操作者工作效率。1.2 开发目标:伴随计算机技术发展,在各行各业应用越来越广泛,停车场管理由原来人工管理进入计算机系统管理那是个肯定趋势,计算机系统管理能够大大提升管理效率和正确性设有一个能够停放n辆汽车狭长停车场,它只有一个大门能够供车辆进出。车辆按抵达停车场时间早晚依次从停车场最
4、里面向大门口处停放(最先抵达第一辆车放在停车场最里面)。假如停车场已放满n辆车,则以后车辆只能在停车场大门外便道上等候,一旦停车场内有车开走,则排在便道上第一辆车就进入停车站。停车站内如有某辆车要开走,在它以后进入停车场车全部必需先退出停车站为它让路,待其开出停车场后,这些车辆再依原来次序进场。每辆车在离开停车场时,全部应依据它在停车场内停留时间长短交费。假如停留在便道上车未进停车场就要离去,许可其离去,不收停车费,而且仍然保持在便道上等候车辆次序。编制一程序模拟该停车场管理。1.3 开发运行环境:开发工具:java语言开发环境:JDK1.4 系统功效:(1) 登录、注册功效.(2) 车辆离开
5、查询功效(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挂失tinyint1是否表4-1-2 停车场参数表字段名描述类型长度是否为空是否主键id自增int4否是parkname停车场名字varchar20是
8、否parktotal总车位int4是否entertotal入口车道数int4是否exittotal出口车道数int4是否parktel停车场电话varchar20是否parkadd停车场地址varchar20是否表4-1-3 用户表字段名描述类型长度是否为空是否主键id编号varchar20否是name用户名varchar20是否sex性别char2是否tel电话varchar20是否cardno卡号varchar20是否carno车牌varchar20是否address地址varchar20是否表4-1-4 车信息表字段名描述类型长度是否为空是否主键id自增int4否是carid编号varc
9、har20否是carno车牌号varchar20是否cartype车类型varchar20是否表4-1-5 权限表字段名描述类型长度是否为空是否主键id自增int4否是poperatorid编号varchar20否是poperatorname姓名varchar20是否poperatorsex性别char10是否poperatorpsw密码varchar20是否poperatorright权限varchar20是否表4-1-6时收费表字段名描述类型长度是否为空是否主键id自增int4否是timeno时间号int4否是starttime开始时间char10是否endtime结束时间char20是否
10、表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是否enposition指定车位varchar20是否表4-1-9 出场表字段名描述类型长度是否为空是否主键id自增int4否是e
11、xited出场编号varchar20否否excardno卡号varchar20是否excarno车牌varchar20是否exway出场车道varchar20是否extime出场时间datetime8是否表4-1-10 交班表字段名描述类型长度是否为空是否主键id自增int4否是tnoperator操作员varchar20否否tnlogintime登录时间datetime8是否tnturntime交班时间datetime8是否entimes进场次数int4是否extimes出场次数int4是否totalmoney金额总计money8是否表4-1-11 收费表字段名描述类型长度是否为空是否主键i
12、d自增int4否是chargeid收费编号varchar20否否chcardno卡号varchar20是否chcarno车牌varchar20是否chmoney收费金额money8是否表4-1-12 车位表字段名描述类型长度是否为空是否主键id自增int4否是cpcarno车牌varchar20是否positionstate车位状态varchar20是否表4-1-13 收费标准表字段名描述类型长度是否为空是否主键id自增int4否是chargestid标准编号int4是否cardtype卡类型varchar20是否cartype车类型varchar20是否chargetype收费类型varch
13、ar20是否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()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目标在于系统实施每部分模块后能够方便返回到系统界面。即main()函数写为以下:开始显示一系列选项功效输入n,判定n是
16、不是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(ttt 1.初始化);puts(ttt 2.有车进入);puts(ttt 3.有车离开);puts(ttt 4.退出);puts(nntt*n);printf(Please choice
17、 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(0); /*退出*/7.2初始化模块设计struct changnei/*场内车道信息*/int neikong;chnN-1;struct changwai/*场外车道信息*/int w
18、aikong;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.waikong=0;/*将便道车道设置为空*/printf(nntt已初始化nn);menu();函数出示化后将回到菜单界面。7.3车辆进入函数struct car/*车辆信息*/int ca
19、r_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);/*无车标识0*/if(chni.neikong=1)/*有车标识1*/h=h+1;if(h=N)printf(停车场内已停满,请停在便道上n);else cara.car_stay=h;ch
20、nh.neikong=1;printf(该车应该停在停车场内第道%d(从0道开始记)n,h);printf(请输入该车进停车场时刻(二十四小时整点计时):n);scanf(%d,&cara.car_arr);便道上还有车吗?menu();程序实施完后回到菜单。 7.4车辆离开函数void likai()/*车辆离开函数*/int i,k,choi,time;double fee;printf(请输入离开车辆次序号 ,并将此车以后车先全部退出停车场!);scanf(%d,&i);printf(n请输入离开车辆离开时刻(二十四小时整点计时):n);scanf(%d,&cari.car_lef);f
21、ee=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)menu();if(choi=1)printf(请让便道上第一辆车进场n);printf(该车次序号为:n);scanf(%d,&k);printf(请输入该车进场时间:n);scanf(%d,&cark.car_arr);menu();参考文件1 梁建全,周力,孟志勇,田利军精通轻量级Java EE框架整合方案M人民邮电出版社,2 夏昕,曹晓刚,唐勇深入浅出HibernateM电子工业出版社,3 吕凤翥,马皓Java语言程序设计M清华大学出版社,4 孙更新,宾晟,周峰Struts框架结构Java Web开发技术基础和实践教程M电子工业出版社,5 明日科技,梁冰,苏宇,吕继迪JavaScript技术开发大全M人民邮电出版社,6 王俊标精通Java Web开发基于Struts、EJB、Hibernate、JBuilderM人民邮电出版社,
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100