目录
1.需求分析
1.1管理员需求
管理员这边要能增删改查车辆信息,可以显示可租用的车辆和所有车辆信息,并且可以按照租金进行升序或者降序排列,对车型可以进行查询;车不够了还要及时向供应商进货,这里就涉及到供应商信息,管理员要能对供应商信息进行增删改查,也要能查看,修改,删除用户信息,要添加用户信息的话只能由用户通过注册来添加,还能通过用户姓名查询用户信息。管理员还能查看所有购买车辆的信息;查看所有用户租用车辆的信息;按照车型分类对租用次数进行统计。
1.2用户需求
用户首先得注册;其次会想到租赁,用户租车,需要看到有哪些车,再租车,租车会显示租车时间,要租的车,交的押金,租了后还要归还,还要能查看自己的订单。
2.概要设计
2.1框架图
图2.1.1 框架图
图2.1.2 关系图
所用模块:
1)注册模块:调用register.java的register方法里面又调用了Find.java的FindUserByName方法
2)登陆模块:分为管理员登陆和用户登陆,管理员登陆是确定的账号和密码,账号:root,密码:leilei.用户登陆调用了check方法,check方法里再调用Find.java的FindUserById方法
3)添加模块:(车辆,供应商)调用Find.java里的方法,分别为:Find.FindCarById(),FindSupplier()
4)删除模块:(用户,车辆,供应商)调用Delete.java里的方法,分别为:1.DeleteUser();2.DeleteCar();3.DeleteSupplier()
5)查询模块:(用户,车辆,供应商)调用Find.java里的方法,分别为:1.FindUserById();2.FindCarById();3.FindSupplier()
6)修改模块:(用户,车辆,供应商)调用Update.java里的方法,分别为:1.UpdateUser();2.UpdateCar();3.UpdateSupplier()
7)租车模块:调用Add.java的AddRent()
8)还车模块:调用Update.java的UpdateRent()方法
9)管理员操作:
1):按租金升降序显示可租用车辆:调用Show.java的showAdmin_car_can方法
2):按租金升降序显示所有车辆:调用Show.java的showAdmin_car方法
3):查看用户资料:调用Show.java的ShowUser()方法
4):查看供应商信息:调用Show.java的Showsupplier()方法
5):查看购车信息:调用Show.java的Showbuy()方法
6):查看租车信息:调用Show.java的Showrent()方法
7):通过车型查询车辆信息在首页:调用Find.java的FindCarByModel()方法
8):通过用户姓名查询用户信息:调用Find.java的FindUserByName()方法
10)用户操作:
1)按租金升降序显示所有车辆:调用Show.java的showUser_car()方法
2)按租金升降序显示可租用车辆:调用Show.java的showUser_car_can()方法。
3)查看订单:调用Show.java的showrent()方法。
4)通过车型查询车辆信息:调用Find.java的FindCarByModel()方法。
2.2 数据库设计
2.2.1 供应商
2.2.2 用户
2.2.3 车辆
2.2.4 租用
3.运行环境
软件环境: Windows10家庭中文版
硬件环境: Intel®Core™i5-8250U+8G内存+256G固态+WiFi
4.开发工具和编程语言
开发工具:Eclipse(4.3版)、MySQL(5.7版)、Navicat for MySQL(9)
5.详细设计
5.1 用户注册
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String S1 = textField.getText();
String sex = comboBox.getSelectedItem().toString();
String S2 = textField_2.getText();
String S3 = textField_3.getText();
String S4 = new String(textField_4.getPassword());
String S5 = new String(textField_5.getPassword());
if (S1.equals("") && S2.equals("") && S3.equals("") && S4.equals("") && S5.equals("")) {
JOptionPane.showMessageDialog(null, "信息不能为空!");
} else {
if (S4.equals(S5)) {
int ID=-1;
Add.AddUser( S1, sex, S2, S3, S4);
try {
rs=Find.FindUserByName(S1);
while(rs.next()) {
ID=rs.getInt("用户编号");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
JOptionPane..showMessageDialog(null, "注册成功:\n您的账号为 "+ID+" 请记住您的账号");
//register.setVisible(false);
register.dispose();
new login();
} else {
JOptionPane..showMessageDialog(null, "确认密码不对,请重新输入!");
}
}
}
});
5.2 用户登录
public class LoginListener implements ActionListener {//登陆按钮触发,打开登录界面
public void actionPerformed(ActionEvent e) {
if (!isValidCodeRight()) {
JOptionPane.showMessageDialog(null, "验证码错误!");
} else {
String ac = accountText.getText();
String password = new String(passwordField.getPassword());
if (password.equals("") || ac.equals("")) {
JOptionPane.showMessageDialog(null, "用户名或密码不能为 空!");
} else {
if (type == "admin") {
if ("root".equals(accountText.getText()) && "leilei".equals(password)) {
//JF.setVisible(false);
JF.dispose();
new 管理员();
System.out.print("管理员登陆成功");
} else {
JOptionPane.showMessageDialog(null, "登录失败,用户名或密码错误!");
}
} else {
int id = Integer.parseInt(ac);
String pass = Check(id);
if (password.equals(pass)) {
// 登陆成功
new 用户(id);
JF.dispose();
//JF.setVisible(false);
System.out.print("用户登陆成功");
} else {
JOptionPane.showMessageDialog(null, "登录失败,用户名或密码错误!");
}
}
}
}
}// actionPerformed
}
6.测试结果
6.1登录界面
6.2用户注册
6.3 用户进入系统页面
6.4 按租金升序显示所有车辆信息
6.5 按租金降序显示所有车辆信息
6.6 用户租用库存量为1的车辆
6.7 用户查看自己的订单
6.8按租金升/降序显示可租用车辆
6.9用户归还车辆
6.10 输入车辆车型查询
6.11 进入管理员页面
7 项目总结
通过本次的Java课程设计,我基本掌握了MySQL数据库的用法和如何通过Java代码来调用数据库,从最开始就遇到了很多问题,比如MySQL一直初始化不了,根据书上的步骤也不行,然后不停试错,百度,问同学,才知道应该是以管理员身份运行命令提示符,到后来的连接不上数据库,连接好了又不停报错不断修改反反复复。这个系统确实很难也没有要求,需要自己想需求,想扩展功能,其实很多功能都不太知道该怎么实现,所以就一个功能一个功能的查询资料再修改,最后还学会了联表查询。本次实验的最大收获就是真正写了个关于数据库的软件,数据库无论在现在各类软件中都有涉及,所以数据库对于计算机从业者来说是必须要掌握的。本次试验虽然说只是初步了解了数据库编程的-些知识,但还是学到了很多。最后,本次试验成果可以说是一个软件(质量暂且不论),软件的完成需要固定的几个步骤:需求分析,概念设计,编码,调试等等,经过本次尝试,终于知道了需求分析的重要性,它是整个软件的基础,影响到软件的功能是否完善等等,所以需求分析一定要到位。
总的来说,这次课设,使我受益匪浅。