JAVA小项目-银行管理系统(图形化界面)4-验证

发布于:2023-07-04 ⋅ 阅读:(129) ⋅ 点赞:(0)


这里写图片描述

终于到了用户信息类验证类

为什么现在写, 因为功能 写完了, 之前不写,怕边写边改会出很多问题

先说验证类Check

我们看一下图, 我们在除了菜单的所有界面都需要进行信息验证

此类我们写了6个验证方法,分别对应了6种验证
1. 在登录时, 验证账号密码是否正确
2. 在注册时 验证账号是否存在
3. 在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致
4. 各种输入金额页面,判断金额是否合法
5. 登录时验证用户名和密码是否为中文
6. 注册时验证姓名是否为中文

先说下 BufferedReader和FileReader
FileReader : 字符流
BufferedReader : 也是字符流,但是在BufferedReader可以先把数据放到一个缓存区里,然后在进行处理,而且在BufferedReader 里有一个readLine()方法。
所谓缓冲区,就是能够一次性读取一块缓冲区大小的数据,再从缓冲区中去读取数据,而不用一点一点地直接从硬盘中抽取数据。

我们主要用readline方法

如果不懂输入输出流的先去看一下

另外对中文的操作不熟悉,请移步
http://blog.csdn.net/changjiale110/article/details/78915969

下面只写方法(函数), 就不列完整的了
方法都在Check类中包含

public class Check {
}

1. 在登录时, 验证账号密码是否正确

String 型数组message将分割后的每个信息 存储起来
从message[0] ~ message[4] 存储信息分别为
姓名, 身份证号, 账户名, 密码,余额

按行读取, 验证是否提取信息验证

/**
     * 在登录时, 验证账号密码是否正确
     */
    public boolean  check1(String countname,String pwd) throws IOException{

        File file=new File("Message.txt");   //创建文件类
        if(!file.exists()||file.isDirectory()) //判断文件是否存在
            //throw new FileNotFoundException();
            file.createNewFile();
        BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
        String temp=null;   
       // StringBuffer sb=new StringBuffer();   
        temp=br.readLine();   //先读取一行
        while(temp!=null){
            String sbstring = temp.toString();   //转化为string
            int n = sbstring.length();            //测字符串长度
            String []message = new String[5];     //按~拆分 成5个字符串数组,按账号和密码进行信息验证
            int k=0;

            for (int i=0; i<5; i++)
                message[i]="";
            //我们在写入账户时用~分割, 所以我们利用~在分割开来
            for (int i=0; i<n; i++)
            {
                if(sbstring.charAt(i)=='~')
                {
                    //System.out.println("@"+message[k]);
                    k++;
                }
                else 
                {
                    message[k] += sbstring.charAt(i);//读取第String的第i个字符
                }
            }
            if (countname.equals(message[2])&&pwd.equals(message[3]))//比较账户密码是否相等
                return true;
            temp=br.readLine();  //读取下一行
        }
        return false;


    }
  1. 在注册时 验证账号是否存在
    原理和上面一样 直接看代码
//在注册时 验证账号是否存在
    public boolean  check2(String countname) throws IOException{

        File file=new File("Message.txt");   //创建文件类
        if(!file.exists()||file.isDirectory()) //判断文件是否存在
            file.createNewFile();
        BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
        String temp=null;   
       // StringBuffer sb=new StringBuffer();   
        temp=br.readLine();   //先读取一行
        while(temp!=null){
            String sbstring = temp.toString();   //转化为string
            int n = sbstring.length();            //测字符串长度
            String []message = new String[5];     //按~拆分 成5个字符串数组,按账号和密码进行信息验证
            int k=0;

            for (int i=0; i<5; i++)
                message[i]="";
            for (int i=0; i<n; i++)
            {
                if(sbstring.charAt(i)=='~')
                {
                    //System.out.println("@"+message[k]);
                    k++;
                }
                else 
                {
                    message[k] += sbstring.charAt(i);
                }
            }
            if (countname.equals(message[2]))
                return true;
            temp=br.readLine();
        }
        return false;
    }

3. 在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致

主要操作差别几乎都是最后一行

if (name.equals(message[0])&&userid.equals(message[1])&&countname.equals(message[2]))
                return message[3];

验证是否匹配, 如果匹配返回 密码

//在挂失是 找回密码需要验证, 姓名,身份证号,和账户是否与注册时保持一致
    public String  check3(String name, String userid,String countname) throws IOException{

        File file=new File("Message.txt");   //创建文件类
        if(!file.exists()||file.isDirectory()) //判断文件是否存在
            file.createNewFile();
        BufferedReader br=new BufferedReader(new FileReader(file)); //创建读入缓冲流,按行读入
        String temp=null;   
       // StringBuffer sb=new StringBuffer();   
        temp=br.readLine();   //先读取一行
        while(temp!=null){
            String sbstring = temp.toString();   //转化为string
            int n = sbstring.length();            //测字符串长度
            String []message = new String[5];     //按~拆分 成5个字符串数组,按账号和密码进行信息验证
            int k=0;

            for (int i=0; i<5; i++)
                message[i]="";
            for (int i=0; i<n; i++)
            {
                if(sbstring.charAt(i)=='~')
                {
                    //System.out.println("@"+message[k]);
                    k++;
                }
                else 
                {
                    message[k] += sbstring.charAt(i);
                }
            }
            if (name.equals(message[0])&&userid.equals(message[1])&&countname.equals(message[2]))
                return message[3];
            temp=br.readLine();
        }
        return null;
    }

4. 各种输入金额页面,判断金额是否合法

判断每个字符串是否存在中文

//判断金额是否合法
    public boolean checkmoney(String money)
        {
            for(int i=0; i<money.length(); i++)
            {
                if (money.charAt(i)<'0'||money.charAt(i)>'9')
                    return false;
            }  
            return true;
        }

5. 登录时验证用户名和密码是否为中文

//验证用户名和密码是否为中文
public boolean checkcountname(String countname)
{
Pattern p = Pattern.compile(“[\u4e00-\u9fa5]”);
Matcher m = p.matcher(countname);
if (m.find()) {
return true;
}
return false;
}

6. 注册时验证姓名是否为中文

//验证姓名是否为中文
    public boolean checkname(String name)
    {
        int n = 0;
        for(int i = 0; i < name.length(); i++) {
            n = (int)name.charAt(i);
            if(!(19968 <= n && n <40869)) {
                return false;
            }
        }
        return true;
    }

JAVA小项目-银行管理系统(图形化界面)1-菜单
http://blog.csdn.net/changjiale110/article/details/78880024
JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
http://blog.csdn.net/changjiale110/article/details/78896168
JAVA小项目-银行管理系统(图形化界面)3-登录与查询
http://blog.csdn.net/changjiale110/article/details/78916391
JAVA小项目-银行管理系统(图形化界面)4-验证
http://blog.csdn.net/changjiale110/article/details/78916497
JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
http://blog.csdn.net/changjiale110/article/details/78926473
JAVA小项目-银行管理系统(图形化界面)6-存款与取款
http://blog.csdn.net/changjiale110/article/details/78926600
JAVA小项目-银行管理系统(图形化界面)7-改密与转账
http://blog.csdn.net/changjiale110/article/details/78955018
整体项目演示+源码包
http://blog.csdn.net/changjiale110/article/details/78955353

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到