• Java 本周四、五的相关研究——Excel 的文件管理(数据库初步)


    日期:2018.9.28

    星期五

    博客期:013

      说到这里,就二话不多说了!这次研习的是与Excel表相关联的方法

      1、导入jar包(需要自己下载)

      2、AccountManager类的实现(关键看非重复部分!)

    package pop;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Calendar;
    import java.util.Scanner;
    
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;
    import jxl.write.Label;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;
    import jxl.write.biff.RowsExceededException;
    
    public class AccountManager {
        //----------------<数据库>-----------------//
        //数据组
        private Account ku[] = new Account[5];
        //记录名称
        private String Infor = "files/accountinformation.xls";
        private String List = "files/accountlist.xls";
        private String Copy = "files/Lin.xls";
        private String Today = "2018-09-28";
        //----------------<界面函数>---------------//
        //初始界面
        public void FirstWin() throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("              欢迎使用中国工商银行自动柜员系统");
            System.out.println("***************************************************************");
            System.out.println("                    请输入您的账号:");
            Scanner sc = new Scanner(System.in);
            String x = sc.next();
            int existfor = 5;//此处用于测试是否账号不存在
            for(int i=0;i<5;i++)//检测数组中是否存有该数据!
                if(ku[i].GetaccountID().compareTo(x)==0)
                {
                    existfor = i;
                    break;
                }
            if(existfor==5)
            {
                System.out.println(" #:该卡不是工行卡!");
                FirstWin();
            }
            else
                SecondWin(existfor);
        
        }
        //密码输入界面
        public void SecondWin(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("***************************************************************");
            System.out.println("                    请输入您的密码:");
            int times = 0;//记录输入密码的次数
            Scanner sc = new Scanner (System.in);
            while(times<3){
                String saving = sc.nextLine();
                if(ku[pass].Getaccountpassword().compareTo(saving)!=0)
                    System.out.println("密码录入错误");
                else
                    break;
                times++;
            }
            if(times==3)
                FirstWin();
            else
                MainWin(pass);
        }
        //主界面
        void MainWin(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            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("****************************************************************");
            System.out.println("                      请输入:");
            Scanner sc = new Scanner (System.in);
            int temp = sc.nextInt();
            switch(temp)
            {
            case 1:ku[pass].Setoperatetype(1);writefile();fun1(pass);break;
            case 2:ku[pass].Setoperatetype(2);writefile();fun2(pass);break;
            case 3:ku[pass].Setoperatetype(3);writefile();fun3(pass);break;
            case 4:ku[pass].Setoperatetype(4);writefile();fun4(pass);break;
            case 5:ku[pass].Setoperatetype(5);writefile();fun5(pass);break;
            default:MainWin(pass);break;
            }
        }
        //存款界面
        public void fun1(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("****************************************************************");
            System.out.println("                 请输入存款金额;");
            Scanner sc = new Scanner (System.in);
            if(sc.hasNext("q"))
                FirstWin();
            else
            {
                int JinE = sc.nextInt();//记录金额
                if(JinE<=0)
                {
                    System.out.println(" #:输入金额有误");
                    fun1(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+JinE);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()+JinE);
                    //-----------------------[数据载入文档]
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("                当前账户存款操作成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"SaveMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(JinE));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //----------------------------------------
                    MainWin(pass);
                }
            }        
        }
        //取款界面
        public void fun2(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            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、返回");
            System.out.println("****************************************************************");
            System.out.println("                        #:请选择");
            Scanner sc = new Scanner (System.in);
            int choice = sc.nextInt();
            switch(choice){
            case 1:
            {
                if(ku[pass].Getaccountbalance()<100)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+100);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-100);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作100元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(100));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 2:
            {
                if(ku[pass].Getaccountbalance()<500)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+500);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-500);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作500元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(500));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 3:
            {
                if(ku[pass].Getaccountbalance()<1000)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+1000);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-1000);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作1000元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(1000));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 4:
            {
                if(ku[pass].Getaccountbalance()<1500)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+1500);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-1500);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作1500元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(1500));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 5:
            {
                if(ku[pass].Getaccountbalance()<2000)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+2000);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-2000);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作2000元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(2000));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 6:
            {
                if(ku[pass].Getaccountbalance()<5000)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+5000);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-5000);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作5000元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(5000));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 7:
            {
                System.out.println("***************************************************************");
                System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                System.out.println("****************************************************************");
                System.out.println("                请输入取款金额:");
                int num = sc.nextInt();
                if(ku[pass].Getaccountbalance()<num)
                {
                    System.out.println("账户余额不足");
                    fun2(pass);
                }
                else
                {
                    ku[pass].Setamount(ku[pass].Getamount()+num);
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-num);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("****************************************************************");
                    System.out.println("             当前账户取款操作"+num+"元成功。");
                    System.out.println("             当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                    writefile();
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"GetMoney");
                        sheet.addCell(lab);
                        lab = new Label(3,i,Integer.toString(num));
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                break;
            }
            case 8:
            {
                FirstWin();
                break;
            }
            case 9:
            {
                MainWin(pass);
                break;
            }
            default:fun2(pass);break;
            }
        }
        //转账汇款界面
        public void fun3(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("***************************************************************");
            System.out.println("                     请输入转账账户;");
            Scanner sc = new Scanner (System.in);
            if(sc.hasNext("q"))
                FirstWin();
            String temp = sc.next();
            int tube = 5;//记录账户
            for(int i=0;i<5;i++){
                if(ku[i].GetaccountID().compareTo(temp)==0)
                {
                    tube = i;
                    break;
                }
            }
            if(tube==5)
            {
                System.out.println(" #:该用户不存在");
                fun3(pass);
            }
            else
            {
                fun3_half(pass,tube);
            }
        }
        public void fun3_half(int pass,int pass_to) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("***************************************************************");
            System.out.println("                   请输入转账金额;");
            Scanner sc = new Scanner (System.in);
            if(sc.hasNext("q"))
                FirstWin();
            int JinE= sc.nextInt();
            if(JinE>ku[pass].Getaccountbalance())
            {
                System.out.println("账户余额不足");
                fun3_half(pass,pass_to);
            }
            else if(JinE<=0)
                fun3_half(pass,pass_to);
            else
            {
                StringBuffer sxw = new StringBuffer(ku[pass_to].Getaccountname());
                sxw.deleteCharAt(0);
                System.out.println("***************************************************************");
                System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                System.out.println("***************************************************************");
                System.out.println("          请确认是否向*"+sxw+"转账"+JinE+"元。");
                String makesure = sc.next();
                if(sc.hasNext("q"))
                    FirstWin();
                if(makesure.compareTo("Y")==0)
                {
                    ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-JinE);
                    ku[pass].Setamount(ku[pass].Getamount()+JinE);
                    ku[pass_to].Setaccountbalance(ku[pass_to].Getaccountbalance()+JinE);
                    ku[pass_to].Setamount(ku[pass_to].Getamount()+JinE);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("***************************************************************");
                    System.out.println("          当前账户向*"+sxw+"转账"+JinE+"元。");
                    System.out.println("          当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
                }
                //----------------------------------------------------<以下为文件更新阶段
                Copyfile();
                File f = new File(List);
                WritableWorkbook workbook = Workbook.createWorkbook(f);        
                WritableSheet sheet = workbook.createSheet("Test",0);
                for (int i = 0; i < 1; i++)    
                {            
                    Label lab = new Label(0,i,"账号");
                    sheet.addCell(lab);
                    lab = new Label(1,i,"操作日期");
                    sheet.addCell(lab);
                    lab = new Label(2,i,"操作内容");
                    sheet.addCell(lab);
                    lab = new Label(3,i,"操作金额");
                    sheet.addCell(lab);
                }
                for(int i=1;i<2;i++)    
                {            
                    Label lab = new Label(0,i,ku[pass].GetaccountID());
                    sheet.addCell(lab);
                    lab = new Label(1,i,Today);
                    sheet.addCell(lab);
                    lab = new Label(2,i,"RemoveMoney");
                    sheet.addCell(lab);
                    lab = new Label(3,i,Integer.toString(JinE));
                    sheet.addCell(lab);
                }
                Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                Sheet readsheet = readwb.getSheet(0);
                int rsColumns = readsheet.getColumns();   
                int rsRows = readsheet.getRows();
                for(int i=0;i<rsRows;i++)
                {
                    for(int j=0;j<rsColumns;j++)   
                    {   
                        Cell cell = readsheet.getCell(j,i);   
                        Label lab = new Label(j,i+2,cell.getContents());     
                        sheet.addCell(lab);
                    }
                }
                workbook.write();
                workbook.close();
                //-----------------------------------
                MainWin(pass);
            }
        }
        //修改密码界面
        public void fun4(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("***************************************************************");
            String str1,str2;
            System.out.println("                  请输入当前密码:  ");
            Scanner sc = new Scanner (System.in);
            str1 = sc.next();
            if(sc.hasNext("q"))
                FirstWin();
            if(ku[pass].Getaccountpassword().compareTo(str1)==0)
            {
                System.out.println("                  请输入修改密码:");
                str1 = sc.next();
                if(sc.hasNext("q"))
                    FirstWin();
                System.out.println("                  请输入确认密码:");
                str2 = sc.next();
                if(sc.hasNext("q"))
                    FirstWin();
                if(str1.compareTo(str2)==0)
                {
                    ku[pass].Setaccountpassword(str1);
                    System.out.println("***************************************************************");
                    System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
                    System.out.println("***************************************************************");
                    System.out.println("           当前账户密码修改成功");
                    //----------------------------------------------------<以下为文件更新阶段
                    Copyfile();
                    File f = new File(List);
                    WritableWorkbook workbook = Workbook.createWorkbook(f);        
                    WritableSheet sheet = workbook.createSheet("Test",0);
                    for (int i = 0; i < 1; i++)    
                    {            
                        Label lab = new Label(0,i,"账号");
                        sheet.addCell(lab);
                        lab = new Label(1,i,"操作日期");
                        sheet.addCell(lab);
                        lab = new Label(2,i,"操作内容");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"操作金额");
                        sheet.addCell(lab);
                    }
                    for(int i=1;i<2;i++)    
                    {            
                        Label lab = new Label(0,i,ku[pass].GetaccountID());
                        sheet.addCell(lab);
                        lab = new Label(1,i,Today);
                        sheet.addCell(lab);
                        lab = new Label(2,i,"ChangPassword");
                        sheet.addCell(lab);
                        lab = new Label(3,i,"**********");
                        sheet.addCell(lab);
                    }
                    Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
                    Sheet readsheet = readwb.getSheet(0);
                    int rsColumns = readsheet.getColumns();   
                    int rsRows = readsheet.getRows();
                    for(int i=0;i<rsRows;i++)
                    {
                        for(int j=0;j<rsColumns;j++)   
                        {   
                            Cell cell = readsheet.getCell(j,i);   
                            Label lab = new Label(j,i+2,cell.getContents());     
                            sheet.addCell(lab);
                        }
                    }
                    workbook.write();
                    workbook.close();
                    writefile();
                    //-----------------------------------
                    MainWin(pass);
                }
                else
                {
                    System.out.println("          修改密码与确认密码不一致");
                    fun4(pass);
                }
            }
            else
            {
                System.out.println("         当前密码录入错误");
                fun4(pass);
            }
        }
        //查询金额界面
        public void fun5(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
            System.out.println("***************************************************************");
            System.out.println("   欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
            System.out.println("***************************************************************");
            System.out.println("                  当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
            System.out.println("                    账户清单信息为:");
            int sx = 1;
            Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
            Sheet readsheet = readwb.getSheet(0);  
            int rsRows = readsheet.getRows();
            Copyfile();
            for(int i=0;i<rsRows;i++)
            {
                Cell cell = readsheet.getCell(0,i);
                if(ku[pass].GetaccountID().compareTo(cell.getContents())==0)
                {
                    cell = readsheet.getCell(1,i);
                    String t1 = cell.getContents();
                    cell = readsheet.getCell(2,i);
                    String t2 = cell.getContents();
                    cell = readsheet.getCell(3,i);
                    String t3 = cell.getContents();
                    System.out.println(sx+"、"+t1+"  "+t2+"   "+t3);
                    sx++;
                }
            }
            MainWin(pass);
        }
        //----------------<构造函数>---------------//
        private void ResetDate(){
            int y,m,d;    
            Calendar cal=Calendar.getInstance();    
            y=cal.get(Calendar.YEAR);    
            m=cal.get(Calendar.MONTH);    
            d=cal.get(Calendar.DATE);
            String ms;
            m++;
            if(m<10)
                ms = (String)("0"+m);
            else
                ms = (String)(""+m);
            String ds;
            if(d<10)
                ds = (String)("0"+d);
            else
                ds = (String)(""+d);
            Today = (String)(y+"-"+ms+"-"+ds);
        }
        public AccountManager() throws BiffException, IOException{
            for(int i=0;i<5;i++)
                ku[i] = new Account();
            ResetDate();
            readfile();
        }
        //写入
        public void writefile() throws IOException, RowsExceededException, WriteException{
            WritableWorkbook workbook = Workbook.createWorkbook(new File(Infor));        
            WritableSheet sheet = workbook.createSheet("Test",0);
            Label lab = new Label(0,0,"账号");
            sheet.addCell(lab);
            Label labs = new Label(1,0,"账户名称");
            sheet.addCell(labs);
            Label labt = new Label(2,0,"最后操作日期");
            sheet.addCell(labt);
            Label labf = new Label(3,0,"目前操作数");
            sheet.addCell(labf);
            Label labfi = new Label(4,0,"密码");
            sheet.addCell(labfi);
            Label labsi = new Label(5,0,"余额");
            sheet.addCell(labsi);
            Label labse = new Label(6,0,"流水金额");
            sheet.addCell(labse);
            for (int i = 1; i <= 5; i++)    
            {            
                String t = ku[i-1].GetaccountID();
                Label lab1 = new Label(0,i,t);
                sheet.addCell(lab1);
                t = ku[i-1].Getaccountname();
                Label lab2 = new Label(1,i,t);
                sheet.addCell(lab2);
                t = ku[i-1].Getoperatedate();
                Label lab3 = new Label(2,i,t);
                sheet.addCell(lab3);
                t = Integer.toString(ku[i-1].Getoperatetype());
                Label lab4 = new Label(3,i,t);
                sheet.addCell(lab4);
                t = ku[i-1].Getaccountpassword();
                Label lab5 = new Label(4,i,t);
                sheet.addCell(lab5);
                t = Integer.toString(ku[i-1].Getaccountbalance());
                Label lab6 = new Label(5,i,t);
                sheet.addCell(lab6);
                t = Integer.toString(ku[i-1].Getamount());
                Label lab7 = new Label(6,i,t);
                sheet.addCell(lab7);
            }
            workbook.write();
            workbook.close();
        }
        //读入
        public void readfile() throws BiffException, IOException{
            InputStream instream = new FileInputStream(Infor); 
            Workbook readwb = Workbook.getWorkbook(instream);
            Sheet readsheet = readwb.getSheet(0); 
            for(int i=1;i<=5;i++)
            {
                String t1,t2,t3,t4,t5,t6,t7;
                Cell cell = readsheet.getCell(0,i);
                t1 = cell.getContents();
                cell = readsheet.getCell(1,i);
                t2 = cell.getContents();
                cell = readsheet.getCell(2,i);
                t3 = cell.getContents();
                cell = readsheet.getCell(3,i);
                t4 = cell.getContents();
                cell = readsheet.getCell(4,i);
                t5 = cell.getContents();
                cell = readsheet.getCell(5,i);
                t6 = cell.getContents();
                cell = readsheet.getCell(6,i);
                t7 = cell.getContents();
                ku[i-1].Set(t1,t2,t3,Integer.parseInt(t4),t5,Integer.parseInt(t6),Integer.parseInt(t7));
            }
        }
        //复制文件
        public void Copyfile() throws RowsExceededException, WriteException, IOException, BiffException{
            InputStream instream = new FileInputStream(List); 
            Workbook readwb = Workbook.getWorkbook(instream);
            Sheet readsheet = readwb.getSheet(0);
            int rsColumns = readsheet.getColumns();   
            int rsRows = readsheet.getRows();
            WritableWorkbook workbook = Workbook.createWorkbook(new File(Copy));        
            WritableSheet sheet = workbook.createSheet("Test",0);
            for (int i = 1; i < rsRows; i++)   
            {   
                for (int j = 0; j < rsColumns; j++)   
                {   
                    Cell cell = readsheet.getCell(j,i);   
                    Label lab = new Label(j,i-1,cell.getContents());     
                    sheet.addCell(lab);
                } 
            }        
            workbook.write();
            workbook.close();
        }
        //----------------<主函数>-----------------//
        public static void main(String[] args) throws IOException, RowsExceededException, WriteException, BiffException {
            AccountManager ap = new AccountManager();
            ap.FirstWin();
        }
    }

    附带文件截图:

  • 相关阅读:
    四则运算2设计思路
    关于这个学期的读书计划
    关于20分钟没写出来程序思路的原因
    软件工程理论方法与实践
    员工类
    除的类
    基类
    乘的类
    减的类
    加的类
  • 原文地址:https://www.cnblogs.com/onepersonwholive/p/9721458.html
Copyright © 2020-2023  润新知