第三次博客作业
第三次博客作业
前言:
这三次作业主要是对Java中类的继承,多态等做考查,重点考查了,类的运用
关于第七次作业:
掌握类的继承、多态性使用方法以及接口的应用。
掌握类的继承、多态性使用方法以及接口的应用。
难度适中,适合用于理解类的各种性质的学习。
关于第八次作业:
设计ATM仿真系统,具体要求参见作业说明。
难度适中,是对类的设计的考验,如果类设计错误,那会变得很麻烦
关于第九次作业:
设计ATM仿真系统,具体要求参见作业说明。
难度中偏上,是对第八次作业的提升。
考点也是类的设计
设计与分析
第七题1.
源码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int x=in.nextInt();
List<Integer> shape_chioce=new ArrayList<Integer>();
while(x!=0) {
if(x>4||x<0) {
System.out.print("Wrong Format");
System.exit(0);
}
shape_chioce.add(x);
x=in.nextInt();
}
List<Card> shape_card=new ArrayList<Card>();
for(Integer temp:shape_chioce) {
if(temp==0) {
break;
}
switch(temp) {
case 1:
double r=in.nextDouble();
shape_card.add(new Card(new Circle(r)));
break;
case 2:
double longth = in.nextDouble();
double width=in.nextDouble();
shape_card.add(new Card(new Rectangle(longth,width)));
break;
case 3:
double r1=in.nextDouble();
double r2=in.nextDouble();
double r3=in.nextDouble();
shape_card.add(new Card(new Triangle(r1,r2,r3)));
break;
case 4:
double longth_1=in.nextDouble();
double width_1=in.nextDouble();
double high=in.nextDouble();
shape_card.add(new Card(new Trapezoid(longth_1,width_1,high)));
break;
}
}
boolean flag=true;
for(Card v:shape_card) {
flag=v.getShape().validate();
}
if(flag==false) {
System.out.print("Wrong Format");
System.exit(0);
}
System.out.println("The original list:");
for(Card i:shape_card) {
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.println("\nThe sorted list:");
Card c;
TreeSet<Card> kp = new TreeSet<>(shape_card);
for (Card a : kp) {
System.out.print(a.getShape().getName()+":");
System.out.printf("%.2f",a.getShape().area());
System.out.print(" ");
}
double sum = 0;
for(Card i:shape_card) {
sum=sum+i.getShape().area();
}
System.out.printf("\nSum of area:%.2f\n",sum);
}
}
class Card implements Comparable<Card>{
private Shape shape;
public Card(Shape s) {
this.shape=s;
}
public Shape getShape() {
return shape;
}
public void setShape(Shape shape) {
this.shape = shape;
}
@Override
public int compareTo(Card o) {
// TODO Auto-generated method stub
if(this.shape.area()==o.shape.area())
return 0;
if(this.shape.area()<o.shape.area())
return 1;
if(this.shape.area()>o.shape.area())
return -1;
return 1;
}
}
abstract class Shape{
private String Name;
public Shape() {}
public Shape(String name) {
this.Name=name;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public abstract double area();
public abstract boolean validate();
}
class Circle extends Shape{
private double r;
public Circle(double R) {
this.r=R;
this.setName("Circle");
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public double area() {
// TODO Auto-generated method stub
return Math.PI*r*r;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(r<=0) {
return false;
}
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",Math.PI*r*r);
}
}
class Rectangle extends Shape{
private double longth;
private double width;
public Rectangle(double Longth,double Width) {
this.setName("Rectangle");
this.longth=Longth;
this.width=Width;
}
public double getLongth() {
return longth;
}
public void setLongth(double longth) {
this.longth = longth;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
@Override
public double area() {
// TODO Auto-generated method stub
return longth*width;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(longth<0)
return false;
if(width<0) {
return false;
}
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",longth*width);
}
}
class Triangle extends Shape{
private double r1;
private double r2;
private double r3;
public Triangle(double r1,double r2,double r3) {
this.r1 = r1;
this.r2 = r2;
this.r3 = r3;
this.setName("Triangle");
}
double area=0;
@Override
public double area() {
// TODO Auto-generated method stub
double s1;
s1=(r1+r2+r3)/2;
area=Math.sqrt(s1*(s1-r1)*(s1-r2)*(s1-r3));
return area;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
double rr1=r1;double rr2=r2;double rr3=r3;
double[] rrr=new double[3];
rrr[0]=rr1;rrr[1]=rr2;rrr[2]=rr3;
for(int i=1;i<3;i++) {
double temp;
if(rrr[i]<rrr[i-1]) {
temp=rrr[i];
rrr[i]=rrr[i-1];
rrr[i-1]=temp;
}
}
if(rrr[0]+rrr[1]>rrr[2]) {
return true;
}
return false;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",area);
}
}
class Trapezoid extends Shape{
private double upline;
private double downline;
private double high;
public Trapezoid(double u,double d,double h){
this.setName("Trapezoid");
this.upline=u;
this.downline=d;
this.high=h;
}
public double getUpline() {
return upline;
}
public void setUpline(double upline) {
this.upline = upline;
}
public double getDownline() {
return downline;
}
public void setDownline(double downline) {
this.downline = downline;
}
public double getHigh() {
return high;
}
public void setHigh(double high) {
this.high = high;
}
double area;
@Override
public double area() {
// TODO Auto-generated method stub
area=(upline+downline)*high/2;
return area;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(upline<0||downline<0||high<0)
return false;
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",area);
}
}
第七题2:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int x=in.nextInt();
List<Integer> shape_chioce=new ArrayList<Integer>();
while(x!=0) {
if(x>4||x<0) {
System.out.print("Wrong Format");
System.exit(0);
}
shape_chioce.add(x);
x=in.nextInt();
}
if(shape_chioce.size()==0)
{
System.out.print("Wrong Format");
System.exit(0);
}
List<Card> shape_card=new ArrayList<Card>();
for(Integer temp:shape_chioce) {
if(temp==0) {
break;
}
switch(temp) {
case 1:
double r=in.nextDouble();
shape_card.add(new Card(new Circle(r)));
break;
case 2:
double longth = in.nextDouble();
double width=in.nextDouble();
shape_card.add(new Card(new Rectangle(longth,width)));
break;
case 3:
double r1=in.nextDouble();
double r2=in.nextDouble();
double r3=in.nextDouble();
shape_card.add(new Card(new Triangle(r1,r2,r3)));
break;
case 4:
double longth_1=in.nextDouble();
double width_1=in.nextDouble();
double high=in.nextDouble();
shape_card.add(new Card(new Trapezoid(longth_1,width_1,high)));
break;
}
}
boolean flag=true;
for(Card v:shape_card) {
flag=v.getShape().validate();
}
if(flag==false) {
System.out.print("Wrong Format");
System.exit(0);
}
System.out.println("The original list:");
System.out.print("[");
for(Card i:shape_card) {
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.print("]");
System.out.println("\nThe Separated List:");
System.out.print("[");
List<Card> shape_Circle=new ArrayList<Card>();
for(Card i:shape_card) {
if(i.getShape().getName()=="Circle") {
shape_Circle.add(i);
}
}
for(Card i:shape_Circle)
{
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.print("]");
System.out.print("[");
List<Card> shape_Rectangle=new ArrayList<Card>();
for(Card i:shape_card) {
if(i.getShape().getName()=="Rectangle") {
shape_Rectangle.add(i);
}
}
for(Card i:shape_Rectangle)
{
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.print("]");
System.out.print("[");
List<Card> shape_Triangle=new ArrayList<Card>();
for(Card i:shape_card) {
if(i.getShape().getName()=="Triangle") {
shape_Triangle.add(i);
}
}
for(Card i:shape_Triangle)
{
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.print("]");
System.out.print("[");
List<Card> shape_Trapezoid=new ArrayList<Card>();
for(Card i:shape_card) {
if(i.getShape().getName()=="Trapezoid") {
shape_Trapezoid.add(i);
}
}
for(Card i:shape_Trapezoid)
{
System.out.print(i.getShape().getName()+":");
System.out.printf("%.2f",i.getShape().area());
System.out.print(" ");
}
System.out.print("]");
System.out.println("\nThe Separated sorted List:");
double area1=0;
TreeSet<Card> kp = new TreeSet<>(shape_Circle);
System.out.print("[");
for (Card a : kp) {
System.out.print(a.getShape().getName()+":");
System.out.printf("%.2f",a.getShape().area());
System.out.print(" ");
area1=area1+a.getShape().area();
}
System.out.print("]");
double area2=0;
TreeSet<Card> k = new TreeSet<>(shape_Rectangle);
System.out.print("[");
for (Card a : k) {
System.out.print(a.getShape().getName()+":");
System.out.printf("%.2f",a.getShape().area());
System.out.print(" ");
area2=area2+a.getShape().area();
}
System.out.print("]");
double area3=0;
TreeSet<Card> p = new TreeSet<>(shape_Triangle);
System.out.print("[");
for (Card a : p) {
System.out.print(a.getShape().getName()+":");
System.out.printf("%.2f",a.getShape().area());
System.out.print(" ");
area3=area3+a.getShape().area();
}
System.out.print("]");
double area4=0;
TreeSet<Card> f = new TreeSet<>(shape_Trapezoid);
System.out.print("[");
for (Card a : f) {
System.out.print(a.getShape().getName()+":");
System.out.printf("%.2f",a.getShape().area());
System.out.print(" ");
area4=area4+a.getShape().area();
}
System.out.print("]");
// TreeSet<Card> kp = new TreeSet<>(shape_card);
// for (Card a : kp) {
// System.out.print(a.getShape().getName()+":");
// System.out.printf("%.2f",a.getShape().area());
// System.out.print(" ");
// }
double maxsum=0;
if(area1>maxsum)
maxsum=area1;
if(area2>maxsum)
maxsum=area2;
if(area3>maxsum)
maxsum=area3;
if(area4>maxsum)
maxsum=area4;
System.out.printf("\nThe max area:%.2f",maxsum);
}
}
class Card implements Comparable<Card>{
private Shape shape;
public Card(Shape s) {
this.shape=s;
}
public Shape getShape() {
return shape;
}
public void setShape(Shape shape) {
this.shape = shape;
}
@Override
public int compareTo(Card o) {
// TODO Auto-generated method stub
if(this.shape.area()==o.shape.area())
return 0;
if(this.shape.area()<o.shape.area())
return 1;
if(this.shape.area()>o.shape.area())
return -1;
return 1;
}
}
abstract class Shape{
private String Name;
public Shape() {}
public Shape(String name) {
this.Name=name;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public abstract double area();
public abstract boolean validate();
}
class Circle extends Shape{
private double r;
public Circle(double R) {
this.r=R;
this.setName("Circle");
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public double area() {
// TODO Auto-generated method stub
return Math.PI*r*r;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(r<=0) {
return false;
}
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",Math.PI*r*r);
}
}
class Rectangle extends Shape{
private double longth;
private double width;
public Rectangle(double Longth,double Width) {
this.setName("Rectangle");
this.longth=Longth;
this.width=Width;
}
public double getLongth() {
return longth;
}
public void setLongth(double longth) {
this.longth = longth;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
@Override
public double area() {
// TODO Auto-generated method stub
return longth*width;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(longth<=0)
return false;
if(width<=0) {
return false;
}
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",longth*width);
}
}
class Triangle extends Shape{
private double r1;
private double r2;
private double r3;
public Triangle(double r1,double r2,double r3) {
this.r1 = r1;
this.r2 = r2;
this.r3 = r3;
this.setName("Triangle");
}
double area=0;
@Override
public double area() {
// TODO Auto-generated method stub
double s1;
s1=(r1+r2+r3)/2;
area=Math.sqrt(s1*(s1-r1)*(s1-r2)*(s1-r3));
return area;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(r1<=0||r2<=0||r3<=0) {
return false;
}
double rr1=r1;double rr2=r2;double rr3=r3;
double[] rrr=new double[3];
rrr[0]=rr1;rrr[1]=rr2;rrr[2]=rr3;
for(int i=1;i<3;i++) {
double temp;
if(rrr[i]<rrr[i-1]) {
temp=rrr[i];
rrr[i]=rrr[i-1];
rrr[i-1]=temp;
}
}
if(rrr[0]+rrr[1]>rrr[2]) {
return true;
}
return false;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",area);
}
}
class Trapezoid extends Shape{
private double upline;
private double downline;
private double high;
public Trapezoid(double u,double d,double h){
this.setName("Trapezoid");
this.upline=u;
this.downline=d;
this.high=h;
}
public double getUpline() {
return upline;
}
public void setUpline(double upline) {
this.upline = upline;
}
public double getDownline() {
return downline;
}
public void setDownline(double downline) {
this.downline = downline;
}
public double getHigh() {
return high;
}
public void setHigh(double high) {
this.high = high;
}
double area;
@Override
public double area() {
// TODO Auto-generated method stub
area=(upline+downline)*high/2;
return area;
}
@Override
public boolean validate() {
// TODO Auto-generated method stub
if(upline<=0||downline<=0||high<=0)
return false;
return true;
}
public void show() {
System.out.print(this.getName()+":");
System.out.printf("%.2f",area);
}
}
第八题1.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
double balance=10000.00;
//输入
Scanner in=new Scanner(System.in);
String putIN=in.nextLine();
if(putIN.equals("#")) {
System.exit(0);
}
//去除空格
String[] data=putIN.split("\\s+");
//开始初始化数据
//ATM的编号编写进了数组
List<ATM> atm_ChinaConstructionBank=new ArrayList<ATM>();
for(int i=1;i<=4;i++) {
atm_ChinaConstructionBank.add(new ATM(i));
}
int[] atm_CCB=new int[4] ;
for(int i=0;i<4;i++) {
atm_CCB[i]=atm_ChinaConstructionBank.get(i).getNum();
}
List<ATM> atm_ICBC=new ArrayList<ATM>();
for(int i=5;i<=6;i++) {
atm_ICBC.add(new ATM(i));
}
int[] atm_ICBC_A=new int[2];
for(int i=0;i<2;i++) {
atm_ICBC_A[i]=atm_ICBC.get(i).getNum();
}
//检测
// for(int i=0;i<atm_ICBC_A.length;i++) {
// System.out.println(atm_ICBC_A[i]);
// }
// for(int i=0;i<atm_ICBC_A.length;i++) {
// if(atm_ICBC_A[i]==5) {
// System.out.println("yes");
// }
// }
//初始化所有人的信息
//at user 杨过
// 从卡号开始
List<Card> card_YangGuo_1=new ArrayList<Card>();
card_YangGuo_1.add(new Card("6217000010041315709"));
card_YangGuo_1.add(new Card("6217000010041315715"));
List<Card> card_YangGuo_2=new ArrayList<Card>();
card_YangGuo_2.add(new Card("6217000010041315718"));
//账户
List<Account> Account_YangGuo=new ArrayList<Account>();//总的list
Account_YangGuo.add(new Account("3217000010041315709",balance,card_YangGuo_1));//下标为0
Account_YangGuo.add(new Account("3217000010041315715",balance,card_YangGuo_2));//下标为1
//对账户的检测
// System.out.println(Account_YangGuo.get(0).getBalance());
// System.out.println(Account_YangGuo.get(1).getBalance());
//银行
List<Bank> Bank_YangGuo=new ArrayList<Bank>();
Bank_YangGuo.add(new Bank(atm_ChinaConstructionBank,"中国建设银行 ",Account_YangGuo));//0号bank
//用户
User YG=new User("杨过", Bank_YangGuo);
//at user 郭靖
List<Card> card_GuoJin_1=new ArrayList<Card>();
card_GuoJin_1.add(new Card("6217000010051320007"));
List<Account> Account_GuoJin_1=new ArrayList<Account>();
Account_GuoJin_1.add(new Account("3217000010051320007",balance,card_GuoJin_1));
//银行
List<Bank> Bank_GuoJin=new ArrayList<Bank>();
Bank_GuoJin.add(new Bank(atm_ChinaConstructionBank,"中国建设银行 ",Account_GuoJin_1));
//用户
User GJ=new User("郭靖",Bank_GuoJin);
//at user 张无忌
//卡号
List<Card> card_ZhangWuJi_1=new ArrayList<Card>(); //卡包1
card_ZhangWuJi_1.add(new Card("6222081502001312389"));//1.1
List<Card> card_ZhangWuJi_2=new ArrayList<Card>(); //卡包2
card_ZhangWuJi_2.add(new Card("6222081502001312390"));//2.1
List<Card> card_ZhangWuJi_3=new ArrayList<Card>(); //卡包3
card_ZhangWuJi_3.add(new Card("6222081502001312399"));//3.1
card_ZhangWuJi_3.add(new Card("6222081502001312400"));//3.2
//账户
List<Account> Account_ZhangWuJi=new ArrayList<Account>();//总账户
Account_ZhangWuJi.add(new Account("3222081502001312389",balance,card_ZhangWuJi_1));//1
Account_ZhangWuJi.add(new Account("3222081502001312390",balance,card_ZhangWuJi_2));//2
Account_ZhangWuJi.add(new Account("3222081502001312399",balance,card_ZhangWuJi_3));//3
//银行
List<Bank> Bank_ZhangWuJi=new ArrayList<Bank>();
Bank_ZhangWuJi.add(new Bank(atm_ICBC,"中国工商银行",Account_ZhangWuJi));
//用户
User ZWJ=new User("张无忌", Bank_ZhangWuJi);
//at user 韦小宝
//卡号
List<Card> card_WeiXiaoBao_1=new ArrayList<Card>();
card_WeiXiaoBao_1.add(new Card("6222081502051320785"));
List<Card> card_WeiXiaoBao_2=new ArrayList<Card>();
card_WeiXiaoBao_2.add(new Card("6222081502051320786"));
//账户
List<Account> Account_WeiXiaoBao=new ArrayList<Account>();
Account_WeiXiaoBao.add(new Account("3222081502051320785",balance,card_WeiXiaoBao_1));//1
Account_WeiXiaoBao.add(new Account("3222081502051320785",balance,card_WeiXiaoBao_2));//2
//银行
List<Bank> Bank_WeiXiaoBao=new ArrayList<Bank>();
Bank_WeiXiaoBao.add(new Bank(atm_ICBC,"中国工商银行",Account_WeiXiaoBao));
//用户
User WXB=new User("韦小宝", Bank_WeiXiaoBao);
//添加各个工具类
//创建各个合法性控制类
CheckCardNumLength check_CNL = new CheckCardNumLength();
Check_password check_PW=new Check_password();
Check_ATM check_atm=new Check_ATM();
Check_exist check_e=new Check_exist();
select_find s_f=new select_find();
//开始工作
while(putIN!="#") {
//给的是卡号,查询账户内的钱
if(data.length==1) {
String temp_card=data[0];
if(check_CNL.check_result(temp_card)==false) {
return;
}
if(check_e.check_result(temp_card)==false) {
return;
}
//锁定了用户和账户
String name=s_f.find_name(temp_card);
String a=s_f.Find_Account();
//存储余额
double temp_balance;
System.out.print("¥");
if(name.equals("杨过")) {
if(a.equals("3217000010041315709")) {
temp_balance=YG.userBank.get(0).account.get(0).getBalance();
System.out.printf("%.2f",temp_balance);
}
if(a.equals("3217000010041315715")) {
temp_balance=YG.userBank.get(0).account.get(1).getBalance();
System.out.printf("%.2f",temp_balance);
}
}
if(name.equals("郭靖")) {
if(a.equals("3217000010051320007")) {
temp_balance=GJ.userBank.get(0).account.get(0).getBalance();
System.out.printf("%.2f",temp_balance);
}
}
if(name.equals("张无忌")) {
if(a.equals("3222081502001312389")) {
temp_balance=ZWJ.userBank.get(0).account.get(0).getBalance();
System.out.printf("%.2f",temp_balance);
}
if(a.equals("3222081502001312390")) {
temp_balance=ZWJ.userBank.get(0).account.get(1).getBalance();
System.out.printf("%.2f",temp_balance);
}
if(a.equals("3222081502001312399")) {
temp_balance=ZWJ.userBank.get(0).account.get(2).getBalance();
System.out.printf("%.2f",temp_balance);
}
}
if(name.equals("韦小宝")) {
if(a.equals("3222081502051320785")) {
temp_balance=WXB.userBank.get(0).account.get(0).getBalance();
System.out.printf("%.2f",temp_balance);
}
if(a.equals("3222081502051320786")) {
temp_balance=WXB.userBank.get(0).account.get(1).getBalance();
System.out.printf("%.2f",temp_balance);
}
}
}
if(data.length==4) {
String temp_card=data[0];
String temp_pw=data[1];
String temp_atm=data[2];
String temp_Money=data[3];
double Money=Double.parseDouble(temp_Money);//金钱
int atm=Integer.parseInt(temp_atm);//atm序号
String temp_name=s_f.find_name(temp_card);//持卡人名字
String temp_a=s_f.Find_Account();//持卡人账户
double x;
double abs_money=Math.abs(Money);
boolean atm_flag=false;
if(check_CNL.check_result(temp_card)==false) {
return;
}
if(check_e.check_result(temp_card)==false) {
return;
}
if(check_PW.check_resualt(temp_pw)==false) {
return;
}
if(check_atm.check_resualt(temp_atm)==false) {
return;
}
//杨过begin
if(temp_name.equals("杨过")) {
//检测atm
for(int i=0;i<4;i++) {
if(atm_CCB[i]==atm) {
atm_flag=true;
}
}
if(atm_flag==false) {
System.out.print("Sorry,cross-bank withdrawal is not supported.");
return;
}
if(temp_a.equals("3217000010041315709")) {
if(Money<0) {
x=YG.userBank.get(0).account.get(0).getBalance()-Money;
YG.userBank.get(0).account.get(0).setBalance(x);
System.out.print("杨过在中国建设银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=YG.userBank.get(0).account.get(0).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
YG.userBank.get(0).account.get(0).setBalance(x);
System.out.print("杨过在中国建设银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
if(temp_a.equals("3217000010041315715")) {
if(Money<0) {
x=YG.userBank.get(0).account.get(1).getBalance()-Money;
YG.userBank.get(0).account.get(1).setBalance(x);
System.out.print("杨过在中国建设银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=YG.userBank.get(0).account.get(1).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
YG.userBank.get(0).account.get(1).setBalance(x);
System.out.print("杨过在中国建设银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
}
//杨过end
//郭靖begin
if(temp_name.equals("郭靖")) {
for(int i=0;i<4;i++) {
if(atm_CCB[i]==atm) {
atm_flag=true;
}
}
if(atm_flag==false) {
System.out.print("Sorry,cross-bank withdrawal is not supported.");
return;
}
if(temp_a.equals("3217000010051320007")) {
if(Money<0) {
x=GJ.userBank.get(0).account.get(0).getBalance()-Money;
GJ.userBank.get(0).account.get(0).setBalance(x);
System.out.print("郭靖在中国建设银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=GJ.userBank.get(0).account.get(0).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
GJ.userBank.get(0).account.get(0).setBalance(x);
System.out.print("郭靖在中国建设银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
}
//郭靖end
//张无忌begin
if(temp_name.equals("张无忌")) {
for(int i=0;i<2;i++) {
if(atm_ICBC_A[i]==atm) {
atm_flag=true;
}
}
if(atm_flag==false) {
System.out.print("Sorry,cross-bank withdrawal is not supported.");
return;
}
if(temp_a.equals("3222081502001312389")) {
if(Money<0) {
x=ZWJ.userBank.get(0).account.get(0).getBalance()-Money;
ZWJ.userBank.get(0).account.get(0).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=ZWJ.userBank.get(0).account.get(0).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
ZWJ.userBank.get(0).account.get(0).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
if(temp_a.equals("3222081502001312390")) {
if(Money<0) {
x=ZWJ.userBank.get(0).account.get(1).getBalance()-Money;
ZWJ.userBank.get(0).account.get(1).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=ZWJ.userBank.get(0).account.get(1).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
ZWJ.userBank.get(0).account.get(1).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
if(temp_a.equals("3222081502001312399")) {
if(Money<0) {
x=ZWJ.userBank.get(0).account.get(2).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
ZWJ.userBank.get(0).account.get(2).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=ZWJ.userBank.get(0).account.get(2).getBalance()-Money;
ZWJ.userBank.get(0).account.get(2).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
}
//张无忌end
//韦小宝begin
if(temp_name.equals("韦小宝")) {
for(int i=0;i<2;i++) {
if(atm_ICBC_A[i]==atm) {
atm_flag=true;
}
}
if(atm_flag==false) {
System.out.print("Sorry,cross-bank withdrawal is not supported.");
return;
}
if(temp_a.equals("3222081502051320785")) {
if(Money<0) {
x=WXB.userBank.get(0).account.get(0).getBalance()-Money;
WXB.userBank.get(0).account.get(0).setBalance(x);
System.out.print("韦小宝在中国工商银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=WXB.userBank.get(0).account.get(0).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
WXB.userBank.get(0).account.get(0).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
if(temp_a.equals("3222081502051320786")) {
if(Money<0) {
x=WXB.userBank.get(0).account.get(1).getBalance()-Money;
WXB.userBank.get(0).account.get(1).setBalance(x);
System.out.print("韦小宝在中国工商银行的0"+atm+"号ATM机上存款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
if(Money>0) {
x=WXB.userBank.get(0).account.get(1).getBalance()-Money;
if(x<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
WXB.userBank.get(0).account.get(1).setBalance(x);
System.out.print("张无忌在中国工商银行的0"+atm+"号ATM机上取款¥");
System.out.printf("%.2f",abs_money);
System.out.println();
System.out.printf("当前余额为¥%.2f", x);
}
}
}
//韦小宝end
}
putIN=in.nextLine();
if(putIN.equals("#")) {
System.exit(0);
}
System.out.println();
data=putIN.split("\\s+");
}
}
}
class select_find{
String account;
String name=null;
public String find_name(String card_num){
if(card_num.equals("6217000010041315709")||card_num.equals("6217000010041315715")) {
name="杨过";
account="3217000010041315709";
}
if(card_num.equals("6217000010041315718")) {
name="杨过";
account="3217000010041315715";
}
if(card_num.equals("6217000010051320007")) {
name="郭靖";
account="3217000010051320007";
}
if(card_num.equals("6217000010051320007")) {
name="张无忌";
account="3222081502001312389";
}
if(card_num.equals("6222081502001312390")) {
name="张无忌";
account="3222081502001312390";
}
if(card_num.equals("6222081502001312399")||card_num.equals("6222081502001312400")) {
name="张无忌";
account="3222081502001312399";
}
if(card_num.equals("6222081502051320785")) {
name="韦小宝";
account="3222081502051320785";
}
if(card_num.equals("6222081502051320786")) {
name="韦小宝";
account="3222081502051320786";
}
return name;
}
public String Find_Account() {
return account;
}
}
class Check_exist{
List<String> e=new ArrayList<String>();
public boolean check_result(String temp) {
e.add("6217000010041315709");
e.add("6217000010041315715");
e.add("6217000010041315718");
e.add("6217000010051320007");
e.add("6222081502001312389");
e.add("6222081502001312390");
e.add("6222081502001312399");
e.add("6222081502001312400");
e.add("6222081502051320785");
e.add("6222081502051320786");
if(e.contains(temp)) {
return true;
}
System.out.print("Sorry,this card does not exist.");
return false;
}
}
class CheckCardNumLength{
String L=new String("6222081502001312390");
int CardNumLength=L.length();
public boolean check_result(String x) {
if(this.L.length()==x.length()) {
return true;
}
System.out.print("Sorry,this card does not exist.");
return false;
}
}
class Check_password{
String password="88888888";
public boolean check_resualt(String pw) {
if(pw.equals(password)) {
return true;
}
System.out.print("Sorry,your password is wrong.");
return false;
}
}
class Check_ATM{
public boolean check_resualt(String atm) {
int a_atm=Integer.parseInt(atm);
if(a_atm<0) {
System.out.print("Sorry,the ATM's id is wrong.");
return false;
}
if(a_atm>6) {
System.out.print("Sorry,the ATM's id is wrong.");
return false;
}
return true;
}
}
class ATM{
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public ATM(int num){
this.num = num;
}
}
class Account{
private String Account_id;
private double balance;
List<Card> card;
public List<Card> getCard() {
return card;
}
public String getAccount_id() {
return Account_id;
}
public void setAccount_id(String account_id) {
Account_id = account_id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void setCard(List<Card> card) {
this.card = card;
}
public Account(String Account_id,double balance2,List<Card> card) {
this.Account_id=Account_id;
this.balance = balance2;
this.card = card;
}
}
class Bank{
List<ATM> atm;
List<Account> account;
public List<Account> getAccount() {
return account;
}
public void setAccount(List<Account> account) {
this.account = account;
}
private String bankName;
public List<ATM> getAtm() {
return atm;
}
public void setAtm(List<ATM> atm) {
this.atm = atm;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public Bank(List<ATM> atm,String bankName,List<Account> account) {
this.atm = atm;
this.bankName = bankName;
this.account = account;
}
}
class User{
private String userName;
List<Bank> userBank;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<Bank> getUserBank() {
return userBank;
}
public void setUserBank(List<Bank> userBank) {
this.userBank = userBank;
}
public User(String userName,List<Bank> userBank) {
this.userName = userName;
this.userBank = userBank;
}
}
class Card{
private String Cardnum;
public String getCardnum() {
return Cardnum;
}
public void setCardnum(String cardnum) {
Cardnum = cardnum;
}
public Card(String Cardnum) {
this.Cardnum=Cardnum;
}
}
第九题1.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
static int balance=10000;
public static void main(String[] args) {
//初始化数据
//at user 杨过
// 从卡号开始
List<Card> card_YangGuo_1=new ArrayList<Card>();
card_YangGuo_1.add(new Card("6217000010041315709"));
card_YangGuo_1.add(new Card("6217000010041315715"));
List<Card> card_YangGuo_2=new ArrayList<Card>();
card_YangGuo_2.add(new Card("6217000010041315718"));
//账户
List<Account> Account_YangGuo=new ArrayList<Account>();//总的list
Account_YangGuo.add(new Account("3217000010041315709",balance,card_YangGuo_1));//下标为0
Account_YangGuo.add(new Account("3217000010041315715",balance,card_YangGuo_2));//下标为1
//银行
List<Bank> Bank_YangGuo=new ArrayList<Bank>();
Bank_YangGuo.add(new Bank("中国建设银行",Account_YangGuo));//0号bank
//用户
User YG=new User("杨过", Bank_YangGuo);
//at user 郭靖
List<Card> card_GuoJin_1=new ArrayList<Card>();
card_GuoJin_1.add(new Card("6217000010051320007"));
List<Account> Account_GuoJin_1=new ArrayList<Account>();
Account_GuoJin_1.add(new Account("3217000010051320007",balance,card_GuoJin_1));
//银行
List<Bank> Bank_GuoJin=new ArrayList<Bank>();
Bank_GuoJin.add(new Bank("中国建设银行",Account_GuoJin_1));
//用户
User GJ=new User("郭靖",Bank_GuoJin);
//at user 张无忌
//卡号
List<Card> card_ZhangWuJi_1=new ArrayList<Card>(); //卡包1
card_ZhangWuJi_1.add(new Card("6222081502001312389"));//1.1
List<Card> card_ZhangWuJi_2=new ArrayList<Card>(); //卡包2
card_ZhangWuJi_2.add(new Card("6222081502001312390"));//2.1
List<Card> card_ZhangWuJi_3=new ArrayList<Card>(); //卡包3
card_ZhangWuJi_3.add(new Card("6222081502001312399"));//3.1
card_ZhangWuJi_3.add(new Card("6222081502001312400"));//3.2
//账户
List<Account> Account_ZhangWuJi=new ArrayList<Account>();//总账户
Account_ZhangWuJi.add(new Account("3222081502001312389",balance,card_ZhangWuJi_1));//1
Account_ZhangWuJi.add(new Account("3222081502001312390",balance,card_ZhangWuJi_2));//2
Account_ZhangWuJi.add(new Account("3222081502001312399",balance,card_ZhangWuJi_3));//3
//银行
List<Bank> Bank_ZhangWuJi=new ArrayList<Bank>();
Bank_ZhangWuJi.add(new Bank("中国工商银行",Account_ZhangWuJi));
//用户
User ZWJ=new User("张无忌", Bank_ZhangWuJi);
//at user 韦小宝
//卡号
List<Card> card_WeiXiaoBao_1=new ArrayList<Card>();
card_WeiXiaoBao_1.add(new Card("6222081502051320785"));
List<Card> card_WeiXiaoBao_2=new ArrayList<Card>();
card_WeiXiaoBao_2.add(new Card("6222081502051320786"));
//账户
List<Account> Account_WeiXiaoBao=new ArrayList<Account>();
Account_WeiXiaoBao.add(new Account("3222081502051320785",balance,card_WeiXiaoBao_1));//1
Account_WeiXiaoBao.add(new Account("3222081502051320786",balance,card_WeiXiaoBao_2));//2
//银行
List<Bank> Bank_WeiXiaoBao=new ArrayList<Bank>();
Bank_WeiXiaoBao.add(new Bank("中国工商银行",Account_WeiXiaoBao));
//用户
User WXB=new User("韦小宝", Bank_WeiXiaoBao);
//at user 张三丰
//卡号
List<Card> card_ZhangSanFeng_1=new ArrayList<Card>();
card_ZhangSanFeng_1.add(new Card("6640000010045442002"));
card_ZhangSanFeng_1.add(new Card("6640000010045442003"));
//账户
List<Account> Account_ZhangSanFeng=new ArrayList<Account>();
Account_ZhangSanFeng.add(new Account("3640000010045442002", balance, card_ZhangSanFeng_1));
//银行
List<Bank> Bank_ZhangSanFeng=new ArrayList<Bank>();
Bank_ZhangSanFeng.add(new Bank("中国建设银行", Account_ZhangSanFeng));
//用户
User ZSF=new User("张三丰", Bank_ZhangSanFeng);
//at user 令狐冲
//卡号
List<Card> card_LingHuChong_1=new ArrayList<Card>();
card_LingHuChong_1.add(new Card("6640000010045441009"));
//账户
List<Account> Account_LingHuChong=new ArrayList<Account>();
Account_LingHuChong.add(new Account("3640000010045441009 ", balance, card_LingHuChong_1));
//银行
List<Bank> Bank_LingHuChong=new ArrayList<Bank>();
Bank_LingHuChong.add(new Bank("中国工商银行", Account_LingHuChong));
//用户
User LHC=new User("令狐冲", Bank_LingHuChong);
//at user 乔峰
//卡号
List<Card> card_QiaoFeng_1=new ArrayList<Card>();
card_QiaoFeng_1.add(new Card("6630000010033431001"));
//账户
List<Account> Account_QiaoFeng=new ArrayList<Account>();
Account_QiaoFeng.add(new Account("3630000010033431001", balance, card_QiaoFeng_1));
//银行
List<Bank> Bank_QiaoFeng=new ArrayList<Bank>();
Bank_QiaoFeng.add(new Bank("中国农业银行", Account_QiaoFeng));
//用户
User QF=new User("乔峰", Bank_QiaoFeng);
//at user 洪七公
//卡号
List<Card> card_HongQiGong_1=new ArrayList<Card>();
card_HongQiGong_1.add(new Card("6630000010033431008"));
//账户
List<Account> Account_HongQiGong=new ArrayList<Account>();
Account_HongQiGong.add(new Account("3630000010033431008", balance, card_HongQiGong_1));
//银行
List<Bank> Bank_HongQiGong=new ArrayList<Bank>();
Bank_HongQiGong.add(new Bank("中国农业银行", Account_HongQiGong));
//用户
User HQG=new User("洪七公", Bank_HongQiGong);
//user list
List<User> user_list=new ArrayList<User>();
user_list.add(HQG);
user_list.add(QF);
user_list.add(LHC);
user_list.add(ZSF);
user_list.add(WXB);
user_list.add(ZWJ);
user_list.add(GJ);
user_list.add(YG);
//atm list
List<ATM> atm_sum=new ArrayList<ATM>();
atm_sum.add(new ATM(1, "中国建设银行",0.02));
atm_sum.add(new ATM(2, "中国建设银行",0.02));
atm_sum.add(new ATM(3, "中国建设银行",0.02));
atm_sum.add(new ATM(4, "中国建设银行",0.02));
atm_sum.add(new ATM(5, "中国工商银行",0.03));
atm_sum.add(new ATM(6, "中国工商银行",0.03));
atm_sum.add(new ATM(7, "中国农业银行",0.04));
atm_sum.add(new ATM(8, "中国农业银行",0.04));
atm_sum.add(new ATM(9, "中国农业银行",0.04));
atm_sum.add(new ATM(10, "中国农业银行",0.04));
atm_sum.add(new ATM(11, "中国农业银行",0.04));
// 输入数据
Scanner in=new Scanner(System.in);
String putIN=in.nextLine();
if(putIN.equals("#")) {
System.exit(0);
}
//去除空格
String[] data=putIN.split("\\s+");
//开始工作
Check_ATM c_atm=new Check_ATM();
Check_password c_password=new Check_password();
Check_CardExist c_cardExist=new Check_CardExist();
select_find s_f=new select_find();
while(putIN!="#") {
if(data.length==1) {
String temp_card=data[0];
if(c_cardExist.check_result(temp_card)==false) {
return;
}
String temp_name=s_f.find_name(temp_card);
String temp_account=s_f.Find_Account();
User x=null;
for(int i=0;i<user_list.size();i++) {
if(user_list.get(i).getUserName()==temp_name) {
x=user_list.get(i);
}
}
// System.out.println(temp_name);
for(int i=0;i<x.getUserBank().size();i++) {
for(int j=0;j<x.getUserBank().get(i).getAccount().size();j++)
if(x.getUserBank().get(i).getAccount().get(j).getAccount_id()==temp_account) {
System.out.print("业务:查询余额 ¥");
System.out.printf("%.2f",x.getUserBank().get(i).getAccount().get(j).getBalance());
}
}
}
if(data.length==4) {
String temp_card=data[0];
String temp_pw=data[1];
String temp_atm=data[2];
String temp_Money=data[3];
if(c_cardExist.check_result(temp_card)==false) {
return;
}
if(c_password.check_resualt(temp_pw)==false) {
return;
}
if(c_atm.check_resualt(temp_atm)==false) {
return;
}
double Money=Double.parseDouble(temp_Money);//金钱
double abs_money=Math.abs(Money);
double rate_money=0;
int atm=Integer.parseInt(temp_atm);//atm序号
String temp_name=s_f.find_name(temp_card);
String temp_account=s_f.Find_Account();
double new_balance=0;
int save_account=0;//记录account的下标
int save_bank = 0;
boolean atm_flag=false;
double rate=atm_sum.get(atm-1).getRate();//跨行取款抽取
User x=null;
for(int i=0;i<user_list.size();i++) {
if(user_list.get(i).getUserName()==temp_name) {
x=user_list.get(i);
save_bank=i;
}
}
if(atm_sum.get(atm-1).getBank_name()==x.userBank.get(0).getBankName()) {
atm_flag=true;
rate=0;
}
for(int i=0;i<x.userBank.get(0).account.size();i++) {
if(temp_account==x.userBank.get(0).getAccount().get(i).getAccount_id()) {
save_account=i;//acount 的下标
}
}
if(Money<=0) {
new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money;
x.userBank.get(0).account.get(save_account).setBalance(new_balance);
System.out.print("业务:存款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的"+data[2]+"号ATM机上存款¥");
System.out.printf("%.2f", abs_money);
System.out.println();
System.out.print("当前余额为¥");
System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
}
if(Money>0) {
rate_money=Money*rate;
if(save_bank>3) {
new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money;
if (new_balance<0) {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
x.userBank.get(0).account.get(save_account).setBalance(new_balance);
System.out.print("业务:取款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的"+data[2]+"号ATM机上取款¥");
System.out.printf("%.2f", abs_money);
System.out.println();
System.out.print("当前余额为¥");
System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
}
if(save_bank<=3) {
if(x.userBank.get(0).account.get(save_account).getBalance()>Money&&x.userBank.get(0).account.get(save_account).getBalance()>0) {
new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money;
x.userBank.get(0).account.get(save_account).setBalance(new_balance);
}
else if(x.userBank.get(0).account.get(save_account).getBalance()<Money&&x.userBank.get(0).account.get(save_account).getBalance()>0) {
new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money-0.05*(Money-x.userBank.get(0).account.get(save_account).getBalance());
x.userBank.get(0).account.get(save_account).setBalance(new_balance);
}else if(x.userBank.get(0).account.get(save_account).getBalance()<Money&&x.userBank.get(0).account.get(save_account).getBalance()<=0) {
new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-0.05*(Money);
x.userBank.get(0).account.get(save_account).setBalance(new_balance);
}
if(x.userBank.get(0).account.get(save_account).getBalance()>=(-50000)) {
System.out.print("业务:取款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的0"+atm_sum.get(atm-1).getAtm_num()+"号ATM机上取款¥");
System.out.printf("%.2f", abs_money);
System.out.println();
System.out.print("当前余额为¥");
System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
}else {
System.out.print("Sorry,your account balance is insufficient.");
return;
}
// new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money;
// if(x.userBank.get(0).account.get(save_account).getBalance()-Money>0) {
// new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money;
// x.userBank.get(0).account.get(save_account).setBalance(new_balance);
// System.out.print("业务:取款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的0"+atm_sum.get(atm-1).getAtm_num()+"号ATM机上取款¥");
// System.out.printf("%.2f", abs_money);
// System.out.println();
// System.out.print("当前余额为¥");
// System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
// }
// if(x.userBank.get(0).account.get(save_account).getBalance()-Money<0) {
// if(x.userBank.get(0).account.get(save_account).getBalance()>0) {
// new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-rate_money-0.05*(Money-x.userBank.get(0).account.get(save_account).getBalance());
// if (new_balance<-50000) {
// System.out.print("Sorry,your account balance is insufficient.");
// return;
// }
// x.userBank.get(0).account.get(save_account).setBalance(new_balance);
// System.out.print("业务:取款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的0"+atm_sum.get(atm-1).getAtm_num()+"号ATM机上取款¥");
// System.out.printf("%.2f", abs_money);
// System.out.println();
// System.out.print("当前余额为¥");
// System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
// }else {
// new_balance=x.userBank.get(0).account.get(save_account).getBalance()-Money-0.05*(Money);
// if(new_balance<-50000) {
// System.out.print("Sorry,your account balance is insufficient.");
// return;
// }
// x.userBank.get(0).account.get(save_account).setBalance(new_balance);
// System.out.print("业务:取款 "+x.getUserName()+"在"+atm_sum.get(atm-1).getBank_name()+"的0"+atm_sum.get(atm-1).getAtm_num()+"号ATM机上取款¥");
// System.out.printf("%.2f", abs_money);
// System.out.println();
// System.out.print("当前余额为¥");
// System.out.printf("%.2f", x.userBank.get(0).account.get(save_account).getBalance());
//
// }
// }
}
}
}
putIN=in.nextLine();
if(putIN.equals("#")) {
System.exit(0);
}
System.out.println();
data=putIN.split("\\s+");
}
}
}
class select_find{
String account;
String name=null;
public String find_name(String card_num){
if(card_num.equals("6217000010041315709")||card_num.equals("6217000010041315715")) {
name="杨过";
account="3217000010041315709";
}
if(card_num.equals("6217000010041315718")) {
name="杨过";
account="3217000010041315715";
}
if(card_num.equals("6217000010051320007")) {
name="郭靖";
account="3217000010051320007";
}
if(card_num.equals("6222081502001312389")) {
name="张无忌";
account="3222081502001312389";
}
if(card_num.equals("6222081502001312390")) {
name="张无忌";
account="3222081502001312390";
}
if(card_num.equals("6222081502001312399")||card_num.equals("6222081502001312400")) {
name="张无忌";
account="3222081502001312399";
}
if(card_num.equals("6222081502051320785")) {
name="韦小宝";
account="3222081502051320785";
}
if(card_num.equals("6222081502051320786")) {
name="韦小宝";
account="3222081502051320786";
}
if(card_num.equals("6640000010045442002")||card_num.equals("6640000010045442003")) {
name="张三丰";
account="3640000010045442002";
}
if(card_num.equals("6640000010045441009")) {
name="令狐冲";
account="3640000010045441009";
}
if(card_num.equals("6630000010033431001")) {
name="乔峰";
account="3630000010033431001";
}
if(card_num.equals("6630000010033431008")) {
name="洪七公";
account="3630000010033431008";
}
return name;
}
public String Find_Account() {
return account;
}
}
class Check_ATM{
public boolean check_resualt(String atm) {
int a_atm=Integer.parseInt(atm);
if(a_atm<0) {
System.out.print("Sorry,the ATM's id is wrong.");
return false;
}
if(a_atm>11) {
System.out.print("Sorry,the ATM's id is wrong.");
return false;
}
return true;
}
}
class Check_password{
String password="88888888";
public boolean check_resualt(String pw) {
if(pw.equals(password)) {
return true;
}
System.out.print("Sorry,your password is wrong.");
return false;
}
}
class Check_CardExist{
List<String> e=new ArrayList<String>();
public boolean check_result(String temp) {
e.add("6217000010041315709");
e.add("6217000010041315715");
e.add("6217000010041315718");
e.add("6217000010051320007");
e.add("6222081502001312389");
e.add("6222081502001312390");
e.add("6222081502001312399");
e.add("6222081502001312400");
e.add("6222081502051320785");
e.add("6222081502051320786");
e.add("6640000010045442002");
e.add("6640000010045442003");
e.add("6640000010045441009");
e.add("6630000010033431001");
e.add("6630000010033431008");
if(e.contains(temp)) {
return true;
}
System.out.print("Sorry,this card does not exist.");
return false;
}
}
class Card{
private String Cardnum;
public String getCardnum() {
return Cardnum;
}
public void setCardnum(String cardnum) {
Cardnum = cardnum;
}
public Card(String Cardnum) {
this.Cardnum=Cardnum;
}
}
class Account{
private String Account_id;
private double balance;
List<Card> card;
public List<Card> getCard() {
return card;
}
public String getAccount_id() {
return Account_id;
}
public void setAccount_id(String account_id) {
Account_id = account_id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void setCard(List<Card> card) {
this.card = card;
}
public Account(String Account_id,double balance2,List<Card> card) {
this.Account_id=Account_id;
this.balance = balance2;
this.card = card;
}
}
class Bank{
List<Account> account;
public List<Account> getAccount() {
return account;
}
public void setAccount(List<Account> account) {
this.account = account;
}
private String bankName;
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public Bank(String bankName,List<Account> account) {
this.bankName = bankName;
this.account = account;
}
}
class User{
private String userName;
List<Bank> userBank;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<Bank> getUserBank() {
return userBank;
}
public void setUserBank(List<Bank> userBank) {
this.userBank = userBank;
}
public User(String userName,List<Bank> userBank) {
this.userName = userName;
this.userBank = userBank;
}
}
class ATM{
private int atm_num;
private String Bank_name;
private double rate;
public ATM(int atm_num,String Bank_name,double rate) {
this.atm_num=atm_num;
this.Bank_name=Bank_name;
this.rate=rate;
}
public int getAtm_num() {
return atm_num;
}
public void setAtm_num(int atm_num) {
this.atm_num = atm_num;
}
public String getBank_name() {
return Bank_name;
}
public void setBank_name(String bank_name) {
Bank_name = bank_name;
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
}
采坑心得:
对于第八题和第九题,因为一开始做题时没有设计好,所以花费了大量时间做补救,有些地方在纯粹堆砌代码而毫无意义,耦合度高,没有发挥面向对象的优势。
改进建议:
下次做题会更加小心
总结:
有所提升,再接再厉。
                    
                
                
            
        
浙公网安备 33010602011771号