ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2020/09/22 刘一辰的JAVA随笔

2020-09-22 23:32:39  阅读:174  来源: 互联网

标签:JAVA 22 get 09 list System println public out


今天是JAVA验收的一天,一下午写的脑袋瓜子嗡嗡的,回了宿舍躺了会儿才缓过来,然后起床颤颤巍巍的打下来这么几段话。

思路:第一、登录判断,密码限制三次,使用for循环。第二、成功登录,选择相应的功能,使用switch语句。第四、实现功能的反复循环操作,因为次数不确定,使用while结构。第五、对每个功能模块进行填充完善。上来就做题真的是有点狗咬刺猬的感觉,不知道从哪下口,无奈之下只能按部就班的来,按照题目要求的功能一步一步的实现,先是类的声明,需要定义一个ATM类,然后定义私有变量,一共七个缺一不可,然后对每个变量定义get()(读取变量信息)和set()(设置变量信息)的方法。刚开始真的是在老老实实的一个get一个set的在写但是写了半天之后发现原来不用手写系统可以直接根据我们定义的变量生成我们要写的这些函数定义完变量和类之后,就开始各部分的功能实现,定义accountinformation.txt作为账户基本信息库,基本信息包括accountID,accountname,accountpassword,accountbalance,要求事先实现至少存储五个账户的信息,定义accountlist.txt作为账户操作流水信息数据库,操作流水信息包括(accountID,accountname,operatedate,operatetype, amount)。(要求将学号作为帐号,将考生信息作为第一条记录)。变量accountID为字符串类型String,用于存储学生的用户账号(由八位数字组成)。变量accountname为字符串类型String,用于存储账户的名称。变量operatedate为字符串类型String,用于存储操作的时间,由十位字符组成,显示格式为“2018-09-20”。   变量operatetype为int类型,用于存储操作账户的类型,具体描述为“1”表示存款,“2”表示取款,“3”表示转账汇款,“4”表示修改账户密码,“5”表示查询余额变量accountpassword为字符串类型String,用于用户密码,由六位数字组成。变量accountbalance为整数类型int,用于存储账户余额,缺省为0。变量amount为整数类型int,表示操作流水金额。总体来说,我整个过程都是通过边学边写的方式一点点的挤出来的,错误有很多而且不好改,仅仅是一个改密码就给我难住了。以至于我还把电脑给玩崩了,某个环境变量还被我某次Dbug的时候删了。回了宿舍捣鼓半天才搞好。在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。我觉得这个过程需要花很长很长时间,因为学习Java之前有C++的经验,依照这过程,开始熟悉Java的类库。基础类库里面的类非常非常多。据说有3000多个。但是我真正使用的只有几个,比如说 java.io.*; java.util.*; java.sql.*;等。 此外,我对于static,public,private,Exception,try{ },catch { },finally{ }等等一开始都不是很懂,以往我的学习经验都是把书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后,也能得到自己想要的。现在我只能在有限的时间里面,学会这些,只能手忙脚乱的学,肯定不牢固,还要回来再认真看看。当然我也学到了好多在家在图书馆学不到的东西。这种教学方式我一时间不太好接受,但是这比我看视频看书学的多而且印象格外深刻。以下是我的源代码,虽然不完美,但是我尽我所能。

package Pragram1; //信1905-2班 20193897  刘一辰 import java.util.Date; public class Account {     private String accountID;
    private String accountname;
    private String operatedate;
    private int operatetype;
    private String accountpassword;
    private int accountbalance = 0;
    private int amount;     @Override
    public String toString() {
        return accountID +"\n" +
                        accountname +"\n" +
                        accountpassword +"\n" +
                        accountbalance +"\n";
    }     public String getAccountID() {
        return accountID;
    }     public void setAccountID(String accountID) {
        this.accountID = accountID;
    }     public String getAccountname() {
        return accountname;
    }     public void setAccountname(String accountname) {
        this.accountname = accountname;
    }     public String getOperatedate() {
        return operatedate;
    }     public void setOperatedate(String operatedate) {
        this.operatedate = operatedate;
    }     public int getOperatetype() {
        return operatetype;
    }     public void setOperatetype(int operatetype) {
        this.operatetype = operatetype;
    }     public String getAccountpassword() {
        return accountpassword;
    }     public void setAccountpassword(String accountpassword) {
        this.accountpassword = accountpassword;
    }     public int getAccountbalance() {
        return accountbalance;
    }     public void setAccountbalance(int accountbalance) {
        this.accountbalance = accountbalance;
    }     public int getAmount() {
        return amount;
    }     public void setAmount(int amount) {
        this.amount = amount;
    }
} package Pragram1; //信1905-2班 20193897  刘一辰 import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner; public class AccountManager {     public static void main(String[] args) throws IOException {
        enterAccount();
    }
    public static void enterAccount() throws IOException {
        read();
        Scanner scanner = new Scanner(info);
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("***************************************************************\n");
        System.out.println("          " + "欢迎使用中国工商银行自动柜员系统;");
        System.out.println("***************************************************************\n");
        System.out.println("          " + "请输入您的账号;");
        String account = reader.readLine();
        boolean t = false;
        for (int i = 0; i < list.size(); i++) {
            if (account.length() != 8) {
                System.out.println("该卡不是工行卡!");
                t = true;
                enterAccount();
                break;
            } else if (list.get(i).getAccountID().equals(account)) {
                enterpassword(account);
                t = true;
                break;
            }
        }         if (!t) {
            System.out.println("该账号不存在");
            enterAccount();
        }
    }     public static void main2() throws IOException {
        Scanner scanner = new Scanner(System.in);
        Head();
        System.out.println("           " + "1、存款;\n");
        System.out.println("           " + "2、取款\n");
        System.out.println("           " + "3、转账汇款;\n");
        System.out.println("           " + "4、修改密码;\n");
        System.out.println("           " + "5、查询余额;\n");
        System.out.println("***************************************************************\n");
        int t = scanner.nextInt();
        switch (t) {
            case 1:
                cunkuan();
                break;
            case 2:
                qukuan();
                break;
            case 3:
                zhuanzhang();
                break;
            case 4:
                setpass();
                break;
            case 5:
                break;
        }
    }     public static File info = new File("accountinformation.txt");
    public static File alist = new File("accountlist.txt");
    public static int a = 0;
    public static ArrayList<Account> list = new ArrayList<Account>();     public static void read() throws FileNotFoundException {
        Scanner scanner = new Scanner(info);
        while (scanner.hasNext()) {
            Account account = new Account();
            account.setAccountID(scanner.next());
            account.setAccountname(scanner.next());
            account.setAccountpassword(scanner.next());
            account.setAccountbalance(scanner.nextInt());
            list.add(account);
        }
    }     public static void write() throws IOException {
        FileWriter fileWriter = new FileWriter(info);
        for (int i = 0; i < list.size(); i++) {
            fileWriter.write(list.get(i).toString() + "\n");
        }
        fileWriter.close();
    }     public static void enterpassword(String accountID) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int t = 0;
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getAccountID().equals(accountID)) {
                a = i;
                break;
            }
        }
        Head();
        System.out.println(" " + "请输入您的密码:");         for (;;) {
            String password = scanner.next();
            if (list.get(a).getAccountpassword().equals(password)) {
                main2();
                break;
            } else {
                System.out.println("密码录入错误!");
                t++;
            }
            if (t >= 3) {
                System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理。");
                enterAccount();
                break;
            }
        }
    }     public static void Head(){
        System.out.println("***************************************************************\n");
        System.out.println("           " + "欢迎" + list.get(a).getAccountname() + "使用中国工商银行自动柜员系统\n");
        System.out.println("***************************************************************\n");
    }     public static void cunkuan() throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Head();
        System.out.println("请输入存款金额;");
        String input = reader.readLine();
        if ("q".equals(input)) {
            enterAccount();
        }
        try {
            Integer.parseInt(input);
        } catch (Exception e) {
            System.out.println("输入金额有误,返回取款界面;");
        }
        int money = Integer.parseInt(input);
        if (money > 0) {
            list.get(a).setAccountbalance(list.get(a).getAccountbalance() + money);
            list.get(a).setAmount(list.get(a).getAmount() + money);
            Head();
            System.out.println("           " + "当前账户存款操作成功。");
            System.out.println("           " + "当前账户余额为:" + list.get(a).getAccountbalance() + "元");
            System.out.println("***************************************************************");
        }         list.get(a).setOperatetype(1);
        write();
        main2();
    }     public static void qukuanchenggong(int m) throws IOException {
        Head();
        System.out.println("当前账户取款操作" + m + "元成功。");
        System.out.println("***************************************************************");         list.get(a).setAccountbalance(list.get(a).getAccountbalance() - m);
        list.get(a).setAmount(list.get(a).getAmount() + m);
        list.get(a).setOperatetype(2);         write();         main2();
    }     public static void qukuan() throws IOException {
        Scanner scanner = new Scanner(System.in);
        Head();
        System.out.println("当前账户每日可以支取2万元。\n" +
                "1、100元\n" +
                "2、500元\n" +
                "3、1000元\n" +
                "4、1500元\n" +
                "5、2000元\n" +
                "6、5000元;\n" +
                "7、其他金额\n" +
                "8、退卡\n" +
                "9、返回\n");
        int t = scanner.nextInt();
        switch (t) {
            case 1:
                if (list.get(a).getAccountbalance() > 100) {
                    qukuanchenggong(100);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 2:
                if (list.get(a).getAccountbalance() > 500) {
                    qukuanchenggong(500);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 3:
                if (list.get(a).getAccountbalance() > 1000) {
                    qukuanchenggong(1000);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 4:
                if (list.get(a).getAccountbalance() > 1500) {
                    qukuanchenggong(1500);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 5:
                if (list.get(a).getAccountbalance() > 2000) {
                    qukuanchenggong(2000);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 6:
                if (list.get(a).getAccountbalance() > 5000) {
                    qukuanchenggong(5000);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 7:
                Head();
                System.out.println("请录入取款金额:");
                int b = scanner.nextInt();
                if (list.get(a).getAccountbalance() > b) {
                    qukuanchenggong(b);
                } else {
                    System.out.println("账户余额不足");
                }
                break;
            case 8:
                enterAccount();
                break;
            case 9:
                main2();
                break;
        }     }     public static void zhuanzhang() throws IOException {
        int b;
        Scanner scanner = new Scanner(System.in);
        Head();
        System.out.println("请输入转账账户:");
        String ac = scanner.next();
        for (int i = 0; i < list.size(); i++) {
            if (ac.equals(list.get(i).getAccountID())) {
                Head();
                System.out.println("请输入转账金额:");
                int money = scanner.nextInt();
                if (money <= list.get(a).getAccountbalance()) {
                    Head();
                    System.out.println("请确认是否向" + list.get(i).getAccountname() + "转账" + money + "元。(Y/N)");
                    String c = scanner.next();
                    if (c.equals("N")) {
                        main2();
                        break;
                    }
                    if (c.equals("Y")) {
                        Head();
                        System.out.println("当前账户向" + list.get(i).getAccountname() + "成功转账" + money + "元。");
                        System.out.println("当前账户余额为:" + money + "元");
                        list.get(a).setAccountbalance(list.get(a).getAccountbalance() - money);
                        list.get(a).setAmount(list.get(a).getAmount() + money);
                        list.get(a).setOperatetype(3);                         write();
                    }
                }
            }
        }
        main2();
    }     public static void setpass() throws IOException {
        Scanner scanner = new Scanner(System.in);
        Head();
        System.out.println("请输入当前密码:");
        String pa1 = scanner.next();
        System.out.println("请输入修改密码:");
        String npa1 = scanner.next();
        System.out.println("请输入修改密码:");
        String npa2 = scanner.next();
        if (!pa1.equals(list.get(a).getAccountpassword()) &&npa1.equals(npa2)){
            Head();
            System.out.println("当前账户密码修改成功");
        }else if (!pa1.equals(list.get(a).getAccountpassword())) {
            System.out.println("当前密码录入错误");
            setpass();
        }else if(!npa1.equals(npa2)){
            System.out.println("修改密码与确认密码不一致");
            setpass();
        }
        list.get(a).setOperatetype(4);
        write();
        main2();
    }
}

标签:JAVA,22,get,09,list,System,println,public,out
来源: https://www.cnblogs.com/liuyichendeyuanzi/p/13715563.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有