zoukankan      html  css  js  c++  java
  • 开学测试

    JAVA的第一堂课,我们如约到教室测试,一共四节课时间,测试内容是做银行提款机的程序。

           我先把题目中要求的类和主函数写出来,然后把之前写的学生管理系统的开始界面的语句改了改,然后按照题目中的顺序写程序。

           首先是按照要求写了私有变量,以及私有变量的set和get函数(后加的,当时根本没时间写),然后就是主函数在主函数中我写的不多,主要是调用核对账号、密码以及显示主界面的函数。

           在核对账号的函数中,用一个变量存储客户输入的账号,然后打开储存客户账号的文件,按行查找账号,当找到账号就把那一行的数据赋值给相应的变量,然后主函数调用核对密码的函数,如果账号不对,回到主函数依旧调用核对账号的函数,直到账号输入正确。

       

           在核对密码的函数中,用一个变量存储客户输入的密码,如果密码输入正确,则回到主函数,调用主界面函数,如果不正确,则由time变量存储输入账号次数,若达到三次则锁定,回到输入账号的界面。

     

           进入主界面函数后,显示可以进行的选项。在主函数中利用switch语句判断、调用对应的函数。

     

           在存款函数中用户输入错误金额会提示出错,然后回到存款界面,如果输入q则回到输入账号界面,输入正确金额后,找到对应的账号,加金额写道临时文件中,最后把临时文件写入到存储文件中,然后在流水文件中写入账户和操作。

     

     

    取款函数与存款函数类似,用switch语句判断取款金额。

     

           转账汇款函数与前面几个函数基本相同,需要注意的是两个账户的金额都要修改。

     

           修改密码,确认原密码和两次新密码之后将修改后的密码写到文件中,若其中出现错误则跳回修改密码界面。

     

           查询函数,在流水文件中找到相应账户的信息并输出。

     

     本次测试成绩为19分,原因在于没有将代码完善,一些功能还会出错,所以我认识到敲代码不仅仅要准确也要有速度。而这些的基础就在于程序员对语言、结构的掌握。我以后要经常敲代码,多熟悉代码。

    以下是完整的程序代码。

    package test;
    import java.util.*;
    //信 1905-1 20194171 常金悦
      
    import java.io.*;
      
    public class AccountManager {
           
           private String accountID;               //用户账号
           private String accountname;             //账户名称
           private String operatedate;             //操作时间   2018-09-20
           private int operatetype;                //操作类型
           private String accountpassword;         //用户密码
           private int accountbalance;             //账户余额
           private int amount;                     //流水金额
           
           String getaccountID(){return accountID;}
           void setaccountID(String s){accountID=s;}
           
           String getaccountname(){return accountname;}
           void setaccountname(String s){accountname=s;}
           
           String getoperatedate(){return operatedate;}
           void setoperatedate(String s){operatedate=s;}
           
           int getoperatetype(){return operatetype;}
           void setoperatetype(int s){operatetype=s;}
           
           String getaccountpassword(){return accountpassword;}
           void setaccountpassword(String s){accountpassword=s;}
           
           int getaccountbalance(){return accountbalance;}
           void setaccountbalance(int s){accountbalance=s;}
           
           int getamount(){return amount;}
           void setamount(int s){amount=s;}
                  
           public static void main(String[] args)throws IOException{
                  AccountManager acc=new AccountManager();
                  System.out.println("*******************************");
                  System.out.println(" 欢迎使用中国工商银行自动柜员系统");
                  acc.mmaaiinn();
           }
           void mmaaiinn()throws IOException{
                  int a=0;
                  while(a==0){
                         System.out.println("*******************************");
                      System.out.println("请输入您的账号:");
                      String Id=zhanghao();
                      if(Id.equals("false")){}
                      else {
                             a=mima(Id);
                             if(a==1) jiemian();
                         }
                    }
           }
           
           public String zhanghao()throws IOException{
                  Scanner input = new Scanner(System.in,"UTF-8");
                  String ID=input.next();
                  
                  InputStream is = new FileInputStream("accountinformation.txt");
            Scanner ss = new Scanner(is,"UTF-8");
            int t=0;
            while(ss.hasNext()){
                   String line = ss.nextLine();
                   String[] txt = line.split(",");
                   String id = txt[0];
                   if(id.equals(ID)){
                       accountID=txt[0];
                        accountpassword=txt[1];
                        accountbalance=Integer.valueOf(txt[2]);
                          t=-1;
                          break;
                   }
            }
            if(t==0){
                   System.out.println("该卡不是工行卡");
                   return "false";
            }
            else return ID;
           }
           
         public int mima(String Id)throws IOException{
               System.out.println("*******************************");
                 System.out.println(" 欢迎"+Id+"使用中国工商银行自动柜员系统");
                 int time=0;
              int a=0;
                 while(time!=3){
                        System.out.println("*******************************");
                        System.out.println("请输入您的密码:");
                        Scanner input = new Scanner(System.in,"UTF-8");
                        String mm=input.next();
                        if(accountpassword.equals(mm)){
                                a=1;
                                return a;
                        }
                     else{
                                System.out.println("*******************************");
                                   System.out.println("密码输入错误");
                                   time++;
                          }  
              }
                  
              if(time==3){
                         System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
                         a=0;
                }
                 return a;
           }
         
         public void jiemian()throws IOException{
               System.out.println("*******************************");
                 System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                 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("*******************************");
                 Scanner input = new Scanner(System.in,"UTF-8");
                 int a=0;
                 a = input.nextInt();
                  input.nextLine();
                  
                  switch (a) {
                  case 1: cunkuan();
                         break;
                  case 2: qukuan();
                         break;
                  case 3: zhuanzhang();
                         break;
                  case 4: xiugai();
                         break;
                  case 5: chaxun();
                         break;
                  default:
                         System.out.println("*******************************");
                         System.out.println("Wrong number!");
                         break;
                     }
                  input.close();
                  }
         
         
         public void cunkuan()throws IOException{
               System.out.println("*******************************");
                 System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                 System.out.println("*******************************");
                 System.out.println("请输入存款金额:");
                 Scanner input = new Scanner(System.in,"UTF-8");
                 String a;
                 int e=0;
                 a = input.nextLine();
                 if(a.equals("q")) mmaaiinn();
                 else {e=Integer.valueOf(a);}
                 if((e<=0)){
                     System.out.println("输入金额有误");
                     cunkuan();
                 }
                 else{
                        int money=0;
                        InputStream is = new FileInputStream("accountinformation.txt");
                  Scanner ss = new Scanner(is,"UTF-8");
                  
                  File f2 = new File("account.txt");
                  FileWriter fw2 = new FileWriter(f2); 
                  PrintWriter pw2 = new PrintWriter(fw2);
                  
                  while(ss.hasNext()){
                         String line = ss.nextLine();
                         String[] txt = line.split(",");
                         String id = txt[0];
                         if(id.equals(accountID)){
                             money=accountbalance+e;
                             pw2.println(id+","+accountpassword+","+money);
                         }
                         else{
                                pw2.println(line);
                         }  
                        
                  }
                  
                  
                  //12345678,787878,0
                  
                  
                  pw2.close();
                  is = new FileInputStream("account.txt");
                   ss = new Scanner(is,"UTF-8");
                   
                   File f = new File("accountinformation.txt");
                   fw2 = new FileWriter(f);
                   PrintWriter w = new PrintWriter(fw2);
                   
                   while (ss.hasNext()) {
                          String line = ss.nextLine();
                          w.println(line);
                   }
                   w.close();
                   
                        System.out.println("*******************************");
                       System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                       System.out.println("*******************************");
                        System.out.println("当前账户存款操作成功");
                        System.out.println("当前账户余额为:"+money+"元");
                        
                        f=new File("accountlist.txt");
                        FileWriter fw = new FileWriter(f,true); 
                PrintWriter pw=new PrintWriter(fw);
                pw.println(accountID+",take in"+a+"RMB");
                pw.close();
                 }
                 
                 
         }
         public void qukuan()throws IOException{
            System.out.println("*******************************");
                System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                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、返回");
                Scanner input = new Scanner(System.in,"UTF-8");
                  int a=0;
                  int money=0;
                a = input.nextInt();
                  input.nextLine();
                  switch (a) {
                  case 1:
                         money=100;
                         break;
                  case 2:
                         money=500;
                         break;
                  case 3:
                         money=1000;
                         break;
                  case 4:
                         money=1500;
                         break;
                  case 5:
                         money=2000;
                         break;
                  case 6:
                      money=5000;
                      break;
                  case 7:{
                System.out.println("*******************************");
                       System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                       System.out.println("*******************************");
                       System.out.println("请输入取款金额");
                money=input.nextInt();
                }
                    break;
                  case 8:{mmaaiinn();}break;
                  case 9:{jiemian();}break;
                  default:
                         System.out.println("*******************************");
                         System.out.println("Wrong number!");
                         break;
                   }
                  if(money>0){
                         if(money<=accountbalance){
                          System.out.println("*******************************");
                              System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                              System.out.println("*******************************");
                              System.out.println(" 当前账户取款操作"+money+"元成功");
                              accountbalance=accountbalance-money;
                              System.out.println(" 当前账户余额为"+accountbalance+"元");
                              InputStream is = new FileInputStream("accountinformation.txt");
                         Scanner ss = new Scanner(is,"UTF-8");
                         
                         File f2 = new File("account.txt");
                         FileWriter fw2 = new FileWriter(f2); 
                         PrintWriter pw2 = new PrintWriter(fw2);
                         
                         while(ss.hasNext()){
                                String line = ss.nextLine();
                                String[] txt = line.split(",");
                                String id = txt[0];
                                if(id.equals(accountID)){
                                    pw2.println(id+","+accountpassword+","+accountbalance);
                                }
                                else{
                                       pw2.println(line);
                                }}
                               pw2.close();
                               is = new FileInputStream("account.txt");
                                ss = new Scanner(is,"UTF-8");
                                
                                File f = new File("accountinformation.txt");
                                fw2 = new FileWriter(f);
                                PrintWriter w = new PrintWriter(fw2);
                                
                                while (ss.hasNext()) {
                                       String lin = ss.nextLine();
                                       w.println(lin);
                                }
                                w.close();
                                
                                
                              f=new File("accountlist.txt");
                               FileWriter fw = new FileWriter(f,true); 
                       PrintWriter pw=new PrintWriter(fw);
                       pw.println(accountID+",take out"+money+"RMB");
                       pw.close();
                       fw.close();
                                
                         }else{
                                System.out.println("账户余额不足");
                         }
                  }
                  
                  input.close();
                 
         }
         
         
         
         public void zhuanzhang()throws IOException{
                   System.out.println("*******************************");
                       System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                       System.out.println("*******************************");
                       System.out.println(" 请输入转账用户");
                       int t=0;
                       Scanner input = new Scanner(System.in,"UTF-8");
                       String id=input.nextLine();
                       InputStream is = new FileInputStream("accountinformation.txt");
                  Scanner ss = new Scanner(is,"UTF-8");
                  while(ss.hasNext()){
                         String line = ss.nextLine();
                         String[] txt = line.split(",");
                         String idd = txt[0];
                         if(idd.equals(id)){
                                t=-1;
                                System.out.println("*******************************");
                                System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                                System.out.println("*******************************");
                                System.out.println(" 请输入转账金额");
                                int money=input.nextInt();
                                if(money<=accountbalance){
                                    System.out.println("*******************************");
                                        System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                                        System.out.println("*******************************");
                                        System.out.println(" 请确认是否向"+idd+"转账"+money+"元");
                                        String s=input.next();
                                        if(s.equals("Y")){
                                        System.out.println("*******************************");
                                        System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                                        System.out.println("*******************************");
                                        System.out.println(" 当前账户向"+idd+"成功转账"+money+"元");
                                        System.out.println(" 当前账户余额为"+(accountbalance-money)+"元");
                                        
                                 File f2 = new File("account.txt");
                               FileWriter fw2 = new FileWriter(f2); 
                               PrintWriter pw2 = new PrintWriter(fw2);
                               
                               InputStream iis = new FileInputStream("accountinformation.txt");
                               Scanner sss = new Scanner(iis,"UTF-8");
                               
                               f2 = new File("account.txt");
                               fw2 = new FileWriter(f2); 
                               pw2 = new PrintWriter(fw2);
                               
                               while(sss.hasNext()){
                                      line = sss.nextLine();
                                      txt = line.split(",");
                                      if(txt[0].equals(accountID)||txt[0].equals(idd)){
                                             if(txt[0].equals(idd)){
                                                 pw2.println(idd+","+txt[1]+","+(money+Integer.valueOf(txt[2])));
                                             }
                                             else{
                                                    pw2.println(accountID+","+accountpassword+","+(accountbalance-money));
                                             }
                                      }
                                      else{
                                             pw2.println(line);
                                      }}
                                     pw2.close();
                                      
                                      
                                  is = new FileInputStream("account.txt");
                               ss = new Scanner(is,"UTF-8");
                               
                               File f = new File("accountinformation.txt");
                               fw2 = new FileWriter(f);
                               PrintWriter w = new PrintWriter(fw2);
                               
                               while (ss.hasNext()) {
                                      String lin = ss.nextLine();
                                      w.println(lin);
                               }
                               w.close();
                                      
                                        f=new File("accountlist.txt");
                                         FileWriter fw = new FileWriter(f,true); 
                                 PrintWriter pw=new PrintWriter(fw);
                                 pw.println(accountID+",take "+money+"RMB to"+idd);
                                 pw.close();
                                 fw.close();
                                        }else if(s.equals("N")){
                                               jiemian();
                                        }
                                   }else{
                                          System.out.println("账户余额不足");
                                   }
                         }
                  }if(t!=-1){
                                System.out.println("该账户不存在");
                         }
         }
         
         
         public void xiugai()throws IOException{
                System.out.println("*******************************");
                System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                 System.out.println("*******************************");
                 System.out.println("请输入当前密码");
                 Scanner input = new Scanner(System.in,"UTF-8");
                 String ma=input.nextLine();
                 if(ma.equals(accountpassword)){
                        System.out.println("请输入修改密码");
                 String ma1=input.nextLine();
                 System.out.println("请输入确认密码");
                 String ma2=input.nextLine();
                 if(ma1.equals(ma2)){
                       System.out.println("*******************************");
                 System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                    System.out.println("*******************************");
                  System.out.println("当前账户密码修改成功");
                   
                   
                   File f2 = new File("account.txt");
                   FileWriter fw2 = new FileWriter(f2); 
                   PrintWriter pw2 = new PrintWriter(fw2);
                   
                   InputStream is = new FileInputStream("accountinformation.txt");
                  Scanner ss = new Scanner(is,"UTF-8");
                  
                   while(ss.hasNext()){
                          String lin = ss.nextLine();
                          String txt[] = lin.split(",");
                          if(txt[0].equals(accountID)){
                               
                              pw2.println(txt[0]+","+ma2+","+txt[2]);
                          }
                          else{
                                 pw2.println(lin);
                          }
                        }
                         pw2.close();
                          
                         is = new FileInputStream("account.txt");
                          ss = new Scanner(is,"UTF-8");
                          
                          File f = new File("accountinformation.txt");
                          fw2 = new FileWriter(f);
                          PrintWriter w = new PrintWriter(fw2);
                          
                          while (ss.hasNext()) {
                                 String lin = ss.nextLine();
                                 w.println(lin);
                          }
                          w.close();
                       
                 f=new File("accountlist.txt");
                         FileWriter fw = new FileWriter(f,true); 
                PrintWriter pw=new PrintWriter(fw);
                pw.println(accountID+",change password into"+ma2);
                pw.close();
                fw.close();
                    }else{
                       xiugai();
                 }
                  
               }else{
                       System.out.println("密码输入错误");
                       xiugai();
                }
         }
         
         public void chaxun()throws IOException{
                     System.out.println("*******************************");
                   System.out.println(" 欢迎"+accountID+"使用中国工商银行自动柜员系统");
                      System.out.println("*******************************");
                    System.out.println("当前账户余额为"+accountbalance+"元");
                    InputStream is = new FileInputStream("accountlist.txt");
                   Scanner ss = new Scanner(is,"UTF-8");
                   int x=0;
                   while(ss.hasNext()){
                          String line = ss.nextLine();
                          String[] txt = line.split(",");
                          if(txt[0].equals(accountID)){
                                 x++;
                                 System.out.println(x+"."+txt[1]);
                          }    
                   }
         }
           
      }
  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/jz-no-bug/p/14228976.html
Copyright © 2011-2022 走看看