天天看点

Java测试报告

测试题目:ATM机

程序说明:本程序中共包含了两个类,分别为Account类和AccountManager类
Account类代码:
public class Account {
 private String accountID;//用户账号
  private String accountname;//账户名
  private String operatedate;//操作时间
  private int operatetype;//储存操作用户类型
  private String accountpassword;//密码
  private int accountbalance;//余额
  private int amount;//流水金额
  public void setaccountID(String accountID) {
    this.accountID=accountID;
  }
  public String getaccountID() {
    return accountID;
  }
  public void setaccountname(String accountname) {
    this.accountname=accountname;
  }
  public String getaccountname() {
    return accountname;
  }
  public void setoperatedate(String operatedate) {
    this.operatedate=operatedate;
  }
  public String getoperatedate() {
    return operatedate;
  }
  public void setoperatetype(int operatetype) {
    this.operatetype=operatetype;
  }
  public int getoperatetype() {
    return operatetype;
  }
  public void setaccountpassword(String accountpassword) {
    this.accountpassword=accountpassword;
  }
  public String getaccountpassword() {
    return accountpassword;
  }
  public void setaccountbalance(int accountbalance) {
    this.accountbalance=accountbalance;
  }
  public int getaccountbalance() {
    return accountbalance;
  }
  public void setamount(int setamount) {
    this.amount=amount;
  }
  public int getamount() {
    return amount;
  }
  public static void main(String[] args) {
    // TODO 自动生成的方法存根 }
}
AccountManager类代码:
import java.util.ArrayList;
import java.util.Scanner;public class AccountManager {//信1905-2-20193955-章英杰
  public void menu(ArrayList<Account> list) {
    String accountID;
    String accountpassword;
    Account user=new Account();
    int i,j=0,k=0,x=0;
    System.out.println("*****************************************************");
    System.out.println("             欢迎使用中国工商银行自动柜员系统");
    System.out.println("**********************请输入您的账号:****************");
    System.out.println("*****************************************************");
    Scanner sc=new Scanner(System.in);
    accountID=sc.next();
    int length=accountID.length();
    System.out.println(length);
    if(length!=8) {
      System.out.println("该卡不是工行卡");
    }
    else {
      for(i=0;i<list.size();i++) {
        user=list.get(i);
        if(accountID.equals(user.getaccountID())) {
          j=1;
          System.out.println("账号正确,正在进入系统.......");
        }
        if(j==1)
          break;
      }
      if(j==0) {
        System.out.println("该用户不存在");
      }
    }
    if(j==1) {
      System.out.println("*****************************************************");
      System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
      System.out.println("**********************请输入您的密码:****************");
      System.out.println("*****************************************************");
      accountpassword=sc.next();
      for(i=0;i<list.size();i++) {
        user=list.get(i);
        if(accountpassword.equals(user.getaccountpassword())) {
          k=1;
          System.out.println("密码正确,正在进入主界面.....");
        }
        if(k==1)
          break;
      }
      /*if(k==0) {
        System.out.println("密码错误,请您再次输入:");
        accountpassword=sc.next();
        for(i=0;i<list.size();i++) {
          user=list.get(i);
          if(accountpassword.equals(user.getaccountpassword())) {
            k=1;
            System.out.println("密码正确,正在进入主界面.....");
          }
        }
      }*/
    }
    if(k==1) {
      int choice;
      int money,money1;
      System.out.println("*****************************************************");
      System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
      System.out.println("****************************************************");
      System.out.println("1.存款");
      System.out.println("2.取款");
      System.out.println("3.转账汇款");
      System.out.println("4.修改密码");
      System.out.println("5.查询余额");
      System.out.println("*****************************************************");
      System.out.println("请选择您要执行的操作:");
      choice=sc.nextInt();
      switch(choice) {
         case 1:
            System.out.println("*****************************************************");
          System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
          System.out.println("****************************************************");
          System.out.println("请输入存款金额:");
          System.out.println("****************************************************");
          money=sc.nextInt();
          money=money+user.getaccountbalance();
          user.setaccountbalance(money);
          System.out.println("*****************************************************");
          System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
          System.out.println("****************************************************");
          System.out.println("当前用户存款操作成功。");
          System.out.println("当前账户余额为:"+user.getaccountbalance());
          System.out.println("****************************************************");

         case 2:
            System.out.println("*****************************************************");
          System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
          System.out.println("****************************************************");
          System.out.println("当前账户每日可支取2万元,请选择取款金额:");
          System.out.println("****************************************************");
          System.out.println("1.100");
          System.out.println("2.500");
          System.out.println("3.1000");
          System.out.println("4.1500");
          System.out.println("5.2000");
          System.out.println("6.5000");
          System.out.println("7.其他金额");
          System.out.println("8.退卡");
          System.out.println("9.返回");
          choice=sc.nextInt();
          switch(choice) {
          case 1:
            if(user.getaccountbalance()<100) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-100;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款100元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 2:
            if(user.getaccountbalance()<500) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-500;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款500元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 3:
            if(user.getaccountbalance()<1000) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-1000;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款1000元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 4:
            if(user.getaccountbalance()<1500) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-1500;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款1500元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 5:
            if(user.getaccountbalance()<2000) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-2000;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款2000元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 6:
            if(user.getaccountbalance()<5000) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-5000;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款5000元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          case 7:
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("请输入取款金额:");
            System.out.println("****************************************************");
            money1=sc.nextInt();
            if(user.getaccountbalance()<money1) {
              System.out.println("余额不足");
            }
            else {
            money=user.getaccountbalance()-money1;
            user.setaccountbalance(money);
            }
            System.out.println("*****************************************************");
            System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
            System.out.println("****************************************************");
            System.out.println("当前账户取款"+user.getaccountbalance()+"元成功");
            System.out.println("当前用户余额为:"+user.getaccountbalance());
            System.out.println("****************************************************");
          }
         case 3:
            System.out.println("*****************************************************");
          System.out.println("             欢迎"+user.getaccountname()+"使用中国工商银行自助柜台系统");
          System.out.println("****************************************************");
          System.out.println("请输入转账账户:");
          System.out.println("****************************************************");
      }
    }
  }
  public static void main(String[] args) {
    Scanner Sc = new Scanner(System.in);
    int choice;
    int quit = 1;
    String c;
    AccountManager temp = new AccountManager();
    ArrayList<Account> array = new ArrayList<Account>();
    String accountID;//用户账号
    String accountname;//账户名
    String operatedate;//操作时间
    int operatetype;//储存操作用户类型
    String accountpassword;//密码
    int accountbalance;//余额
    int amount;//流水金额
    System.out.println("请创建5个账户信息:");
    for(int i=0;i<5;i++)
    {
      Account user=new Account();
      System.out.println("请输入第"+(i+1)+"名账户的账号:");
      accountID=Sc.next();
      user.setaccountID(accountID);
      System.out.println("请输入第"+(i+1)+"名账户名:");
      accountname=Sc.next();
      user.setaccountname(accountname);
      System.out.println("请输入第"+(i+1)+"名用户密码:");
      accountpassword=Sc.next();
      user.setaccountpassword(accountpassword);
      System.out.println("请输入第"+(i+1)+"名用户余额:");
      accountbalance=Sc.nextInt();
      user.setaccountbalance(accountbalance);
      array.add(user);
    }
    temp.menu(array);
    System.out.println("请输入q返回系统录入账号界面:");
    Scanner sc=new Scanner(System.in);
    c=sc.next();
    if(c.equals("q")) {
      temp.menu(array);
    } }      

}

测试截图:

Java测试报告
Java测试报告
Java测试报告
Java测试报告
Java测试报告
Java测试报告

 Java测试报告:

         在今天的Java课堂测试中,主要进行了对“ATM机”功能的编写,在编写程序的过程中我发现了自己在Java学习方面存在的一些问题,主要分为以下几个方面:

文件操作(I/O)

文件操作一直是我在计算机学习中的一个弱项,在学习C语言以及C++的时候,文件操作就是我的一个弱项,在文件操作的过程中,我主要对文件的读写存在一些问题,在文件读写的过程中,总数出现读取文件失败以及写入文件的数据出现乱码的现象。通过在网上查询资料的学习过程,我总结了文件操作方面相对重要的知识点如下:

  1. 输入流:InputStream类是字节输入流的抽象类,常用的一些方法有:

raed()方法:从输入流中读取数据的下一个字节

reset()方法:将输入指针返回到当前所做标记处

skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数

markSupported()方法:如果当前流支持mark()/reset()操作就返回true

  1. 输出流:outputStream类是字节输入流的抽象类,常用的一些方法有:

write(int b)方法:将指定的字节写入此输出流

write(byte[]b)方法:将b个字节从指定的byte数组写入此输出流。

flush()方法:彻底完成输出并清空缓存区

  1. 文件的创建:new File(String文件名)

            new File(String 父路径,String 子路径)

            new File(File 父路径对象,String 子路径字符串)

  1. FileInputStream类
  2. FileInputStream(String name):使用给定的文件名name创建一个FileInputStream类对象
  3. FileInputStream(File file):使用File对象创建FileInputStream对象
  4. FileoutputStream类方法与FileInputStream类相同

       文件操作在编程语言中占有非常重要的地位,尤其是在数据存储方面,文件操作可以很方便的存储数据。在今天的Java测试程序中就多次运用到了文件操作,借此来进行数据的增、删、改、查;由于我之前并没有好好复习文件操作,所以在这方面的分数并没有拿到;然而,在数据的增、删、改、查方面,除了可以使用文件操作之外,还有一种十分简洁便利的方法,那就是使用集合类。很多人都不太了解集合类,觉得他很复杂,却忽略了它在数据操作方面十分的便利快捷。集合类其实可以被抽象为容器,而提到容器就很容易想到数组,集合类与数组的不同之处是,数组的长度是固定的,而集合类的长度是可以改变的;数组主要用来存放基本类型的数据,集合主要用来存放对象的引用。常用的集合主要有List集合、Set集合和Map集合,其中List集合、Set集合继承了Collection接口。Collection接口是层次结构中的根接口,里面包含了一些十分快捷便利的方法,例如add(E e)将指定的对象添加到该集合中,remove(Object o)将指定的对象从集合中移除,size()返回int型值,获取该集合中的元素个数;List接口继承了Collection,因此包含了Collection中所有的方法,除此之外,List接口还定义了get(int index)方法和set(int index,Object obj)方法,分别用于获得指定索引位置元素和将指定索引位置的对象修改为指定对象;List接口中的实现类主要有ArrayList与LinkedList,在今天的程序中我就主要使用了ArrayList实现类,在AccountManager类中定义的函数参数为集合类ArrayList的对象array,集合类中元素类型为Account类,借此来更方便的实现数据的存储、修改以及删除。