IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java-零钱通(项目) -> 正文阅读

[Java知识库]java-零钱通(项目)

java-零钱通介绍

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

java-零钱通菜单

请添加图片描述
请添加图片描述
请添加图片描述
源码
package com.Start300.SmallChange;

import java.util.Scanner;

public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择 给吃对应提示
public static void main(String[] args) {
//定义相应的变量
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = “”;
do {//至少输出一次
System.out.println(“零钱通菜单==”);
System.out.println("\t\t\t1 零钱通明细");
System.out.println("\t\t\t2 收益入账");
System.out.println("\t\t\t3 消费");
System.out.println("\t\t\t4 退 出");

        System.out.println("请选择(1-4)");
        key = scanner.next();

        //使用switch分支结构
        switch (key) {
            case "1"://输入1 则显示零钱通明细
                System.out.println("1 零钱通明细");
                break;
            case "2"://输入1 则显示零钱通明细
                System.out.println("2 收益入账");
                break;
            case "3"://输入1 则显示零钱通明细
                System.out.println("3 消费");
                break;
            case "4"://输入1 则显示零钱通明细
                System.out.println("4 退   出");
                loop = false;
                break;
            default:
                System.out.println("选择有误 请重新选择");
        }
    } while (loop);
    System.out.println("———————————退出了零钱通————————————");
}

}

零钱通明细

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

零钱通收益

请添加图片描述
请添加图片描述
源码
package com.Start300.SmallChange;

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

public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择 给吃对应提示
//2.完成零钱通明细
//3.完成收益入账
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 balance = 0;//balance 余额
    Date date = null;//date是java.util.Date类型,表示日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    //上面是用来日期格式化的 具体以后还会说到 这里只是了解即可

    do {//至少输出一次
        System.out.println("\n==============零钱通菜单================");
        System.out.println("\t\t\t1 零钱通明细");
        System.out.println("\t\t\t2 收益入账");
        System.out.println("\t\t\t3 消费");
        System.out.println("\t\t\t4 退     出");

        System.out.println("请选择(1-4)");
        key = scanner.next();

        //使用switch分支结构
        switch (key) {
            case "1":
                System.out.println(details);
                break;
            case "2":
                System.out.print("收益入账金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验 一会在完善
                balance += money;//这里因为是入账 所以是+
                //拼接收益入账信息到details
                date = new Date();//获取当前日期
                //System.out.println(sdf.format(date));//用sdf格式化当前日期
                details += "\n收益入账\t+" + money + "\t" + sdf.format(date)
                        + "\t" + "余额" + balance;

                break;
            case "3":
                System.out.println("3 消费");
                break;
            case "4":
                System.out.println("4 退   出");
                loop = false;
                break;
            default:
                System.out.println("选择有误 请重新选择");
        }
    } while (loop);
    System.out.println("———————————退出了零钱通————————————");
}

}

零钱通消费

请添加图片描述
请添加图片描述
源码
package com.Start300.SmallChange;

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

public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择 给吃对应提示
//2.完成零钱通明细
//3.完成收益入账
//4.消费
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 balance = 0;//balance 余额
    Date date = null;//date是java.util.Date类型,表示日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    //上面是用来日期格式化的 具体以后还会说到 这里只是了解即可

    //4.消费
    //定义新变量 保存消费的原因
    String note = "";

    do {//至少输出一次
        System.out.println("\n==============零钱通菜单================");
        System.out.println("\t\t\t1 零钱通明细");
        System.out.println("\t\t\t2 收益入账");
        System.out.println("\t\t\t3 消费");
        System.out.println("\t\t\t4 退     出");

        System.out.println("请选择(1-4)");
        key = scanner.next();

        //使用switch分支结构
        switch (key) {
            case "1":
                System.out.println(details);
                break;
            case "2":
                System.out.print("收益入账金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验 一会在完善
                balance += money;//这里因为是入账 所以是+
                //拼接收益入账信息到details
                date = new Date();//获取当前日期
                //System.out.println(sdf.format(date));//用sdf格式化当前日期
                details += "\n收益入账\t+" + money + "\t" + sdf.format(date)
                        + "\t" + "余额" + balance;

                break;
            case "3":
                System.out.print("消费金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验余额只有100 消费200肯定是不行的 一会在改善
                System.out.print("消费说明:");
                note = scanner.next();
                balance -= money;
                //拼接消费信息到details
                date = new Date();//获取当前日期
                details += "\n" + note + "\t-" + money + "\t" +
                        sdf.format(date) + "\t" + "余额" + balance;
                break;
            case "4":
                System.out.println("4 退   出");
                loop = false;
                break;
            default:
                System.out.println("选择有误 请重新选择");
        }
    } while (loop);
    System.out.println("———————————退出了零钱通————————————");
}

}

零钱通退出确认

请添加图片描述
请添加图片描述
请添加图片描述
源码
package com.Start300.SmallChange;

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

public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择 给吃对应提示
//2.完成零钱通明细
//3.完成收益入账
//4.消费
//5.退出
//6.用户输入4退出时 给出提示y/n
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 balance = 0;//balance 余额
    Date date = null;//date是java.util.Date类型,表示日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    //上面是用来日期格式化的 具体以后还会说到 这里只是了解即可

    //4.消费
    //定义新变量 保存消费的原因
    String note = "";

    do {//至少输出一次
        System.out.println("\n==============零钱通菜单================");
        System.out.println("\t\t\t1 零钱通明细");
        System.out.println("\t\t\t2 收益入账");
        System.out.println("\t\t\t3 消费");
        System.out.println("\t\t\t4 退     出");

        System.out.println("请选择(1-4)");
        key = scanner.next();

        //使用switch分支结构
        switch (key) {
            case "1":
                System.out.println(details);
                break;
            case "2":
                System.out.print("收益入账金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验 一会在完善
                balance += money;//这里因为是入账 所以是+
                //拼接收益入账信息到details
                date = new Date();//获取当前日期
                //System.out.println(sdf.format(date));//用sdf格式化当前日期
                details += "\n收益入账\t+" + money + "\t" + sdf.format(date)
                        + "\t" + "余额" + balance;

                break;
            case "3":
                System.out.print("消费金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验 如果余额只有100 消费200肯定是不行的
                System.out.print("消费说明:");
                note = scanner.next();
                balance -= money;
                //拼接消费信息到details
                date = new Date();//获取当前日期
                details += "\n" + note + "\t-" + money + "\t" +
                        sdf.format(date) + "\t" + "余额" + balance;
                break;
            case "4":
                //用户输入4退出时 给出提示"你确定要退出吗?y/n" 必须输入正确的y/n
                //否则循环输入指令 知道输入y或者n
                //思路分析
                //(1)定义一个变量choice 接收用户的输入
                //(2)使用while+break,来处理接收到的输入时y或者n
                //(3)退出while后 在判断while是y还是n 就可以决定是否退出
                //(4)建议一段代码 完成一个小功能 尽量不要混在一起
                String choice = "";
                while (true){//要求用户必须输入y/n 否则就一直循环
                    System.out.println("你确定要退出吗y/n");
                    choice = scanner.next();
                    if ("y".equals(choice)||"n".equals(choice)){
                        break;
                    }
                }
                //当用户退出while后 进行判断
                if (choice.equals("y")){
                    loop = false;
                }
                break;
            default:
                System.out.println("选择有误 请重新选择");
        }
    } while (loop);
    System.out.println("———————————退出了零钱通————————————");
}

}

零钱通金额效验

请添加图片描述
在case “2”:和case “3”:里面加了些代码
请添加图片描述
请添加图片描述
请添加图片描述
源码
package com.Start300.SmallChange;

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

public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择 给吃对应提示
//2.完成零钱通明细
//3.完成收益入账
//4.消费
//5.退出
//6.用户输入4退出时 给出提示y/n
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 balance = 0;//balance 余额
    Date date = null;//date是java.util.Date类型,表示日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    //上面是用来日期格式化的 具体以后还会说到 这里只是了解即可

    //4.消费
    //定义新变量 保存消费的原因
    String note = "";

    do {//至少输出一次
        System.out.println("\n==============零钱通菜单================");
        System.out.println("\t\t\t1 零钱通明细");
        System.out.println("\t\t\t2 收益入账");
        System.out.println("\t\t\t3 消费");
        System.out.println("\t\t\t4 退     出");

        System.out.println("请选择(1-4)");
        key = scanner.next();

        //使用switch分支结构
        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;
                }
                balance += money;//这里因为是入账 所以是+
                //拼接收益入账信息到details
                date = new Date();//获取当前日期
                //System.out.println(sdf.format(date));//用sdf格式化当前日期
                details += "\n收益入账\t+" + money + "\t" + sdf.format(date)
                        + "\t" + "余额" + balance;
                break;
            case "3":
                System.out.print("消费金额");
                money = scanner.nextDouble();
                //money 的值范围应该效验 如果余额只有100 消费200肯定是不行的
                if (money <= 0 ||money > balance){
                    System.out.println("你的消费金额应该在0-"+balance);
                    break;
                }
                System.out.print("消费说明:");
                note = scanner.next();
                balance -= money;
                //拼接消费信息到details
                date = new Date();//获取当前日期
                details += "\n" + note + "\t-" + money + "\t" +
                        sdf.format(date) + "\t" + "余额" + balance;
                break;
            case "4":
                //用户输入4退出时 给出提示"你确定要退出吗?y/n" 必须输入正确的y/n
                //否则循环输入指令 知道输入y或者n
                //思路分析
                //(1)定义一个变量choice 接收用户的输入
                //(2)使用while+break,来处理接收到的输入时y或者n
                //(3)退出while后 在判断while是y还是n 就可以决定是否退出
                //(4)建议一段代码 完成一个小功能 尽量不要混在一起
                String choice = "";
                while (true){//要求用户必须输入y/n 否则就一直循环
                    System.out.println("你确定要退出吗y/n");
                    choice = scanner.next();
                    if ("y".equals(choice)||"n".equals(choice)){
                        break;
                    }
                }
                //当用户退出while后 进行判断
                if (choice.equals("y")){
                    loop = false;
                }
                break;
            default:
                System.out.println("选择有误 请重新选择");
        }
    } while (loop);
    System.out.println("———————————退出了零钱通————————————");
}

}

零钱通OOP版

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
SmallChangeSysOOP类源码
package com.Start300.SmallChange.oop;

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

/**

  • 该类是完成零钱通的各个功能的类

  • 使用OOP(面向对象编程)

  • 将各个功能对应一个方法
    */
    public class SmallChangeSysOOP {

    //属性
    //定义相应的变量
    boolean loop = true;
    Scanner scanner = new Scanner(System.in);
    String key = “”;

    //2.完成零钱通明细
    //(1)可以把收益入账和消费保存到数组 (2)可以使用对象 (3)简单的话可以使用String拼接
    String details = “--------------零钱通明细----------------”;

    //3.完成收益入账 完成功能驱动程序员增加新的变量和代码
    //定义新的变量
    double money = 0;
    double balance = 0;//balance 余额
    Date date = null;//date是java.util.Date类型,表示日期
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
    //上面是用来日期格式化的 具体以后还会说到 这里只是了解即可

    //4.消费
    //定义新变量 保存消费的原因
    String note = “”;

    //先完成显示菜单 并可以选择
    public void mainMenu() {
    do {//至少输出一次
    System.out.println("\n零钱通菜单(OOP)=");
    System.out.println("\t\t\t1 零钱通明细");
    System.out.println("\t\t\t2 收益入账");
    System.out.println("\t\t\t3 消费");
    System.out.println("\t\t\t4 退 出");

         System.out.println("请选择(1-4)");
         key = scanner.next();
    
         //使用switch分支结构
         switch (key) {
             case "1":
                 this.detail();
                 break;
             case "2":
                 this.income();
                 break;
             case "3":
                 this.pay();
                 break;
             case "4":
                 this.exit();
                 break;
             default:
                 System.out.println("选择有误 请重新选择");
         }
     } while (loop);
     System.out.println("您退出了零钱通");
    

    }

    //完成零钱通明细
    public void detail() {
    System.out.println(details);
    }

    //完成收益入账
    public void income() {
    System.out.print(“收益入账金额”);
    money = scanner.nextDouble();
    //money 的值范围应该效验 一会在完善
    //编程思想 找出不正确的金额条件 然后给出提示 就直接return
    if (money <= 0) {
    System.out.println(“收益入账金额需要大于0”);
    return;//退出方法 不在执行后面的代码
    }
    balance += money;//这里因为是入账 所以是+
    //拼接收益入账信息到details
    date = new Date();//获取当前日期
    //System.out.println(sdf.format(date));//用sdf格式化当前日期
    details += “\n收益入账\t+” + money + “\t” + sdf.format(date)
    + “\t” + “余额” + balance;
    }
    //消费
    public void pay() {
    System.out.print(“消费金额”);
    money = scanner.nextDouble();
    //money 的值范围应该效验 如果余额只有100 消费200肯定是不行的
    if (money <= 0 || money > balance) {
    System.out.println(“你的消费金额应该在0-” + balance);
    return;
    }
    System.out.print(“消费说明:”);
    note = scanner.next();
    balance -= money;
    //拼接消费信息到details
    date = new Date();//获取当前日期
    details += “\n” + note + “\t-” + money + “\t” +
    sdf.format(date) + “\t” + “余额” + balance;
    }
    //退出
    public void exit() {
    String choice = “”;
    while (true) {//要求用户必须输入y/n 否则就一直循环
    System.out.println(“你确定要退出吗y/n”);
    choice = scanner.next();
    if (“y”.equals(choice) || “n”.equals(choice)) {
    break;
    }
    }
    //当用户退出while后 进行判断
    if (choice.equals(“y”)) {
    loop = false;
    }
    }
    }
    SmallChangeSysApp类源码
    package com.Start300.SmallChange.oop;

/**
*这里我们直接调用SmallChangeSysOOP对象 显示主菜单即可
*/
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:18:43  更:2021-07-24 11:19:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 3:54:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码