银行类题目

练习1:创建一个简单的银行程序包

 

练习目标-Java 语言中面向对象的封装性及构造器的使用。

任务

在这个练习里,创建一个简单版本的(账户类)Account类。将这个源文件放入banking程序包中。在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking。这个测试程序初始化帐户余额,并可执行几种简单的事物处理。最后,该测试程序显示该帐户的最终余额。

1.  创建banking 包

2.  在banking 包下创建Account类。该类必须实现上述UML框图中的模型。

  1. 声明一个私有对象属性:balance,这个属性保留了银行帐户的当前(或即时)余额。
  2. 声明一个带有一个参数(init_balance)的公有构造器,这个参数为balance属性赋值。
  3. 声明一个公有方法getBalance,该方法用于获取经常余额。
  4. 声明一个公有方法deposit,该方法向当前余额增加金额。
  5. 声明一个公有方法withdraw从当前余额中减去金额。

3.  编译TestBanking.java文件。

4.  运行TestBanking类。可以看到下列输出结果:

Creating an account with a 500.00 balance

Withdraw 150.00

Deposit 22.50

Withdraw 47.62

The account has a balance of 324.88

package banking;

public class Account {

    private double balance;

    public Account(double balance)
    {
        this.balance=balance;
    }

    public double getBalance() {
        System.out.println("当前余额为:"+balance+"元");
        return balance;
    }

    public double deposit(double add){                                                                    //取钱方法
        balance+=add;
        System.out.println("存钱"+add+"元,当余额为"+balance+"元");
        return balance;
    }

    boolean    withdraw(double get){                                                                        //取钱方法
        if(get<=balance)
        {
            System.out.println("取钱"+get+"元,当余额为"+balance+"元");
            return true;
        }
        else
        {
            System.out.println("‘余额不足");
            return false;
        }        

    }

}

package banking;

public class Customer {

        private String firstName;
        private String lastName;
        private Account account;

        public Customer(String firstName,String lastName)                                //账户名字构造方法
        {
            this.firstName=firstName;
            this.lastName=lastName;
            System.out.println("用户名为:"+firstName+"\t"+lastName);
        }
        public String getFirstName()
        {
            return firstName;
        }
        public String getLastName()
        {
            return lastName;
        }

        public void setAccount(Account account) {
            this.account = account;
        }

        public Account getAccount() {
            return account;
        }
        @Override
        public String toString() {
            return "Customer [account=" + account + "]";
        }

}

package banking;

public class Bank {

    private Customer customers[];
    private int numberOfCustomers[];

    //公有构造器
    public Bank() {
        customers = new Customer[5];
        numberOfCustomers = new int[5];
    }

    public static int index = 0;
    public static int c= 0;

    public void addCustome(String firstName,String lastName)
    {
        index=+c;
        customers[index] = new Customer(firstName, lastName);
        numberOfCustomers[index]=++c;
    }
    public int getNumOfCustomers()
    {
        return numberOfCustomers.length;
    }

    public Customer getCustomer(int index)
    {
        return customers[index];
    }

}

package banking;

public class SavingAccount extends Account {                //存款账户

    private double interestRate;

    public double getInterestRate() {
        return interestRate;
    }

    public void setInterestRate(double interestRate) {
        this.interestRate = interestRate;
    }

    public SavingAccount(double balance,double interestRate)
    {
        super(balance);
        this.interestRate=interestRate;
    }

}
package banking;

public class CheckingAccount extends Account{                                                    //透支账户

    private double overdraftProtection;                                                                    //属性

    public double getOverdraftProtection() {
        return overdraftProtection;
    }

    public void setOverdraftProtection(double overdraftProtection) {
        this.overdraftProtection = overdraftProtection;
    }

    public CheckingAccount(double balance) {                                                        //构造方法

        super(balance);
    }

    public CheckingAccount (double balance,double overdraftProtection)
    {
        super(balance);
        this.overdraftProtection=overdraftProtection;
    }

    boolean    withdraw(double get){                                                                        //覆盖取钱方法
        if(balance-get>0)
        {
            balance = balance - get;
            System.out.println("取钱"+get+"元,当余额为"+balance+"元");
            return true;
        }
        else
        {
            if(get<=getOverdraftProtection())
            System.out.println("‘余额为:"+(balance-get));
            else
             System.out.println("请在可透支范围内提款!");
            return true;
        }        

}}
时间: 2025-01-15 13:34:04

银行类题目的相关文章

模拟人机交互类题目

人机交互,顾名思义,就是人与计算机间的交流互动,我们对计算机的每一次操作程序中的每一条语句都是与计算机的交流,这类题目是将人和计算机调换位置,例如猜数游戏,常规的做法是让人输入数,计算机判断大还是小,而这类人机交互题目中需要你的程序充当人来输入数据,再自己来判断大小. 例题1:猜数游戏http://codeforces.com/gym/101021 分析:范围[1,1e6],二分判断.程序输出数字,我们输入大小.(这个代码是随机数). 1 #include<bits/stdc++.h> 2 u

博弈论类题目小结——转载

出处http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534 经典的删边游戏小结:http://blog.csdn.net/acm

创建一个银行类

# -*- conding:utf-8 -*- ''' 类: 创建一个银行类 属性: 一个属于银行的类属性 用来存储所有银行的开户信息,包含卡号.密码.用户名.余额 (外界不能随意访问和修改.开户时要进行卡号验证,查看卡号是否已经存在) 每个对象拥有 卡号,密码,用户名,余额 (外界不能随意访问和修改.) 方法:银行类拥有 查看本银行的开户总数 查看所有用户的个人信息(包含卡号,密码,用户名,余额) 每个对象拥有 实例化对象的时候传入相关参数 初始化对象及类属性 取钱(需要卡号和密码验证) 通过

概率和期望类题目综合分析

先给出学习资料吧:kuangbin的博客:  https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html kuangbin的博客里面有3篇论文,讲的非常好,但是有点难(非常难),推荐全部打印下来 首先概率和期望类题目有哪几种做法呢? 用鬲融的总结的话有以下几种:直接计算(这样只要考验你的公式推理,一点代码都不需要)  动态规划的方法(也就是传说中的概率正着算,期望反着求)迭代的方法(其实我分不太清这样和动态规划的区别) 概率-

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册、登录、存取款、本行转账、跨行转账、销户、特殊操作参数、多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合)

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册.登录.存取款.本行转账.跨行转账.销户.特殊操作参数.多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合) 1) 定义bank类 属性有银行名称和存放客户的ArrayList集合, 有开户方法. 销户方法. 存钱方法. 取钱方法. 转账方法(本行转账.跨行转账) 2) 定义customer类 属性有账户名.密码.余额 3) 定义测试类创建一个银行集合用于存放bank对象创建几个bank对象:分别叫华夏银行.工商银行.招商

python自测——操作类题目

操作类题目 49.Python 交换两个变量的值50.在读文件操作的时候会使用 read.readline 或者 readlines,简述它们各自的作用51.json 序列化时,可以处理的数据类型有哪些?如何定制支持 datetime 类型?52.json 序列化时,默认遇到中文会转换成 unicode,如果想要保留中文怎么办?53.有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件 C 中.54.如果当前的日期为 20190530,要求

2.3日期类题目题解

今天追的综艺更新了,没想到超长待机三个小时,再加上乱七八糟的事情耽误了很多的时间,没有时间更新今日份所有题目的总结了.恰好今天这套题很多都是一个类型的题目那就分开整理吧,今天更新计算日期类的题目,其他的等明天继续更. 关于计算日期类的题目,可以说都很简单了,而且一般都是小题.就算不会代码差不多电脑自带的日期啊.execl啊都能做,所以我之前都是用的vbs做的,挺方便的.但是听大佬说国赛没有execl什么的正好今天的题有几道关于日期的题目,趁这个机会整理出来.稍后更新一篇常用的方法吧. 第一题:高

java基础,继承类题目:编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E

21.编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的信息. (2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法 中输出“小样的,不错嘛!会说话了!”的信息. (3)在People类中新增方法void think(),在thi

二分图类题目集合

此文用来总结二分图相关知识的题目,以后遇到了就囤在一起总结吧. 最近遇到的一道最小路径覆盖的题目,其实很裸,忘了也没看出来就是最小路径覆盖. 第四届“恒生杯”程序设计大赛决赛 A http://acm.hust.edu.cn/problem/show/1643 题意:有n个物品,每一天只能选取一些满足条件的物品,即选取的物品相邻之间要满足abs(a[i]-a[j]) >= k,问最少多少天能够选完所有物品. 分析:首先建立一个图,对于abs(a[i]-a[j])>=k的i,j(i < j