1、数据库课程实训报告题目: 汽车租赁管理系统 目 录目 录21 课题内容和规定11.1课题描述11.2 课题规定12 需求分析12.1 功能需求分析12.2 数据需求分析13 系统设计33.1 功能模块设计33.2 数据库概念设计33.3 数据库逻辑设计43.4 数据库物理设计43.5 数据库表间联系44系统实现54.1 管理员模块实现54.2 车辆信息模块实现64.3客户信息模块实现74.4司机信息模块实现85 代码调试与功能测试95.1 测试方案95.2 测试结果96 收获与体会12参考文献13附录14附录1源程序部分清单14附录1.1登陆14附录1.2 车辆信息16附录1.3 客户信息24
2、附录1.4 司机信息33附录1.5 车辆租赁41汽车租赁管理系统设计1 课题内容和规定 1.1课题描述汽车租赁管理系统是可以通过对汽车基本信息进行增长、删除、修改,对租赁客户信息进行增长、删除、修改,实现汽车的租借、归还、续借的管理系统。1.2 课题规定1)可以对汽车基本信息进行增长、删除、修改2)可以对租赁客户信息进行增长、删除、修改3)可以实现汽车的租借、归还、续借4)可以按重要字段查询汽车、客户等基本信息5)可以实现租赁金额的计算6)可以查询汽车、客户租赁历史记录2 需求分析2.1 功能需求分析程序一方面需要登录模块来实现管理员或者客户的登陆,在车辆信息模块中来实现对汽车基本信息的增长、
3、删除、修改,在客户信息模块中实现对客户信息的增长、删除、修改,租赁模块来实现对客户对汽车的租赁功能实现,车辆查询模块来实现对车辆信息的查询,系统记录模块实习对租金收入、租用时间的记录。2.2 数据需求分析 登陆模块:车辆信息模块客户信息模块管理员车辆租赁系统登陆客户租车模块客户司机信息模块管理员信息表系统记录模块租金信息模块添加汽车信息车辆信息模块:车辆信息模块车辆信息表查询信息添加客户信息客户信息模块:客户信息模块客户信息表查询信息客户租车信息客户租车模块:客户租车模块租车信息表查询信息司机信息司机信息模块:司机信息模块司机信息表查询信息系统记录信息系统记录模块:系统记录模块系统登记表查询信
4、息租金信息租金信息模块:租金信息模块租金信息表查询信息数据字典:编号:p1名字:车辆信息描述:管理员或用户对车辆的基本信息进行查询、删除或修改。编号:p2名字:客户信息描述:管理员或用户对客户的基本信息进行查询、删除或修改。编号:p3名字:租车信息描述:管理员或用户对客户租车时的信息进行录入。编号:p4名字:司机信息描述:管理员或用户对司机的基本信息进行录入。编号:p5名字:系统记录描述:管理员或用户对租金收入、租用时间的记录结果进行查询。编号:p6名字:租金信息描述:管理员或用户对租金收入、租用时间的记录结果进行查询。3 系统设计3.1 功能模块设计车辆信息模块车辆信息模块可以实现对车辆名称
5、、车辆类型、购买时间、车辆状况、租金标准(日)、租期起始时间、租期的添加、删除和修改,同时也可以查询这些信息。客户信息模块客户信息模块可以实现对客户身份证号、姓名、年龄、地址、电话、登录密码的添加、删除和修改,可以运用身份证号来删除指定客户的信息。客户租车模块客户租车模块可以实现对车辆的租赁管理,内包具有对于租赁车辆的车辆名称、车辆类型、购买时间、车辆状况、租金标准(日)、租期起始时间、租期,尚有客户的身份证号、姓名、年龄、地址、电话、驾驶证书。司机信息模块司机信息模块可以实现对司机身份证号、姓名、年龄、地址、电话、驾驶证书的添加、删除和修改,同时也可以查询有关信息。系统记录模块系统记录模块中
6、可以对已录入的信息进行记录汇总,涉及租金最高的车、租用时间最长的车、今日收入、累计收入。租金信息模块租金信息模块可以车辆名称、车辆类型、租金标准、车辆起始时间、租期进行查询。3.2 数据库概念设计车辆信息模块E-R图:车辆状况购买时间车辆类型车辆名称车辆租期租期起始时间租金标准客户信息模块E-R图:年龄姓名身份证号客户电话地址登录密码司机信息模块E-R图:年龄姓名身份证号司机电话电话驾驶证书3.3 数据库逻辑设计(1)车辆(车辆名称;车辆类型;购买时间;车辆状况;租金标准;租期起始时间;租期)(2)客户(身份证号;姓名;年龄;地址;电话;登录密码)(3)司机(身份证号;姓名;年龄;地址;电话;
7、驾驶证书)3.4 数据库物理设计管理员信息:客户信息:司机信息:3.5 数据库表间联系 4系统实现4.1 管理员模块实现jLabel_IL1 = new JLabel(身份证号);p.add(jLabel_IL1);jLabel_IL1.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf1);jLabel_IL2 = new JLabel(姓名);p.add(jLabel_IL2);jLabel_IL2.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf2);jLabel_IL3 = new JLabel(年龄);
8、p.add(jLabel_IL3);jLabel_IL3.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf3);jLabel_IL4 = new JLabel(地址);p.add(jLabel_IL4);jLabel_IL4.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf4);jLabel_IL5 = new JLabel(电话);p.add(jLabel_IL5);jLabel_IL5.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf5);jLabel_IL6 =
9、new JLabel(登录密码);p.add(jLabel_IL6);jLabel_IL6.setFont(new java.awt.Font(微软雅黑,0,14);可以实现对客户身份证号、姓名、年龄、地址、电话、登录密码的添加、删除和修改4.2 车辆信息模块实现jLabel_IL2 = new JLabel(车辆类型);p.add(jLabel_IL2);jLabel_IL2.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf2);jLabel_IL3 = new JLabel(购买时间);p.add(jLabel_IL3);jLabel_IL3.se
10、tFont(new java.awt.Font(华文彩云,0,14);p.add(tf3);jLabel_IL4 = new JLabel(车辆状况);p.add(jLabel_IL4);jLabel_IL4.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf4);jLabel_IL5 = new JLabel(租金标准);p.add(jLabel_IL5);jLabel_IL5.setFont(new java.awt.Font(华文彩云,0,14);可以实现对车辆名称、车辆类型、购买时间、车辆状况、租金标准(日)、租期起始时间、租期的添加、删除和修改
11、,同时也可以查询这些信息。4.3客户信息模块实现p.add(new JLabel();jLabel_IL1 = new JLabel(身份证号);p.add(jLabel_IL1);jLabel_IL1.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf1);jLabel_IL2 = new JLabel(姓名);p.add(jLabel_IL2);jLabel_IL2.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf2);jLabel_IL3 = new JLabel(年龄);p.add(jLabel_IL3)
12、;jLabel_IL3.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf3);jLabel_IL4 = new JLabel(地址);p.add(jLabel_IL4);jLabel_IL4.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf4);jLabel_IL5 = new JLabel(电话);p.add(jLabel_IL5);jLabel_IL5.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf5);jLabel_IL6 = new JLabel(登录密码);
13、p.add(jLabel_IL6);jLabel_IL6.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf6);jLabel_IL7 = new JLabel( 在此输入身份证号点击查询删除);p.add(jLabel_IL7);jLabel_IL7.setFont(new java.awt.Font(微软雅黑,0,14);可以实现对客户身份证号、姓名、年龄、地址、电话、登录密码的添加、删除和修改4.4司机信息模块实现p.add(new JLabel();jLabel_IL1 = new JLabel(身份证号);p.add(jLabel_IL1);j
14、Label_IL1.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf1);jLabel_IL2 = new JLabel(姓名);p.add(jLabel_IL2);jLabel_IL2.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf2);jLabel_IL3 = new JLabel(年龄);p.add(jLabel_IL3);jLabel_IL3.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf3);jLabel_IL4 = new JLabel(地址);p.ad
15、d(jLabel_IL4);jLabel_IL4.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf4);jLabel_IL5 = new JLabel(电话);p.add(jLabel_IL5);jLabel_IL5.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf5);jLabel_IL6 = new JLabel(驾驶证书);p.add(jLabel_IL6);jLabel_IL6.setFont(new java.awt.Font(微软雅黑,0,14);p.add(tf6);jLabel_IL7 = ne
16、w JLabel( 在此输入身份证号点击查询删除);p.add(jLabel_IL7);jLabel_IL7.setFont(new java.awt.Font(微软雅黑,0,14);可以实现对司机身份证号、姓名、年龄、地址、电话、驾驶证书的添加、删除和修改,同时也可以查询有关信息。5 代码调试与功能测试5.1 测试方案登陆测试:输入用户名qh密码123,点击管理员登陆。车辆信息添加测试:添加车辆名称1车辆类型1购买时间1905-07-10车辆状况1租金标准100,点击添加。客户信息添加测试:输入身份证号姓名科比年龄0地址苏州电话45252登录密码434,点击添加。司机信息添加测试:输入身份证
17、号4783292姓名哒哒哒年龄43地址常州电话4562542驾驶证书A,点击添加。5.2 测试结果车辆租赁系统:车辆信息:客户信息:司机信息:租金信息:信息记录:登陆界面:6 收获与体会这次课程设计我设计的是一个汽车租赁管理系统,通过这次课程设计,我了解了一个完整的数据库系统设计的环节,掌握了租车公司汽车租赁系统的业务流程及管理,巩固了我在课堂上所学的理论知识,开拓了自己的知识面,同时也让我看到了自己的局限性,很多东西单独用可以做出来,可是连贯起来就出现了很多错,尚有很多局限性,需要努力。当然在我同学的帮助下,见证了一个系统的诞生,虽然不复杂,但它可以实现一些基本的功能,很有成就感,是理论与实
18、践的一次完美的结合,并且也学到很多课本上没有涉及到的知识,对编程经验也起到了累积作用,也是第一次了解了一个系统诞生所要通过的流程,前期、设计、完毕、后期一个也不能少,不像平时只用编一个程序,至于需求和维护没有涉及,这次课程设计就像一次工作的体验,从头到尾不遗余力的把它完毕。体会就是自己在这次设计当中碰到了很多问题,一开始的时候主线无从下手、什么都不会,但是通过和同学成的讨论,查阅资料、网上查询等有了基本了解,使得问题得以一一解决。总之,在这次程序设计中,学会到了很多以前没有了解到的知识,当然系统尚有很多局限性,比如主界面的缩放功能没有很好的实现等,这还需要在以后的学习中慢慢改善。回想我在这段时
19、间的课程设计,感到非常的充实。由于有了同学的帮助,我才干完满完毕了这个课程设计。在以后的学习中我还会更努力的学习,把自己学到的知识运用到的以后的学习和工作中去。参考文献1 钱雪忠,王燕玲,林挺.数据库原理及技术M.北京:清华大学出版社,2023.2 钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计M.北京:清华大学出版社,2023. 附录附录1源程序部分清单附录1.1登陆import java.awt.event.ActionListener;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;i
20、mport java.awt.Toolkit;import java.awt.event.ActionEvent;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Vector;import javax.swing.*;public class dl implements Action
21、Listener JFrame frame=new JFrame(客户/管理员登陆);JLabel label1=new JLabel(用户名);JLabel label2=new JLabel(密码);ImageIcon jbi1=new ImageIcon(image/admin.png);ImageIcon jbi2=new ImageIcon(image/admin2.png);ImageIcon jbi3=new ImageIcon(image/quit.png);JButton loginButton1=new JButton(管理员登陆,jbi1);JButton loginBu
22、tton2=new JButton(客户登陆,jbi2);JButton cancelButton=new JButton(退出,jbi3);JTextField t1=new JTextField(0);JTextField t2=new JTextField(0);ImageIcon im=new ImageIcon(image/5.jpg);JLabel a2=new JLabel(im);JTextField username=new JTextField(9);JPasswordField password=new JPasswordField(9);void create()JPa
23、nel p=(JPanel)frame.getContentPane();JPanel p1=new JPanel();p.setLayout(new FlowLayout();p.add(label1);label1.setFont(new java.awt.Font(华文彩云,0,16);p.setSize(5,5);p.setLocation(4,8);p.add(username);username.setFont(new java.awt.Font(华文彩云,0,14);p.setSize(100,200);p.setLocation(800,800);p.add(label2);l
24、abel2.setFont(new java.awt.Font(华文彩云,0,16);p.setSize(50,20);p.setLocation(40, 80);p.add(password);p.setSize(100,20);p.setLocation(80, 120);loginButton1.setFont(new java.awt.Font(华文彩云,0,14);p.add(new JLabel( );p.add(new JLabel( );p.add(loginButton1);loginButton2.setFont(new java.awt.Font(华文彩云,0,14);p
25、.add(loginButton2);p.add(cancelButton);cancelButton.setFont(new java.awt.Font(华文彩云,0,14);/p.add(t1);/p.add(t2);p.setBackground(new java.awt.Color(255,255,255);p.add(a2);p.add(new JLabel( );/p.setBackground(Color.red);p.setVisible(true);loginButton1.addActionListener(this);loginButton2.addActionListe
26、ner(this);cancelButton.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();Toolkit toolkit=Toolkit.getDefaultToolkit();Dimension d=toolkit.getScreenSize();frame.setBounds(d.width/2-375, d.height/2-225, 750, 450);/frame.setBounds(200,100,750,550);frame.setVisible
27、(true);public static void main(String args) dl dome=new dl(); dome.create(); public void actionPerformed(ActionEvent e)if(cancelButton.equals(e.getSource()System.exit(0);if(loginButton1.equals(e.getSource()if(username.getText().equals(qh)=true)&(password.getText().equals(123)=true)ZJM gz=new ZJM();g
28、z.create();frame.setVisible(false);elseJOptionPane.showMessageDialog(null,登录失败!);if(loginButton2.equals(e.getSource()System.out.print(123123);if(username.getText().equals(121)=true)&(password.getText().equals(123)=true)KHZC gz=new KHZC();gz.create();frame.setVisible(false);elseJOptionPane.showMessag
29、eDialog(null,登录失败!);附录1.2 车辆信息import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S
30、QLException;import java.sql.Statement;import java.util.Vector;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax
31、.swing.JTable;import javax.swing.JTextField;public class CLXX implements ActionListenerJFrame f=new JFrame(车辆信息);ImageIcon jbi1=new ImageIcon(image/ad.png);ImageIcon jbi2=new ImageIcon(image/del.png);ImageIcon jbi3=new ImageIcon(image/ser.png);ImageIcon jbi4=new ImageIcon(image/up.png);private JLabe
32、l jLabel_IL5;private JLabel jLabel_IL4;private JLabel jLabel_IL3;private JLabel jLabel_IL2;private JLabel jLabel_IL1;JButton b1=new JButton(添加,jbi1);JButton b2=new JButton(修改,jbi4);JButton b3=new JButton(删除,jbi2);JButton b4=new JButton(查询所有,jbi3);JButton b5=new JButton(查询个人信息,jbi3);JButton b6=new JB
33、utton(返回);JTextField tf1=new JTextField(4);JTextField tf2=new JTextField(4);JTextField tf3=new JTextField(4);JTextField tf4=new JTextField(4);JTextField tf5=new JTextField(4);JTextField tf6=new JTextField(4);String cloum=车辆名称,车辆类型,购买时间,车辆状况,租金标准(日),租期起始时间,租期;Object row=new Object507;JTable table=new
34、 JTable(row,cloum);JScrollPane scrollpane=new JScrollPane(table);JSplitPane splitpane=new JSplitPane(JSplitPane.VERTICAL_SPLIT);private JLabel jLabel_IL6;void create()JPanel p=(JPanel)f.getContentPane();p.setLayout(new FlowLayout();/p.add(scrollpane);p.add(splitpane);JPanel p1=new JPanel();p1.add(b1
35、);b1.setFont(new java.awt.Font(华文彩云,0,14);p1.add(b2);b2.setFont(new java.awt.Font(华文彩云,0,14);p1.add(b3);b3.setFont(new java.awt.Font(华文彩云,0,14);p1.add(b4);b4.setFont(new java.awt.Font(华文彩云,0,14);p1.add(b5);b6.setFont(new java.awt.Font(华文彩云,0,14);p1.add(b6);b5.setFont(new java.awt.Font(华文彩云,0,14);JPa
36、nel p2=new JPanel();p2.setBackground(new java.awt.Color(132, 112, 255);/p2.setBackground(Color.red);p2.add(scrollpane);scrollpane.setPreferredSize(new java.awt.Dimension(580, 424);JPanel p3=new JPanel();p.setLayout(new FlowLayout();p.add(new JLabel();jLabel_IL1 = new JLabel(车辆名称);p.add(jLabel_IL1);j
37、Label_IL1.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf1);jLabel_IL2 = new JLabel(车辆类型);p.add(jLabel_IL2);jLabel_IL2.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf2);jLabel_IL3 = new JLabel(购买时间);p.add(jLabel_IL3);jLabel_IL3.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf3);jLabel_IL4 = new JLabel(车辆状况
38、);p.add(jLabel_IL4);jLabel_IL4.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf4);jLabel_IL5 = new JLabel(租金标准);p.add(jLabel_IL5);jLabel_IL5.setFont(new java.awt.Font(华文彩云,0,14);p.add(tf5);jLabel_IL6 = new JLabel( 在此输入车辆名称点击查询删除);p.add(jLabel_IL6);jLabel_IL6.setFont(new java.awt.Font(华文彩云,0,14);p.add(t
39、f6);splitpane.add(p1,splitpane.TOP);splitpane.add(p2,splitpane.BOTTOM);p2.setPreferredSize(new java.awt.Dimension(611, 408);splitpane.setDividerLocation(50);/p.setBackground(Color.CYAN);p.setBackground(new java.awt.Color(173, 216, 250);b1.addActionListener(this);b2.addActionListener(this);b3.addActi
40、onListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);Toolkit toolkit=Toolkit.getDefaultToolkit();Dimension d=toolkit.getScreenSize();f.setBounds(d.width/2-325, d.height/2-285, 650, 570);f.setResizable(true);/调整截面大小f.setVisible(true);public void actionPerformed(ActionEvent e)if(b1.equals(e.getSource()/ 添加Connection con;Statement sql;ResultSet rs;tryClass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);c