车辆管理信息系统Java课程设计Word文档格式.docx

上传人:b****4 文档编号:16414280 上传时间:2022-11-23 格式:DOCX 页数:33 大小:1,005.92KB
下载 相关 举报
车辆管理信息系统Java课程设计Word文档格式.docx_第1页
第1页 / 共33页
车辆管理信息系统Java课程设计Word文档格式.docx_第2页
第2页 / 共33页
车辆管理信息系统Java课程设计Word文档格式.docx_第3页
第3页 / 共33页
车辆管理信息系统Java课程设计Word文档格式.docx_第4页
第4页 / 共33页
车辆管理信息系统Java课程设计Word文档格式.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

车辆管理信息系统Java课程设计Word文档格式.docx

《车辆管理信息系统Java课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《车辆管理信息系统Java课程设计Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。

车辆管理信息系统Java课程设计Word文档格式.docx

1.功能设计

本软件的要求的功能为:

1)有关司机各种信息的新增,修改及查询。

2)车辆信息的新增,查询及修改。

3)运营信息的输录,查询与修改。

4)车辆维修信息的输入,查询及修改。

5)事故信息的输入,查询。

编写软件对以上的功能有着较好的实现。

除此之外我们还增加了用户登录和帮助模块,必须在登录状态下才可以进行操作,用来解决对信息的保护等相关方面的问题,帮助模块主要提示程序的功能。

在其他的附加功能方面提供了在软件运行的同时显示了当前的时间。

2.数据库设计

数据库方面使用的是SqlServer2000,在数据库的相关功能方面主要通过Sql语言实现的主要是数据的录入、查询和修改。

3.详细设计

车辆管理信息系统主要是对信息数据实现管理的一款软件,所以本软件的算法较为简单,主要是界面的制作以及数据库方面的相关操作。

软件设计的重要之处在于对软件模型的分析与设计。

这次的设计我们采用的是分层的设计,即本软件我们共设计为三层,第一层为登陆界面,是用户打开软件的第一个界面;

第二层为系统界面,用户可以在此选择自己的希望处理的信息种类;

第三层则为功能实现层,用户选择对信息进行何种处理。

软件共有17个类,相关的类名和实现的功能如下:

Control:

系统的主类,车辆管理系统的主界面

enter:

登录界面的类,包括用户名和密码的输入,登录后拥有管理员权限

Dao:

实现对数据库的语言操作

Driver:

司机基本信息界面的设计及添加、修改、查询功能的调用

Carmessage:

车辆信息界面的设计及添加、修改、查询功能的调用

Carbusiness:

运营信息界面的设计及添加、修改、查询功能的调用

carrepair:

车辆维修信息界面的设计及添加、修改、查询功能的调用

caraccident:

事故信息界面的设计及输入、查询操作的调用

BaseDao:

通过longHaul方法进行数据库的修改,插入

Help:

帮助界面的设计

Today:

获取当前系统时间并输出

JDBC:

数据库驱动

Resultdriver:

司机信息查询结果的输出

Resultcarmess:

车辆信息查询结果的输出

Resultbusi:

运营信息查询结果的输出

Resultrepair:

车辆维修信息查询结果的输出

resultacc:

事故信息查询结果的输出

4.技术支持

本软件的设计主要是界面的规划与设计和各个类的实现与连接(如上图)。

在数据的录入与查询方面还有与数据库的连接以及相关功能的实现。

在界面的规划上主要采用的是BorderLayout布局以及GridBagLayout布局,这是因为本软件涉及到得数据种类和数据类型较多,采用上述两种界面可以使数据的录入及查询得到很好的排列,从而方便用户使用。

在类的连接方面主要是对按钮组件添加监视器,经过对相关事件源以及触发事件的实现,从而对类实现调用及连接。

数据库方面本软件使用的是sqlserver2000,在数据库的相关功能方面本软件实现的主要是数据的录入、查询和修改。

1-3Swing中JButton的使用

与之前学习Java时不一样的是,课程设计中用到了Swing。

Swing是一个用于开发Java应用程序用户界面的开发工具包。

它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。

Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

工具包中所有都是以swing作为名称,例如javax.swing,javax.swing.event。

Swing允许选择程序的图形界面风格常用的有java风格,windows风格等。

下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。

  try{UIManager.setLookAndFeel(

  UIManager.getCrossPlatformLookAndFeelClassName());

}

  catch(Exceptione){}

常用的顶级容器:

JFrame(框架):

表示主程序窗口

JDialog(对话框):

每个JDialog对象表示一个对话框,对话框属于二级窗口

JApplet(小程序):

在浏览器内显示一个小程序界面

  一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格。

窗格也可以看作是一种面板,但它是框架的一个组成部分。

组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板

  publicstaticvoidmain(String[]args){JFrameframe=newJFrame("

SwingApplication"

);

  JPanelpanel1=newJPanel();

  frame.getContentPane().add(panel1,BorderLayout.CENTER);

  ......//

添加其他组件frame.pack();

frame.setVisible(true);

}

三、调试及测试

1、调试过程中遇到的主要问题及解决方法

我们这次课程设计最主要的问题是做界面的美化,主要用到网格布局和边界布局,除此之外因为是做一个系统所以还要求与数据库进行连接。

1)在运行程序时遇到过很多问题,例如图片的加载有问题。

主要是图片的名称以及图片的格式问题。

2)在程序遇到的问题是对JAVA的数据库操作了解不够,通过参考书籍编写了BASEDAO这个类并调用了里面的longHaul方法来实现了数据的修改和插入。

在对各项信息进行添加、修改时,是通过“确定”按钮来判别是否对数据库进行操作的,系统无法识别确定后进行的操作时添加或是修改,因此,通过定义一个标志并对标志赋不同的值来识别“确定”的操作时添加还是修改。

3)还有的问题就是在数据库连接时出现的问题,出现的问题主要有数据库建立的失败,还有就是在数据库连接的时候,加载驱动的失败等。

例如出现数据库加载失败的有一个原因就是,在建立的数据库用户登陆时,拥有个用户安全性问题,我们就需要对其验证密码进行设置,可以为空,也可以不为空。

在Java程序中一定要保证用数据库户名及其用户密码是一致的。

那样就不容易出错了。

2、对程序及所完成系统进行测试

本软件使用前需先配置环境变量,我们主要使用的环境是在eclipse下执行,需要在电脑上安装jdk-6u1-windows-i586-p并设置相应的路径。

在classpath中设置JDBC驱动的路径和程序的路径,并在数据库中新建与程序中允许登陆的用户名相同的用户,该用户需具有所有权限。

运行主类control即可进入主界面,地址是127.0.0.1,用户名是kokone,这两者是默认的。

登陆密码为123456,登陆后用户可根据自己需要进行各项操作。

由于编写时间较短,未对用户输入格式进行相关限制。

所以在输入信息时建议用户按正确的方式输入。

1)运行control后出现的主界面

2)点击登录并输入密码

3)分别点击注销和退出

4)司机信息的添加和查询

5)车辆信息的添加和查询

6)运营信息的添加和查询

7)车辆维修信息的添加和查询

8)车辆事故的添加和查询

四、总结和体会

这次课程设计我做的是章节自测系统,主要是服务于学生进行阶段性自测和练习。

系统分为练习和测试两部分,每一部分又各分若干专题。

系统中采用的技术主要有:

JDBC数据库连接技术、和MVC三层架构利用MyEclipse集成开发环境。

虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。

这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。

我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。

事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意义。

所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。

我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。

通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

五、参考文献

[1]吕凤羽、马皓《JAVA程序设计》清华大学出版社

[2]耿祥义《JAVA课程设计》清华大学出版

[3]黄小东《Java课程设计案例精编》中国水利水电出版社

[4]印旻《Java与面向对象程序设计》清华大学出版社

六、附录

主要源程序:

主程序control:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.io.*;

import.*;

importjava.util.*;

importjava.util.Date;

importjava.sql.*;

importjava.applet.Applet;

importjava.*;

publicclasscontrolextendsJFrameimplementsActionListener

{

publicstaticImageicon;

//程序图标

publicstaticJLabelstatus;

publicstaticJButtonb1,b2,b3,b4,b5,b6,b7,b8;

JLabeltime0,time1,time2,time3;

//建立菜单

JMenuBarjmenubar=newJMenuBar();

//建立菜单组

JMenustartmenu=newJMenu("

开始"

//建立菜单项

publicstaticJMenuItemb7item=newJMenuItem("

登录"

publicstaticJMenuItemb1item=newJMenuItem("

司机信息管理"

publicstaticJMenuItemb2item=newJMenuItem("

车辆信息管理"

publicstaticJMenuItemb3item=newJMenuItem("

运营信息管理"

publicstaticJMenuItemb4item=newJMenuItem("

车辆维修信息管理"

publicstaticJMenuItemb5item=newJMenuItem("

事故信息管理"

publicstaticJMenuItemb6item=newJMenuItem("

注销"

publicstaticJMenuItemb8item=newJMenuItem("

退出"

JMenuhelpmenu=newJMenu("

帮助"

JMenuItemhelpitem=newJMenuItem("

//Graphicsg;

//框架的大小

Dimensionfacesize=newDimension(1000,700);

JPaneldownpanel,timepanel;

GridBagLayoutgridbag;

GridBagConstraintsgridbagcon;

publiccontrol()

{

Containercontentpane=getContentPane();

//一般的AbstractWindowToolkit(AWT)

//容器对象是一个可包含其他AWT组件的组件。

contentpane.setLayout(newBorderLayout());

//添加菜单栏

startmenu.add(b7item);

startmenu.add(b1item);

startmenu.add(b2item);

startmenu.add(b3item);

startmenu.add(b4item);

startmenu.add(b5item);

startmenu.add(b6item);

startmenu.add(b8item);

jmenubar.add(startmenu);

helpmenu.add(helpitem);

jmenubar.add(helpmenu);

setJMenuBar(jmenubar);

//初始化时令停止服务按钮不可用

b1item.setEnabled(false);

b2item.setEnabled(false);

b3item.setEnabled(false);

b4item.setEnabled(false);

b5item.setEnabled(false);

//为菜单栏添加事件监听

b7item.addActionListener(this);

b1item.addActionListener(this);

b2item.addActionListener(this);

b3item.addActionListener(this);

b4item.addActionListener(this);

b5item.addActionListener(this);

b6item.addActionListener(this);

b8item.addActionListener(this);

helpitem.addActionListener(this);

status=newJLabel("

WELCOME"

status.setFont(newFont("

宋体"

Font.BOLD,20));

//设置标签中的文字为宋体、粗体、14号

status.setForeground(newColor(100,0,255));

//设置标签中的文字为红色

status.setHorizontalAlignment(SwingConstants.CENTER);

//设置标签中的文字居中显示

b1=newJButton("

b1.setEnabled(false);

b2=newJButton("

b2.setEnabled(false);

b3=newJButton("

b3.setEnabled(false);

b4=newJButton("

b4.setEnabled(false);

b5=newJButton("

b5.setEnabled(false);

b8=newJButton("

b6=newJButton("

b6.setEnabled(false);

b7=newJButton("

time0=newJLabel();

time0.setFont(newFont("

Font.BOLD,12));

time0.setText("

今天是:

"

time1=newJLabel();

time1.setFont(newFont("

time1.setForeground(newColor(120,1,120));

//设置标签中的文字颜色

time1.setHorizontalAlignment(SwingConstants.CENTER);

time1.setText(Today.getDateOfShow());

time2=newJLabel();

time2.setFont(newFont("

time2.setForeground(newColor(120,1,120));

time2.setHorizontalAlignment(SwingConstants.CENTER);

time2.setText(Today.getDayOfWeek());

time3=newJLabel();

time3.setFont(newFont("

Font.BOLD,14));

time3.setForeground(newColor(120,1,120));

time3.setHorizontalAlignment(SwingConstants.CENTER);

newTime().start();

//开启线程

Calendarnow;

inthour;

intminute;

intsecond;

now=Calendar.getInstance();

hour=now.get(Calendar.HOUR_OF_DAY);

minute=now.get(Calendar.MINUTE);

second=now.get(Calendar.SECOND);

time3.setText(hour+"

:

+minute+"

+second);

//添加按钮时间的监听

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

b5.addActionListener(this);

b6.addActionListener(this);

b7.addActionListener(this);

b8.addActionListener(this);

//添加系统的背景图案

JPaneldownpanel=newJPanel();

JPaneltimepanel=newJPanel();

GridBagLayoutgridbag=newGridBagLayout();

downpanel.setLayout(gridbag);

timepanel.setLayout(gridbag);

JLabeltopLabel=newJLabel();

topLabel.setPreferredSize(newDimension(0,100));

topLabel.setHorizontalAlignment(SwingConstants.CENTER);

URLtopUrl=this.getClass().getResource("

enter1.gif"

ImageIcontopIcon=newImageIcon(topUrl);

topLabel.setIcon(topIcon);

getContentPane().add(topLabel,BorderLayout.CENTER);

gridbagcon=newGridBagConstraints();

gridbagcon.gridx=0;

gridbagcon.gridy=0;

gridbagcon.insets=newInsets(2,2,2,2);

gridbagcon.ipadx=80;

gridbagcon.ipady=40;

gridbag.setConstraints(b1,gridbagcon);

downpanel.add(b1);

gridbagcon.gridy=1;

gridbag.setConstraints(b2,gridbagcon);

downpanel.add(b2);

gridbagcon.gridy=2;

gridbag.setConstraints(b3,gridbagcon);

downpanel.add(b3);

gridba

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1