您好,欢迎访问欧亿体育!

020-88886892

全国咨询热线

您现在所在位置: 主页 > 通知资讯

Java课程设计/大作业合集

更新时间:2024-01-10

目录

前言

一、需求描述

二、功能介绍

三、具体实现

四、测试运行

写在最后:


前言

最近很多小伙伴私聊博主问有没有小系统之类的Java课程设计,为响应广大同学的需求,今天给大家分享几个博主初学时写的小demo,并以汽车租赁系统为例详细列出(其他项目或者定制可以私信我,没有全栈博主解决不了的),希望能够帮到大家。

一、需求描述

根据以上要求,用Java编程实现一个汽车租赁管理系统。

二、功能介绍

结合需求描述并适当拓展,主要实现以下功能:

1.普通用户能够通过系统租赁、查询车辆,并能够查看自己的租赁订单。

2.管理员登录后可以查看当前系统的所有车辆和用户租赁订单,可以增加、删除、修改系统中的车辆。

三、具体实现

1.抽象父类Company

public abstract class  Company{//抽象父类
    private String brand;//品牌
    private int id;//车辆编号
    private float price;//租赁价格
    private String license;//车牌号
    private int days;//租赁天数
    private double payMoney;//应付租金金额

    public Company(){
    }//空构造
    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }

    public double getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(double payMoney) {
        this.payMoney = payMoney;
    }


    public String getLicense() {
        return license;
    }

    public void setLicense(String license) {
        this.license = license;
    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }


    public abstract float RecentFee(int days);//抽象支付计算方法

}

2.货车类GoodsVehicle

public class GoodsVehicle extends Company{
    private String tonnage;

    public String getTonnage() {
        return tonnage;
    }

    public void setTonnage(String tonnage) {
        this.tonnage = tonnage;
    }

    public GoodsVehicle(String brand, String tonnage, float price, int id, String license){//有参构造
        setBrand(brand);
        setTonnage(tonnage);
        setPrice(price);
        setId(id);
        setLicense(license);
    }


    @Override
    public float RecentFee(int days) {//重写支付计算方法
        // TODO Auto-generated method stub
        float money = this.getPrice()*days;//得到折扣前应付租金
        if(days > 3 && days <=7) {
            money *= 0.8f;
        }else if(days > 7 && days <= 15) {
            money *=0.7f;
        }else if(days > 15 && days <= 30) {
            money *= 0.6f;
        }else if(days > 30 && days <= 150) {
            money *= 0.5f;
        }else if(days > 150) {
            money *= 0.4f;
        }
        return money;//返回打折后应付金额
    }
}

3.客车类Sedan

public class Sedan extends Company{
    private String seat;//子类独有属性:车辆座位
    public String getSeat() {
        return seat;
    }

    public void setSeat(String seat) {
        this.seat = seat;
    }
    public Sedan(String brand, String seat, float price, int id,String license){//有参构造
        setBrand(brand);
        setSeat(seat);
        setPrice(price);
        setId(id);
        setLicense(license);
    }


    @Override
    public float RecentFee(int days) {//重写支付计算方法
        float money = this.getPrice()*days;//得到折扣前应付金额
        if(days >= 3 && days <7) {
            money *= 0.9f;
        }else if(days >= 7 && days < 30) {
            money *=0.8f;
        }else if(days >= 30 && days < 150) {
            money *= 0.7f;
        }else if(days >= 150) {
            money *=0.6f;
        }
        return money;//返回折扣后应付金额
    }
}

4.轿车类Truck

public class Truck extends Company {
    private String model;//子类独有属性:车辆型号
    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
    public Truck(String brand, String model, float price, int id, String license){//有参构造
        setBrand(brand);
        setModel(model);
        setPrice(price);
        setId(id);
        setLicense(license);
    }


    @Override
    public float RecentFee(int days) {//重写支付计算方法
        // TODO Auto-generated method stub
        float money = this.getPrice()*days;//得到折扣前应付租金
        if(days > 7 && days <=30) {
            money *= 0.9f;
        }else if(days > 30 && days <= 150) {
            money *=0.8f;
        }else if(days > 150) {
            money *= 0.7f;
        }
        return money;//返回打折后应付金额
    }
}

5.管理系统主类ManagerSys

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ManagerSys {//管理系统类
    private static List listCar=new ArrayList<>();//管理系统轿车集合
    private static List bus=new ArrayList<>();//管理系统客车集合
    private static List GoodsCar=new ArrayList<>();//管理系统客车集合
    public static void main(String []args){
        //默认添加管理系统4种轿车
        listCar.add(new Truck("宝马","X5",800,1001,"湘FQ9456"));
        listCar.add(new Truck("奥迪","A6",600,1002,"湘FQ8888"));
        listCar.add(new Truck("大众","CC",300,1003,"湘FQ6666"));
        listCar.add(new Truck("别克","GL8",600,1004,"湘FQ6688"));
        //默认添加管理系统4种客车
        bus.add(new Sedan("金杯","16",800,1001,"湘FQ12345"));
        bus.add(new Sedan("金杯","16",800,1002,"湘FQ23456"));
        bus.add(new Sedan("亚星","32",1500,1003,"湘FQ34567"));
        bus.add(new Sedan("亚星","32",1500,1004,"湘FQ45678"));
        //默认添加管理系统2种货车
        GoodsCar.add(new GoodsVehicle("福田","10",500,2001,"湘AQ20211"));
        GoodsCar.add(new GoodsVehicle("东风","24",1000,2002,"湘AQ20212"));
        show();//系统选择交互界面
    }
    public static void show() {//系统选择交互界面方法
        while (true) {
            System.out.println("--------欢迎进入汽车之家--------");
            System.out.println("1-进入管理员系统");
            System.out.println("2-进入普通租赁用户系统");
            System.out.println("3-退出");
            System.out.println("请输入您想要进行的操作:");
            Scanner user = new Scanner(System.in);
            int temp = user.nextInt();
            //输入命令判断
            switch (temp) {
                case 1:
                    CheckPwd(user);//管理员登录验证
                    break;
                case 2:
                    UserSys.User(listCar,bus,GoodsCar, user);//用户系统
                    break;
                case 3:
                    System.out.println("感谢您的信任与支持,再见!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("请做个遵守规则的用户哦\n");
            }
        }
    }

    private static void CheckPwd( Scanner user) {//登录验证方法
        while (true) {
            System.out.println("请输入管理员账号:");
            int id = user.nextInt();
            System.out.println("请输入管理员密码:");
            String pwd = user.next();
            if ((pwd.equalsIgnoreCase("abc123")) && (id == 1024)) {
                Manager(user);//管理员交互界面
                break;
            } else {
                System.out.println("账号或密码错误,请重新输入!");
            }
        }
    }

    private static void Manager( Scanner user) {//管理员交互界面方法
        while (true) {
            System.out.println("*****欢迎进入汽车管理系统*****");
            System.out.println("1-查询当前系统车辆");
            System.out.println("2-查询用户租赁订单");
            System.out.println("3-增加车辆");
            System.out.println("4-删除车辆");
            System.out.println("5-修改车辆租金");
            System.out.println("6-返回主页面");
            System.out.println("请输入您想要进行的操作:");
            int manage = user.nextInt();
            //输入命令判断
            switch (manage) {
                case 1:
                    queryCar();//查询当前系统车辆
                    break;
                case 2:
                    queryOrder(UserSys.customerCar, UserSys.customerBus,UserSys.customerGoods);//查询用户租赁订单
                    break;
                case 3:
                    addCar( user);//增加车辆
                    break;
                case 4:
                    deleteCar(user);//删除车辆
                    break;
                case 5:
                    updatePrice(user);//修改车辆租金
                    break;
                case 6:
                    show();//主页面
                    break;
                default:
                    System.out.println("请做个遵守规则的用户哦\n");
            }
        }
    }

    private static void updatePrice( Scanner user) {//修改车辆租金
        int userIn=checkCar(user);//提示用户输入租赁车辆类型并检测合法性
        System.out.println("请输入您需要修改租金车辆的编号");
        int userId=user.nextInt();
        System.out.println("请输入您需要修改的租金金额:");
        float carPrice=user.nextFloat();
        if (userIn==1){//修改轿车租金
            for (int i=0;icustomerCar,ListcustomerBus,
                                  ListcustomerGoods) {//查询当前用户订单
        System.out.println("*******订单信息*******");
        System.out.println("车辆品牌\t\t"+"车辆型号/座位/吨位\t\t"+"租赁天数\t\t"+"租赁金额\t\t"+"车牌号码");
            for (Company com : customerCar) {//遍历输出轿车
                Truck com1 = (Truck) com;
                System.out.println(com.getBrand() + "\t\t\t" + com1.getModel() + "型\t\t\t\t\t"
                        + com.getDays() + "\t\t" + com.getPayMoney() + "\t\t" + com.getLicense());
            }
            for (Company com : customerBus) {//遍历输出客车
                Sedan com1 = (Sedan) com;
                System.out.println(com.getBrand() + "\t\t\t" + com1.getSeat() + "座\t\t\t\t\t"
                        + com.getDays() + "\t\t" + com.getPayMoney() + "\t\t" + com.getLicense());
            }
            for (Company com : customerGoods) {//遍历输出货车
                GoodsVehicle com1 = (GoodsVehicle) com;
                System.out.println(com.getBrand() + "\t\t\t" + com1.getTonnage() + "吨\t\t\t\t\t"
                        + com.getDays() + "\t\t" + com.getPayMoney() + "\t\t" + com.getLicense());
            }
    }

    public static void removeCar(Company trunk) {//在管理系统中移除用户创建的轿车对象,代表车已经租出
        for (int i=0;i

6.普通用户系统类UserSys

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class UserSys {//用户系统类
    public static List customerCar=new ArrayList<>();//全局集合,存放轿车
    public static List customerBus=new ArrayList<>();//全局集合,存放客车
    public static List customerGoods=new ArrayList<>();//全局集合,存放货车
    public static void User(List listCar, List bus,
                            ListGoodsCar ,Scanner user) {//用户交互方法
        while (true) {
            //打印
            System.out.println("*****欢迎光临汽车租赁公司*****");
            System.out.println("1-租赁车辆");
            System.out.println("2-查询当前系统车辆");
            System.out.println("3-查看我的租赁订单");
            System.out.println("4-返回主页面");
            System.out.println("请输入您想要进行的操作:");
            int using = user.nextInt();
            //判断用户输入命令
            switch (using) {
                case 1:
                    recentCar(listCar, bus,GoodsCar, user);
                    break;
                case 2:
                    ManagerSys.queryCar();//管理系统所有现存车辆
                    break;
                case 3:
                    ManagerSys.queryOrder(customerCar,customerBus,customerGoods);//用户租赁订单
                    break;
                case 4:
                    ManagerSys.show();//主界面
                    break;
                default:
                    System.out.println("请做个遵守规则的用户哦\n");
            }
        }
    }



    private static void recentCar(List listCar, List bus,
                                  List GoodsCar,Scanner user) {//租赁车辆方法
        ManagerSys.queryCar();//打印管理系统所有现存车辆
        int userIn= ManagerSys.checkCar(user);//提示用户输入租赁车辆类型并检测合法性
        String userModel="";//车辆型号初始化
        String userSeat="";//车辆座位初始化
        String userTonnage="";//车辆吨位初始化
        System.out.println("车辆的品牌/型号如下:");
        if (userIn==1){
            for (Company com:listCar) {//遍历打印所有轿车品牌供用户选择
                Truck com1=(Truck)com;
                System.out.println(com.getBrand()+":"+com1.getModel()+" ");
            }
            System.out.println("请输入您想要租赁的车辆品牌名称:");
            String userBrand=user.next();
            System.out.println("请输入您想要租赁的车辆型号:");
            userModel=user.next();
            Company truck=CarFactory(userBrand,userModel,userSeat,
                    userTonnage,listCar,bus,GoodsCar,userIn);//工厂创建一个新的轿车对象
            if (truck.getId()==0){//管理系统中找不到用户输入的轿车
                System.out.println("您输入的车辆品牌或型号有误!");
            }else {//管理系统中找到了用户输入的轿车
                System.out.println("请输入您想要租的天数:");
                truck.setDays(user.nextInt());//租车天数存入轿车对象
                truck.setPayMoney(truck.RecentFee(truck.getDays()));//计算租车费用并存入轿车对象
                customerCar.add(truck);//在全局轿车集合中添加创建的轿车对象
                ManagerSys.removeCar(truck);//在管理系统中移除创建的轿车对象,代表车已经租出
                System.out.println("租赁成功!您租赁的是:" + truck.getBrand()
                        + userModel + ",车牌号为:" + truck.getLicense());
                System.out.println("共租赁"+truck.getDays()+"天,需要支付的租金为:¥"+truck.getPayMoney());
            }
        }if (userIn==2){
            for (Company com:bus) {//遍历打印所有客车品牌供用户选择
                Sedan com1=(Sedan) com;
                System.out.println(com.getBrand()+":"+com1.getSeat()+"座");
            }
            System.out.println("请输入您想要租赁的车辆品牌名称:");
            String userBrand=user.next();
            System.out.println("请输入您想要租赁的车辆座位数量:");
            userSeat=user.next();
            Company sedan=CarFactory(userBrand,userModel,userSeat,
                    userTonnage,listCar,bus,GoodsCar,userIn);//工厂创建一个新的客车对象
            if (sedan.getId()==0){//管理系统中找不到用户输入的客车
                System.out.println("您输入的车辆品牌或型号有误!");
            }
            else {//管理系统中找到了用户输入的客车
                System.out.println("请输入您想要租的天数:");
                sedan.setDays(user.nextInt());//租车天数存入客车对象
                sedan.setPayMoney(sedan.RecentFee(sedan.getDays()));//计算租车费用并存入客车对象
                customerBus.add(sedan);//在全局客车集合中添加创建的客车对象
                ManagerSys.removeBus(sedan);//在管理系统中移除创建的客车对象,代表车已经租出
                System.out.println("租赁成功!您租赁的是:" + sedan.getBrand()
                        + userSeat + "座,车牌号为:" + sedan.getLicense());
                System.out.println("共租赁"+sedan.getDays()+"天,需要支付的租金为:¥"+sedan.getPayMoney());
            }
        }if (userIn==3){
            for (Company com:GoodsCar) {//遍历打印所有客车品牌供用户选择
                GoodsVehicle com1=(GoodsVehicle) com;
                System.out.println(com.getBrand()+":"+com1.getTonnage()+"吨");
            }
            System.out.println("请输入您想要租赁的车辆品牌名称:");
            String userBrand=user.next();
            System.out.println("请输入您想要租赁的车辆吨位数量:");
            userTonnage=user.next();
            Company goodsvegicle=CarFactory(userBrand,userModel,userSeat,
                    userTonnage,listCar,bus,GoodsCar,userIn);//工厂创建一个新的客车对象
            if (goodsvegicle.getId()==0){//管理系统中找不到用户输入的客车
                System.out.println("您输入的车辆品牌/型号/吨位有误!");
            }
            else {//管理系统中找到了用户输入的客车
                System.out.println("请输入您想要租的天数:");
                goodsvegicle.setDays(user.nextInt());//租车天数存入客车对象
                goodsvegicle.setPayMoney(goodsvegicle.RecentFee(goodsvegicle.getDays()));//计算租车费用并存入客车对象
                customerGoods.add(goodsvegicle);//在全局客车集合中添加创建的客车对象
                ManagerSys.removeGoodsCar(goodsvegicle);//在管理系统中移除创建的客车对象,代表车已经租出
                System.out.println("租赁成功!您租赁的是:" + goodsvegicle.getBrand()
                        + userSeat + "吨,车牌号为:" + goodsvegicle.getLicense());
                System.out.println("共租赁"+goodsvegicle.getDays()+"天,需要支付的租金为"
                        + ":¥"+goodsvegicle.getPayMoney());
            }
        }


    }

    public static Company CarFactory(String userBrand,String userModel,String userSeat,String userTonnage,
                                     List listCar, List bus,List GoodsCar,int useIn) {//车辆工厂按需求造车
        String brand = "";//初始化
        String seat = "";
        String model = "";
        String tonnage = "";
        float price = 0;
        int id = 0;
        String license = "";
        if (useIn == 1) {//创造轿车
            for (Company com : listCar) {
                Truck com1 = (Truck) com;
                if (userBrand.equalsIgnoreCase(com.getBrand())//寻找系统是否存在该轿车
                        && userModel.equalsIgnoreCase(com1.getModel())) {
                    brand = com.getBrand();
                    model = com1.getModel();
                    price = com.getPrice();
                    id = com.getId();
                    license = com.getLicense();
                    break;
                }
            }return new Truck(brand, model, price, id, license);//返回一个新的轿车对象
        } else if (useIn == 2) {
            for (Company com : bus) {
                Sedan com1 = (Sedan) com;
                if (userBrand.equalsIgnoreCase(com.getBrand()) //寻找系统是否存在该客车
                        && userSeat.equalsIgnoreCase(com1.getSeat())) {
                    brand = com.getBrand();
                    seat = com1.getSeat();
                    price = com.getPrice();
                    id = com.getId();
                    license = com.getLicense();
                    break;
                }
            }return new Sedan(brand, seat, price, id, license);//返回一个新的客车对象
        }else if (useIn == 3) {
            for (Company com : GoodsCar) {
                GoodsVehicle com1 = (GoodsVehicle) com;
                if (userBrand.equalsIgnoreCase(com.getBrand()) //寻找系统是否存在该货车
                        && userTonnage.equalsIgnoreCase(com1.getTonnage())) {
                    brand = com.getBrand();
                    tonnage = com1.getTonnage();
                    price = com.getPrice();
                    id = com.getId();
                    license = com.getLicense();
                    break;
                }
            }return new GoodsVehicle(brand, tonnage, price, id, license);//返回一个新的货车对象
        }else {
            return null;
        }
    }
}

四、测试运行

(1)初始状态

(2)初始车辆情况

(3)用户租赁业务-轿车

(4)用户租赁业务-客车


(5)用户租赁业务-货车

(6)用户租赁业务完成后车辆查询

(7)用户租赁订单查询

(8)返回主页面

增加业务部分展示(管理员系统增删改查):

(1)登录验证及主界面

(2)查询当前系统现存车辆

(3)查询用户租赁订单

(4)增加车辆

(5)删除车辆

正在上传…重新上传取消

(6)修改车辆租金

(7)操作后的系统车辆状态

五、其他小demo

由于篇幅有限,还有很多类似的小demo就不一一贴出来了,大家浅看一下:

1.超市管理系统

2.个账务系统

3.员工管理系统

 4.薪酬管理系统

写在最后:

另外如果是JavaWeb或者是要求整合Spring全家桶或者Redis、Dubbo微服务等任何中间件的项目可以移步博主的其他博客,需要定制化功能需求的小伙伴可以私信我,没有全栈博主解决不了的,有任何问题可以在评论区提,我会一一回复。如果大家觉得有用,就点赞、收藏、转发吧,创作不易,点赞是最好的鼓励。

 

联系电话

020-88886892

返回顶部