Java小项目---租车管理系统

这几天刚刚开始学Java,应该学了有接近3天了。刚好发现一个100行左右的小项目来锻炼一下自己。

题目:

小明的公司有一个滴滴公司,专门做租车生意。他有3种车型:
1:只能载人
2:只能载物
3:能载人能载物
小明有点懒,所以委托你 做一个软件去帮助小明管理这个公司 。
ps: 题目是自己编的(逃

一.项目要求:

!!!根据所学内容来完成以下项目
1.展示所有可租车辆
2.选择车型和租车辆
3.展示租车清单。

包括:
1:车型
2:总载货数,总载客数
3:金额

二.项目分析:

1.数据模型分析

分析模型主要功能,建立的属性和方法
1.三种车型 只能载人的Buscar类型 只能载货trunk类型 两种都能的Pickup类型
所以 我们可以建立一个 Car类型表示作为他们父类 去公用方法和属性。

2.业务模型分析

分析用户需求:1用户是否租车。2用户租车类型及数量。3提示用户需付金额

三.实现部分:

1. 创建一个父类Car

有4个属性 2个共有的name和rent 是可被继承的 剩下两个是私有的不可被继承 但可以通过函数去获取

package www.contentcl.cn;

public class Car {
    public String name;   //车名
    public double rent;   //租金
    private double memp;  //载人数
    private double mems;  //载货数
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getRent() {
        return rent;
    }
    public void setRent(double rent) {
        this.rent = rent;
    }
    public double getMemp() {
        return memp;
    }
    public void setMemp(double memp) {
        this.memp = memp;
    }
    public double getMems() {
        return mems;
    }
    public void setMems(double mems) {
        this.mems = mems;
    }


}

2.在创建一个只能载人的子类Buscar

Buscar 只能载人,所以继承了父类的rent和name 并且拥有自己的属性
memp

package www.contentcl.cn;

public class Buscar extends Car {
    private double memp; //载人数
    public Buscar(String name, double rent, double memp){
        this.name = name;
        this.rent = rent;
        this.memp = memp;
    }
    public double getMemp() {
        return memp;
    }
    public void setMemp(double memp) {
        this.memp = memp;
    }

}
3.在创建一个只能载人的子类trunk

trunk 只能载人,所以继承了父类的rent和name 并且拥有自己的属性
mems

package www.contentcl.cn;

public class trunk extends Car {
    private double mems; //载货数
    public trunk(String name, double rent, double mems){
        this.name = name;
        this.rent = rent;
        this.mems = mems;
    }
    public double getMems() {
        return mems;
    }
    public void setMems(double mems) {
        this.mems = mems;
    }

}
4。在创建一个两种都能的子类Pickup

Pickup 继承了父类的rent和name 并且拥有自己的属性
mems和memp

package www.contentcl.cn;

public class Pickup extends Car {
    private double memp;  //载人数
    private double mems;  //载货数
    public Pickup(String name, double rent, double memp,double mems){
        this.name = name;
        this.rent = rent;
        this.memp = memp;
        this.mems = mems;
    }
    public double getMems() {
        return mems;
    }
    public void setMems(double mems) {
        this.mems = mems;
    }
    public double getMemp() {
        return memp;
    }
    public void setMemp(double memp) {
        this.memp = memp;
    }


}
5 最后我们来写总有主函数的主类

因为有提示语句所以就 不谢注释了
先用一个 Car 类型的数组 用多态的方式去创建对象
然后进行操作】

package www.contentcl.cn;
import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Car car[] ={new Buscar("奔驰",500,5), new Buscar("宇通",1000,30),       
                    new trunk("依维柯",1000,40), new trunk("松花江",300,4),
                    new Pickup("皮卡雪",700,4,2),new Pickup("大皮卡",1500,6,13)};

    Scanner input = new Scanner(System.in);
    System.out.println("\t欢迎您进入万达租车系统!!!");
    System.out.println("\t租车请按1   其他请按2");

    int sign = input.nextInt();
    if (sign == 1){
        int count=0;

        System.out.println("车辆管理目录:");
        for (Car ecar:car){
            count++;
            System.out.print("序号:"+count+"    车型: "+ecar.name+"\t租金:"+ecar.rent+"/天");
            if (ecar.getMemp()!=0&&ecar.getMems()==0)
                System.out.println("\t客载:"+ecar.getMemp()+'人');
            else if (ecar.getMems()!=0&&ecar.getMemp()==0)
                System.out.println("\t货载:"+ecar.getMems()+'吨');
            else 
                System.out.println("\t客载:"+ecar.getMemp()+"人  "+"货载:"+ecar.getMems()+'吨');
        }

        double sum=0,sump=0,sums=0;
        System.out.println("请输入你要预定个的车辆数:");
        int num = input.nextInt();
        System.out.println("请输入你要租车的编号:(用空格隔开)");
        for (int i=0; i<num; i++){
            //System.out.println("请输入你要租车的编号:");
            int num1 = input.nextInt();
            if (num1<1||num1>6){
                System.out.println("车辆不存在,请重新输入:");
                num1 = input.nextInt();
            }
            sum += car[num1-1].getRent();
            sump += car[num1-1].getMemp();
            sums += car[num1-1].getMems();
        }

        System.out.println("请输入你要租车的天数:");
        int day = input.nextInt();
        sum *= day;
        sump *= day;
        sums *= day;

        if(sump!=0&&sums==0)
            System.out.println("共载:"+sump+"人");
        else if(sump==0&&sums!=0)
            System.out.println("共载:"+sump+"货物");
        else 
            System.out.println("共载:"+sump+"人,"+sums+"货物");
        System.out.println("请支付"+sum+"元");
        System.out.println("欢迎下次光临!!!!!");
    }
    else if (sign==2){
        System.out.println("傻逼,只能租车,重新输入吧:");
        sign = input.nextInt();
    }
    else {
        System.out.println("无效命令,请重新输入:");
        sign = input.nextInt();
    }

    }
}

程序 有2大方面没有完成

1:java实现实现c的cls 类型功能 比较麻烦 所以没有实现 所以我就没有使用while(true){} 这就意味着 如果如果不是1 就会直接结束程序 所以这方面还需要改进一下
2:想法还没有去实现 过几天做好补上
想去做一个 用户输入自身的人数和货物量 然后自动生成最优解的算法 ,当然需要用到贪心算法 ,其实也很好实现。先休息下 ,过段时间再弄

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值