1、package src.day01; public class ACC { //父类 ,以下是共有属性和方法 //卡号 protected static long id; // 名字 protected static String name; // 身份证 protected static String personId; //电子邮件 protected static String email; // 密码 protected static long password; //余额 protected static doub
2、le balance; public ACC(){ } public ACC(long id,String name,String personId,String email,long password,double balance ){ this.id = id; this.name = name; this.personId = personId; this.email = email; this.password = password; this.balance = balance; } // 存款方法 public sta
3、tic void deposit(double money){ balance += money; System.out.println("存款成功,你存入金额为:" + money); } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name =
4、name; } public String getPersonId() { return personId; } public void setPersonId(String personId) { this.personId = personId; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public long getPassword() { return passw
5、ord; } public void setPassword(long password) { this.password = password; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } } package src.day01; import java.util.*; public class Bank { //先定义 两个动态数组,其中ban用
6、来存放借记卡数据,ba用来存放信用卡数据 static Vector ban = new Vector(); static Vector ba = new Vector(); //i指借记卡卡号,每增加一个用户,i自增1 //j指借记卡卡号,每增加一个用户,j自增1 private static long i = ; private static long j = ; public Bank(){ } //判定用户办理借记卡还是信用卡相关业务 public static void justy(int ch){ boo
7、lean k = true ; while(k){ if(ch ==1){ System.out.println("你将要办理借记卡业务:"); break; }else if(ch ==2){ System.out.println("你将要办理信用卡业务:"); break; }else{ System.out.println("输入指令错误,请重新输入:"); k=false; } } } //开户方法 public static void register(int c
8、h){ justy(ch); Scanner re = new Scanner(System.in); System.out.println("请输入开户用户名:"); String na =re.next(); long key; //两次密码不一样话循环 进行 p: while (true){ System.out.println("请输入密码:"); long pa = re.nextLong(); System.out.println("请再次输入密码:"
9、); long pa1 = re.nextLong(); if(pa==pa1 ){ key = pa1; break ; }else{ System.out.println("两次不相同,请重新输入"); continue p; } } System.out.println("请输入身份证号:"); String perId = re.next(); System.
10、out.println("请输入email地址:"); String em = re.next(); System.out.println("请输入开户金额:"); double bal = re.nextDouble(); //存放和输出过程,将以上输入正确数据存放到对应数组中 if(ch==1){ DebitAcc De = new DebitAcc(i,na,perId,em,key,bal); ban.add(De);
11、 System.out.println("恭喜你开户成功:你卡号为" + i); i++; }else if(ch==2){ CreditAcc Cr = new CreditAcc(j,na,perId,em,key,bal); ba.add(Cr); System.out.println("恭喜你开户成功:你卡号为" + j); j++; }
12、System.out.println( "用户名: " + na ); System.out.println("身份证:"+ perId ); System.out.println("email:" +em ); System.out.println("开户金额:" + bal ); } //用户子菜单 public static void MenuCu(){ Scanner sc = new Scanner(System.in); while
13、true){ System.out.println("欢迎使用银行系统"); System.out.println("请输入指令:1、开户 2 、登陆 3、退出到上级"); int choice = sc.nextInt(); switch(choice){ case 1: openAccount(); break; case 2: logIn(); break; case
14、3: return; default : System .out .println("输入指令错误,请重新输入"); break; } } } //开户方法总方法 private static void openAccount(){ System.out.println("你将要办理开户业务:"); System.out.println("请输入你要选择银行卡类型: 1、借记卡 2、信用卡 ");
15、 Scanner op = new Scanner(System.in); int ch = op.nextInt(); register(ch); } //用户登陆总方法 public static void logIn( ){ System.out.println("欢迎进入用户登陆界面,请选择你要登陆卡号类型: 1、借记卡 2、 信用卡" ); boolean o = true; boolean p =false; Scanner lo = new Sc
16、anner(System.in);
int ch = lo.nextInt();
justy(ch);
l: while(o) {
System.out.println("请输入你卡号:");
long user = lo. nextLong();
if(ch==1){
//调用对应数组卡号群和输入卡号匹配,以下同理
for(int i = 0;i 17、Bank.ban.get(i);
if(user == d.id){
System.out.println("请输入密码:");
long password = lo.nextLong();
//对密码进行正误判定,正则p为true,可向下进行,false则直接返回输入卡号命令,即只有输密码一次机会
p = pass(password) ;
while(p){
d.menu1();
break; 18、
}
}else{
//卡号不存在进行操作
System.out.println("该卡号不存在,是否重新输入:1、继续2、返回上一级");
int c =lo.nextInt();
if(c==1){
continue l;
}else{
return;
}
}
}
19、
}else {
for(int j =0;j 20、c.menu1();
break;
}
}else{
System.out.println("该卡号不存在,请重新输入:");
continue l;
}
}
}
}
}
//密码正误判定方法
public static boolean pass( long password){ 21、
if(password !=DebitAcc.password){
System.out.println("密码错误!重新输入:");
return false;
}else{
return true;
}
}
//管理员操作菜单
public static void menuAd(){
Scanner mc = new Scanner(System.in);
while(true){
System.out.println("欢迎使用银行系统");
System.out.println("请输入指令:1、查看 22、全部用户余额 2 、查看信用卡用户总信用额度 3、退出到上级");
int m =mc.nextInt();
switch(m){
case 1:
checkBalance();
break;
case 2:
checkCeiling();
break;
case 3:
return;
default:
System.out.println("输入错误,请重试:");
break;
}
}
}
//营业员查询总余额
public static void checkBa 23、lance(){
double k =0.0;
for(int i = 0;i 24、余额为:" + k);
}
public static void checkCeiling(){
double k =0.0;
for(int j=0;j 25、 b = new Scanner(System.in);
while(true){
System.out.println("欢迎使用银行系统");
System.out.println("请输入指令:1、营业管理员 2、一般用户 3、退出");
int ba =b.nextInt();
switch(ba){
case 1:
menuAd();
break;
case 2:
MenuCu();
break;
case 3:
System .out .println("感 26、谢你使用,欢迎下次光临");
System.exit(0);
}
}
}
}
package src.day01;
import java.util.*;
public class CreditAcc extends ACC {
//信用卡子类 先定义信用额度为一常量
public double ceiling = 500.0;
CreditAcc(){
super();
}
CreditAcc(long id,String name,String personId,String email,long passw 27、ord,double balance){
super(id,name,personId,email,password,balance);
}
//取款方法
public void withdraw(double money){
if(money>balance){
System.out.println("你余额已不足,是否透支?1.透支 2.不透支");
Scanner cr = new Scanner (System.in);
int c = cr.nextInt();
switch(c){ 28、
case 1:
if(ceiling + balance 29、 case 2:
break;
default:
System.out.println("操作错误,请重新输入");
break;
}
}
}
//查询方法
public void show(){
System.out.println("姓名:" +name +" 卡号:" + id);
if(balance==0){
System.out.println("你余额为0,信用度为:" 30、 + ceiling);
}else{
System.out.println("你余额为:" + balance);
}
}
// 信用卡子菜单
public static void menu1(){
boolean b=true;
while(b){
System .out.println("请输入指令:1、取款2、存款3、查询4、退出到上级");
Scanner men = new Scanner(System.in);
int m =men.nextInt();
switch(m){
case 31、 1:
System.out.println("请输入取款金额:");
double money = men.nextDouble();
DebitAcc.withdraw(money);
break;
case 2:
System.out.println("请输入存款金额:");
double money1 = men.nextDouble();
DebitAcc.deposit(money1);
break;
case 3:
De 32、bitAcc.show();
break;
case 4:
return;
}
}
}
}
package src.day01;
import java.util.Scanner;
public class DebitAcc extends ACC {
//借记卡子类
DebitAcc(){
super();
}
DebitAcc(long id,String name,String personId,String email,lo 33、ng password,double ancbalancee){
super (id,name,personId,email,password,ancbalancee) ;
}
//借记卡子菜单
public static void menu1(){
boolean b=true;
while(b){
System .out.println("请输入指令:1、取款2、存款3、查询4、退出到上级");
Scanner men = new Scanner(System.in);
int 34、 m =men.nextInt();
switch(m){
case 1:
System.out.println("请输入取款金额:");
double money = men.nextDouble();
DebitAcc.withdraw(money);
break;
case 2:
System.out.println("请输入存款金额:");
double money1 = men.nextDouble();
DebitAcc.deposit(money 35、1);
break;
case 3:
DebitAcc.show();
break;
case 4:
return;
}
}
}
//取款方法,不可透支
public static void withdraw(double money){
if(money> balance){
System.out.println("你余额已不足,无法透支,请你重新输入:");
return;
}
balance-=money;
} 36、
//查询方法
public static void show(){
System.out.println("姓名:" +name +" 卡号:" + id);
System.out.println("你余额为:" + balance);
}
}
package src.day01;
public class Welbank {
/**
* @param args
*/
public static void main(String[] args) {
// 银行系统主方法
Bank bank = new Bank();
bank. menuWel();
}
}






