【JAVA学习 第一章 Java项目一 家庭收支系统详解 】

发布于:2023-01-04 ⋅ 阅读:(238) ⋅ 点赞:(0)

Java 学习

第一章 Java项目一 家庭收支系统详解



前言

一点简单的Java学习记录,包括遇到的项目和一些注意事项。


提示:一个很简单的收支系统,经验者可以跳过,但包含的语法很多很全,适合初学者练手用。

一、收支系统的结构

1.按功能模块划分

收支系统应该包括的模块:
1.列出所有的收支明细
2.增加收入记录
3.增加支出记录
4.退出系统

2.按实现模块划分

输入:
1.输入选择的功能
2.输入金额
3.输入收支项目
4.输入退出系统选项

输出
1.输出系统功能页面
2.输出收入支明细
3.输出支出明细
4.输出退出页面

3.将2中的模块进行组合,完成1中的功能

功能1 :输出1+输入1+输出2
功能2 :输出1+输入1+输入2+输入3
功能3 :输出1+输入1+输入2+输入3
功能4 :输出1+输入1+输入4+输出4

二、使用步骤

1.引入库

引用库函数:

import java.util.Scanner;

2.读入数据

0.从键盘读取函数

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

1.输入选择的功能

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

2.输入金额

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

3.输入收支项目

    public static String readString(){
        String str = readkeyBoard(8);//这个值可以自己赋值,这里长度不超过8.
        return str;
    }

4.输出退出页面

    public  static  char readConfirmSelection(){
        char c;
        for (;;){
            String str = readkeyBoard(1).toUpperCase();
            c = str.charAt(0);
            if(c == 'Y' || c == 'N'){
                break;
            }else {
                System.out.print("选择错误,请重新输入:");
            }
        }
        return c;
    }

3.系统实现

public class FamilyAccount {
    public  static  void  main(String[] args){
        String details = "收支\\t账户金额\\t收支金额\\t说    明\\n"; //用来存储文本
        int balance = 0;

        boolean loopFlag = true;
        while (loopFlag)
        {
        //系统显示界面
            System.out.println("\n-----------------家庭收支记账软件-----------------\n");
            System.out.println("                   1 收支明细");
            System.out.println("                   2 登记收入");
            System.out.println("                   3 登记支出");
            System.out.println("                   4 退    出\n");
            System.out.print("                   请选择(1-4):");

            char key = Utility.readMenuSelection();
            System.out.println();
            switch (key){
 				//功能1:显示收支明细
                case '1':
                    System.out.println("-----------------当前收支明细记录-----------------");
                    System.out.println(details);
                    System.out.println("--------------------------------------------------");
                    break;
				//功能2:输入收入明细
                case '2':
                    System.out.print("本次收入金额:");
                    int amount1 = Utility.readNumber();
                    System.out.print("本次收入说明:");
                    String desc1 = Utility.readString();

                    balance += amount1;
                    details += "收入\t" + balance + "\t\t" +
                            amount1 + "\t\t" + desc1 + "\n";
                    System.out.println("---------------------登记完成---------------------");
                    break;
				//功能3:输入支出明细
                case '3':
                    System.out.print("本次支出金额:");
                    int amount2 = Utility.readNumber();
                    System.out.print("本次支出说明:");
                    String desc2 = Utility.readString();

                    balance -= amount2;
                    details += "支出\t" + balance + "\t\t" +
                            amount2 + "\t\t" + desc2 + "\n";
                    System.out.println("---------------------登记完成---------------------");
                    break;
				//功能4:退出系统
                case '4':
                    System.out.print("确认是否退出(Y/N):");
                    char yn = Utility.readConfirmSelection();
                    if (yn == 'Y') loopFlag = false;
                    break;
            }
        }

    }
}

总结

在这里插入图片描述

就一个很简单的家庭收支系统,网上应该有大量类似的东西,有问题的请底下留言。


网站公告

今日签到

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