java Web ssm 汽车租赁管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

第4章 总体设计

4.1 系统总体模块图

汽车租赁管理系统主要设计了前台和后台等功能,满足用户在网站上面进行汽车租赁信息浏览与查看,具体功能模块图如4.1所示:

图4.1 系统总体模块图

4.2 数据库层的设计

4.2.1 概念模型设计


(2)系统中实体E-R图

4.2.2 关系模式设计

一个实体型转换为一个关系模式的集合。实体的属性就是关系的属性,实体的码就是关系的码。

在汽车租赁管理系统中,实体有管理员实体,会员实体,车辆类型实体,车辆实体,留言实体,新闻实体,订单实体等实体,他们之间的关系如图4.13所示:

图4.13 实体之间关系图


4.3 本章小结

本章主要介绍的内容是总体设计或者概要设计,介绍了汽车租赁管理系统的设计,主要是在架构设计、总体模块设计和数据库设计的方面介绍的,为进一步的详细设计做准备。


第5章  详细设计

详细设计阶段的任务就是把在总体设计阶段提出的比较抽象概括的解决问题的方法具体化,也就是“应该怎样具体地实现这个系统”。在本阶段将包括数据库的设计和每个模块的详细设计,确定实现模块功能所需要的算法和数据结构。

5.1 后台设计

5.1.1 角色权限设计

普通用户或管理员输入自己的用户账号、密码,通过身份验证后可以进入相应的管理界面首页。

5.1.2 角色验证设计 

当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入普通用户的用户名、密码,就可以通过身份验证进入该系统。 登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。

用户分为普通用户和管理员两种。每种用户具有不同的权限,能完成不同的操作。普通用户具有查看信息权限夹功能等。管理员用户是系统的最高权限具有系统所有功能的操作。

5.2 数据库设计

5.2.1 逻辑结构设计

1 管理员( 管理员编号,用户名,密码,姓名 )

2 会员( 会员编号,用户名,密码,姓名,联系电话,联系地址 )

3 车辆类型( 车辆类型编号,类型 )

4 车辆( 车辆编号,车名称,类型,介绍,图片,价格,用户,状态,说明 )

5 留言( 留言编号,留言,用户,时间 )

6 新闻( 新闻编号,标题,内容,发布时间 )

7 订单( 订单编号,订单流水,用户,时间,开始时间,结束时间,天数,总价格,状态,车辆 )   

5.2.2 物理结构设计

由各个关系模式和根据需求分析阶段数据字典的数据项描述,给出各数据表结构。

(1)管理员信息表如表5.1所示:

表5.1 管理员信息表

序号

字段名称

数据类型

长度

主键

描述

1

glyid

INTEGER

11

管理员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

(2)会员表如表5.2所示:

表5.2 会员信息表

序号

字段名称

数据类型

长度

主键

描述

1

hyid

INTEGER

11

会员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

lxdh

VARCHAR

40

联系电话

6

lxdz

VARCHAR

40

联系地址

(3)车辆类型信息表如表5.3所示:

表5.3 车辆类型信息表

序号

字段名称

数据类型

长度

主键

描述

1

cllxid

INTEGER

11

车辆类型编号

2

lx

VARCHAR

40

类型

(4)车龄信息表如表5.4所示:

表5.4 车辆信息表

序号

字段名称

数据类型

长度

主键

描述

1

clid

INTEGER

11

车辆编号

2

cmc

VARCHAR

40

车名称

3

lx

VARCHAR

40

类型

4

js

VARCHAR

40

介绍

5

tp

VARCHAR

40

图片

6

jg

VARCHAR

40

价格

7

yh

VARCHAR

40

用户

8

zt

VARCHAR

40

状态

9

sm

VARCHAR

40

说明

(5)留言表如表5.5所示:

表5.5 留言

序号

字段名称

数据类型

长度

主键

描述

1

lyid

INTEGER

11

留言编号

2

ly

VARCHAR

40

留言

3

yh

VARCHAR

40

用户

4

sj

VARCHAR

40

时间

(6)新闻表如表5.6所示:

表5.6新闻表

序号

字段名称

数据类型

长度

主键

描述

1

xwid

INTEGER

11

新闻编号

2

bt

VARCHAR

40

标题

3

nr

VARCHAR

40

内容

4

fbsj

VARCHAR

40

发布时间

(7)订单信息表如表5.7所示:

表5.7订单信息表

序号

字段名称

数据类型

长度

主键

描述

1

ddid

INTEGER

11

订单编号

2

ddls

VARCHAR

40

订单流水

3

yh

VARCHAR

40

用户

4

sj

VARCHAR

40

时间

5

kssj

VARCHAR

40

开始时间

6

jssj

VARCHAR

40

结束时间

7

ts

VARCHAR

40

天数

8

zjg

VARCHAR

40

总价格

9

zt

VARCHAR

40

状态

10

cl

VARCHAR

40

车辆

5.3 本章小结

本章主要是在上一章的总体设计的基础之上对系统进行详细设计,主要分为两个方面来设计,分别为后台设计和数据库设计,在后台设计方面,主要是设计的系统的权限分配,角色登录的验证;在数据库方面是设计系统的物理结构的设计和逻辑结构的设计。


第6章 系统的实施

6.1 登录模块界面

登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录;也可以点击【重置】按钮,进行重新录入。具体的登录页面如图6.1所示:

图6.2 登录界面图

6.2车辆信息界面

查看车辆信息页面,包括车辆价格,等基本信息,同时如果登录后可以对该车进行订购  


	@Resource cheliangDao cheliangdao;
	@RequestMapping(value="/addPage")
	public String addPage(cheliang cheliang,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		
		System.out.println("addPageok");
		return "cheliang/cheliangadd";
	}
	
	@RequestMapping(value="/add")
	public String add(cheliang cheliang,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("clid", cheliang.getClid());//车辆编号

		map.put("cmc", cheliang.getCmc());//车名称

		map.put("lx", cheliang.getLx());//类型

		map.put("js", cheliang.getJs());//介绍

		map.put("tp", cheliang.getTp());//图片

		map.put("jg", cheliang.getJg());//价格

		map.put("yh", cheliang.getYh());//用户

		map.put("zt", cheliang.getZt());//状态

		map.put("sm", cheliang.getSm());//说明



		String clid=(String)cheliang.getClid();//车辆编号

		String cmc=(String)cheliang.getCmc();//车名称

		String lx=(String)cheliang.getLx();//类型

		String js=(String)cheliang.getJs();//介绍

		String tp=(String)cheliang.getTp();//图片

		String jg=(String)cheliang.getJg();//价格

		String yh=(String)cheliang.getYh();//用户

		String zt=(String)cheliang.getZt();//状态

		String sm=(String)cheliang.getSm();//说明
		String sql="";
		ResultSet rs=null;
		DBO db=new DBO();
		int num=0;
		try{
			sql="select count(1) as num from cheliang where cmc='"+cmc+"'";
			rs=db.query(sql);
			if(rs.next()){
				num=rs.getInt("num");
			}
			if(num>0){
				request.setAttribute("msg", "<script>alert('添加失败、车名称重复');</script>");
			}else{
				cheliangdao.save(map);
				
				
				request.setAttribute("msg", "<script>alert('添加成功');</script>");
			}
		}catch(Exception e){
			e.printStackTrace();
		}

	
		System.out.println("addok");
		return "cheliang/cheliangadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		cheliangdao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改cheliang信息
	 */
	@RequestMapping(value="/update")
	public String update(cheliang cheliang,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("clid", cheliang.getClid());//车辆编号

		map.put("cmc", cheliang.getCmc());//车名称

		map.put("lx", cheliang.getLx());//类型

		map.put("js", cheliang.getJs());//介绍

		map.put("tp", cheliang.getTp());//图片

		map.put("jg", cheliang.getJg());//价格

		map.put("yh", cheliang.getYh());//用户

		map.put("zt", cheliang.getZt());//状态

		map.put("sm", cheliang.getSm());//说明



		String clid=(String)cheliang.getClid();//车辆编号

		String cmc=(String)cheliang.getCmc();//车名称

		String lx=(String)cheliang.getLx();//类型

		String js=(String)cheliang.getJs();//介绍

		String tp=(String)cheliang.getTp();//图片

		String jg=(String)cheliang.getJg();//价格

		String yh=(String)cheliang.getYh();//用户

		String zt=(String)cheliang.getZt();//状态

		String sm=(String)cheliang.getSm();//说明

		request.setAttribute("msg", "<script>alert('操作成功');</script>");
		cheliangdao.update(map);
		return selectall(null,map1,request);
	}

6.3 订单管理界面

查看自己已经提交过的订单,可以进行取消,续借,归还等操作  

6.4车辆信息管理界面

该功能用于实现对系统车辆信息的管理。可以添加、删除和更改车辆信息,以及车辆信息列表展现,在添加车辆信息时,系统会自动查询系统中车辆表中的车辆编号字段,系统自动将车辆表中最大值加1作为该车辆表车辆记录的车辆编号,同时将车辆编号,车名称,类型,介绍,图片,价格,用户,状态,说明 信息添加到车辆信息表中;在删除一条车辆记录时,先选中一条车辆记录,将该条车辆记录中的车辆编号作为查询条件在车辆信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改车辆记录时,先选中一条车辆记录,将车辆信息显示在相应的修改页面中,然后更改后保存到车辆信息表中;查看车辆信息记录时,选中要查看的车辆记录,系统根据用户选择车辆信息,在详细页面显示车辆信息

大家点赞、收藏、关注、评论啦  其他的定制服务 商务合作  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翰文编程

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值