收藏 分销(赏)

停车场管理系统课程设计.docx

上传人:快乐****生活 文档编号:5137965 上传时间:2024-10-27 格式:DOCX 页数:24 大小:356.61KB 下载积分:10 金币
下载 相关 举报
停车场管理系统课程设计.docx_第1页
第1页 / 共24页
停车场管理系统课程设计.docx_第2页
第2页 / 共24页


点击查看更多>>
资源描述
软件实训报告书 题 目: 停车场管理系统 小组成员: 系 别: 软件工程121 指导教师: 2016年1月13日 1 目录 第1章 项目概述 1 1.1 开发背景: 1 1.2 开发目的: 1 1.3 开发运行环境: 1 1.4 系统功能: 2 第2章 需求分析 2 2.1 系统需求 2 2.2 功能需求 2 2.3 业务流程图 3 第3章 概要设计 4 3.1 基本设计概念和处理流程 4 3.2 系统层次模块图 4 第4章 详细设计 5 4.1数据库的逻辑设计: 5 4.2数据库设置模块: 8 第5章 测试及提交 12 5.1主菜单模块的设计与实现: 12 5.3车辆进入模块的设计与实现: 13 5.4车辆离开并收费模块的设计与实现: 13 第6章 模块源代码 14 6.1 菜单函数 14 6.3车辆进入函数 15 6.4车辆离开函数 16 总结 19 第1章 项目概述 1.1 开发背景: 随着计算机技术的发展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性。 1.2 开发目的: 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 1.3 开发运行环境: 开发工具:java语言 开发环境:JDK 1.4 系统功能: (1) 登录、注册功能. (2) 车辆离开查询功能 (3) 车辆进入查询功能 第2章 需求分析 2.1 系统需求 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 2.2 功能需求 实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。 2.3 业务流程图 车进入车场 车辆到达 以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号 初始化车站, 初始化让路的临时栈, 初始化通道 车场未满,车进车场 车场已满,车进便道 判断车场是否已满 车 输入车子到达时间,车牌号 未满 判断车场内是否有车 不做任何计算 无点x 有 输入离开车辆的离开时间,进行停车费用的计算 此车后面的车辆退出并进入临时栈 车子离开 图 3-1 第3章 概要设计 3.1 基本设计概念和处理流程 互联网技术的飞速发展,Java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。 系统基本的流程是:用户登录->主界面->选择各项子系统。 3.2 系统层次模块图 停车场管理系统 退出系统 查看车位使用状况 计算停车费用 车辆离开信息 车辆到达信息 车牌号 到达时间 离开时间 该车腾出的车位号 无空余车位 有空余车位 每小时所需停车费用 到达时间 车牌号 离开时间 车牌号 该车使用的车位号 有车离开时新到来车辆停放 新到来车辆在便道上等候 新到来车辆停放 第4章 详细设计 4.1数据库的逻辑设计: 下面给出各个表的详细结构。 表4-1-1 卡信息表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cardid 卡编号 varchar 20 是 否 cardno 卡号 varchar 20 是 否 cardtype 卡类型 varchar 20 是 否 cardmoney 余额 money 8 是 否 sendtime 发卡时间 datetime 8 是 否 activetime 有效时间 datetime 8 是 否 sendflag 已发 tinyint 1 是 否 loseflag 挂失 tinyint 1 是 否 表4-1-2 停车场参数表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 parkname 停车场名字 varchar 20 是 否 parktotal 总车位 int 4 是 否 entertotal 入口车道数 int 4 是 否 exittotal 出口车道数 int 4 是 否 parktel 停车场电话 varchar 20 是 否 parkadd 停车场地址 varchar 20 是 否 表4-1-3 用户表 字段名 描述 类型 长度 是否为空 是否主键 id 编号 varchar 20 否 是 name 用户名 varchar 20 是 否 sex 性别 char 2 是 否 tel 电话 varchar 20 是 否 cardno 卡号 varchar 20 是 否 carno 车牌 varchar 20 是 否 address 地址 varchar 20 是 否 表4-1-4 车信息表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 carid 编号 varchar 20 否 是 carno 车牌号 varchar 20 是 否 cartype 车类型 varchar 20 是 否 表4-1-5 权限表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 poperatorid 编号 varchar 20 否 是 poperatorname 姓名 varchar 20 是 否 poperatorsex 性别 char 10 是 否 poperatorpsw 密码 varchar 20 是 否 poperatorright 权限 varchar 20 是 否 表4-1-6时收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 timeno 时间号 int 4 否 是 starttime 开始时间 char 10 是 否 endtime 结束时间 char 20 是 否 表4-1-7 次收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 times_no 时间号 int 4 否 是 starttime 开始时间 char 10 是 否 endtime 结束时间 char 10 是 否 表4-1-8 入场表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 encardid 入场编号 varchar 20 否 否 encardno 卡号 varchar 20 是 否 encarno 车牌 varchar 20 是 否 enway 入场车道 varchar 20 是 否 entime 入场时间 datetime 8 是 否 enposition 指定车位 varchar 20 是 否 表4-1-9 出场表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 exited 出场编号 varchar 20 否 否 excardno 卡号 varchar 20 是 否 excarno 车牌 varchar 20 是 否 exway 出场车道 varchar 20 是 否 extime 出场时间 datetime 8 是 否 表4-1-10 交班表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 tnoperator 操作员 varchar 20 否 否 tnlogintime 登录时间 datetime 8 是 否 tnturntime 交班时间 datetime 8 是 否 entimes 进场次数 int 4 是 否 extimes 出场次数 int 4 是 否 totalmoney 金额总计 money 8 是 否 表4-1-11 收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargeid 收费编号 varchar 20 否 否 chcardno 卡号 varchar 20 是 否 chcarno 车牌 varchar 20 是 否 chmoney 收费金额 money 8 是 否 表4-1-12 车位表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cpcarno 车牌 varchar 20 是 否 positionstate 车位状态 varchar 20 是 否 表4-1-13 收费标准表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargestid 标准编号 int 4 是 否 cardtype 卡类型 varchar 20 是 否 cartype 车类型 varchar 20 是 否 chargetype 收费类型 varchar 20 是 否 timeno 时间编号 int 4 是 否 unittime 单位时间 int 4 是 否 unitsum 单位金额 int 4 是 否 mostsum 最大金额 int 4 是 否 4.2数据库设置模块: 此模块只有超级管理员才能进行相关的操作,一般用户无法进入该页面进行操作。所有的管理员级别的用户都有该超级管理员进行授权产生。 图 4-2-1 系统设置界面 管理员进入档案管理界面,查询操作员的权限档案信息,并可以进行添加删除修改。数据流程图 4-2-2档案管理界面 数据管理页面主要是对停车场的数据进行管理,场内车辆管理信息的查询,进出场数据的查询,操作员收费金额信息的查询,以及操作员交班记录的查询。在设计交班数据表中的数据时候,考虑到该表中的记录会在上班的过程中随时发生变化,所以在本系统中,所有与该表数据关联的模块中都实现了对交班记录表数据的更新。由于这些记录可能会出现很多,所以在页面进行了分页显示。实现对停车场和操作员的综合管理 4-2-3数据管理页面 操作员登录该界面进行档案管理的功能,包括卡档案、车档案以及用户的档案管理实现对以上档案的编辑。 4-2-4用户档案管理界面 如果有车入场,首先要检测一下是否还有空闲的车位,如果没有空闲车位,入场不成功。这一过程的实现通过设置每个车位的状态来进行实现,每个车位的信息都存储在车位信息表中。入场管理需要手动输入一些信息,提交之后要进行必要的判断之后按照指定车位进入停车场,在指定车位的时候是根据车位在车位表中的顺序来进行指定的。为了记录停车场的一些人员操作的信息,入场时的操作员实行自动签名的方式,实现该方式是根据其登陆时候的名称在入场模块中有系统写入。 4-2-5入场数据页面 用户取车时操作员使用该功能,手动输入出场车辆的卡号,输入出场车道编号。 4-2-6出场数据页面 收费管理是停车场管理系统最重要的功能之一,综合以上入场时提供的信息,根据设置的计费标准计算出收费金额,并打印出收费清单。 4-2-7收费管理界面 程序系统的结构 main()函数体内包含了界面选则部分menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后能够方便返回到系统界面。即main()函数写为 如下: 开始 显示一系列选项功能 输入n,判断n是不是1-4? Y 根据n的值调用各功能模块函数 结束 void main()/*主函数*/ { menu();/*菜单函数*/ } N 第5章 测试及提交 5.1主菜单模块的设计与实现: 5.2初始化模块的设计与实现: 5.3车辆进入模块的设计与实现: 以上分别举例0,1,2三个车的进场情况 5.4车辆离开并收费模块的设计与实现: 第6章 模块源代码 6.1 菜单函数 void menu() { int n,w; do { puts("\t\t**************MENU**************\n\n"); puts("\t\t\t 1.初始化"); puts("\t\t\t 2.有车进入"); puts("\t\t\t 3.有车离开"); puts("\t\t\t 4.退出"); puts("\n\n\t\t*********************************\n"); printf("Please choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) /*对选择的数字作判断*/ { 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); /*退出*/ } } 6.2初始化模块设计 struct changnei/*场内车道信息*/ { int neikong; }chn[N-1]; struct changwai/*场外车道信息*/ { int waikong; }chw[M-1]; N和M分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改变。 #define N 100/*预设停车场有100个车位*/ #define M 100/*预设便道有100个出位*/ void chushi()/*初始化函数*/ { int i,j; for(i=0;i<=N-1;i++) chn[i].neikong=0;/*将场内车道设置为空*/ for(j=0;j<=M-1;j++) chw[i].waikong=0;/*将便道车道设置为空*/ printf("\n\n\t\t已初始化\n\n"); menu(); } 函数出示化后将回到菜单界面。 6.3车辆进入函数 struct car/*车辆信息*/ { int car_num;/*车辆次序号*/ int car_arr;/*车辆到达时间*/ int car_lef;/*车辆离开时间*/ int car_stay;/*车辆停放位置*/ }car[CIXUHAO]; void jinru()/*车辆进入函数*/ { int i,a; int h=0; printf("\n\n请输入该车次序号(从0号开始):"); scanf("%d",&a); for(i=0;i<N;i++) { if(chn[i].neikong==0);/*无车标记0*/ if(chn[i].neikong==1)/*有车标记1*/ h=h+1; } if(h==N) printf("停车场内已停满,请停在便道上\n"); else { car[a].car_stay=h; chn[h].neikong=1; printf("该车应该停在停车场内第道%d(从0道开始记)\n",h); printf("请输入该车进停车场时刻(24小时整点计时):\n"); scanf("%d",&car[a].car_arr); } 便道上还有车吗? menu(); } 程序执行完后回到菜单。 6.4车辆离开函数 void likai()/*车辆离开函数*/ { int i,k,choi,time; double fee; printf("请输入离开车辆次序号[ ],并将此车之后的车先全部退出停车场!"); scanf("%d",&i); printf("\n请输入离开车辆的离开时刻(24小时整点计时):\n"); scanf("%d",&car[i].car_lef); fee=D*(car[i].car_lef-car[i].car_arr); time=car[i].car_lef-car[i].car_arr; printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee); printf("\n\n\n请让场内退出的车再依次进场!\n\n\n"); 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",&car[k].car_arr); menu(); } } 参考文献 [1] 梁建全,周力,孟志勇,田利军.精通轻量级Java EE框架整合方案[M].人民邮电出版社,2008. [2] 夏昕,曹晓刚,唐勇.深入浅出Hibernate[M].电子工业出版社,2005. [3] 吕凤翥,马皓.Java语言程序设计[M].清华大学出版社,2006. [4] 孙更新,宾晟,周峰.Struts框架结构的Java Web开发技术基础与实践教程[M].电子工业出版社,2008. [5] 明日科技,梁冰,苏宇,吕继迪.JavaScript技术开发大全[M].人民邮电出版社,2008. [6] 王俊标.精通Java Web开发—基于Struts、EJB、Hibernate、JBuilder[M].人民邮电出版社,2007. 总结 (姓名 ) 教师评语: 成绩: 指导教师: 总结 (姓名 ) 教师评语: 成绩: 指导教师: 总结 (姓名 ) 教师评语: 成绩: 指导教师: 22
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服