暑期Java学习笔记——记账软件实现

基于基础的Java知识实现了一个简单的记账软件。

首页如图所示,含收支明细,登记收入,登记支出和退出等功能。

 选择功能进行收入的记录

 选择功能进行支出的记录

最后调用账本查看

 只是进行简单的记录,并没有连接数据库或写入文件进行记录,所以每次运行都会重置。

扫描二维码关注公众号,回复: 16369469 查看本文章

附上源码(含两个类文件)

文件构成如图所示,在同一个文件夹下可以直接调用类

/**
 * 一个记账软件(主页面)
 */

public class LsAccount {
    public static void main(String[] args) {
        //初始金额
        int moneyAll = 10000;
        //菜单显示信息
        String info = "";
        while(true){
            System.out.println("-----------记账软件----------\n");
            System.out.println("        1. 收支明细");
            System.out.println("        2. 登记收入");
            System.out.println("        3. 登记支出");
            System.out.println("        4. 退   出\n");
            System.out.print("        请选择(1-4):");

            char c = getIn.readMenuSelection();
            switch (c){
                case '1':
                    System.out.println("-----------当前收支明细记录----------");
                    System.out.println("收支\t账户金额\t收支金额\t说明");
                    System.out.print(info);
                    System.out.println("----------------------------------");
                    break;
                case '2':
                    System.out.print("本次收入金额:");
                    int moneyIn = getIn.readNumber();
                    if(moneyIn>0) moneyAll+=moneyIn;
                    System.out.print("本次收入说明:");
                    String explainIn = getIn.readString();
                    //使用换行显示信息的分条
                    info += "收入\t"+moneyAll+"\t"+moneyIn+"\t\t"+explainIn+"\n";
                    System.out.println("-----------登记完成----------");
                    break;
                case '3':
                    System.out.print("本次支出金额:");
                    int moneyOut = getIn.readNumber();
                    if(moneyOut>0) moneyAll-=moneyOut;
                    System.out.print("本次收入说明:");
                    String explainOut = getIn.readString();
                    info += "支出\t"+moneyAll+"\t"+moneyOut+"\t\t"+explainOut+"\n";
                    System.out.println("-----------登记完成----------");
                    break;
                case '4':
                    System.out.print("\n确认是否退出(Y/N):");
                    if(getIn.readExitSelection()=='Y')  return;
                    break;
            }
        }
    }
}
import java.util.Locale;
import java.util.Scanner;

/**
 * 各项输入
 */

public class getIn {
    private static Scanner scanner = new Scanner(System.in);

    //获取数据方法
    private static String r() {
        String line="";
        line = scanner.next();
        return line;
    }

    //获取用户菜单输入
    public static char readMenuSelection(){
        char c;
        for(;;){
            String str = r();
            c = str.charAt(0);
            if(c != '1' && c!='2' && c!='3' && c!='4') System.out.print("选择错误,请重新输入:");
            else break;
        }
        return c;
    }

    //获取退出输入
    public static char readExitSelection(){
        char c;
        for(;;){
            String str = r().toUpperCase();
            c = str.charAt(0);
            if(c=='Y' || c=='N') break;
            else System.out.println("选择错误,请重新输入:");
        }
        return c;
    }

    //获取金额输入
    public static int readNumber() {
        int n;
        for(;;){
            String str = r();
            try{
                n = Integer.parseInt(str);
                break;
            }catch (NumberFormatException e){
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }

    //获取说明输入
    public static String readString() {
        String str = r();
        return str;
    }



}

猜你喜欢

转载自blog.csdn.net/laodaye_xiaolizi/article/details/131001149
今日推荐