Java模拟实现一个基于文本界面的《记账软件》

这篇具有很好参考价值的文章主要介绍了Java模拟实现一个基于文本界面的《记账软件》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/*
*@author: Noiimplant
*@version: 1.0
*/

1. 利用java实现简易记账软件

根据尚硅谷java教程进行练习

2. 实现功能

  • 记录家庭支出、收入,打印收支明细表
  • 使用分级菜单的方式

3. 代码实现

3.1 GuliAccount.java

package GuliAccount;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
@author Noiimplant
@data 2023-4-21
@name: 阶段一 项目:谷粒记
账软件实现
*/
public class GuliAccount {

    public static void main(String args[]){
        boolean flag = true;

        SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); //设计日期格式
        System.out.println(df.format(new Date())); //new Data()获取当前时间
        String currentTime = "";

        //初始金额
        int init_Money = 0;
        String info = ""; //用来记录收支的记录

        while(flag){
            System.out.println("------------谷粒记账软件--------------\n");
            System.out.println("            1.收支明细\n");
            System.out.println("            2.登记收入\n");
            System.out.println("            3.登记支出\n");
            System.out.println("            4.退   出\n");
            System.out.println("            请选择(1-4)\n");

            char selction = Unility.readMenuSelection();

            switch(selction){
                case '1':
                    System.out.println("--------------收入明细--------------");
                    System.out.println("收支\t账户金额\t收支金额\t说  明\t日  期\n");
                    System.out.println(info);
                    System.out.println("-----------------------------------");
                    break;
                case '2':
                    System.out.println("本次收入金额:");
                    int money1 = Unility.readNumber();

                    if(money1 > 0){
                        init_Money += money1; //
                    }

                    System.out.println("本次收入金额说明:");
                    String addExample = Unility.readString();

                    Date Now1 = new Date();
                    currentTime = df.format(Now1);

                    info += "收入\t\t" + init_Money + "\t\t" + money1 + "\t\t" + addExample + "\t\t" + currentTime + "\n";

                    System.out.println("--------------登记完成--------------");
                    break;
                case '3':
                    System.out.println("登记支出");
                    System.out.println("本次收入金额:");
                    int money2 = Unility.readNumber();

                    if(money2 > 0 && init_Money > money2){
                        init_Money -= money2; //
                    }

                    System.out.println("本次支出金额说明:");
                    String addExample2 = Unility.readString();

                    Date Now2 = new Date();
                    currentTime = df.format(Now2);

                    info += "收入\t\t" + init_Money + "\t\t" + money2 + "\t" + currentTime + addExample2 + "\n";

                    System.out.println("--------------登记完成--------------");
                    break;
                case '4':
                    System.out.println("请确认是否退出(Y/N)");
                    char isExit = Unility.readConfirmSelect();
                    if(isExit == 'Y'){
                        flag = false;
                    }
                    break;
            }
        }
    }
}

3.2 Unility

package GuliAccount;
import java.util.*;
public class Unility {
    private static Scanner sc = new Scanner(System.in);

    /*
    * 判断selection
    * */
    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.println("输入的数据有误,请重新输入:");
            }
            else{
                break;
            }
        }
        return c;
    }



    /*
     * 用于收入和支出说明的输入。
     * 该方法从键盘读取一个不超过8位长度的字符串,并将其作为方法的返回值。
     */
    public static String readString(){
        String str = readKeyBoard(8);
        return str;
    }

    /*
     * 用于收入和支出金额的存储
     */
    public static int readNumber(){
      int num;
      for(;;){
          String str = readKeyBoard(4);
          try{
              num = Integer.parseInt(str);
              break;
          }
          catch(NumberFormatException e){
              System.out.println("输入数据有误,请重新输入");
          }
      }
      return num;
    };


    /*
     * 用于确认选择的输入。
     * 该方法从键盘读取‘Y’或‘N’,并将其作为方法的返回值。
     */
    public static char readConfirmSelect() {
        char c;
        for(;;){
            String str = readKeyBoard(1).toUpperCase();
            c = str.charAt(0);
            if(c == 'Y' || c == 'N'){
                break;
            }
            else{
                System.out.println("输入有误,请重新输入");
            }
        }
        return c;
    }

    /*
    * 从键盘键入的字符判断
    */
    public static String readKeyBoard(int limit){
        String line = "";

        while(sc.hasNext()){
            line = sc.nextLine();
            if(line.length() < 1 || line.length() > limit){
                System.out.println("输入的长度不大于" + limit + ",请重新输入");
                continue;
            }
            else break;
        }
        return line;
    }
}

原文链接:
尚硅谷java教程链接文章来源地址https://www.toymoban.com/news/detail-425241.html

到了这里,关于Java模拟实现一个基于文本界面的《记账软件》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中规模软件开发实训——掌握财务自由的关键!解锁智能家庭记账系统的神奇力量!(家庭记账软件)

    ✨ 博主: 命运之光 🌸 专栏: Python星辰秘典 🐳 专栏: web开发(html css js) ❤️ 专栏: Java经典程序设计 ☀️ 博主的其他文章: 点击进入博主的主页 前言: 财务自由,理想生活的关键之一就是有效的财务管理。但是,很多人在家庭记账上遇到了困惑和挑战。幸运的是,

    2024年02月12日
    浏览(57)
  • 基于微信小程序制作一个记账小工具

    你不理财,财不理你,制作一个记账小程序对自己的收入/支出明细进行管理,守护好自己的钱袋子。

    2024年02月07日
    浏览(38)
  • 一个基于python的文本搜索引擎的设计和实现

    下面是一个简单的搜索引擎的架构设计,包含了主要的组件和它们之间的关系。 该搜索引擎架构包括以下组件: 用户界面:这是用户与搜索引擎交互的部分,用户输入查询,并通过用户界面得到搜索结果。 查询处理器:这是搜索引擎的核心组件,负责处理用户查询,

    2024年02月05日
    浏览(43)
  • 开源|用 Java 实现一个生成 Markdown 文本的工具

    公司的 IM 每天有许多机器人推送的消息,我也在使用,这个功能是好的,但是当我们想去发送一些格式优美的消息时,却要费许多功夫,主要来源于字符串拼接,如果要拼接出 Markdown 格式的那就更费力了,另外由拼接带来的是混乱的代码,为了解决这个痛点,我写了一个

    2023年04月15日
    浏览(44)
  • Android studio实现财务记账系统软件android studio开发课程设计

    Android 开发一个理财记账系统软件(app)的详细实验步骤,内附有源码,小白也能轻松上手自己的软件开发项目学生可当课程设计学习使用。 系统登录/退出 设置/修改密码 主活动页面设计 增加收入记录页面 查看收入记录页面 修改和删除记录页面 1、实验名称 数据库的创建 2.

    2024年02月10日
    浏览(58)
  • 【Java】Java使用Swing实现一个模拟计算器(有源码)

       📝个人主页:哈__ 期待您的关注  今天翻了翻之前写的代码,发现自己之前还写了一个计算器,今天把我之前写的代码分享出来。  我记得那会儿刚学不会写,写的乱七八糟,但拿来当期末作业还是不错的哈哈。 直接上源码,后上讲解。 计算器上的按键不少,我们都定

    2024年04月11日
    浏览(66)
  • 记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档)

    家庭记账本小程序 目录 基于SSM的家庭记账本小程序设计与实现 一、前言 二、系统设计 三、系统功能设计  1、小程序端: 2、后台 四、数据库设计  五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍 :✌️大厂码农|毕设布道师,阿里云

    2024年04月15日
    浏览(43)
  • 基于JAVA(springboot框架)智能消费记账系统 毕业设计开题报告

     博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月04日
    浏览(40)
  • 用Java来实现区块链原理并简单模拟开发一个小工具

    前几天心血来潮,用Java模拟实现了一个区块链小工具,该工具是单机版的,没有实现联网功能,属于是单节点的工具,但是对于区块链的核心wk逻辑功能都实现了,如:wk、钱包、转账、记账等功能。界面实现用到了Java的swing包。 下面先看下运行的效果: 主界面: 转账:  

    2024年02月11日
    浏览(40)
  • 基于Tkinter实现一个垃圾分类答题软件

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、Tkinter 二、最终效果 三、项目过程 3.1分析布局 3.2创建窗口 3.3构建题库 3.4创建组件

    2024年01月21日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包