当前位置: 首页 > article >正文

尚硅谷项目一谷粒记账软件

内容来自:尚硅谷

难度:easy

 目  标

模拟实现一个基于文本界面的 谷粒记账软件
掌握初步的编程技巧和调试技巧
主要涉及以下知识点:
变量的定义
基本数据类型的使用
循环语句
分支语句
方法声明、调用和返回值的接收

简单的屏幕输出格式控制

需求说明

模拟实现基于文本界面的 谷粒记账软件
该软件能够记录家庭的收入、支出,并能够打印收支明细表。
项目采用分级菜单方式。主菜单如下:

-----------------谷粒记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)_

假设家庭起始的生活基本金为 10000 元。
每次登记收入(菜单 2 )后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。
每次登记支出(菜单 3 )后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。
查询收支明细( 菜单 1 )时,将显示所有的收入、支出名细列表
“登记收入”的界面及操作过程如下所示:

-----------------谷粒记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)2

本次收入金额:1000

本次收入说明:劳务费_

“登记支出”的界面及操作过程如下所示:

-----------------谷粒记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)3

本次支出金额:800

本次支出说明:物业费_

“收支明细”的界面及操作过程如下所示:

-----------------谷粒记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)1

-----------------当前收支明细记录-----------------

收支    账户金额        收支金额        说    明

收入    11000           1000            劳务费

支出    10200           800             物业费

--------------------------------------------------

提示:明细表格的对齐,可以简单使用制表符‘\t’来实现

“退  出”的界面及操作过程如下所示:

-----------------谷粒记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)4

确认是否退出(Y/N)_

 基本金和收支明细的记录

基本金的记录可以使用 int 类型的变量来实现:

  int balance = 10000;

收支明细记录可以使用 Sting 类型的变量来实现,其初始值为明细表的表头。例如:

  String details = "收支\t账户金额\t收支金额\t说    明\n";

在登记收支时,将收支金额与balance相加或相减,收支记录直接串接到details后面即可

 

 

 1实现主程序结构

1. 创建 FamilyAccount 类及 main 方法
2. main 方法中,参照主流程图,实现程序主体结构
3. 测试程序,确认可以正常执行第 1 和第 4 菜单选项
2 实现收入和支出登记处理
1. main 方法中,参照收入和支出流程,实现“登记收入”功能
2. 测试“登记收入”功能
3. main 方法中,参照收入和支出流程,实现“登记支出”功能
4. 测试“登记支出”功能
import java.util.Scanner;
//TIP 要<b>运行</b>代码,请按 <shortcut actionId="Run"/> 或
// 点击装订区域中的 <icon src="AllIcons.Actions.Execute"/> 图标。
public class Main {
    public static void main(String[] args) {
        String var1 = "收支\t账户金额\t收支金额\t说    明\n";
        int var2 = 10000;
        boolean var3 = true;

        Scanner in = new Scanner(System.in);
        do {
            System.out.println("----------谷粒记账软件-------------\n");
            System.out.println("          1 收支明细");
            System.out.println("          2 登记收入");
            System.out.println("          3 登记支出");
            System.out.println("          4 退    出\n");
            System.out.println("          请选择(1-4):_");
            int choice = in.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("-----------------当前收支明细记录-----------------");
                    System.out.println(var1);
                    System.out.println("--------------------------------------------------");
                    break;
                case 2:
                    System.out.println("本次收入金额:");
                    int qian = in.nextInt();
                    var2 += qian;
                    System.out.println("本次收入说明:");
                    String var4 = in.next();
                    var1= var1 + "收入\t" + var2 + "\t\t" + qian + "\t\t" + var4+ "\n";
                    System.out.println(var1);
                    break;
                case 3:
                    System.out.println("本次支出金额:");
                    int qian1 = in.nextInt();
                    var2 -= qian1;
                    System.out.println("本次支出说明:");
                    String var5 = in.next();
                    var1= var1 + "收入\t" + var2 + "\t\t" + qian1 + "\t\t" + var5+ "\n";
                    System.out.println(var1);
                    break;
                case 4:
                    System.out.println("确认是否退出(Y/N):_");
                    String var6 = in.next();
                    if(var6.equals("Y")) {
                        var3 = false;
                    }
                    break;

            }
        } while (var3);
    }
}


http://www.kler.cn/a/572418.html

相关文章:

  • PyTorch 的 nn.NLLLoss:负对数似然损失全解析
  • electron.vite + better-sqlite3 + serialport 完整使用教程
  • Qt/C++音视频开发-检查是否含有B帧/转码推流/拉流显示/监控拉流推流/海康大华宇视监控
  • 基于Python的新闻采集与分析:新闻平台的全面数据采集实践
  • 爬虫技术结合淘宝商品快递费用API接口(item_fee):电商物流数据的高效获取与应用
  • 用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!
  • 【leetcode】实现Tire(前缀树)
  • FastGPT 源码:基于 LLM 实现 Rerank (含Prompt)
  • android_viewtracker 原理
  • 【cuda学习日记】5.4 常量内存
  • leetcode383 赎金信
  • 【详解 | 辨析】“单跳多跳,单天线多天线,单信道多信道” 之间的对比
  • Git-cherry pick
  • 迷你世界脚本世界UI接口:UI
  • c++面试常见问题:虚表指针存在于内存哪个分区
  • Node.js学习分享(上)
  • python爬虫数据库概述
  • 【Java】IO流
  • Linux·数据库INSERT优化
  • PyTorch 与 NVIDIA GPU 的适配版本及安装