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();
	}

}

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 1、需求与功能分析 (3) 2、系统总体框架 (4) 3、模块设计与分析 (5) 4、类的设计与分析 (7) 5、特色算法分析 (9) 6、功能测试 (10) 7、存在的不足与对策 (15) 8、程序源代码 (16) 需求与功能分析 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银 行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越 来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种 经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便 客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同 时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如 何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加 强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在 各家银行面前的一个迫切需要解诀的问题。 近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点, 为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群 众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务 开展方式多种多样,但一般都离不开计算机的高效管理支持。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的 电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效 统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支 持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响 应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款银行工作重要的环节,然而 要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速 、有效、准确、安全的处理银行事物。 主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成 存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的 实现存取款。 系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功 能。 储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密 码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字) *查询历史数据模块:存款记录、取款记录、余额显示等。 *注销模块:一旦注销该卡号就不存在且余额提醒你取出。 通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务, 提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工 明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。 系统总体框架 图1 -1 1. 模块设计与分析 储蓄卡开户管理模块: 1. 登录页面 输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功 ,并保存卡好信息已备后用。 若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界 面三次不变等待用户的重新输入。 3.2 主界面页面 主要导航栏有:欢迎使用储蓄卡管理(存款、取款、查询余额、查询历史记录、注销 退出) 3.3 储蓄卡开户页面 提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户 金额作为该卡的第一次存款记录存人文件。 3.4 存钱页面 从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从后台数据 库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将 存钱的金额显示在页面上。 3.5 取款页面 从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额 大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入 文件同时将取钱的金额显示在页面上,。 3.6 查询余额页面 从登录界面得到卡好,把该卡上的余额显示到界面中。 3.7 查询历史记录页面 从登录界面得到卡号,把该卡的所有存款取款信息查询出来,并显示在页面上。 3.8 注销页面 从关闭文件,状态为注销,最后关闭整个系统。 列举取款模块进行分析: void Function::Drawing(User &u) { system("cls"); cout<<"\n\n\n\t\t*********************************************\n"<<endl; cout<<"\t\t请输入取款金额:"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值