开学第一次测试

今天是开学第一天的测试,测试的内容是暑假在家自学java的情况,以下是题目要求:

------------------------------------------------------------------------------------------------------------------------------------------------------

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分)

 

三、功能要求:(12分)

该程序模拟ATM的功能设计,当用户插卡后显示,输入密码界面,用户输入正确密码(用户输入错误密码,则提示该卡已被锁定,无法操作),则弹出选择界面:存款、取款、转账汇款、修改密码、查询余额。

注意:对accountinformation.txt和accountlist.txt数据库中的信息进行读写操作时,必须调用get()和set()方法,否则,出现一处扣除0.5分,直至扣完为止。

(1)  需要在程序开始的注释中注明班级、学号、姓名。(1分)

(2)  定义AccountManager类实现下列要求

(3)程序开始运行模拟用户插卡显示用户输入账号功能;(1分)

①界面设计:

    ***************************************************************

欢迎使用中国工商银行自动柜员系统

****************************************************************                      请输入您的账号:

                         

****************************************************************

②功能设计

用户在该界面输入账号信息,如果输入账号位数有误,提示“该卡不是工行卡”,如果输入账号信息在accountinformation.txt不存在,则提示“该账号不存在”,账号输入不成功,系统提示错误信息后返回输入账号界面;输入账号成功后,系统跳转到输入密码界面。

 

(4)用户输入密码功能;(1分)

①界面设计:

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************                     请输入您的密码:

                         

****************************************************************

②功能设计

用户在该界面输入账号密码信息,如果密码录入错误(出现位数不对或与文件中该账号对应的密码不服),则提示“密码录入错误”,如果密码录入三次错误,则提示“该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理”。单次密码输入不成功,系统提示错误信息,返回输入密码界面;三次密码输入不成功,系统提示错误信息,返回输入账号界面,密码输入成功,系统跳转到主界面。

 

(5)系统主界面如下图所示,选择相应的数字执行相应的功能。(1分)

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

1、     存款;

2、     取款;

3、     转账汇款;

4、     修改密码;

5、     查询余额;

****************************************************************

           

(6)存款功能:(2分)

存款操作流程:

①系统进入存款界面:

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请输入存款金额;

      

****************************************************************

②用户在该界面输入存款金额后,如果输入不是正整数,提示用户“输入金额有误,返回取款界面;输入字母“q”,则返回系统输入账号界面,表示退出柜员机操作;输入正整数,则跳转到下图存款成功界面。

 

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户存款操作成功。

当前账户余额为:XXXX元

****************************************************************

③存款成功后将该条记录作为操作流水信息记录到accountlist.txt文件中,并修改accountinformation.txt中的账户余额。

④点击“q”键,退回系统录入账号界面

(7)取款功能:则显示100元、500元、1000元、1500元、2000元、5000元、其他金额、退卡、返回操作供用户选择(3分)

取款流程设计:

①  系统进入取款界面:

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************当前账户每日可以支取2万元。

1、100元

2、500元

3、1000元

4、1500元

5、2000元

6、5000元;

7、其他金额

8、退卡

9、返回

****************************************************************

②用户选择1-6选项时,判断账户余额是否不小于录入金额,如果小于,则提示“账户余额不足”,如果大于,则跳转到下图取款成功界面。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户取款操作XXXX元成功。

当前账户余额为:XXXX元

****************************************************************

      用户选择7选项时,显示录入金额界面

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请输入取款金额:

****************************************************************

判断账户余额是否不小于录入金额,如果小于,则提示“账户余额不足”,如果大于,则跳转到下图取款成功界面。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户取款操作XXXX元成功。

当前账户余额为:XXXX元

****************************************************************

④取款成功后将该条记录作为操作流水信息记录到accountlist.txt文件中,并修改accountinformation.txt中的账户余额。

⑤用户选择“8”选项时,系统跳转到输入账户界面。

⑥用户选择“9”选项时,系统跳转到系统主界面。

(8)转账汇款功能:(1分)

系统流程如下所示:

①系统进入转账主界面

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请输入转账账户;

       

****************************************************************

②用户在该界面输入判断该账户是否存在accountinformation.txt文件中,如果没有提示“该账户不存在”,如果有则跳转到转账金额界面。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请输入转账金额;

      

****************************************************************

③判断账户余额是否不小于录入金额,如果小于,则提示“账户余额不足”,如果大于,则跳转到下图转账确认成功界面。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请确认是否向*XX(将转账的用户名称第一个用*代替,其余正常显示)转账XXXX元。

****************************************************************

④单击“N”表示不确认转账,系统跳转到系统主界面;单击“Y”表示确认转账,系统跳转到转账成果界面,。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户向*XX成功转账XXXX元。

当前账户余额为:XXXX元

****************************************************************

⑤转账汇款成功后将该条记录作为操作流水信息记录到accountlist.txt文件中,并修改accountinformation.txt中的账户余额。

⑥点击“q”键,退回系统录入账号界面

(9)修改密码功能:(1分)

修改密码操作流程:

①  系统进入修改密码界面:

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

请输入当前密码:

请输入修改密码:

请输入确认密码:

****************************************************************

②    当前密码录入错误,提示“当前密码录入错误”,系统返回修改密码界面,清空数据重新录入;修改后密码与确认密码不一致,提示“修改密码与确认密码不一致”,系统返回修改密码界面,清空数据重新录入。

③    密码修改成功,系统跳转到密码修改成功界面。

***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户密码修改成功

****************************************************************

④  密码修改成功后将该条记录作为操作流水信息记录到accountlist.txt文件中,并修改accountinformation.txt中的账户密码。

⑤  点击“q”键,退回系统录入账号界面

(10)查询功能:(1分)

查询操作流程:

①系统显示当前用户余额和操作流水信息:

    ***************************************************************

欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统

****************************************************************

当前账户余额为:XXXX元

账户清单信息为:

1、操作日期    操作类型(不用显示数字) 操作金额

2、操作日期    操作类型(不用显示数字) 操作金额

3、…………………………………………………………

****************************************************************

 

②点击“q”键,退回系统录入账号界面。

整个系统的内容很多,但是自己相关的用法都是现通过百度搜索的方法,所以自己代码的速度很慢,最后完成的功能也很少。

以下是我当时编辑的源代码:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

//      牛振鹏  信1905-1  20194007

package First;
import java.util.Scanner;
class Account{                                                                        // 学生类
    private String [] accountID=new String[] {"1234567"};//存储学生的用户账号
    private String accountname; //存储账户的名称
    private double operatedate;//存储操作的时间
    private int operatetype; //存储操作账户的类型
    private double networkscore=123456; //用户密码
    private double datebasescore=0; //存储账户余额
    void setaccountID(String a[],int b)   // 设置初始账号
    {
        int i;
        for(i=0;i<b;i++)
        {
            accountID[i]=a[i];
            
        }
    }
    String getaccountID()   // 返回初始账号
    {
        return accountID[0];
    }
    void setoperatedate(double a) {   // 设置操作的时间
        
        operatedate=a;
    }
double setoperatedate() {   // 返回操作的时间
        
        return operatedate;
    }
void setaccountname(String a) {   // 设置账号名称
        
        accountname=a;
    }
String setaccountname() {   // 返回账号名称
    
    return accountname;
}
void setoperatetype(int a) {   // 设置操作账户的类型
    
    operatetype=a;
}
int operatetype() {   // 返回操作账户的类型
    
    return operatetype;
}
void setnetworkscore(double a) {   // 设置用户密码
    
    networkscore=a;
}
double getnetworkscore() {   // 返回用户密码
    
    return networkscore;
}
void setdatebasescore(double a) {   // 设置存储账户余额
    
    datebasescore=a;
}

double getdatebasescore() {   // 返回存储账户余额
    
    return datebasescore;
}
}
class AccountManager extends Account{
    Scanner cn=new Scanner(System.in);
    public void inaccountID() {             //  输入账号
     System.out.println("*************************************");
     System.out.println("                    欢迎使用中国工商银行自动取款系统                           ");
     System.out.println("*************************************");
     System.out.println("                          请输入您的账号:               ");
     System.out.println("*************************************");
    
    }
    public void  judaccountID() {   // 判断账号正误
        
         Scanner input = new Scanner(System.in);
        
         String  accountone = input.nextLine();
         int length = accountone.length();
         if(length!=8)
             {System.out.println("该卡不是工行卡");
             System.out.println("                          请输入您的账号:               ");
             judaccountID();
             }
            
         if(accountone!=getaccountID()) {
             System.out.println("该账号不存在");
             System.out.println("                          请输入您的账号:               ");
             judaccountID();
         }
         if(accountone==getaccountID()) {
             innetworkscore();
         }
            
            
            
            
        
    
    }
    public void  innetworkscore() {  //  输入密码
        
        System.out.println("*************************************");
         System.out.println("                    欢迎使用中国工商银行自动取款系统                           ");
         System.out.println("*************************************");
         System.out.println("                          请输入您的密码:               ");
         System.out.println("*************************************");
        
    }
    public void  judworkscore() {  //  判断密码正误
        
        Scanner input = new Scanner(System.in);
         int n=0;
         double  a = input.nextDouble();
         double length = (a+"").length();
         if(length!=6||a!=123456)
             {System.out.println("密码录入错误");
                 n++;
                 System.out.println("                          请输入您的密码:               ");
                 judworkscore();
                 }
         if(n==3) { System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理 ");
         System.out.println("                          请输入您的账号:               ");
         judaccountID();
                                                                       }
         if(length==6&&a==123456) {  
             account();
            
         }
    }
    public void account() {             //  显示主界面
        System.out.println("**************************************************");
        System.out.println("                    欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统                       ");
        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("*************************************************");
       }
    public void store() {             //  存款显示
           System.out.println("*************************************");
           System.out.println("                    欢迎使用中国工商银行自助柜员系统                           ");
           System.out.println("*************************************");
           System.out.println("                          请输入存款金额:               ");
           System.out.println("*************************************");
          }
    public void storewin() {             //  存款成功显示
          System.out.println("*************************************");
          System.out.println("                    当前账户存款操作成功                           ");
          System.out.println("*************************************");
          System.out.println("                          当前账户余额为:XXXX元               ");
          System.out.println("*************************************");
         }
    public void qukuan() {             //  取款显示
          System.out.println("*************************************");
          System.out.println("                    欢迎使用中国工商银行自助柜员系统                           ");
          System.out.println("*************************************");
          System.out.println("                          当前账户每日可以支取2万元:               ");
          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、返回               ");
         }
    public void zhuan() {  }
    public void xiugai() {  }
    public void find() {   }
    
}



public class Firsthello{
        public static  void main(String[] args) {
            int n;
            AccountManager account=new AccountManager();
            Account stu=new Account();
            account.inaccountID();
            Scanner cn=new Scanner(System.in);
            n=cn.nextInt();
            while(n>=1&&n<=5) {
            switch(n) {
            case 1:{
                account.store();break;
            }
            case 2:{
                
                account.qukuan();
                break;
            }
            case 3:{
                
                account.zhuan();
                break;
            }
            case 4:{
                
                account.xiugai();
                break;
            }
            case 5:{
                
                account.find();
                break;
            }                
            }
            
            
            
        }
    
    
    
        }}

posted on 2020-09-23 01:56  风中明月  阅读(127)  评论(0编辑  收藏  举报