java学生买火车票问题

此题源自老师的讲解才做出来

分为3个类来写属性及方法;

最后加上一个测试类:

//火车票类
public class huochepiao {
    private static int number=100 ;//车票数量
    private static double price=145;//价格
    public static void buyTicket(){
        number--;
        
    }
    public static int getNumber() {
        return number;
    }
    public static void setNumber(int number) {
        huochepiao.number = number;
    }
    public static double getPrice() {
        return price;
    }
  
}

//学生类

import java.util.Scanner;

class xuesheng {

    private String name; //名字
    private int age; //年龄
    private yinhang yinhangka ;//有银行卡
    //买火车票
    
    
    public void buyTicket(){
        if(huochepiao.getNumber()>0){
            System.out.println("请输入卡号为:"+yinhangka.getAccountID()+"的密码");
            Scanner sc = new Scanner(System.in);
            String password =sc.next();
            if(yinhangka.judge(password)){
                //第一步,先扣钱
                yinhangka.setBalance(yinhangka.getBalance()-huochepiao.getPrice());
                //第二步,票数要改变
                //huochepiao.setNumber(huochepiao.getNumber()-1);
                huochepiao.buyTicket();
            }
        }
    }
    public xuesheng(String name, int age,yinhang yinhangka) {


        this.name = name;
        this.age = age;
        this.yinhangka = yinhangka;
    
    }
    
    public void showInto(){
        System.out.println("您好"+this.name+"您的银行卡购买了一张票价为"+
    huochepiao.getPrice()+"火车票,当前账号"+yinhangka.getAccountID()
    +"余额还有"+yinhangka.getBalance()+"火车票余票还有"+huochepiao.getNumber());
    }
    
}
银行卡类

public class yinhang {

    private String accountID;//账号
    private String passWord;//密码
    private double balance;//余额
    public yinhang(String accountID,String passWord,double balance){
        this.balance =balance;
        this.accountID=accountID;
        this.passWord=passWord;
        
    }

        
        
public String getAccountID() {
        return accountID;
    }



    public void setAccountID(String accountID) {
        this.accountID = accountID;
    }



    public String getPassWord() {
        return passWord;
    }



    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }



    public double getBalance() {
        return balance;
    }



    public void setBalance(double balance) {
        this.balance = balance;
    }



    //判断密码
    public boolean judge(String passWord){
        if(passWord.equals(this.passWord)){
            return true;
        }
        
        return false;
    }
//支付功能
    public void pay(double money){
        if(money<this.balance){
            this.balance-=money;
        }
        
        }
    
//查看余额
    public void showBalance(){
        System.out.println(this.accountID+"余额是:"+this.balance);
    }
}
//测试类 唯一执行main函数的类

public class xianshi {

    public static void main(String[] args) {
    
        yinhang y1 =new yinhang("56214798956325326","631875",22347);
        xuesheng x1=new xuesheng("小王",25,y1);
        
        x1.buyTicket();
        x1.showInto();
        yinhang y2 =new yinhang("6875126547","631874",800);
        xuesheng x2=new xuesheng("小张",25,y2);
        
        x2.buyTicket();
        x2.showInto();
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值