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]);
                          }    
                   }
         }
           
      }
  • 相关阅读:
    第7.10节 Python类中的实例变量定义与使用
    第7.9节 案例详解:Python类封装
    第7.8节 Python中隐秘的类封装方法
    第7.7节 案例详解:Python类继承机制
    第7.6节 Python中类的继承机制详述
    第7.5节 揭开Python类中self的面纱
    第7.4节 Python中与众不同的类
    第7.3节 Python特色的面向对象设计:协议、多态及鸭子类型
    第7.2节 关于面向对象设计的一些思考
    (独孤九剑)--流程控制
  • 原文地址:https://www.cnblogs.com/jz-no-bug/p/14228976.html
Copyright © 2011-2022 走看看