开学测试 9.22

题目:

数据结构测试要求:(8分)

ATM机的账户记录Account有账户的唯一性标识(8个数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0)。

1、定义Account类,其中包括七个私有变量(accountID,accountname,operatedate,operatetype,accountpassword, accountbalance,)。(3分)

各成员的含义如下:

变量accountID为字符串类型String,用于存储学生的用户账号(由八位数字组成)。

变量accountname为字符串类型String,用于存储账户的名称。

变量operatedate为字符串类型String,用于存储操作的时间,由十位字符组成,显示格式为“2018-09-20”。    

变量operatetype为int类型,用于存储操作账户的类型,具体描述为“1”表示存款,“2”表示取款,“3”表示转账汇款,“4”表示修改账户密码,“5”表示查询余额。

变量accountpassword为字符串类型String,用于用户密码,由六位数字组成。

变量accountbalance为整数类型int,用于存储账户余额,缺省为0。

变量amount为整数类型int,表示操作流水金额。

2、对每个变量定义get()(读取变量信息)和set()(设置变量信息)的方法。(3分)

3、定义accountinformation.txt作为账户基本信息库,基本信息包括accountID,accountname,accountpassword, accountbalance,要求事先实现至少存储五个账户的信息,定义accountlist.txt作为账户操作流水信息数据库,操作流水信息包括(accountID,accountname,operatedate,operatetype, amount)。(要求将学号作为帐号,将考生信息作为第一条记录)。(2分)

AccountManager类

package ATMtest;

import java.util.Scanner;

public class AccountManager {    

public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        String accountID = "20193941"; // 卡号       

  int accountpassword = 123456; // 密码     

    boolean flag = true; // 声明布尔类型变量      

   double accountbalance = 0;// 余额

        // 界面       

  System.out.println("*************************************************************** " +           "欢迎使用中国工商银行自动柜员系统 " +           "****************************************************************      ");

        /** 用于进行登录的次数限制止 **/         for (int i = 1; i <= 3; i++) {          

   System.out.println("请输入您的账号:");         

    String inputCard = input.next();          

   System.out.println("请输入您的密码:");     

        int inputPwd = input.nextInt();

            // 验证账号和密码        

     if (inputCard.equals(accountID) && inputPwd == accountpassword) {          

       flag = true;                 break;             } else

{                 if (i <= 2) {                

     System.out.println("对不起,密码输入不正确,你还有" + (3 - i) + "次机会!");                 }

else {                     System.out.println("对不起,您的卡已被锁定!");            

         break;                 }          

       flag = false;             }     

    }            

   /** 登录成功后选择功能 */      

   if (flag) {             char answer = 'y';             while (answer == 'y')

{                 System.out.println("请选择功能:1.存款    2.取款    3.转账汇款    4.修改密码   5.查询余额");    

             int choice = input.nextInt();        

         switch (choice) {          

       case 2:                     // 执行取款操作           

          System.out.println("--->取款");                     System.out.println("请输入取款金额:");                     double getMoney = input.nextDouble();                     if (getMoney > 0) {                         if (getMoney <= accountbalance) {                             if (getMoney % 100 == 0) {                                 System.out.println("请取走您的钞票!余额为¥" + (accountbalance - getMoney));                             } else {                                 System.out.println("对不起,不能取零钱!");                             }                         } else {                             System.out.println("对不起,余额不足!");                         }                     } else {                         System.out.println("请输入正确的金额:");                     }

                    break;                 case 1:                     // 执行存款操作                     System.out.println("--->存款");                     System.out.println("请把钞票整理后放入存钞口:");                     double saveMoney = input.nextDouble();                     if (saveMoney > 0 && saveMoney <= 10000) {                         if (saveMoney % 100 == 0) {                          accountbalance += saveMoney;                             System.out.println("存款成功!余额为¥" + accountbalance);                         } else {

                            double backMoney = saveMoney % 100;                             accountbalance = saveMoney + accountbalance - backMoney;                             System.out.println("存款成功!余额为¥" + accountbalance);                             System.out.println("请取走零钱¥" + backMoney);                         }                     } else if (saveMoney > 10000) {                         System.out.println("一次最多存入一万元,请分批存入!");                     } else {                         System.out.println("存入的钞票是假钞,无效没收!");                     }                     break;                 case 5:                     // 执行查询余额                     System.out.println("--->查询余额");                     System.out.println("您卡上的余额是:" + accountbalance);                     break;                 case 3:                     // 执行转账操作                     System.out.println("--->转账");                     System.out.println("请输入转账金额:");                     double goMoney = input.nextDouble(); // 转账金额                     if (goMoney > 0) {                         if (goMoney <= accountbalance) {                             System.out.println("转账成功!余额为¥" + (accountbalance - goMoney));                         } else {                             System.out.println("对不起,请确保卡上有足够的余额!");                         }

                    } else {                         System.out.println("转账失败!请输入正确的金额:");                     }                     break;                 case 4:                     // 执行退出操作                     // System.out.println("--->退出");                     System.out.println("谢谢您的使用!");                     return;                 default:                     System.out.println("对不起,您选择的功能有误!");                     break;                 }// switch end                 System.out.println("继续吗?y/n");                 answer = input.next().charAt(0);

            } // while end             System.out.println("谢谢您的使用!");

        } }}

Account类

package ATMtest;

//信1905-1 20193941 王伊念

public class Account {  private String accountID = "20193941";//定义用户ID  private String accountname;//存储账户的名称  private String operatedate;//存储操作的时间  private int operatetype;//存储操作账户的类型  private int accountpassword= 123456;//用户密码  private double accountbalance= 0;//存储账户余额  private int amount;//操作流水金额  //读取,设置   public Account() {    super();   }   public Account(String accountID, int accountpassword, double accountbalance) {    super();    this.accountID = accountID;    this.accountpassword = accountpassword;    this.accountbalance = accountbalance;   }  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(int accountpassword)  {   this.accountpassword=accountpassword;  }  public int getaccountpassword()  {   return accountpassword;  }  public void setaccountbalance(double accountbalance)  {   this.accountbalance=accountbalance;  }  public double getaccountbalance()  {   return accountbalance;  }  public void setamount(int amount)  {   this.amount=amount;  }  public int getamount()  {   return amount;  } }

原文地址:https://www.cnblogs.com/dty602511/p/13721246.html