• 开学测试 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;  } }

  • 相关阅读:
    C#多态联系之虚方法
    FileStream 操作文件复制
    [Android] Android 用于异步加载 ContentProvider 中的内容的机制 -- Loader 机制 (LoaderManager + CursorLoader + LoaderManager.LoaderCallbacks)
    [Android] Android 异步定时任务实现的三种方法(以SeekBar的进度自动实现为例)
    [Android] Android Butterknife 8.8.1 在 Activity 和 Fragment 、 Adapter 中的使用
    [Android] Android v4包CompoundButtonCompatLollipop.class重复问题
    [Android] Android 常见第三方库汇总地址
    [Android] Android ViewPager 中加载 Fragment的两种方式 方式(二)
    [Android] Android ViewPager 中加载 Fragment的两种方式 方式(一)
    [Android] Android : lambda expressions are not supported at this language level(需设置project language level)
  • 原文地址:https://www.cnblogs.com/dty602511/p/13721246.html
Copyright © 2020-2023  润新知