一、银行系统功能:
1、开户功能
2、存钱功能
3、取钱功能
二、业务流程:
1、开启系统,显示初始页面
系统功能:
A、开户
B、存钱
C、取钱
请选择你的操作?(输入)
2、开户页面
请输入你的姓名?(输入)
请输入你的初始余额?(输入)
请输入你的密码?(输入)
创建账户完成,你的账户信息为:
银行卡账号:XXXX
姓名:XXXX
余额:XXXX
–》返回初始页面
3、存钱页面
请输入你的卡号?(输入)
请输入你的密码?(输入)
请输入你要存的金额?(输入)
存款成功,你的账户信息为:
银行卡账号:XXXX
姓名:XXXX
余额:XXXX
–》返回初始页面
4、取钱页面
请输入你的卡号?(输入)
请输入你的密码?(输入)
请输入你要取的金额?(输入)
余额不足
或者
存款成功,你的账户信息为:
银行卡账号:XXXX
姓名:XXXX
余额:XXXX
–》返回初始页面
三、银行卡存储
使用文件account.txt存储银行卡信息。
使用文件id.txt存储自增的银行卡号。
用户类
import ParcticeDiwuzhou.lx0810.classlx03.Student;
import jdk.internal.org.objectweb.asm.commons.SerialVersionUIDAdder;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
public class User implements Serializable {
public static final long SerialVersionUIDAdder=1L;
private String name;
private int id;
private int password;
private double balance;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public User() {
}
public User(String name, int password, double balance) throws IOException {
this.name = name;
this.password = password;
this.balance = balance;
this.id= Users.getAddId();
}
public String toString() {
return "您的卡号信息:{" +
"姓名='" + name + '\'' +
", 银行卡号=" + id +
", 当前余额=" + balance +
'}';
}
}
ID自增
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class Users {
public static int addId=1000;
public static int getAddId() throws IOException {
FileOutputStream fileOutputStream =
//append:追加
new FileOutputStream("D:\\tupian\\bank\\id.txt",true);
addId++;
String a=Integer.toString(addId);
a=a+",";
fileOutputStream.write(a.getBytes());
return addId;
}
}
用户数据存储
import PracticeDisizhou.lx0803.lx05.Student;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class UserData {
public static FileOutputStream fileOutputStream;
static {
try {
fileOutputStream = new FileOutputStream("D:\\tupian\\bank\\account.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static ObjectOutputStream objectOutputStream;
static {
try {
objectOutputStream = new ObjectOutputStream(fileOutputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void addUser(User user) throws IOException {
objectOutputStream.writeObject(user);
}
public static List<User> list=new ArrayList<>();
public static void userInfm() throws IOException, ClassNotFoundException {
FileInputStream fileInputStream = new FileInputStream("D:\\tupian\\bank\\account.txt");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
try{
User user=(User) objectInputStream.readObject();
while (user!=null){
list.add(user);
user=(User) objectInputStream.readObject();
}
}catch (EOFException e){
}
objectInputStream.close();
fileInputStream.close();
}
public static void genxing() throws IOException {
for (User user:list){
objectOutputStream.writeObject(user);
}
}
}
业务实现
import java.io.IOException;
import java.util.Scanner;
public class BankServerice {
public static void main(String[] args) throws IOException, ClassNotFoundException {
BankServerice bankServerice = new BankServerice();
bankServerice.begin();
}
Scanner scanner = new Scanner(System.in);
public void begin() throws IOException, ClassNotFoundException {
System.out.println("请选择需要进行的操作:");
System.out.println("A:开户------------" +
"B:取款---------------" +
"C:存款");
Character a = scanner.next().charAt(0);
switch (a) {
case 'A':
case 'a':
kaihu();
break;
case 'B':
case 'b':
qukuan();
break;
case 'C':
case 'c':
cunkuan();
break;
default:
System.out.println("请输入正确的操作-------------------------");
begin();
}
}
public void kaihu() throws IOException, ClassNotFoundException {
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
int passWord = scanner.nextInt();
System.out.println("请输入余额");
double balance = scanner.nextDouble();
User user = new User(name, passWord, balance);
UserData.addUser(user);
System.out.println(user.toString());
System.out.println("返回初始界面------------------------");
begin();
}
public void qukuan() throws IOException, ClassNotFoundException {
UserData.userInfm();
for (int i = 0; i <UserData.list.size() ; i++) {
System.out.println("请输入账号");
int id = scanner.nextInt();
if (UserData.list.get(i).getId()==id){
System.out.println("请输入密码");
int passWrod = scanner.nextInt();
if(UserData.list.get(i).getPassword()==passWrod){
System.out.println("请输入取款金额");
double balance = scanner.nextDouble();
if(UserData.list.get(i).getBalance()>=balance){
UserData.list.get(i).setBalance(UserData.list.get(i).getBalance()-balance);
System.out.println(UserData.list.get(i).toString());
break;
}else {
System.out.println("余额不足------------------");
break;
}
}else {
System.out.println("您输入的密码不准确,请重新输入------------");
break;
}
}else {
System.out.println("您输入的账号不对,请重新输入------------");
break;
}
}
UserData.genxing();
begin();
}
public void cunkuan() throws IOException, ClassNotFoundException {
UserData.userInfm();
for (int i = 0; i <UserData.list.size() ; i++) {
System.out.println("请输入账号");
int id = scanner.nextInt();
if (UserData.list.get(i).getId()==id){
System.out.println("请输入密码");
int passWrod = scanner.nextInt();
if(UserData.list.get(i).getPassword()==passWrod){
System.out.println("请输入存款金额");
double balance = scanner.nextDouble();
if(UserData.list.get(i).getBalance()>=0){
UserData.list.get(i).setBalance(UserData.list.get(i).getBalance()+balance);
System.out.println(UserData.list.get(i).toString());
break;
}else {
System.out.println("请输入正确的存款金额------------------");
break;
}
}else {
System.out.println("您输入的密码不准确,请重新输入------------");
break;
}
}else {
System.out.println("您输入的账号不对,请重新输入------------");
}
}
UserData.genxing();
begin();
}
}