《Java语言程序设计--汽车租赁管理系统.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计--汽车租赁管理系统.docx(24页珍藏版)》请在三一办公上搜索。
1、课程设计报告课程名称Java语言程序设计 设计题目汽车租赁管理系统 专业班级姓名学号成绩评定考核内容设计表现设计报告答辩综合评定成绩成绩计算机技术与工程学院和谐勤奋求是创新课程设计考核和成绩评定办法1. 课程设计的考核由指导教师根据设计表现、设计报告、设计成果、答辩等几个方面, 给出各项权重,综合评定成绩。该设计考核教研室主任审核,主管院长审批备案。2. 成绩评定采用五级分制,即优、良、中、及格、不及格。3. 参加本次设计时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格 处理。4. 课程设计结束一周内,指导教师提交成绩和设计总结。5. 设计过程考核和成绩在教师手册中有记载。课程设计
2、报告内容课程设计报告内容、格式各专业根据专业不同统一规范,经教研室主任审核、主 管院长审批备案。注:1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录 刖。2.为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文 采用宋体五号字)或手写,右侧装订。目录引言任务书及报告要求.错误!未定义书签。第一部分系统描述错误!未定义书签。第二部分系统分析与设计错误!未定义书签。1. 软件需求错误!未定义书签。2. 功能设计错误!未定义书签。3. 数据库设计错误!未定义书签。4. 系统详细设计文档错误!未定义书签。5. 各个模块实现方法描述
3、错误!未定义书签。第三部分主要源代码错误!未定义书签。第四部分运行结果截图.错误!未定义书签。第五部分设计总结错误!未定义书签。第六部分参考文献错误!未定义书签。1此处是本课程设计任务书指导教师:秦忠赵洁红张东辉张秀坤 班级:计算14412 地点:机房一、课程设计目的1、综合运用Java程序设计课程和其他相关课程的理论和知识,掌握面向对象程序 设计的一般方法、常用技术及技巧,树立良好的软件设计思想,培养分析问题和解决实 际问题的能力;2、学会从OOP程序设计的方法及要求出发,认真分析题目,做好总体设计,根据 要求科学地设计包、类、接口等,正确设计算法,合理安排界面,规范开发过程,仔细 调试程序
4、,做好设计总结;3、充分利用互联网资源,提高学生获取知识,实践知识的能力。二、课程设计内容1、基于数据库的管理信息系统设计及实现如:学籍管理系统;成绩管理系统;学生学习、生活管理系统;学生就业信息管理系统;图书管理系统;超市商品管理系统;汽车租赁管理系统;药店管理系统;游泳馆售票管理系统;计算机维修店管理系统等。主要设计内容:根据题目需求进行数据库设计,软件结构设计、软件功能设计,软 件主要功能:主界面设计;信息的录入/增加、删除、修改、查找、统计及业务功能实 现设计等。2、记事本程序设计及实现记事本程序主要设计内容:菜单设计,记事本各功能项的实现。计算器程序:界面设计,各种计算功能的实现。3
5、、网络通讯软件或游戏软件设计注:以上3类题目任选其一或自选其它题目(必须由指导老师审核批准)。三、时间及任务安排序号完成内容时间1设计准备(查阅文献、资料、确定方案)1天2总体设计2天3详细设计、编码、调试5天6编写设计报告书1.5天7验收和答辩0.5天8合计10天四、基本要求1、根据题目做好总体设计、详细设计;2、列出程序中的主要类(包括类中的成员变量、类变量和主要方法)、接口或画出类 图等;3、编写程序,调试、运行程序;4、能够积极上网查询所需资料;5、提交设计报告书,可以选择打印和手写;6、设计报告书要求A4幅面,如果采用打印稿,正文采用5号宋体;7、答辩。五、课程设计报告内容要求:1.
6、 格式见“模板”2. 报告内容:1)系统描述:介绍开发的系统的功能和解决的问题;2)分析与设计功能模块划分;数据库结构描述;系统详细设计文档(类的划分及相互关系、接口设计等)各个模块的实现方法描述;3)源代码:符合Java编码规范;4)运行结果截图5)参考文献:参考文献的书写格式要符合如下规范;a. 期刊文献书写格式:作者.论文篇名J .期刊名.出版年,卷(期b. 著作文献书写格式:作者.书名M .出版地:出版社,出版年六、验收及成绩评定验收方式:检查程序运行、程序实现功能情况及答辩。成绩评定:结合设计表现(30%)、 设计报告(成果质量等)(40%)和答辩情况(30%)按优秀、良好、中等、及
7、格、不及 格给出成绩。1课程设计报告正文要求如下:一、系统描述一. 功能需求需求分析是发现需求,分析求精,逻辑建模,需求规约的过程,其的目的是为了全 面获取软件需求,准确理解业务逻辑。车辆租赁系统具有以下基本功能。1. 用户管理:包括用户的注册,注销等,没有账户的用户可以注册会员,登录,通过分类查询车 辆,以及查看其详细信息。2. 车源管理:包括车辆信息的删除,添加,修改等,管理员能够向数据库中发布车辆信息,包括 车辆的车型,价格,车主等信息。3. 车源信息查找用户可以在窗口上直接浏览车辆基本信息,也可以按照不同的要求方式对车辆信息 进行查询,如按车辆类型查找(客车,货车),这样用户可以方便的
8、找到自己想要 的车源,人性化的查找方式为用户带来了极大的便利。二. 系统解决的问题本系统主要完成前台浏览(用户注册,信息修改,车辆浏览),后台管理(车辆信息 的录入,管理员登录)等功能。通过以上功能实现简单,便捷的租车系统。车辆浏览:所有人都可以操作,顾客可以随意浏览车辆信息,按照车辆的序号排序,在 点击按钮后,可以在表格中显示出可以租用车辆的信息,可以让用户选择。车辆租用:顾客在浏览车辆信息后,可以根据自身需求选择所需租用的车辆,输入车辆 的序号后,点击确定按钮,可以成功租用车辆,并且该车辆是否被租用的信 息会自动更改为已被租用,如果用户租用已被租用的车辆则租用失败,无法 租用成功。车辆管理
9、:该功能只能由管理员完成,由管理员完成对车辆信息的录入包括录入车辆的 车主,价格,是否被租用等信息,并可以删除车辆信息。会员管理:该功能由管理员完成,管理员可以注册其他的用户帐号,并将帐号密码录入 数据库中。二、系统分析与设计软件需求;时代在发展潮流在进步,个人的私家车已经逐渐的不能满足人们出行的要求 所以汽车租赁公司应运而生,越来越多的人选择租车来满足自己外出游玩的乐趣和 兴趣,所以相应的租车系统就会产生。功能设计;实现系统由可以由管理员来录入车辆信息,包括车辆的价格,车型,车主等, 并可以实现车辆信息的修改,查找和删除功能。实现管理者可以为用户申请系统的使用权限,为用户申请帐号和密码。用户
10、可以登录自己的账户和密码,可以浏览车辆的信息和是否能被租用,同时 选择自己所需的车型和相应的价格。在租用了相关车辆后,车辆是否被租用的信 息就会被修改,实现其他与用户的租用。数据库设计(或数据结构设计);数据库内创建一个数据库,数据库中有三个表,分别记录车辆的信息,管 理员的帐号和密码信息,最后一个记录用户的帐号和密码信息,车辆租用信息 的修改也会写入到数据库中。系统详细设计文档(类的划分及相互关系、接口设计、算法设计等);整个系统分为6个类,从登录的类创建新的管理者类和用户端的类, 用户端可以创建录入信息的界面,实现数据的录入和上传到数据库中,管 理者可以在管理界面中为新用户注册新的界面,在
11、新界面上录入到新的数 据库中。各个模块的实现方法描述;三、主要源代码package gg ;import javax.swing.*;import java.io.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util*;import javax.swing.filechooser.*;import java.io.FileInputStream;public class Denglu extends JFrame implements ActionListener JButton jb3Jb
12、4;JTextField al;JPasswordField a2;JLabel j1J2J3;JPanel jpUpZgJp4;Car c;Connection con;PreparedStatement sql;ResultSet rs;public Denglu(String s)super(s);j2=new JLabel(账号:”);j3=new JLabel(密码:);jb3=new JButton(客户端登陆);jb4=new JButton(管理员登陆); jb3.addActionListener(this); jb4.addActionListener(this); a1=
13、new JTextField(20); a2=new JPasswordField(20); j1=new JLabel(车辆租赁登陆界面); jp1=new JPanel();界面按钮对象的实现和监听的添加 jp1.setLayout(new FlowLayout(); jp1.add(j2);jp1.add(a1); jp2=new JPanel(); jp2.add(j3);jp2.add(a2); JPanel jp3=new JPanel(); jp3.setLayout(new BorderLayout(); add(jp1,BorderLayout.NORTH); add(jp2
14、,BorderLayout.CENTER); jp4=new JPanel(); jp4.setLayout(new FlowLayout(); jp4.add(jb3); jp4.add(jb4); add(jp4,BorderLayout.SOUTH);完成界面布局setSize(550,400); setVisible(true); this.setLocation(360,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) if(e.getSou
15、rce()=jb3)( String DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:sqlserver:127.0.0.1:1433;databaseName=xinxi; String ming=a1.getText(); String mima=a2.getText(); try Class.forName(DBDriver); catch(ClassNotFoundException ev) try con=DriverManagergetConnection(url,”sa,123”); s
16、ql=con.prepareStatement(Select * From zhanghao where usersName=+ming+ and userskey=+mima+); rs=sql.executeQuery(); if(rs.next() this.dispose(); new Car(主菜单);elseJOptionPane.showMessageDialog(null,账户名或密码错误,警告 JOptionPane,INFORMATION_MESSAGE,null );con.close();repaint();catch(SQLException ex)ex.printS
17、tackTrace(); if(e.getSource()=jb4) String DBDriver=ncom.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=xinxi; String ming=a1.getText(); String mima=a2.getText(); try Class.forName(DBDriver); catch(ClassNotFoundException ev) try con=DriverManager,getC
18、onnection(url,”sa”,123”); sql=con.prepareStatement(Select * From guanliyuan where usersName=+ming+ and usersKey=*+mima+nn); rs=sql.executeQuery(); if(rs.next() this.dispose(); new guanliyuan(); elseJOptionPane.showMessageDialog(null,账户名或密码错误,警告 JOptionPane.INFORMATION_MESSAGE,null );con.close(); rep
19、aint(); catch(SQLException ex)ex.printStackTrace();对两个按钮具体的程序实现public static void main(String args) Denglu d=new Denglu(登陆界面”);package gg;import javax.swing.*;import java.io.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util*;import javax.swing.filechooser.*;import java.i
20、o.FileInputStream;public class Car extends JFrame implements ActionListener JButton jb1Jb2Jb3jb4jbbjb5;JLabel jl1Jl2Jl3;JPanel jp1jp2Jp3Jp4Jpnjpc;JTextField a1,a2;JTable jt1=null;Object a;Object titles=null;Connection con;PreparedStatement sql;ResultSet rs;public Car(String s)super(s);jl1=new JLabel
21、(车辆租赁系统(用户端广);Object titles=序号,车型,车主,价格七”是否被租用;a=new Object105;jt1=new JTable(a,titles);JScrollPane pane3 = new JScrollPane (jt1);jl1.setForeground(Color.red);jb2=new JButton(租车信息浏览”);jb2.addActionListener(this);jl3=new JLabel(选择所要租用的汽车:”);jb3=new JButton(确定”);jb3.addActionListener(this);a1=new JTex
22、tField(10);jb4=new JButton(退出);jb4.addActionListener(this);jb5=new JButton(可租用的车辆);/按钮的实现和添加监听jb5.addActionListener(this);jp2=new JPanel();jp3=new JPanel();jp4=new JPanel(); jpc=new JPanel(); jp3.setLayout(new FlowLayout(FlowLayout.CENTER); jp3.add(jl3); jp3.add(a1); jp3.add(jb3); jpc.setLayout(new
23、BorderLayout(); jpc.add(jb5,BorderLayout.NORTH); jpc.add(jb4,BorderLayout.CENTER); jp4.setLayout(new BorderLayout(); jp4.add(jb2,BorderLayout.NORTH); jp4.add(jp3,BorderLayout.CENTER); jp4.add(jpc,BorderLayout.SOUTH); jp2.setLayout(new BorderLayout(); jp2.add(jl1,BorderLayout.NORTH); jp2.add(pane3,Bo
24、rderLayout.CENTER); this.setLayout(new BorderLayout(); add(jp4,BorderLayout.WEST); add(jp2,BorderLayout.CENTER);界面的布局this.setSize(800,150); this.setVisible(true); this.setResizable(false); this.setLocation(360,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEv
25、ent e) String DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:sqlserver:127.0.0.1:1433;databaseName=xinxi; if(e.getSource()=jb2) int i=0; while(i10) ai0=; ai1=; ai2=; ai3=; ai4=; i+; i=0;tryClass.forName(DBDriver);catch(ClassNotFoundException ev)trycon=DriverManager.getConnect
26、ion(url,”sa”,123”); sql=con.prepareStatement(Select * From biao); rs=sql.executeQuery();while(rs.next()String xh=rs.getString(序号”);String cx=rs.getString(牢型);String cz=rs.getString(车主”);String jg=rs.getString(价 格”);String zy=rs.getString(是 否被租用”); ai0=xh;ai1=cx; ai牛 ai3=jg; ai4=zy;i+;con.close(); re
27、paint(); catch(SQLException ex)ex.printStackTrace();车辆信息的浏览if(e.getSource()=jb3)tryClass.forName(DBDriver);catch(ClassNotFoundException ev) tryString first=a1.getText();con=DriverManager.getConnection(url,sa,123);sql=con.prepareStatement(update biao set 是否被租用=是where 序号 =+first+);sql.executeUpdate();
28、con.close();repaint();catch(SQLException ex)ex.printStackTrace();int i=0;while(i10)ai0=;ai1=;ai2=;ai3=;ai4=;i+;i=0;tryClass.forName(DBDriver);catch(ClassNotFoundException ev) tryString first=a1.getText();con=DriverManager.getConnection(url,sa”,123);sql=con.prepareStatement(Select * From biao where 序
29、号=+first+”);rs=sql.executeQuery();while(rs.next()String xh=rs.getString(序 号);String cx=rs.getString(”车型);String cz=rs.getString(牢主);String jg=rs.getString(* 价格”);String zy=rs.getString(是否被租用); ai0=xh;ai1=cx;ai2=cz;ai3=jg;ai4=zy; i+; JOptionPane.showMessageDialog(this,租用成功,提示JOptionPane.INFORMATION_M
30、ESSAGE,null );con.close();repaint();catch(SQLException ex)ex.printStackTrace();租用车辆的信息修改机制if(e.getSource()=jb4) this.dispose();if(e.getSource()=jb5)int i=0;while(i10)ai0=;ai1=;ai2=;ai3=;ai4=;i+;i=0;tryClass.forName(DBDriver);catch(ClassNotFoundException ev) trycon=DriverManagergetConnection(url,”sa,
31、123”); sql=con.prepareStatement(Select * From biao where 是否被租用=否);rs=sql.executeQuery(); while(rs.next() String xh=rs.getString(序号); String cx=rs.getString(牢型); String cz=rsgetString(阵主); String jg=rs.getString(价格); String zy=rs.getString(,是 否被租用); ai0=xh; ai1=cx; ai牛 ai3=jg; ai4=zy; i+; con.close()
32、; repaint(); catch(SQLException ex)ex.printStackTrace(); /可以被租用的车辆的信息浏览public static void main(String args) Car k=new Car(”用户端); package gg;import javax.swing.*; import java.io.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util*;import javax.swing.filechooser.*;import jav
33、a.io.FileInputStream;public class guanliyuan extends JFrame implements ActionListenerJButton jb1Jb2Jb4,jbbJbc;JLabel jl1,jl2;JPanel jp1jp2jp3jp4Jp5;JTextField a1,a2;JTable jt1=null;Object a;Object titles=null;Connection con;PreparedStatement sql;ResultSet rs;public guanliyuan()jl1=new JLabel(车辆租赁系统(
34、管理员广);jl1.setForeground(Color.red);Object titles=序号,车型,车主”,价格”,”是否被租用;a=new Object105;jt1=new JTable(a,titles);JScrollPane pane3 = new JScrollPane (jt1);jl1.setForeground(Color.red);jb1=new JButton(车辆信息录入);jb1.addActionListener(this);jl2=new JLabel(选择所要删除的车辆:”);jbb=new JButton(删除);jbb.addActionListe
35、ner(this);a2=new JTextField(10);jb2=new JButton(租车信息浏览);jb2.addActionListener(this);jbc=new JButton(新用户注册);jbc.addActionListener(this);a1=new JTextField(10);jb4=new JButton(退出);按钮的实现和监听的添加jb4.addActionListener(this);jp1=new JPanel();jp3=new JPanel();jp2=new JPanel();jp4=new JPanel();jp5=new JPanel()
36、;jp3.setLayout(new FlowLayout();jp3.add(jl2);jp3.add(a2);jp3.add(jbb); jp5.setLayout(new BorderLayout(); jp5.add(jp3,BorderLayout.CENTER); jp5.add(jb2,BorderLayout.NORTH); jp4.setLayout(new BorderLayout(); jp4.add(jbc,BorderLayout.NORTH); jp4.add(jb4,BorderLayout.CENTER); jp1.setLayout(new BorderLay
37、out(); jp1.add(jb1,BorderLayout.NORTH); jp1add(jp5,BorderLayout.CENTER); jp1.add(jp4,BorderLayout.SOUTH); jp2.setLayout(new BorderLayout(); jp2.add(jl1,BorderLayout.NORTH); jp2.add(pane3,BorderLayout.CENTER); this.setLayout(new BorderLayout(); add(jp1,BorderLayout.WEST); add(jp2,BorderLayout.CENTER)
38、;/完成布局this.setTitle(管理员界面); this.setSize(800,180); this.setVisible(true); this.setResizable(false); this.setLocation(360,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) String DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver; String url=jdbc:sqls
39、erver:127.0.0.1:1433;databaseName=xinxi; if(e.getSource()=jb1) this.dispose(); new Input(); 录入功能的实现if(e.getSource()=jbb) int i=0; while(i10) ai0=; ai1=; ai2=; ai3=; ai4=; i+; i=0; tryClass.forName(DBDriver);catch(ClassNotFoundException ev)tryString first=a2.getText();con=DriverManagergetConnection(u
40、rl,”sa,123”); sql=con.prepareStatement(delete from biao where 序号=+first+);sql.executeUpdate();con.close();repaint();catch(SQLException ex)ex.printStackTrace();JOptionPane.showMessageDialog(this,删除成功”,”提示 JOptionPaneINFORMATION_MESSAGE,null );tryClass.forName(DBDriver);catch(ClassNotFoundException ev
41、) trycon=DriverManagergetConnection(url,sa,123); sql=conprepareStatement(Select * From biao); rs=sql.executeQuery();while(rs.next()String xh=rs.getString(序 号”);String cx=rsgetString(车型”); String cz=rsgetString(车主”); String jg=rsgetString(价格”); String zy=rsgetString(是否被租用); ai0=xh;ai1=cx;ai2=cz;ai3=j
42、g;ai4=zy;i+;conclose(); repaint();catch(SQLException ex)exprintStackTrace();删除功能的实现if(egetSource()=jb2)int i=0;while(i10)ai0=”;ai1=; ai2=; ai3=;ai4=; i+;i=0;tryClass.forName(DBDriver);catch(ClassNotFoundException ev) trycon=DriverManagergetConnection(url,”sa,123”); sql=con.prepareStatement(Select *
43、From biao); rs=sql.executeQuery();while(rs.next()String xh=rs.getStringC 序号”);String cx=rsgetString(”车型”); String cz=rsgetString(牢主); String jg=rs.getString(* 价格); String zy=rsgetString(是否被租用”); ai0=xh;ai1=cx;ai2=cz;ai3=jg;ai4=zy;i+;con.close();repaint();catch(SQLException ex)ex.printStackTrace();if
44、(e.getSource()=jb4) this.dispose();if(e.getSource()=jbc) this.dispose(); new zhuce();/信息的浏览public static void main(String args) new guanliyuan();package gg;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.Random;import java.text.MessageFormat;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import java.sql.*;import javax.swing.table.*;public class Input extends JFrame implements ActionListener JButton jb1,jb2;JTextField jt1jt2Jt3Jt4JtS;