[工学]数据库课设.doc_第1页
[工学]数据库课设.doc_第2页
[工学]数据库课设.doc_第3页
[工学]数据库课设.doc_第4页
[工学]数据库课设.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北华航天工业学院课程报告北 华 航 天 工 业 学 院课程设计报告(论文)课程名称 数据库原理与应用 报告(论文)题目: 停车场管理 系统数据库设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术专业 作者所在班级: B10512 作 者 姓 名 : 易伟皎 指导教师姓名: 张春娥 贾振华 完 成 时 间 : 2012年6月14日 北华航天工业学院教务处制课程设计任务书课题名称数据库原理与应用课程设计完成时间2012.6.14指导教师贾振华张春娥职称副教授学生姓名易伟皎班级B10512总体设计要求总体设计要求:1、明确课设任务,复习与查阅相关资料。2、根据老师给出的设计题目,在两周时间内完成其中某一个题目的从用户需求分析、数据库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。3、每位学生必须独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;要求写出一份详细的设计报告。4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。5、应用程序应具有一定的实用性和健壮性。 工作内容及时间进度安排第一周、周:设计动员,分组,布置课程设计任务。第一周、周2:查阅资料,制定方案,进行程序总体设计。第一周、周3第二周2:详细设计, 系统调试。第二周、周3:整理,撰写设计报告。第二周、周4-周5:验收,提交设计报告,评定成绩。课程设计成果1、课程设计报告书一份2、源程序清单一份3、成果使用说明书一份摘 要在当代社会中,车辆已经成为我们生活中必不可少的一部分,无论是工作,游玩等。各种形式的停车场也越来越多。停车场的工作量也越来越大,本系统就是针对停车场管理而设计的。实现了停车,收费,车位管理,保存历史纪录等功能,能够更方便的管理停车场,操作简单,功能俱全。能够为现在停车场提供很大方便,节省人力物力。使停车场管理方便灵活,不易出错。并且通过历史纪录可以很方便的跟政府部门合作。本系统采用java 来做前台使用SQLserver创建的数据库,使用Myeclipse面向对象制作,保密性强。实现了四个表面的功能停车,开除并收费,查询历史纪录,现在停车场厂情况一览。后台功能有,车位管理,价钱结算。关键词:JAVA SQLSERVER 停车场管理 收费 Myeclipse 面向对象编程。 目 录摘 要3第1章 绪论11.1 课程设计的目的11.2 课程设计的背景和意义11.2.1课程设计的背景11.2.2 课程设计的意义11.3 课程设计环境1第2章 系统需求分析22.1 问题描述22.2 信息要求22.3 处理要求22.4 安全性和完整性要求22.5 问题的解决方案3第3章 系统设计43.1概念结构设计43.2 逻辑结构设计63.2.1数据模型63.2.2数据模型优化63 .4数据库实施83.5数据库应用系统的实施和维护103.6 系统流程图25第4章系统测试27总 结31致 谢32参考文献33第1章 绪论1.1 课程设计的目的1)要求学生能够熟练掌握SQL语言的基本知识和技能。2)熟悉利用编程语言连接数据库对数据库进行操作的基本思路和方法。3)能够利用所学的基本知识和技能,解决简单的数据库设计的问题。4)理论结合实际,是学生通过课程设计更好地掌握数据库的知识。5)学会分析实际问题,为实际情况制作软件,学会独立思考。1.2 课程设计的背景和意义1.2.1课程设计的背景1. 理论研究基础(1)一个学期的SQL数据库的系统学习(2)一个学期的Java面向过程程序设计的系统学习2. 技术层面的支持图书馆五楼,计算机科学与工程系实验室1.2.2 课程设计的意义通过一学期的学习,自己的知识得到了积累,通过本次设计检验自己学习成果。并且利用这次设计的机会锻炼自己解决问题的能力。真正意义上的做一个软件。1.3 课程设计环境Myeclipse 6.0.1、Microsoft SQL Server 2005、windowsXP、Word第2章 系统需求分析2.1 问题描述停车场管理系统:根据系统的需求设计好数据库,然后利用编程语言连接数据库设计前台,使用户可以利用此系统查询停车场现在的信息、停车场的历史记录,并且实现停车进入停车场,车辆开出停车场根据闲时忙时收费,在系统后台对车位进行管理,更为车辆分配车位,并且实现车位查询,看看是否有空余的车位。2.2 信息要求登录信息:登录账号、密码。车辆信息:车牌号、颜色,品牌。车位信息:车位号,空否。停车场现状:车牌号,颜色,品牌,停车时间,车位号。历史记录:车牌号,颜色,品牌,停车时间,开出时间,收费。基础收费:时间段,价格2.3 处理要求1)停车:可以查询现在车位能否停车。停车进入这个车位,停车场现状中添加这个车的停车信息2)开车:开出车辆,根据停车时间段和停车时间收费,空出车位。添加进入历史记录中。3)现在停车场状况:显示停车场现在停着的车的所有状况,并且可以实现用车牌号查询某一辆车的详细情况。4)历史记录:能够查询曾经停车场的所有数据,并且能利用车牌号定向查询;5)基础收费:能根据停车的时间判断闲时还是忙时再根据时间段来收取费用。2.4 安全性和完整性要求对车辆信息的主要是通过车牌号这一属性实现内部的链接,车辆进入停车场,在停车场现状中添加记录,当开出时删除记录。同时停车记录里面添加相应的记录。通过两个时间之差收取费用。同时进车出车时车位与之相应的变化。管理员利用用户名密码登录。2.5 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1、数据库分析1) 需求分析:根据实际需要确定所需的信息;2)概念结构设计:根据信息的内容和信息之间的联系,画出E-R图,对数据进行综合、归纳和抽象;3)逻辑结构设计:将概念结构转换成数据库所支持的数据模型,并对其进行优化;4)物理设计:为逻辑结构选取适合的应用环境;5)数据库实施:利用SQL语言创建数据库。2、前台程序的设计1)应用系统分析,建立该系统的功能模块框图;2)根据数据库中各个实体及它们之间的关系进行界面的组织和设计; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 3、完成系统总结报告。第3章 系统设计3.1概念结构设计实体及其属性E-R图设计管理员账号密码图3-1 管理员及其属性车位空否车位号图3-2 车位及其属性价格时间段基础收费图3-3 基础收费及其属性车位号停车时间现在停车场情况车辆信息图3-4 现在停车场情况及其属性停车记录停车时间车辆信息开出时间收费 图3-5停图3-5车记录及其属性停车时间 月时日图3-6停车时间及其属性收费停车记录1现在停车场停车情况开出基础收费停车车位N1MN11N1图3-10实体之间的关系3.2 逻辑结构设计3.2.1数据模型(说明:主键用下划线标出) 车辆信息(车牌号,颜色,品牌)车位(车位号,空否)基础收费(时间段,价格)现在停车场情况(车牌号,颜色,品牌,停车时间,车位号)历史记录(车牌号,颜色,品牌,停车时间,开出时间,收费)登陆(用户名,密码)3.2.2数据模型优化由于停车时间,开出时间需要进行复杂的计算,所以需要进行优化,从而减轻运算负担。历史记录(车牌号,颜色,品牌,停车月份,停车日期,停车时间,开出月份,开出日期,开出时间,收费)现在停车场情况(车牌号,颜色,品牌,停车月份,停车日期,停车时间,车位号)3.3 数据库物理结构设计管理员登录表格: 表3-3-1denglu表格字段名数据类型长度完整性约束字段说明用户名Char20Not null主键密码Char20Not null登录密码 固定收费表格:表3-3-2shoufei表格字段名数据类型长度完整性约束字段说明时间段Int系统内定Not null主键价格Float系统内定Not null闲时忙时的价格现在停车场情况表格:表3-3-3xianzai表格字段名数据类型长度完整性约束字段说明车牌号Char20Not null主键颜色Char20Not null车的颜色品牌Char20Not null车的品牌停车月份Int系统内定Not null停车时的月份停车日期Int系统内定Not null停车时的日期停车时间Int系统内定Not null停车的时间车位Int系统内定Not null停车的车位车位信息表格:表3-341chewei表格字段名数据类型长度完整性约束字段说明车位号Int*Not null主键空否Int*Not null用0表示空1表示不空历史记录表格:表3-3-5lishi表格字段名数据类型长度完整性约束字段说明车牌号Char()20Not null主键颜色Char()20Not null车的颜色品牌Char()20Not null车的品牌停车月份Int系统内定Not null停车时的月份停车日期Int系统内定Not null停车时的日期停车时间Int系统内定Not null停车的时间开车月份Int系统内定Not null开车时的月份开车日期Int系统内定Not null开车时的日期开车时间Int系统内定Not null开车的时间收费Float系统内定Not null开车时收取的费用。有后台计算得出3 .4数据库实施1).CREATE TABLE denglu(用户名 char(100)not null密码 char(100)2).CREATE TABLE shoufei(时间段 int not null价格 float not null)3).CREATE TABLE xianzai(车牌号char(100)not null颜色char(100) not null品牌char(100)停车月份int not null停车日期int not null停车时间int not null车位int not null)4).CREATE TABLE lishi(车牌号char(100)not null颜色char(100) not null品牌char(100) not null停车月份 int not null停车日期 int not null停车时间 int not null开车月份 int not null开车日期 int not null开车时间 int not null收费 float not null)5)CREATE TABLE chewei(车位号 int not null空否 int not null)3.5数据库应用系统的实施和维护1)停车进入模块设计思路:车辆进入停车场,首先要先查看是又有空车位,如果有的话,输入车辆的信息,在停车场现状里添加这条记录。相应的车位应变成有车的状态。主要功能代码:if(e.getSource()=jbutton1)if(text1.getText().length()!=0&text2.getText().length()!=0&text3.getText().length()!=0)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); try conn=DriverManager.getConnection(jdbc:odbc:tingche,); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); try stm=conn.createStatement(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();/创建Statement对象String sql=insert into xianzai (车牌号,颜色,品牌,停车月份,停车日,停车时间,车位) values (+text1.getText()+,+text3.getText()+,+text2.getText()+,+c1.get(Calendar.MONTH)+,+c1.get(Calendar.DAY_OF_MONTH)+,+c1.get(Calendar.HOUR_OF_DAY)+,+k+);try stm.executeUpdate(sql); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();String sql1=delete from chewei where 车位 like +k+;try stm.executeUpdate(sql1); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();String sql2=insert into chewei (车位,空否) values (+k+,+1+);try stm.executeUpdate(sql2); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();k=0;car car1=new car();JOptionPane.showMessageDialog(null,完成);elseJOptionPane.showMessageDialog(null,各项均不能为空);截图:图3-5-1停车界面2)开出停车场收费模块设计思路:开出车辆,应先从停车场现状表格中调出存车的记录,根据现在时间和存车时间之差计算停车时间的收费再根据停车时刻属于闲时还是忙时收取基础收费。相应车位置空。停车场现状中删除记录。历史记录中添加记录。主要功能代码:if(e.getSource()=jbutton1)String s=text1.getText(); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); try conn=DriverManager.getConnection(jdbc:odbc:tingche,); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); try stm=conn.createStatement(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();/创建Statement对象 try rs=stm.executeQuery(select * from xianzai where 车牌号=+s+); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();try if(rs.next()try car1.carno=rs.getString(1);car1.Carcolor=rs.getString(2);car1.carsb=rs.getString(3);m=rs.getInt(4);d=rs.getInt(5);t=rs.getInt(6);k1=rs.getInt(7); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();if(t=12)sss=闲;elsesss=忙;rs1=stm.executeQuery(select * from 价格 where 时间段=+sss+);rs1.next();price=rs1.getInt(2);eee=(c1.get(Calendar.MONTH)-m)*30*24+(c1.get(Calendar.DAY_OF_MONTH)-d)*24+c1.get(Calendar.HOUR_OF_DAY)-t);fei=(c1.get(Calendar.MONTH)-m)*30*24+(c1.get(Calendar.DAY_OF_MONTH)-d)*24+c1.get(Calendar.HOUR_OF_DAY)-t)*1+price;jlabel3.setText(收取费用:+fei+元 );jlabel4.setText(停车用时:+eee+小时 );String sql=insert into his (车牌号,颜色,品牌,停车月份,停车日,停车时间,开出月份,开出日,开出时间,收费) values (+car1.carno+,+car1.Carcolor+,+car1.carsb+,+m+,+d+,+t+,+c1.get(Calendar.MONTH)+,+c1.get(Calendar.DAY_OF_MONTH)+,+c1.get(Calendar.HOUR_OF_DAY)+,+fei+);try stm.executeUpdate(sql); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();String sql2=delete from xianzai where 车牌号=+s+;try stm.executeUpdate(sql2);JOptionPane.showMessageDialog(null,完成); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();elseJOptionPane.showMessageDialog(null,不存在这辆车); catch (HeadlessException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();String sql11=delete from chewei where 车位 like +k1+;try stm.executeUpdate(sql11); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();String sql22=insert into chewei (车位,空否) values (+k1+,+0+);try stm.executeUpdate(sql22); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();截图:图3-5-2开出车辆模块3)历史记录查询模块设计思路:有两种查询方式,一种是全部显示,一种是按车牌号查询单个显示,按要求从表中调出数据,在java中建立一个表格界面显示。主要功能代码:try if(e.getSource()=b1)/上一页 num=num-10; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a210;a2+) history1a1a2=; if(tt=0) Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from his);/执行SQL语句 else Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 String s=text1.getText(); rs=stm.executeQuery(select * from his where 车牌号=+s+);/执行SQL语句 history(); bind(history1); if(e.getSource()=b2)/下一页 num=num+10; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a210;a2+) history1a1a2=; if(tt=0) Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from his);/执行SQL语句 else Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 String s=text1.getText(); rs=stm.executeQuery(select * from his where 车牌号=+s+);/执行SQL语句 history(); bind(history1); if(e.getSource()=b3) tt=0; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a210;a2+) history1a1a2=; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from his);/执行SQL语句 history(); bind(history1); if(e.getSource()=b4) tt=1; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a2=num) if(inum+10) history1j0=rs.getString(1); history1j1=rs.getString(2); history1j2=rs.getString(3); history1j3=rs.getString(4); history1j4=rs.getString(5); history1j5=rs.getString(6); history1j6=rs.getString(7); j+; else conn.close(); break; i+; conn.close(); void bind(Stringa)throws Exception String s=车牌号,颜色,品牌,停车月分,停车日,停车时间,车位; String stu=a; DefaultTableModel dtm2=new DefaultTableModel(stu,s);/创建TableModel jilu.setModel(dtm2);/设置TableModel public void actionPerformed(ActionEvent e) try if(e.getSource()=b1)/上一页 num=num-10; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a27;a2+) history1a1a2=; if(tt=0) Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from xianzai);/执行SQL语句 else Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 String s=text1.getText(); rs=stm.executeQuery(select * from xianzai where 车牌号=+s+);/执行SQL语句 history(); bind(history1); if(e.getSource()=b2)/下一页 num=num+10; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a27;a2+) history1a1a2=; if(tt=0) Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from xianzai);/执行SQL语句 else Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 String s=text1.getText(); rs=stm.executeQuery(select * from xianzai where 车牌号=+s+);/执行SQL语句 history(); bind(history1); if(e.getSource()=b3) tt=0; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a27;a2+) history1a1a2=; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 rs=stm.executeQuery(select * from xianzai);/执行SQL语句 history(); bind(history1); if(e.getSource()=b4) tt=1; int a1=0; int a2=0; for(a1=0;a110;a1+) for(a2=0;a27;a2+) history1a1a2=; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverManager.getConnection(jdbc:odbc:tingche,); stm=conn.createStatement();/创建Statement对象 String s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论