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();
    }
}

附带文件截图:

猜你喜欢

转载自www.cnblogs.com/onepersonwholive/p/9721458.html
今日推荐