OO第三次博客作业

------------恢复内容开始------------

第七次作业

第七次第一次的作业内容是写出一个卡片游戏的程序,一共有四种图形:圆形、矩形、三角形和梯形。程序开始时第一行输入要求的图形序号,以“0”结束,第二行输入第一行中每个图形对应所需的数据;程序功能有求出每个图形的面积、求出所有图形面积之和以及按照面积从大到小排序。输出时第一行按输入顺序输出各个图形的面积,第二行输出排序后的图形面积,第三行输出总面积。

题目所给类图:

此次作业目的是掌握类的继承、多态性使用方法以及接口的应用。

作业中的父类为Shape类,子类有Circle类(圆形)、Rectangle类(矩形)、Triangle类(三角形)以及Trapezoid类(梯形)。子类可以继承父类中的函数以及变量,若子类中有与父类中完全相同的函数或者变量,则覆盖掉父类中的。

题目代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
int num = input.nextInt();
while(num != 0){
list.add(num);
num = input.nextInt();
}
for(int i=0;i<list.size();i++){
if(list.get(i)<0||list.get(i)>4){
System.out.println("Wrong Format");
}
}
DealCardList dealCardList = new DealCardList(list);
if(!dealCardList.validate()){
System.out.println("Wrong Format");
System.exit(0);
}
dealCardList.showResult();
input.close();
}
}
class Card{
Shape shape;
Card(){

}
Card(Shape shape){
this.shape=shape;
}
public Shape getShape() {
return shape;
}
public void setShape(Shape Shape) {
this.shape=shape;
}

}
class DealCardList{
ArrayList<Card> cardList=new ArrayList<Card>();
DealCardList(){

}
DealCardList(ArrayList<Integer> list){
for(int i=0;i<list.size();i++)
{
if(list.get(i)==1)
{
double r=Main.input.nextDouble();
Circle circle=new Circle(r);
Card card=new Card(circle);
card.getShape().setShapeName("Circle");
cardList.add(card);
}
if(list.get(i)==2) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
Rectangle rectangle=new Rectangle(a,b);
Card card=new Card(rectangle);
card.getShape().setShapeName("Rectangle");
cardList.add(card);
}
if(list.get(i)==3) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
double c=Main.input.nextDouble();
Triangle triangle=new Triangle(a,b,c);
Card card=new Card(triangle);
card.getShape().setShapeName("Triangle");
cardList.add(card);
}
if(list.get(i)==4) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
double c=Main.input.nextDouble();
Traperoid traperoid=new Traperoid(a,b,c);
Card card=new Card(traperoid);
card.getShape().setShapeName("Trapezoid");
cardList.add(card);
}
}
}
public boolean validate() {
for(int i=0;i<cardList.size();i++)
{if(!cardList.get(i).getShape().vaildate())
return false;}
return true;
}
public void cardSort() {
for(int k=0;k<cardList.size();k++)
for(int i=k+1;i<cardList.size();i++)
{
if(cardList.get(k).getShape().getArea()<cardList.get(i).getShape().getArea())
Collections.swap(cardList, k, i);
}


}
public double getAllArea() {
double s=0;
for(int i=0;i<cardList.size();i++)
s=s+cardList.get(i).getShape().getArea();
return s;
}
public void showResult() {
System.out.println("The original list:");
for(int i=0;i<cardList.size();i++)
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
System.out.println();
System.out.println("The sorted list:");
cardSort();
for(int i=0;i<cardList.size();i++)
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
System.out.println();
System.out.println("Sum of area:"+String.format("%.2f",getAllArea()));
}
}
class Shape {
private String shapeName;
Shape(){

}
Shape(String shapeName){
this.shapeName=shapeName;
}
public String getShapeName() {
return shapeName;
}
public void setShapeName(String shapeName) {
this.shapeName=shapeName;
}
public double getArea() {
return 0.0;
}
public boolean vaildate() {
return true;
}

}
class Circle extends Shape{
private double radius;
Circle(){

}
Circle(double radius){
this.radius=radius;
}
public double getArea() {
return Math.PI*radius*radius;
}
public boolean vaildate() {
if(radius>0)
return true;
else return false;
}
}
class Rectangle extends Shape{
private double width,length;
Rectangle (double width,double length){
this.width=width;
this.length=length;
}
public double getArea() {
return width*length;
}
public boolean vaildate() {
if(width>0&&length>0)
return true;
else return false;
}
}
class Triangle extends Shape{
double side1,side2,side3;
Triangle(double side1,double side2,double side3){
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
public double getArea() {
double c=(side1+side2+side3)/2;
double s=Math.sqrt(c*(c-side1)*(c-side2)*(c-side3));
return s;
}
public boolean vaildate() {
if(side1+side2>side3&&side1+side3>side2&&side2+side3>side1)
return true;
else
return false;
}
}
class Traperoid extends Shape{
private double topSide,bottomSide,height;
Traperoid(){

}
Traperoid(double topSide,double bottomSide,double height){
this.bottomSide=bottomSide;
this.height=height;
this.topSide=topSide;
}
public double getArea() {
return (topSide+bottomSide)*height/2;
}
public boolean validate() {
if(topSide>0&&bottomSide>0&&height>0)
return true;
else return false;
}
}

第七次作业第二题与第一次不同的是要求分别求出每个形状的面积总和,再给每种形状的面积之和排序,按照从小到大的顺序输出;其次就是输出的格式较之前有所不同。

作业代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
int num = input.nextInt();
if(num<=0) {
System.out.println("Wrong Format");
System.exit(0);
}
while(num != 0){
list.add(num);
num = input.nextInt();
}
for(int i=0;i<list.size();i++) {
if(list.get(i)<0||list.get(i)>4) {
System.out.println("Wrong Format");
System.exit(0);
}
}
DealCardList dealCardList = new DealCardList(list);
if(!dealCardList.validate()){
System.out.println("Wrong Format");
System.exit(0);
}
dealCardList.showResult();
input.close();
}
}
class Card{
Shape shape;
Card(){

}
Card(Shape shape){
this.shape=shape;
}
public Shape getShape() {
return shape;
}
public void setShape(Shape Shape, Shape shape) {
this.shape=shape;
}

}
class DealCardList{
ArrayList<Card> cardList=new ArrayList<Card>();
DealCardList(){

}
DealCardList(ArrayList<Integer> list){
for(int i=0;i<list.size();i++)
{
if(list.get(i)==1)
{
double r=Main.input.nextDouble();
Circle circle=new Circle(r);
Card card=new Card(circle);
card.getShape().setShapeName("Circle");
cardList.add(card);
}
if(list.get(i)==2) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
Rectangle rectangle=new Rectangle(a,b);
Card card=new Card(rectangle);
card.getShape().setShapeName("Rectangle");
cardList.add(card);
}
if(list.get(i)==3) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
double c=Main.input.nextDouble();
Triangle triangle=new Triangle(a,b,c);
Card card=new Card(triangle);
card.getShape().setShapeName("Triangle");
cardList.add(card);
}
if(list.get(i)==4) {
double a=Main.input.nextDouble();
double b=Main.input.nextDouble();
double c=Main.input.nextDouble();
Traperoid traperoid=new Traperoid(a,b,c);
Card card=new Card(traperoid);
card.getShape().setShapeName("Trapezoid");
cardList.add(card);
}
}
}
public boolean validate() {
for(int i=0;i<cardList.size();i++)
{if(!cardList.get(i).getShape().vaildate())
return false;}
return true;
}
public void cardSort() {
for(int k=0;k<cardList.size();k++)
for(int i=k+1;i<cardList.size();i++)
{
if(cardList.get(k).getShape().getArea()<cardList.get(i).getShape().getArea())
Collections.swap(cardList, k, i);
}
}
public double getAllArea() {
double s=0;
for(int i=0;i<cardList.size();i++)
s=s+cardList.get(i).getShape().getArea();
return s;
}
public void showResult() {
double temp=0;
System.out.println("The original list:");
System.out.print("[");
for(int i=0;i<cardList.size();i++)
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
System.out.print("]");
System.out.println();
System.out.println("The Separated List:");
//cardSort();
int account1=0;
int account2=0;
int account3=0;
int account4=0;
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Circle")) {
account1++;//数出圆形个数创建数组
}
}
double[] cir=new double[account1];
account1=0;
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Circle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
cir[account1]=cardList.get(i).getShape().getArea();
account1++;
}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Rectangle")) {
account2++;
}
}
double[] rec=new double[account2];
account2=0;
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Rectangle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
rec[account2]=cardList.get(i).getShape().getArea();
account2++;
}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Triangle")) {
account3++;
}
}
double[] tri=new double[account3];
account3=0;
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Triangle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
tri[account3]=cardList.get(i).getShape().getArea();
account3++;
}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Trapezoid")) {
account4++;
}
}
double[] tra=new double[account4];
account4=0;
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Trapezoid")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
tra[account4]=cardList.get(i).getShape().getArea();
account4++;
}
}
System.out.print("]");
System.out.println();
System.out.println("The Separated sorted List:");
cardSort();
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Circle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");

}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Rectangle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");

}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Triangle")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");

}
}
System.out.print("]");
System.out.print("[");
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getShape().getShapeName().equals("Trapezoid")) {
System.out.print(cardList.get(i).getShape().getShapeName()+":"+String.format("%.2f",cardList.get(i).getShape().getArea())+" ");
}
}
System.out.print("]");
System.out.println();
double sumcir=0;
double sumrec=0;
double sumtri=0;
double sumtra=0;
double[] areas=new double[4];
for(int i=0;i<account1;i++) {
sumcir=sumcir+cir[i];
}
areas[0]=sumcir;
for(int i=0;i<account2;i++) {
sumrec=sumrec+rec[i];
}
for(int i=0;i<account3;i++) {
sumtri=sumtri+tri[i];
}
for(int i=0;i<account4;i++) {
sumtra=sumtra+tra[i];
}
areas[1]=sumrec;
areas[2]=sumtri;
areas[3]=sumtra;
for(int i=0;i<3;i++) {
for(int j=i+1;j<4;j++) {
if(areas[i]<areas[j]) {
temp=areas[i];
areas[i]=areas[j];
areas[j]=temp;
}
}
}
System.out.println("The max area:"+String.format("%.2f",areas[0]));
}
}
class Shape {
private String shapeName;
Shape(){
}
Shape(String shapeName){
this.shapeName=shapeName;
}
public String getShapeName() {
return shapeName;
}
public void setShapeName(String shapeName) {
this.shapeName=shapeName;
}
public double getArea() {
return 0.0;
}
public boolean vaildate() {
return true;
}
}
class Circle extends Shape{
private double radius;
Circle(){
}
Circle(double radius){
this.radius=radius;
}
public double getArea() {
return Math.PI*radius*radius;
}
public boolean vaildate() {
if(radius>0)
return true;
else return false;
}
}
class Rectangle extends Shape{
private double width,length;
Rectangle (double width,double length){
this.width=width;
this.length=length;
}
public double getArea() {
return width*length;
}
public boolean vaildate() {
if(width>0&&length>0)
return true;
else return false;
}
}
class Triangle extends Shape{
double side1,side2,side3;
Triangle(double side1,double side2,double side3){
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
public double getArea() {
double c=(side1+side2+side3)/2;
double s=Math.sqrt(c*(c-side1)*(c-side2)*(c-side3));
return s;
}
public boolean vaildate() {
if(side1+side2>side3&&side1+side3>side2&&side2+side3>side1)
return true;
else
return false;
}
}
class Traperoid extends Shape{
private double topSide,bottomSide,height;
Traperoid(){
}
Traperoid(double topSide,double bottomSide,double height){
this.bottomSide=bottomSide;
this.height=height;
this.topSide=topSide;
}
public double getArea() {
return (topSide+bottomSide)*height/2;
}
public boolean validate() {
if(topSide>0&&bottomSide>0&&height>0)
return true;
else return false;
}
}

第八次作业

此次作业内容是设计一个ATM类,题目给出有两家银行、六个ATM机、四个用户、八个账户、十张银行卡。题目要求是:每个账户初始金额都有一万元,同一个账户的银行卡共用账户里的钱;用户不可跨银行卡存取款、不可透支取款。我在做这次题目时,先用ArrayList把卡号都存起来,将输入的数据用split函数拆分开赋值给对应的输入数据例如卡号、密码、ATM机号、存取款金额,将这些数据同样依次存入ArrayList中,输入完成后,程序将其一轮一轮比对后按照再将其要输出的数据依次存入到ArrayList中。最后用for循环输出结果。

这次作业我有两个测试点没有过:一是取款金额超过余额,二是多人多卡存取款及查询余额。但是我在在eclips上测试各种情况都没有问题。

作业代码如下:

import java.util.*;
public class Main {
public static Scanner in=new Scanner(System.in);
static ArrayList<String> card=new ArrayList<String>();
static ArrayList<Integer> Show=new ArrayList<Integer>();
static ArrayList<Integer> cardin=new ArrayList<Integer>();
static ArrayList<String> typein=new ArrayList<String>();
static ArrayList<Double> moneyin=new ArrayList<Double>();
static ArrayList<Double> tempmoney=new ArrayList<Double>();
static ArrayList<Boolean> Card=new ArrayList<Boolean>();
static ArrayList<Boolean> Password=new ArrayList<Boolean>();
static ArrayList<Boolean> Type=new ArrayList<Boolean>();
static ArrayList<Boolean> Money=new ArrayList<Boolean>();
static ArrayList<Boolean> Bank=new ArrayList<Boolean>();
public static void main(String[] args){
String card1="6217000010041315709";
card.add(card1);
String card2="6217000010041315715";
card.add(card2);
String card3="6217000010041315718";
card.add(card3);
String card4="6217000010051320007";
card.add(card4);
String card5="6222081502001312389";
card.add(card5);
String card6="6222081502001312390";
card.add(card6);
String card7="6222081502001312399";
card.add(card7);
String card8="6222081502001312400";
card.add(card8);
String card9="6222081502051320785";
card.add(card9);
String card10="6222081502051320786";
card.add(card10);
while(true) {
boolean cardT=false;
boolean passwordT=false;
boolean typeT=false;
boolean moneyT=false;
boolean bankT=false;
String message=in.nextLine();
String[] every=message.split(" ");
if(every[0].compareTo(message)==0) {
if(every[0].compareTo("#")==0) {
show();
System.exit(0);
}
else {
for(int i=0;i<card.size();i++) {
if(every[0].compareTo(card.get(i))==0) {
cardT=true;
cardin.add(i);
if(i==0||i==1) {
tempmoney.add(Yang.tempMoney());
}
if(i==2) {
tempmoney.add(Yang2.tempMoney());
}
if(i==3) {
tempmoney.add(Guo.tempMoney());
}
if(i==4) {
tempmoney.add(Zhang.tempMoney());
}
if(i==5) {
tempmoney.add(Zhang2.tempMoney());
}
if(i==6||i==7) {
tempmoney.add(Zhang3.tempMoney());
}
if(i==8) {
tempmoney.add(Wei.tempMoney());
}
if(i==9) {
tempmoney.add(Wei2.tempMoney());
}
}
}
if(!cardT) {
cardin.add(10);
tempmoney.add(0.00);
}
Show.add(2);
Card.add(cardT);
Password.add(true);
Type.add(true);
Money.add(true);
Bank.add(true);
typein.add("0");
moneyin.add(0.00);
}
}
else {
for(int i=0;i<card.size();i++) {
if(every[0].compareTo(card.get(i))==0) {
cardT=true;
cardin.add(i);
}
}
if(!cardT) {
cardin.add(10);
}
Show.add(1);
Card.add(cardT);
if(every[1].compareTo("88888888")==0) {
passwordT=true;
}
Password.add(passwordT);
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0||every[2].compareTo("05")==0||every[2].compareTo("06")==0) {
String type=every[2];
typein.add(type);
typeT=true;
}
Type.add(typeT);
if(cardT){
if(cardin.get(Card.size()-1)>=0&&cardin.get(Card.size()-1)<=3) {//是否跨银行
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0) {
bankT=true;
}
}
if(cardin.get(Card.size()-1)>=4&&cardin.get(Card.size()-1)<=9) {
if(every[2].compareTo("05")==0||every[2].compareTo("06")==0) {
bankT=true;
}
}
Bank.add(bankT);
double money=Double.parseDouble(every[3]);
if(cardin.get(Card.size()-1)==0||cardin.get(Card.size()-1)==1) {//杨卡
if(Yang.cardmoney-money>=0) {
moneyin.add(money);
Yang.moneychange(money);
tempmoney.add(Yang.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==2) {//杨2卡
if(Yang2.cardmoney-money>=0) {
moneyin.add(money);
Yang2.moneychange(money);
tempmoney.add(Yang2.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==3) {//郭卡
if(Guo.cardmoney-money>=0) {
moneyin.add(money);
Guo.moneychange(money);
tempmoney.add(Guo.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==4) {//张卡
if(Zhang.cardmoney-money>=0) {
moneyin.add(money);
Zhang.moneychange(money);
tempmoney.add(Zhang.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==5) {//张2卡
if(Zhang2.cardmoney-money>=0) {
moneyin.add(money);
Zhang2.moneychange(money);
tempmoney.add(Zhang2.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==6||cardin.get(Card.size()-1)==7) {//张3卡
if(Zhang3.cardmoney-money>=0) {
moneyin.add(money);
Zhang3.moneychange(money);
tempmoney.add(Zhang3.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==8) {//韦卡
if(Wei.cardmoney-money>=0) {
moneyin.add(money);
Wei.moneychange(money);
tempmoney.add(Wei.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==9) {//韦2卡
if(Wei2.cardmoney-money>=0) {
moneyin.add(money);
Wei2.moneychange(money);
tempmoney.add(Wei2.tempMoney());
moneyT=true;
}
Money.add(moneyT);
}
}
}
}
}
public static void show() {
for(int i=0;i<Card.size();i++) {
if(Show.get(i)==2) {
showtwo(i);
}
else if(Show.get(i)==1){
showone(i);
}
}
}
public static void showone(int i) {
if(!Card.get(i)) {
System.out.println("Sorry,this card does not exist.");
System.exit(0);
}
if(!Type.get(i)) {
System.out.println("Sorry,the ATM's id is wrong.");
System.exit(0);
}
if(!Password.get(i)) {
System.out.println("Sorry,your password is wrong.");
System.exit(0);
}
if(!Money.get(i)) {
System.out.println("Sorry,your account balance is insufficient.");
System.exit(0);
}
if(!Bank.get(i)) {
System.out.println("Sorry,cross-bank withdrawal is not supported.");
System.exit(0);
}
if(cardin.get(i)>=0&&cardin.get(i)<=2) {
if(moneyin.get(i)<0) {
System.out.println("杨过在中国建设银行的"+typein.get(i)+"号ATM机上存款¥"+String.format("%.2f", -moneyin.get(i)));
}
else {
System.out.println("杨过在中国建设银行的"+typein.get(i)+"号ATM机上取款¥"+String.format("%.2f",moneyin.get(i)));
}
System.out.println("当前余额为¥"+String.format("%.2f",tempmoney.get(i)));
}
if(cardin.get(i)==3) {
if(moneyin.get(i)<0) {
System.out.println("郭靖在中国建设银行的"+typein.get(i)+"号ATM机上存款¥"+String.format("%.2f", -moneyin.get(i)));
}
else {
System.out.println("郭靖在中国建设银行的"+typein.get(i)+"号ATM机上取款¥"+String.format("%.2f",moneyin.get(i)));
}
System.out.println("当前余额为¥"+String.format("%.2f",tempmoney.get(i)));
}
if(cardin.get(i)>=4&&cardin.get(i)<=7) {
if(moneyin.get(i)<0) {
System.out.println("张无忌在中国工商银行的"+typein.get(i)+"号ATM机上存款¥"+String.format("%.2f", -moneyin.get(i)));
}
else {
System.out.println("张无忌在中国工商银行的"+typein.get(i)+"号ATM机上取款¥"+String.format("%.2f",moneyin.get(i)));
}
System.out.println("当前余额为¥"+String.format("%.2f",tempmoney.get(i)));
}
if(cardin.get(i)>=8&&cardin.get(i)<=9) {
if(moneyin.get(i)<0) {
System.out.println("韦小宝在中国工商银行的"+typein.get(i)+"号ATM机上存款¥"+String.format("%.2f", -moneyin.get(i)));
}
else {
System.out.println("韦小宝在中国工商银行的"+typein.get(i)+"号ATM机上取款¥"+String.format("%.2f",moneyin.get(i)));
}
System.out.println("当前余额为¥"+String.format("%.2f",tempmoney.get(i)));
}
}
public static void showtwo(int i) {
if(!Card.get(i)) {
System.out.println("Sorry,this card does not exist.");
System.exit(0);
}
else {
System.out.println("¥"+String.format("%.2f",tempmoney.get(i)));
}
}
}
class Yang{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}class Yang2{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Guo{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Zhang {
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Zhang2{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Zhang3{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Wei{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}
class Wei2{
static double cardmoney=10000.00;
public static double cardmoney() {
return cardmoney;
}
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
double temp=cardmoney;
return temp;
}
}

第九次作业

这次作业是基于第八次作业,增加了农业中国农业银行和其他四个用户和四个账户。新增的四个账户都可以透支五万元以内、贷款要扣取所需的手续费;除此之外所有银行卡都可跨银行查询、存取,但是要收取不同银行的手续费。

这次作业我只得了30分,之前在eclipse上实现了功能的代码超过了行数限制,不知道怎么改。

作业代码如下:

import java.util.*;
public class Main {
public static Scanner in=new Scanner(System.in);
static ArrayList<String> card=new ArrayList<String>();
static ArrayList<Integer> Show=new ArrayList<Integer>();
static ArrayList<Integer> cardin=new ArrayList<Integer>();
static ArrayList<String> typein=new ArrayList<String>();
static ArrayList<Double> moneyin=new ArrayList<Double>();
static ArrayList<Double> tempmoney=new ArrayList<Double>();
static ArrayList<Boolean> Card=new ArrayList<Boolean>();
static ArrayList<Boolean> Password=new ArrayList<Boolean>();
static ArrayList<Boolean> Type=new ArrayList<Boolean>();
static ArrayList<Boolean> Money=new ArrayList<Boolean>();
public static void main(String[] args){
String card1="6217000010041315709 6217000010041315715 6217000010041315718 6217000010051320007 6222081502001312389 6222081502001312390 6222081502001312399 6222081502001312400 6222081502051320785 "+
"6222081502051320786 6640000010045442002 6640000010045442003 6640000010045441009 6630000010033431001 6630000010033431008";
String[] cardsplit=card1.split(" ");
for(int i=0;i<cardsplit.length;i++) {
card.add(cardsplit[i]);
}
while(true) {
boolean cardT=false;
boolean passwordT=false;
boolean typeT=false;
boolean moneyT=false;
String message=in.nextLine();
String[] every=message.split(" ");
if(every[0].compareTo(message)==0) {
if(every[0].compareTo("#")==0) {
show();
System.exit(0);
}
else {
for(int i=0;i<card.size();i++) {
if(every[0].compareTo(card.get(i))==0) {
cardT=true;
cardin.add(i);
if(i==0||i==1) {
tempmoney.add(Yang.tempMoney());
}
if(i==2) {
tempmoney.add(Yang2.tempMoney());
}
if(i==3) {
tempmoney.add(Guo.tempMoney());
}
if(i==4) {
tempmoney.add(Zhang.tempMoney());
}
if(i==5) {
tempmoney.add(Zhang2.tempMoney());
}
if(i==6||i==7) {
tempmoney.add(Zhang3.tempMoney());
}
if(i==8) {
tempmoney.add(Wei.tempMoney());
}
if(i==9) {
tempmoney.add(Wei2.tempMoney());
}
}
}
if(!cardT) {
cardin.add(10);
tempmoney.add(0.00);
}
Show.add(2);
Card.add(cardT);
Password.add(true);
Type.add(true);
Money.add(true);
typein.add("0");
moneyin.add(0.00);
}
}
else {
for(int i=0;i<card.size();i++) {
if(every[0].compareTo(card.get(i))==0) {
cardT=true;
cardin.add(i);
}
}
if(!cardT) {
cardin.add(10);
}
Show.add(1);
Card.add(cardT);
if(every[1].compareTo("88888888")==0) {
passwordT=true;
}
Password.add(passwordT);
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0||every[2].compareTo("05")==0||every[2].compareTo("06")==0) {
String type=every[2];
typein.add(type);
typeT=true;
}
Type.add(typeT);
if(cardT){
double money=Double.parseDouble(every[3]);
if(cardin.get(Card.size()-1)==0||cardin.get(Card.size()-1)==1) {//杨卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Yang.cardmoney-money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Yang.cardmoney-0.03*money>=0) {
moneyin.add(money);
money=money+0.03*money;
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Yang.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}
else {
moneyin.add(0.00);
}
Yang.moneychange(money);
tempmoney.add(Yang.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==2) {//杨2卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Yang2.cardmoney-money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Yang2.cardmoney-0.03*money>=0) {
moneyin.add(money);
money=money+0.03*money;
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Yang2.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Yang2.moneychange(money);
tempmoney.add(Yang2.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==3) {//郭卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Guo.cardmoney-money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Guo.cardmoney-0.03*money>=0) {
moneyin.add(money);
money=money+0.03*money;
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Guo.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Guo.moneychange(money);
tempmoney.add(Guo.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==4) {//张卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Zhang.cardmoney-money>=0) {
moneyin.add(money);
money=money+0.02*money;
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Zhang.cardmoney-0.03*money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Zhang.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Zhang.moneychange(money);
tempmoney.add(Zhang.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==5) {//张2卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Zhang2.cardmoney-money>=0) {
moneyin.add(money);
money=money+0.02*money;
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Zhang2.cardmoney-0.03*money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Zhang2.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Zhang2.moneychange(money);
tempmoney.add(Zhang2.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==6||cardin.get(Card.size()-1)==7) {//张3卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Zhang3.cardmoney-money>=0) {
moneyin.add(money);
money=money+0.02*money;
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Zhang3.cardmoney-0.03*money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Zhang3.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Zhang3.moneychange(money);
tempmoney.add(Zhang3.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==8) {//韦卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Wei.cardmoney-money>=0) {
moneyin.add(money);
money=money+0.02*money;
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Wei.cardmoney-0.03*money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Wei.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Wei.moneychange(money);
tempmoney.add(Wei.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==9) {//韦2卡
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Wei2.cardmoney-money>=0) {
moneyin.add(money);
money=money+0.02*money;
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Wei2.cardmoney-0.03*money>=0) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Wei2.cardmoney-0.04*money>=0) {
moneyin.add(money);
money=money+0.04*money;
moneyT=true;
}else {
moneyin.add(0.00);
}
Wei2.moneychange(money);
tempmoney.add(Wei2.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==10||cardin.get(Card.size()-1)==11) {
if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&San.cardmoney+47500>=money) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0||San.cardmoney+47500>=1.03*money) {
moneyin.add(money);
money=money+Math.abs(0.03*money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&San.cardmoney+47500>=1.04*money) {
moneyin.add(money);
money=money+Math.abs(0.04*money);
moneyT=true;
}else {
moneyin.add(0.00);
}
San.moneychange(money);
tempmoney.add(San.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==12) {
if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Ling.cardmoney+47500>=money) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Ling.cardmoney+47500>=1.02*money) {
moneyin.add(money);
money=money+Math.abs(0.02*money);
moneyT=true;
}
else if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Ling.cardmoney+47500>=1.04*money) {
moneyin.add(money);
money=money+Math.abs(0.04*money);
moneyT=true;
}else {
moneyin.add(0.00);
}
Ling.moneychange(money);
tempmoney.add(Ling.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==13) {
if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Qiao.cardmoney+47500>=money) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Qiao.cardmoney+47500>=1.02*money) {
moneyin.add(money);
money=money+Math.abs(0.02*money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Qiao.cardmoney+47500>=1.03*money) {
moneyin.add(money);
money=money+Math.abs(0.03*money);
moneyT=true;
}else {
moneyin.add(0.00);
}
Qiao.moneychange(money);
tempmoney.add(Qiao.tempMoney());
Money.add(moneyT);
}
if(cardin.get(Card.size()-1)==14) {
if(every[2].compareTo("07")==0||every[2].compareTo("08")==0||every[2].compareTo("09")==0||every[2].compareTo("10")==0||every[2].compareTo("11")==0&&Hong.cardmoney+47500>=money) {
moneyin.add(money);
moneyT=true;
}
else if(every[2].compareTo("01")==0||every[2].compareTo("02")==0||every[2].compareTo("03")==0||every[2].compareTo("04")==0&&Hong.cardmoney+47500>=1.02*money) {
moneyin.add(money);
money=money+Math.abs(0.02*money);
moneyT=true;
}
else if(every[2].compareTo("05")==0||every[2].compareTo("06")==0&&Hong.cardmoney+47500>=1.03*money) {
moneyin.add(money);
money=money+Math.abs(0.03*money);
moneyT=true;
}else {
moneyin.add(0.00);
}
Hong.moneychange(money);
tempmoney.add(Hong.tempMoney());
Money.add(moneyT);
}
}
}
}
}
public static void show() {
for(int i=0;i<Card.size();i++) {
if(Show.get(i)==2) {
showtwo(i);
}
else if(Show.get(i)==1){
showone(i);
}
}
}
public static void showone(int i) {
if(!Card.get(i)) {
System.out.println("Sorry,this card does not exist.");
System.exit(0);
}
if(!Password.get(i)) {
System.out.println("Sorry,your password is wrong.");
System.exit(0);
}
if(!Type.get(i)) {
System.out.println("Sorry,the ATM's id is wrong.");
System.exit(0);
}
if(!Money.get(i)) {
System.out.println("Sorry,your account balance is insufficient.");
System.exit(0);
}
String bankname="";
if(typein.get(i).compareTo("01")==0||typein.get(i).compareTo("02")==0||typein.get(i).compareTo("03")==0||typein.get(i).compareTo("04")==0) {
bankname="建设";
}
else if(typein.get(i).compareTo("05")==0||typein.get(i).compareTo("06")==0) {
bankname="工商";
}
else {
bankname="农业";
}
String name="";
if(cardin.get(i)>=0&&cardin.get(i)<=2) {
name="杨过";
}
if(cardin.get(i)==3) {
name="郭靖";
}
if(cardin.get(i)>=4&&cardin.get(i)<=7) {
name="张无忌";
}
if(cardin.get(i)>=8&&cardin.get(i)<=9) {
name="韦小宝";
}
if(cardin.get(i)>=10&&cardin.get(i)<=11) {
name="张三丰";
}
if(cardin.get(i)==12) {
name="令狐冲";
}
if(cardin.get(i)==13) {
name="乔峰";
}
if(cardin.get(i)==14) {
name="洪七公";
}
if(moneyin.get(i)<0) {
System.out.println("业务:存款 "+name+"在中国"+bankname+"银行的"+typein.get(i)+"号ATM机上存款¥"+String.format("%.2f", -moneyin.get(i)));
}
else {
System.out.println("业务:取款 "+name+"在中国"+bankname+"银行的"+typein.get(i)+"号ATM机上取款¥"+String.format("%.2f",moneyin.get(i)));
}
System.out.println("当前余额为¥"+String.format("%.2f",tempmoney.get(i)));
}
public static void showtwo(int i) {
if(!Card.get(i)) {
System.out.println("Sorry,this card does not exist.");
System.exit(0);
}
else {
System.out.println("业务:余额查询 ¥"+String.format("%.2f",tempmoney.get(i)));
}
}
}
class Yang{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}class Yang2{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Guo{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Zhang {
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Zhang2{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Zhang3{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Wei{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Wei2{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class San{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Ling{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Qiao{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}
class Hong{
static double cardmoney=10000.00;
public static void moneychange(double money) {
cardmoney=cardmoney-money;
}
public static double tempMoney() {
return cardmoney;
}
}

------------恢复内容结束------------

posted @ 2021-06-08 22:30    阅读(48)  评论(0)    收藏  举报