Java学习笔记之搭建自己的答答租车系统

刚刚看了慕课网的Java入门第二季,写了一个简单Java的租车系统 。

车辆基本数据如下:

1.建立三种不同车型的抽象类

car.class

public abstract class car {
    public abstract String carName();
    public abstract int money();
    public abstract int people();
}

trunk.class

public abstract class trunk {
    public abstract String trunkName();
    public abstract int money();
    public abstract int content();
}

pika.class

public abstract class pika {
    public abstract String pikaName();
    public abstract int money();
    public abstract int people();
    public abstract int content();
}

2.重写不同品牌车型的类

public class audi extends car {
    @Override
    public String carName() {
        return "奥迪A4";
    }


    @Override
    public int money() {
        return 500;
    }


    @Override
    public int people() {
        return 4;
    }
}

 3.自定义异常代码MyException.class

public class MyException extends Exception{
    public  MyException(){


    }
    public MyException(String message){
        super(message);
    }
}

4.主函数user.class

package WinterVacation.day3;
import Exception.MyException;
import WinterVacation.day3.MyCar.*;
import WinterVacation.day3.type.car;
import WinterVacation.day3.type.pika;
import WinterVacation.day3.type.trunk;

import java.util.Scanner;
public class user {
    public static void main(String[] args){
        System.out.printf("欢迎使用答答租车系统\n您是否要租车?1是 2否\n");//用户进入界面
        Scanner kb = new Scanner(System.in);//输入流
         /*     欢迎使用答答租车系统
                您是否要租车?1是 2否
                1

          */
        int beginNum = kb.nextInt();
        if (beginNum == 1) {
            car ad = new audi();//导入奥迪A4
            car mzd = new mazida();//马自达
            car jl = new jinlong();//金龙
            pika pkx = new pikaxue();//皮卡雪
            trunk shj = new songhuajiang();//松花江
            trunk ywk = new yiweike();//依维柯

            System.out.println("您可租车的类型及其价目表:");
            System.out.println("序号 汽车名称 租金       容量");//价目表头
            System.out.println("1.   " + ad.carName() + "   " + ad.money() + "元/天   " + ad.people() + "人");
            //1.   奥迪A4  500元/天   4人
            System.out.println("2.   " + mzd.carName() + "  " + mzd.money() + "元/天   " + mzd.people() + "人");
            System.out.println("3.   " + jl.carName() + "     " + jl.money() + "元/天   " + jl.people() + "人");
            System.out.println("4.   " + pkx.pikaName() + "  " + pkx.money() + "元/天   " + pkx.people() + "人"+" "+pkx.content()+"吨");
            System.out.println("5.   " + shj.trunkName() + "   " + shj.money() + "元/天   " + shj.content() + "吨");
            System.out.println("6.   " + ywk.trunkName() + "   " + ywk.money() + "元/天  " + ywk.content() + "吨");


            //输入租车天数
            System.out.println("请输入您要租车的天数");
            int Day=kb.nextInt();

            //统计每种车的输入次数
            int[] k=new int[7];
            for(int i=0;i<=6;i++)
                k[i]=0;

            //输入您想租赁的汽车数量
            System.out.println("请输入您想租赁的汽车数量。");
            int n=kb.nextInt();//n为汽车数量
            int moneyCount=0;//存储金额
            int peopleCount=0;//总载客人数
            int contentCount=0;//总载货量

            for(int i=0;i<n;i++){
                System.out.printf("请输入您选择的第%d辆车的序号,以回车键结束。\n",i+1);
                int temp=kb.nextInt();
                if(temp==1){
                    moneyCount+=ad.money()*Day;
                    peopleCount+=ad.people();
                    k[1]++;
                }
                else if(temp==2){
                    moneyCount+=mzd.money()*Day;
                    peopleCount+=mzd.people();
                    k[2]++;
                }
                else if(temp==3){
                    moneyCount+=jl.money()*Day;
                    peopleCount+=jl.people();
                    k[3]++;
                }
                else if(temp==4){
                    moneyCount+=pkx.money()*Day;
                    peopleCount+=pkx.people();
                    contentCount+=pkx.content();
                    k[4]++;
                }
                else if(temp==5){
                    moneyCount+=shj.money()*Day;
                    contentCount+=shj.content();
                    k[5]++;
                }
                else if(temp==6){
                    moneyCount+=ywk.money()*Day;
                    contentCount+=ywk.content();
                    k[6]++;
                }
                else{
                    //System.out.println("您的输入有误,请重新输入!");
                    i--;
                    try {
                        throw new MyException("您的输入有误,请重新输入!");
                    }catch (MyException e){
                        System.out.println(e.getMessage());
                    }
                }

            }


            System.out.println("**************您的账单如下:**************");
            System.out.println();
            System.out.println("可以载人的车:");
            for(int i=1;i<=4;i++){
                if(k[i]!=0){
                    if(i==1)
                        System.out.print(ad.carName()+" ");
                    if(i==2)
                        System.out.print(mzd.carName()+" ");
                    if(i==3)
                        System.out.print(jl.carName()+" ");
                    if(i==4)
                        System.out.print(pkx.pikaName()+" ");
                }
            }
            System.out.println("总计可载"+peopleCount+"人");


            System.out.println("可以载货的车:");
            for(int i=4;i<=6;i++) {
                if (k[i] != 0) {
                    if (i == 4)
                        System.out.print(pkx.pikaName() + " ");
                    if (i == 5)
                        System.out.print(shj.trunkName() + " ");
                    if (i == 6)
                        System.out.print(ywk.trunkName() + " ");
                }
            }
            System.out.println("总计可载货"+contentCount+"吨");
            System.out.println("****总计费用为"+moneyCount+"元****");

        }
        else
            System.out.println("欢迎您的下次使用,谢谢!");
    }
}

 觉得不错,可以访问我的小站CodingLink's Blog - 林克的编程小记

完整版本: Java入门笔记之搭建答答租车系统 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yrian.c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值