栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

项目一(基础)家庭记录收支记账软件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目一(基础)家庭记录收支记账软件

1.项目功能简介

该项目采用分级菜单方式,显示功能选择以及使用。

由收支明细,登记收入,登记支出,退出四个功能进行设计。

收支明细:查询收支明细( 菜单1)时, 将显示所有的收入、支出名细列表

登记收入:每次登记收入(菜单2)后, 收入的金额应累加到基本金上,并记录本次收入明细, 以便后续的查询。

登记支出:每次登记支出(菜单3)后, 支出的金额应从基本金中扣除,并记 录本次支出明细,以便后续的查询。

退出程序。

运用到的知识点:二维数组的遍历,存储,while循环,switch语句,以及方法的调用实现,字符的转换操作。

2.设计流程

 

3.代码

首先定义一个二维数组,以及参数

再定义一个主函数

public static void main(String[] args) {
        while(flag){
            System.out.println("--------家庭收支记账软件--------");
            System.out.println("          1.收入明细");
            System.out.println("          2.登记收入");
            System.out.println("          3.登记支出");
            System.out.println("          4.退出");
            System.out.print("请选择(1~4):");
            System.out.println();
            char c=Utility.readMenuSelection();
            switch (c) {
                case '1':
                    inComePay(arr);
                    break;
                case '2':
                    System.out.println("登记收入    ");
                    inCome(arr);
                    break;
                case '3':
                    System.out.println("登记支出    ");
                    pay(arr);
                    break;
                case '4':
                    out();
                    break;
            }
        }
    }

最后功能实现方法

//收支明细
     public static void inComePay(String[][]a) {
        System.out.println("--------收支明细记录表--------");
        System.out.println("收支tt账户总金额tt收支金额tt说   明");
        for (int i=0;i

需要用

  • Utility.java(功能类脚本)
import java.util.Scanner;


public class Utility {
    private static Scanner scanner = new Scanner(System.in);
    
    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;
    }
    
    public static int readNumber() {
        int n;
        for (; ; ) {
            String str = readKeyBoard(4);
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
    
    public static String readString() {
        String str = readKeyBoard(8);
        return str;
    }

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


    private static String readKeyBoard(int limit) {
        String line = "";

        while (scanner.hasNext()) {
            line = scanner.nextLine();
            if (line.length() < 1 || line.length() > limit) {
                System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");
                continue;
            }
            break;
        }

        return line;
    }
}

完整代码

import java.util.Scanner;
import 阶段三.Utility;
public class JiaTing {
    private static String[][] arr = new String[100][4];
    private static int count=0;
    private static boolean flag=true;
    
    private static int sumNum=0;
    public static void main(String[] args) {
        while(flag){
            System.out.println("--------家庭收支记账软件--------");
            System.out.println("          1.收入明细");
            System.out.println("          2.登记收入");
            System.out.println("          3.登记支出");
            System.out.println("          4.退出");
            System.out.print("请选择(1~4):");
            System.out.println();
            char c=Utility.readMenuSelection();
            switch (c) {
                case '1':
                    inComePay(arr);
                    break;
                case '2':
                    System.out.println("登记收入    ");
                    inCome(arr);
                    break;
                case '3':
                    System.out.println("登记支出    ");
                    pay(arr);
                    break;
                case '4':
                    out();
                    break;
            }
        }
    }
    public static void inComePay(String[][]a) {
        System.out.println("--------收支明细记录表--------");
        System.out.println("收支tt账户总金额tt收支金额tt说   明");
        for (int i=0;i
4.运行结果展示

菜单栏:

登记收入:

登记支出:

退出:

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号