租车系统

1.这个练习算是学习java两周以来的一个总结,有了c++的基础学习java是轻松了不少。
2.到目前位置已经学到了接口,异常处理了,但涉及的深度还不够。
3.这个程序体现了面对对象程序设计的封装,继承,多态三大特性。
4.概述一下整个程序:
由6个类,2个接口组成。Car,Truck, Pickup三个类继承Auto类,并实现Cargo,manned两个接口。
Bus类继承Car类。RentSystem为主类。
5.渐渐的体会到了当码畜的感觉…….
实现功能如图:
这里写图片描述

package beans;

public class Auto {
private String name;
private int rental;
public Auto(String name, int rental) {
    super();
    this.name = name;
    this.rental = rental;
}
public String getName() {
    return name;
}
public int getRental() {
    return rental;
}


}
package beans;
import customInterface.*;
public class Truck extends Auto implements Cargo{
    private int cargo;

    public Truck(String name, int rental, int cargo) {
        super(name, rental);
        this.cargo = cargo;
    }

    @Override
    public int getCargo() {
        // TODO Auto-generated method stub
        return cargo;
    }

}

package beans;
import customInterface.*;
public class Car extends Auto implements Manned{
    private int MannedAmount;

    public Car(String name, int rental, int mannedAmount) {
        super(name, rental);
        MannedAmount = mannedAmount;
    }

    @Override
    public int getMannedAmount() {
        // TODO Auto-generated method stub
        return MannedAmount;
    }


}   

package beans;

import customInterface.Cargo;
import customInterface.Manned;

public class Pickup extends Auto implements Cargo,Manned{
    private int cargo;
    private int MannedAmount;
    public Pickup(String name, int rental, int cargo, int mannedAmount) {
        super(name, rental);
        this.cargo = cargo;
        MannedAmount = mannedAmount;
    }
    @Override
    public int getMannedAmount() {
        // TODO Auto-generated method stub
        return MannedAmount;
    }
    @Override
    public int getCargo() {
        // TODO Auto-generated method stub
        return cargo;
    }

}
package customInterface;

public interface Cargo {
     public int getCargo();

}

package customInterface;

public interface Manned {
    public int getMannedAmount();

}

package beans;
import customInterface.Manned;

public class Bus extends Car {

    public Bus(String name, int rental, int mannedAmount) {
        super(name, rental, mannedAmount);
        // TODO Auto-generated constructor stub
    }


}

package main;
import beans.*;
import java.util.ArrayList;
import java.util.Scanner;

public class RentSystem {
    private ArrayList<Auto> list=new ArrayList<Auto>();
    private int AmountofAuto;
    private int day;
    private  int rent=0;
    private int load=0;
    private int AmountofPeople=0;
    //getter and setter
    public ArrayList<Auto> getList(){
        return this.list;
    }

    public int getDay() {
        return day;
    }
    public void setDay(int day) {
        this.day = day;
    }
    public int getAmountofAuto() {
        return AmountofAuto;
    }   
    public void setAmountofAuto(int amountofAuto) {
        AmountofAuto = amountofAuto;
    }
    public int getRent(){
        return rent;
    }

    public int getLoad() {
        return load;
    }
    public void setLoad(int load) {
        this.load += load;
    }
    public int getAmountofPeople() {
        return AmountofPeople;
    }
    public void setAmountofPeople(int amountofPeople) {
        this.AmountofPeople += amountofPeople;
    }
    //method,提供的服务
    public void addAuto(Auto auto){
        this.list.add(auto);
    }
    public void printInfor(){
        System.out.println("您可租车的类型和其价目表:\n序号       汽车名称\t\t租金\t\t容量/载重");
        for(Auto e :list){
            if(e instanceof Car){
            int m=((Car) e).getMannedAmount();
            System.out.printf("%d.    %s\t\t%d元/天\t\t%d人\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m);
            }
            if(e instanceof Pickup){
            int m=((Pickup)e).getMannedAmount();
            int c=((Pickup)e).getCargo();
            System.out.printf("%d.    %s\t\t%d元/天\t\t%d人/%d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),m,c);
            }
            if(e instanceof Truck){
            int c=((Truck)e).getCargo();
            System.out.printf("%d.    %s\t\t%d元/天                       %d吨\n",(list.indexOf(e)+1),e.getName(),e.getRental(),c);
            }
        }
    }

    //计算金额
    public  void countRent(int days,int list_index){
            this.rent+= (list.get(list_index)).getRental()*days;        
    }
    //更新总载货量和总人数
    public void setBillInfor(ArrayList<Auto> list,int index){
        int load=0;
        int AmountofPeople=0;
        if(list.get(index) instanceof Car){
            AmountofPeople=((Car)list.get(index)).getMannedAmount();
            setAmountofPeople(AmountofPeople);
        }
        if(list.get(index) instanceof Pickup){
            AmountofPeople=((Pickup)list.get(index)).getMannedAmount();
            load=((Pickup)list.get(index)).getCargo();
            setAmountofPeople(AmountofPeople);
            setLoad(load);
        }
        if(list.get(index) instanceof Truck){
            load=((Truck)list.get(index)).getCargo();
            setLoad(load);
        }
    }

    private void printBill(ArrayList<Auto> list,RentSystem system) {
        // TODO Auto-generated method stub
        System.out.println("您的账单:");
        System.out.println("--------可载人的车有------------------------");
        for(Auto e :list){
            if(e instanceof Car||e instanceof Pickup){
                System.out.print("      "+e.getName());
            }       
        }
        System.out.println("\t共载人:"+system.getAmountofPeople()+"人");
        System.out.println("--------可载货的车有------------------------");
        for(Auto e :list){
            if(e instanceof Truck||e instanceof Pickup){
                System.out.print("     "+e.getName());
            }
        }
        System.out.println("\t共载货:"+system.getLoad()+"吨");

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        RentSystem system=new RentSystem();
        system.addAuto(new Car("奥迪A4", 500, 4));
        system.addAuto(new Car("马自达6", 400, 4));
        system.addAuto(new Pickup("皮卡雪6", 450, 2, 4));
        system.addAuto(new Bus("金龙", 800, 20));
        system.addAuto(new Truck("松花江", 400, 4));
        system.addAuto(new Truck("依维柯", 1000, 20));
        System.out.printf("欢迎使用租车系统!\n您是否要租车: 1是            0否\n");
        Scanner in=new Scanner(System.in);
        int anwser=in.nextInt();
        if(anwser==1){
            system.printInfor();
            System.out.println("请输入您租车的天数");
            system.setDay(in.nextInt());
            System.out.println("请输入您要租车的数量:");  
            system.setAmountofAuto(in.nextInt());
            int i=1;
            do
            {
                System.out.printf("输入第%d辆车的序号\n",i);
                int index=in.nextInt()-1;
                system.countRent(system.getDay(),index);
                system.setBillInfor(system.getList(),index);
                i++;
            }while(i<system.getAmountofAuto()+1);

            system.printBill(system.getList(),system);

            System.out.print("-----------------------------------------\n订单总金额:"+system.getRent()+"元");

        }
        if(anwser==0){
            System.out.println("再见!");
        }
        if(anwser!=0&&anwser!=1)
        {
            System.out.println("输入有误");
        }
    }

}

一个简单的汽车租赁管理系统C++控制台程序): 利用C++实现对汽车和客户信息的增、删、改等操作,并保存。 部分代码: // CarRent.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "CarData.h" #include "Menu.h" #include"CustomerData.h" int main() { Menu::welcome(); Menu::login(); //登录界面 char choice; int carid, customerid; //汽车编号,客户编号 CustomerData CustomerDB; //客户库 Customer *r; //客户 CarData CarDB; //汽车库 Car *b; //汽车 Menu::showMenu(); //显示菜单 cout <> choice; while (choice != '0') { switch (choice) { case '1': //输入客户编号和要出租的汽车 cout <> customerid; try { if (customerid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } cout <> carid; try { if (carid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } r = CustomerDB.search(customerid); if (NULL == r) { cout << "不存在该客户!"; cout << endl; break; } b = CarDB.search(carid); if (b == NULL) { cout << "不存在该汽车!"; cout <borrowCar() == 0) { cout << "该汽车已租出!"; cout <borrowCar(b->getNo()); cout << "你在" <getBorTime()) << "成功出租一辆" <getName() << endl << "每日租金为(不足一天按一天计算):" <getPay(); break; case '2': //归还操作 cout <> customerid; try { if (customerid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } cout <> carid; try { if (carid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } r = CustomerDB.search(customerid); //按编号查找 if (r == NULL) { cout << "不存在该客户!" << endl; break; } b = CarDB.search(carid); if (b == NULL) { cout << "不存在该汽车!" <getOnshelf() == 1) { cout << "该汽车已经归还!" << endl; break; } cout << "您成功归还一辆"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值