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

Java编程基础项目练习一:模拟实现基于文本界面的《家庭记账软件》。

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

Java编程基础项目练习一:模拟实现基于文本界面的《家庭记账软件》。

package com.atguigu.project;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;


public class Domain {

    
        //基本金
        int balance = 10000;
        //收支明细
        String details = "时间ttt收支情况tt收支金额tt账户余额tt说 明n";
        //记录登记时间
        LocalDateTime localDateTime;



    
    public void showMainMenu(){//显示菜单
        System.out.println("-----------------家庭收支记账软件-----------------");
        System.out.println();
        System.out.println("1.收支明细");
        System.out.println("2.登记收入");
        System.out.println("3.登记支出");
        System.out.println("4.直接退出");
        System.out.println();
    }

    
    {
        boolean flag = true; //判断是否结束循环,即退出菜单
        while(flag){
            showMainMenu();
            //用户选择
            System.out.print("请选择(1-4):");
            char c = Utility.readMenuSelection(); //读取用户从键盘输入的数字:(1 - 4)
            switch(c){
                case '1':
                    System.out.println("--------------------当前收支明细记录--------------------");
                    System.out.println(details);
                    System.out.println("-----------------------------------------------------");
                    System.out.println();
                    System.out.println();
                    break;

                case '2':
                    boolean isKeep = true;
                    while(isKeep){
                        System.out.print("本次收入金额:");
                        int inputAmount = Utility.readNumber(); //读取用户输入的金额
                        System.out.print("本次收入说明:");
                        String forUse = Utility.readString(); //读取用户输入的说明
                        balance += inputAmount; //基本金增加
                        //获取当前时间
                        localDateTime = LocalDateTime.now();
                        //时间格式化为时分秒
                        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss");
                        String format = formatter.format(localDateTime); //转换为当前时间的字符串

                        //显示添加收入明细记录
                        details += format + "t" + "收入ttt" + inputAmount + "ttt" + balance + "tt" + forUse + 'n';
                        System.out.println("登记成功");

                        //判断是否继续操作
                        System.out.print("是否继续登记?(Y/N):");
                        char isContinue = Utility.readConfirmSelection();
                        if(isContinue == 'Y'){
                            continue;//继续登记
                        }else{
                            isKeep = false;
                        }
                    }
                    System.out.println();
                    System.out.println();
                    break;

                case  '3':
                    boolean isKeep2 = true;
                    while(isKeep2){
                        System.out.print("本次支出金额:");
                        int inputAmount = Utility.readNumber(); //读取用户输入的金额
                        System.out.print("本次支出说明:");
                        String forUse = Utility.readString(); //读取用户输入的说明
                        balance -= inputAmount; //基本金减去

                        //获取当前时间
                        localDateTime = LocalDateTime.now();
                        //时间格式化为时分秒
                        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss");
                        String format = formatter.format(localDateTime); //转换为当前时间的字符串
                        //显示添加支出明细记录
                        details += format + "t" + "支出ttt" + inputAmount + "ttt" + balance + "tt" + forUse + 'n';
                        System.out.println("登记成功");

                        //判断是否继续操作
                        System.out.print("是否继续登记?(Y/N):");
                        char isContinue = Utility.readConfirmSelection();
                        if(isContinue == 'Y'){
                            continue;//继续登记
                        }else{
                            isKeep2 = false;
                        }
                    }
                    System.out.println();
                    System.out.println();
                    break;

                case '4':
                    System.out.print("确认是否退出(Y/N):");
                    char isExit = Utility.readConfirmSelection(); //获取用户输入:(Y/N)
                    if(isExit == 'Y'){
                        flag = false; //结束循环
                        System.out.println("已退出!");
                    }
                    break;
            }
        }
    }

    public static void main(String[] args) {
        Domain domain = new Domain(); //开始
    }


}

控制台运行效果图如下:

 

 

 

 

 

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

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

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