Java:(练习)一、基于面向对象方法的简单银行系统
前言
学习java过程中,练习了一个面向对象小程序
程序要求(来源:非凡教育):
定义一个中国邮政储蓄银行类,
属性:账号、密码、存款余额,银行名称。
方法:注册账号、存款、取款、查询。
创建该类对象并测试注册账号,存钱,取钱查询操作
要求:使用面向对象思想设计程序
一、银行类Bank.java
package org.renola.test.BankObjectTest;
public class Bank {
int id = 0;
String password = "";
double money = 0.0;
static String bankName = "中国邮政储蓄银行";
public Bank(int id, String password, double money) {
this.id = id;
this.password = password;
this.money = money;
}
public Bank() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public static String getBankName() {
return bankName;
}
public static void setBankName(String bankName) {
Bank.bankName = bankName;
}
}
二、主类Main.java
package org.renola.test.BankObjectTest;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Bank[] users = new Bank[10];
int id = 10000;
int number = 0;
System.out.println("欢迎进入中国邮政储蓄银行!");
while(true) {
System.out.println("请选择操作:0.退出 1.注册 2.登录");
boolean flag = false;
int order = sc.nextInt();
switch(order) {
case 0:
flag = true;
break;
case 1:
System.out.print("请输入密码:");
String password = sc.next();
Bank user = new Bank(id, password, 0);
users[number++] = user;
System.out.println("注册成功,您的账户为:" + id++);
break;
case 2:
System.out.print("请输入账户:");
int userId = sc.nextInt();
System.out.print("请输入账户密码:");
String userPassword = sc.next();
for (int i = 0; users[i]!=null; i++) {
if(userId == users[i].getId()) {
if(userPassword.equals(users[i].getPassword())) {
System.out.println("登陆成功!");
boolean userFlag = false;
while(true) {
System.out.println("请输入操作:0.退出 1.存款 2.取款 3.查询");
int userOrder = sc.nextInt();
switch(userOrder) {
case 0:
userFlag = true;
break;
case 1:
System.out.print("请输入存款金额:");
double putMoney = sc.nextInt();
if(putMoney>0) {
users[i].setMoney(putMoney);
System.out.println("存款成功!");
}
else {
System.out.println("错误!存款金额非法!");
}
break;
case 2:
System.out.print("请输入取款金额:");
int getMoney = sc.nextInt();
if(getMoney>0) {
double money = users[i].getMoney();
if(money<getMoney) {
System.out.println("错误!余额不足!");
}
else {
money -= getMoney;
users[i].setMoney(money);
System.out.println("取款成功!");
}
}
else {
System.out.println("错误!取款金额非法!");
}
break;
case 3:
System.out.println("您的账户信息如下:");
System.out.println("账户:" + users[i].getId());
System.out.println("余额:" + users[i].getMoney());
break;
default:break;
}
if(userFlag) {
System.out.println("感谢!您已退出!");
break;
}
}
}
else {
System.out.println("密码输入错误!");
break;
}
}
}
break;
default:
System.out.println("没有该操作!");
break;
}
if(flag) {
System.out.println("感谢!您已退出中国邮政储蓄银行系统!");
break;
}
}
}
}
总结
简单的设计了Bank类,由于是统一的“中国邮政储蓄银行”,所在再Bank类中设置static的银行名称。
具体的注册、登录、存款、取款、查询等功能仍然是写在主类Main中,面向过程的思想仍然严重。