Java/java程序设计:编程零钱通(SmallChangeSys)小项目

Java/java程序设计:编程零钱通SmallChangeSys小项目

  • 一、前言
  • 二、思路分析:
  • 三、代码片段:
  • 四、运行效果展示:
    • 3.1 先输入 1 显示空的 零钱明细
    • 3.2 输入 2 增加零钱余额 100元
    • 3.3 输入 3 进行消费 先出入合理值 50 看电影
    • 3.4 输入错误的消费 10000 检验代码健壮性
    • 3.5 输入 4 加 n 否定退出
    • 3.6 输入错误的菜单按钮,检验代码的健壮性
    • 3.7 正确执行退出
  • 五、写在最后

一、前言

题目如下图所示:
分析需求,按要求完成实现目标

零钱通
lqt

二、思路分析:

化繁为简
1.先完成显示菜单,并可以选择菜单,给出相应提示;
2.完成零钱通明细;
3.完成收益入账
4.消费
5.退出
6.退出给出提示“是否确定退出,请输入(y/n)“,否则循环输入指令,直到正确输入y 或者 n
7.在收益入账和消费时,判断合理性,并给出相应的提示

三、代码片段:

package smallchange;

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


public class SmallChangeSys {
//    化繁为简
//    1.先完成显示菜单,并可以选择菜单,,给出相应提示;
//    2.完成零钱通明细;
//    3.完成收益入账
//    4.消费
//    5.退出
//    6.退出给出提示“是否确定退出,请输入(y/n)“,否则循环输入指令,直到正确输入y 或者 n
//    7.在收益入账和消费时,判断合理性,并给出相应的提示
    public static void main(String[] args) {
        //定义相关变量;
        boolean loop = true;
        Scanner scanner = new Scanner(System.in);
        String key = " ";
        //2.完成零钱通明细;
        //(1) 可以把收益入账和消费,保存到数组 (2) 可以使用对象 (3) 简单点使用String拼接,小编使用第三种^ - ^
        String details = "-------------------零钱通明细-------------------";
        //3.完成收益入账
        //定义新的变量
        double money = 0;
        double banlance = 0;
        Date date = null;   //date 是java.util.Date 类型, 表示日期
        //可以用于日期格式化
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //4.消费
        //定义新变量,保存消费原因
        String note = " ";

        do{
            System.out.println("\n=================零钱通菜单=================");
            System.out.println("\t\t\t 1. 零钱通明细");
            System.out.println("\t\t\t 2. 收益入账");
            System.out.println("\t\t\t 3. 消费");
            System.out.println("\t\t\t 4. 退     出");

            System.out.print("请选择1~4:");
            key = scanner.next();

            switch (key){
                case "1" :
                    System.out.println(details);
                    break;
                case "2" :
                    System.out.print("收益入账金额:");
                    money = scanner.nextDouble();
                    //money 的取值范围应该要有校验,列出不正确的情况,给出提示,直接break;
                    //列出错误的输入,方便日后维护
                    if(money <= 0){
                        System.out.println("收益入账金额范围应当 需要 大于 0 !");
                        break;
                    }
                    banlance += money;
                    //拼接收益入账信息到 details
                    date = new Date();//获取当前时间
                    details += "\n收益入账" + "\t+" + money + "\t" + sdf.format(date) + "\t" + "余额:" + banlance;
                    break;
                case "3" :
                    System.out.print("消费金额:");
                    money = scanner.nextDouble();
                    if (money <= 0 || money > banlance){
                        System.out.println("你的消费金额应当在 ( 0 ~ " + banlance + ") ");
                        break;
                    }
                    System.out.print("消费明细:");
                    note = scanner.next();
                    banlance -= money;
                    date = new Date();//获取当前时间
                    details += "\n" + note +"\t-" + money + "\t" + sdf.format(date) + "\t" + "余额:" + banlance;
                    break;
                case "4" :
                    //退出给出提示“是否确定退出,请输入(y/n)“,否则循环输入指令,直到正确输入y 或者 n
                    //(1)定义一个变量 choise ,接收输入y or n
                    //(2)小编这里再嵌套一个while + break
                    //(3)退出内层while后再判断是否决定退出
                    //注意:编程种最好按照一段代码一个功能所以分(2)、(3)步骤
                    String choise = " ";
                    while(true){
                        System.out.print("是否确定退出,请输入(y/n):");
                        choise = scanner.next();
                        if("y".equals(choise) || "n".equals(choise)){
                                break;
                        }
                    }
                    //当用户退出while,进行判断
                    if("y".equals(choise)){
                        loop = false;
                    }
                    break;
                default:
                    System.out.println("菜单选择有误,请重新选择~ ");
            }

        }while(loop);
        System.out.println("已退出零钱通~");
    }
}

四、运行效果展示:

3.1 先输入 1 显示空的 零钱明细

1

3.2 输入 2 增加零钱余额 100元

2

3.3 输入 3 进行消费 先出入合理值 50 看电影

3

3.4 输入错误的消费 10000 检验代码健壮性

4

3.5 输入 4 加 n 否定退出

5

3.6 输入错误的菜单按钮,检验代码的健壮性

6

3.7 正确执行退出

7

五、写在最后

这个小项目呢,使用的方法并不高级,具体事项小编都交代在代码注释中了,干什么事不可一跃而就,要慢下来跟着敲一遍,才能更容易了解并掌握编程思想,加油同行人 ^ - ^

xiexie 阅读!欢迎复制源码 运行体验

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值