Java_银行开户存取款

1.按照如下的UML类图,创建相应的类,提供必要的结构
创建Account类
在提款方法withdraw()中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。deposit()方法表示存款。
2. 按照如下的UML类图,创建相应的类,提供必要的结构

在这里插入图片描述
3. 按照如下的UML类图,创建相应的类,提供必要的结构
在这里插入图片描述
 addCustomer 方法必须依照参数(姓,名)构造一个新的 Customer对象,然后把它放到 customer 数组中。还必须把 numberofCustomer 属性的值加 1。
 getNumOfCustomers 方法返回 numberofCustomers 属性值。
 getCustomer方法返回与给出的index参数相关的客户。
// 创建Account类

public class Account {
	// 余额
	private double balance;
	// 无参构造
	public Account() {
	}
	// 有参构造
	public Account(double balance) {
		this.balance = balance;
	}

	public double getBalance() {
		return balance;
	}

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

	// 取钱
	public void withdraw(double amount) {
		if (amount > balance) {
			System.out.println("余额不足!");
		} else {
			balance -= amount;
			System.out.println("成功取出:" + amount);
		}
	}

	// 存钱
	public void deposit(double amount) {
		if (amount >= 0) {
			balance += amount;
			System.out.println("成功存入:" + amount);
		} else {
			System.out.println("不能为负数");
		}

	}

}

// 创建Customer类

public class Customer {

	private String firstName;
	private String lastName;
	private Account account;
	
	public Customer() {
		super();
	}
	public Customer(String firstName, String lastName) {
		super();
		this.firstName = firstName;
		this.lastName = lastName;
	}
	

	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	
	public Account getAccount() {
		return account;
	}
	public void setAccount(Account account) {
		this.account = account;
	}
	
	
	
}

// 创建Bank类

public class Bank {
	// 银行存款上限
	private int total = 10;
	// customers 是数组名字
	private Customer[] customers = new Customer[total];
	// 实际存款个数
	private int numberOfCustomer;
	
	public Bank(){}
	
	public void addCustomer(String f,String l){
		if(numberOfCustomer < total){
		// 创建客户
		Customer customer = new Customer(f,l);
		// 将客户存到数组
		customers[numberOfCustomer] = customer;
		 numberOfCustomer++;
		}else System.out.println("银行账户满了");
	}
	
	public int getNumberOfCustomer(){
		return numberOfCustomer;
	}
	
	public Customer getCustomer(int index){
		return customers[index];
	}
	
	public void printInfo(){
		// 遍历数组
		for(int i = 0;i<getNumberOfCustomer();i++){
			// 将客户与数组一一对应
			Customer customer = getCustomer(i);
			
			String f = customer.getFirstName();
			String l = customer.getLastName();
			// Customer中定义的账户,是否开户
			Account acct = customer.getAccount();
			// 防止空指针异常
			if(acct != null){
				System.out.println(f+""+l+",账户余额是:"+acct.getBalance());
			}else System.out.println(f+""+l+"还没开户");
		}
	}
}

// 测试

public class Test3_2 {

	public static void main(String[] args) {
		Bank bank = new Bank();
		// 创建账户
		bank.addCustomer("老","顽童");//[0]
		bank.addCustomer("郭", "靖");//[1]
		bank.addCustomer("黄", "蓉");
		bank.addCustomer("欧阳","峰");
		bank.addCustomer("欧阳", "客");
		bank.addCustomer("黄", "药师");
		bank.addCustomer("王", "重阳");
		bank.addCustomer("周","博通");
		bank.addCustomer("穆", "念慈");
		bank.addCustomer("杨", "康");//[9]
		bank.addCustomer("梅", "超风");
		// 开户
		bank.getCustomer(0).setAccount(new Account(1000));
		bank.getCustomer(1).setAccount(new Account(2000));
		bank.getCustomer(2).setAccount(new Account(3000));
		bank.getCustomer(3).setAccount(new Account(4000));
		bank.getCustomer(4).setAccount(new Account(5000));
		// 打印的东西
		bank.printInfo();
	}

}

[新手练习题] 步骤1:编写程序Account.java,其中定义银行账户类Account。该类中有账号、姓名、存款余额等数据域,余额默认是0;有存款、取款、获取当前余额等方法。其中账号为长度为12位数字的字符串,姓名为字符串,存款余额为double。 步骤2:编写名为CreditAccount类的信用卡账户类。该类继承自Account类,增加一个透支限额(double)数据域,透支限额默认为1000。同时该类账户取款时允许透支,但不能超过透支限额。 步骤3:编写名为SavingAccount的储蓄账户类SavingAccount。该类继承自Account类。该类账户取款时不允许透支。 步骤4:编写名为Bank的模拟银行类,其中可以存储多个类型可能是信用卡账户或储蓄账户的对象(可以用数组或ArrayList实现)。该类包含以下方法: 开户:即增加一个新的账户,注意:不允许两个账户的账号相同 销户:即删除一个已有的账户 查询账户:根据一个账号,查询有无该账号的账户 统计目前银行的存款总余额的方法。 统计目前银行的信用卡账户总透支金额的方法。 统计目前总账户数。 统计目前信用卡账户数 统计目前储蓄卡账户数 步骤5:编写客户端类Client.java完成以下功能: 编写一个静态方法,创建一个银行对象,并随机生成10个账号从1000 0000 0000到1000 0000 0009、类型不同的账户。 main方法中模拟几次开户操作。 main方法中模拟几次销户操作。 模拟几个对指定账号的存款和取款操作。 输出银行的总账户数、总余额、总透支数、各类具体账户数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值