Java实例项目零钱通的实现流程

目录
  • 老韩思路:
  • 一些说明
  • SmallChangeSys用来写main方法代码如下
  • 具体说明各个方法的作用:
    • publicvoidmenu()方法
    • voiddetailed_()方法
    • publicvoidinput()方法
    • publicvoidoutput()方法
  • SmallChangeSysOOP完整代码
  • 一些图片

注意:本项目来自B站韩顺平老师 点此跳转

完整代码请看这里:gitee

点击这里 GitHub链接

如图:

老韩思路:

(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)

(2)可以使用对象

(3)可以使用String拼接

完成收益入账,完成功能驱动程序员增加新的变化的代码

(1)要接收收益入账的金额,并更新余额

(2)拼接好字符串

(3)找到时间如何输出,并且修改其输出格式

我用的字符串拼接

**

一些说明

**:创建一个包 com.project.money.oop

然后创建两个类 SmallChangeSys和SmallChangeSysOOP

SmallChangeSys 用来写main方法代码如下

package com.project.money.oop;

public class SmallChangeSys {
    public static void main(String[] args) {
        SmallChangeSysOOP p=new SmallChangeSysOOP();
        p.menu();
    }
}

SmallChangeSysOOP用来实现具体功能

代码如下:

package com.project.money.oop;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
    private  double in_money=0;//当前流动的钱
    private double balance=0;//余额
    private String detailed="------------零钱通明细--------------";
    private Date date = null;
    //可以用于日期格式化的
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
public void menu(){};
//1 零钱通明细
 public void detailed_(){};
 //2 收益入账"
 public void input(){};
 //3消费
    public void output(){};

}

具体说明各个方法的作用:

public void menu()方法

public void menu(){//菜单
        boolean loop=true;
        Scanner scanner = new Scanner(System.in);
        while(loop){//循环展示菜单
            System.out.println("\n============oop零钱通菜单==============");
            System.out.println("\t\t1 零钱通明细");
            System.out.println("\t\t2 收益入账");
            System.out.println("\t\t3 消费");
            System.out.println("\t\t4 退" + "\t" + "出");
            System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;
            switch (key){
                case 1:detailed_();break;
                case 2:input();break;
                case 3:output();break;
                case 4:System.out.println("\t\t程序已经退出");loop=false;break;
            }

        }
    }

void detailed_()方法

public void detailed_(){
        System.out.println(detailed);//直接输出字符
    }

public void input()方法

public void input(){//收益入账
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入金额:");
        this.in_money=scanner.nextDouble();

        while(in_money<0){
            System.out.println("======输入有误======");
            System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入
            String in=scanner.next();//是否重新输入
            if(in.equals("n")||in.equals("N")){
                System.out.println("返回主页面中....");
                /*****************************************/
                try {
                    Thread.sleep( 1000 );//暂停1秒提升用户感受
                } catch (Exception e){}
                /*******************************************/
                return;//退出输入
            }

                System.out.println("请输入金额:");
                this.in_money=scanner.nextDouble();
        }
        this.balance+=this.in_money;
        String beizhu="";
        date = new Date();
        System.out.println("请输入备注:");
        beizhu=scanner.next();
        this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }

**

public void output()方法

**

 public void output(){
        System.out.println("请输入金额:");
        Scanner scanner = new Scanner(System.in);
        in_money=scanner.nextDouble();
        if(balance<in_money){
            System.out.println("余额不足,请充值");
            return;
        }
        while(in_money<0){
            System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();
            if(balance<in_money){
                System.out.println("余额不足,请充值");
                return;
            }
        }
        this.balance-=in_money;
        System.out.println("请输入备注:");
        String beizhu=scanner.next();
        this.detailed+="\n余额支出\t-" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;

    }

SmallChangeSysOOP完整代码

package com.project.money.oop;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
    private  double in_money=0;//当前流动的钱
    private double balance=0;//余额
    private String detailed="------------零钱通明细--------------";
    private Date date = null;
    //可以用于日期格式化的
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    public void menu(){//菜单
        boolean loop=true;
        Scanner scanner = new Scanner(System.in);
        while(loop){//循环展示菜单
            System.out.println("\n============oop零钱通菜单==============");
            System.out.println("\t\t1 零钱通明细");
            System.out.println("\t\t2 收益入账");
            System.out.println("\t\t3 消费");
            System.out.println("\t\t4 退" + "\t" + "出");
            System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;
            switch (key){
                case 1:detailed_();break;
                case 2:input();break;
                case 3:output();break;
                case 4:System.out.println("\t\t程序已经退出");loop=false;break;
            }

        }
    }
    //1 零钱通明细
    public void detailed_(){
        System.out.println(detailed);
    }
    //2 收益入账"
    public void input(){//收益入账
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入金额:");
        this.in_money=scanner.nextDouble();

        while(in_money<0){
            System.out.println("======输入有误======");
            System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入
            String in=scanner.next();//是否重新输入
            if(in.equals("n")||in.equals("N")){
                System.out.println("返回主页面中....");
                /*****************************************/
                try {
                    Thread.sleep( 1000 );//暂停1秒提升用户感受
                } catch (Exception e){}
                /*******************************************/
                return;//退出输入
            }

                System.out.println("请输入金额:");
                this.in_money=scanner.nextDouble();
        }
        this.balance+=this.in_money;
        String beizhu="";
        date = new Date();
        System.out.println("请输入备注:");
        beizhu=scanner.next();
        this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }
    //3消费
    public void output(){
        System.out.println("请输入金额:");
        Scanner scanner = new Scanner(System.in);
        in_money=scanner.nextDouble();
        if(balance<in_money){
            System.out.println("余额不足,请充值");
            return;
        }
        while(in_money<0){
            System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();
            if(balance<in_money){
                System.out.println("余额不足,请充值");
                return;
            }
        }
        this.balance-=in_money;
        System.out.println("请输入备注:");
        String beizhu=scanner.next();
        this.detailed+="\n余额支出\t-" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;

    }

}

一些图片

到此这篇关于Java实例项目零钱通的实现流程的文章就介绍到这了,更多相关Java 零钱通内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java 实战项目之学生信息管理系统的实现流程

    一.项目简述 功能包括: 用户的登录注册,学生信息管理,教师信息管理,班级信 息管理,采用mvcx项目架构,覆盖增删改查,包括学生, 教币班级的信息导出上传导入等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuer

  • Java 实战项目之毕业设计管理系统的实现流程

    一.项目简述 功能包括: 该系统不错分为学生,教师,管理员,教导主任四种角 色,包括学生管理,教师管理,学生选题,教师选题,主 任审核,管理员审核,开题报告,中期检查,论文提交, 文件管理等等非常不错. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + Ja

  • Java实战项目之校园跑腿管理系统的实现

    前端使用的是vue+elementui,这款系统只适合学习巩固SpringBoot+VUE,后面还要在这上面加校园公告.校园零食等功能,后期代码我也会持续更新上去.系统分为管理员和学生.学生是管理员后台添加的两种角色. 运行环境: 后端 jdk1.8.maven3.5/3.6 mysql5.7 idea/eclipse 前端 idea vue-cli node.js 搭建vue环境 webpack3.6.0指定版本 管理员控制层: @Controller @RequestMapping(valu

  • Java实战项目练习之球馆在线预约系统的实现

    功能具体如下:前台用户:登录\注册.查看场馆.预约场馆.投诉.个人中心.关于我们.网站公告等.后台管理员:场馆列表.场地列表.场地安排.订单管理.教练管理.器材管理.收银员管理.会员管理.关于网站等功能收银员:订单管理.教练管理.器材管理.会员充值管理等.运行环境:windows/Linux均可.jdk1.8.mysql5.7.maven3.5\3.6.idea/eclipse均可. 系统控制器代码: /** * 系统控制器 * */ @RequestMapping("/system"

  • Java 实战项目之家政服务平台系统的实现流程

    一.项目简述 功能包括: 家政服务网站系统,用户注册,登录,分为家政人员,普 通用户,以及最高管理员,包括家政分类查询,展示,线 上预约服务,家政申请,评论,留言沟通・,联系家政服 务,家政人员的认证,职业认证,以及后台的维护等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis

  • Java毕业设计实战项目之宠物商城系统的实现流程

    一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等. 后台相关接口: /** * 后台相关接口 */ @Controller @RequestMapping("/admin") publi

  • Java毕业设计实战项目之仓库管理系统的实现流程

    基于SSM框架的仓库管理系统 功能: 系统操作权限管理.系统提供基本的登入登出功能,同时系统包含两个角色:系统超级管理员和普通管理员,超级管理员具有最高的操作权限,而普通管理员仅具有最基本的操作权限,而且仅能操作自己被指派的仓库. 请求URL鉴权.对于系统使用者登陆后进行操作发送请求的URL,后台会根据当前用户的角色判断是否拥有请求该URL的权限. 基础数据信息管理.对包括:货物信息.供应商信息.客户信息.仓库信息在内的基础数据信息进行管理,提供的操作有:添加.删除.修改.条件查询.导出为Exc

  • Java毕业设计实战项目之在线服装销售商城系统的实现流程

    一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等. 后台管理-用户页: /** * 后台管理-用户页 */ @Controller public class UserContro

  • Java实例项目零钱通的实现流程

    目录 老韩思路: 一些说明 SmallChangeSys用来写main方法代码如下 具体说明各个方法的作用: publicvoidmenu()方法 voiddetailed_()方法 publicvoidinput()方法 publicvoidoutput()方法 SmallChangeSysOOP完整代码 一些图片 注意:本项目来自B站韩顺平老师 点此跳转 完整代码请看这里:gitee 点击这里 GitHub链接 如图: 老韩思路: (1)可以把收益入账和消费,保存到数组中(但目前学到的数组是

  • Javascript实例项目放大镜特效的实现流程

    目录 前言 案例:仿京东放大镜效果 offset系列 client系列 scroll系列 三大系列总结 前言 本票博客主要是放大镜案例,里面涉及到的知识点会提出来,可放心食用~后有源代码. 案例:仿京东放大镜效果 效果见下图: 功能要求: 当鼠标移动到小图片上时,遮罩层出现,同时旁边大图片也出现,鼠标移出,遮罩层消失,大图片也消失. 遮罩层只能在小盒内子移动,不能超出. 遮罩层在小盒子内移动,大图片显示对应的板块. 案例分析: 元素的隐层和显示 遮罩层的移动范围用offset计算 计算出大盒子内

  • Java 实战项目之教材管理系统的实现流程

    一.项目简述 功能包括: 管理员可以增删改查教材.教材商.入库教材.用户(用 户包括学生和教师)可以对教材商.教材进行.Excel的导入 导出操作.教师以领取入库的教材,可以退还教材.学生只能在对应的教师那里领取教材,并且可以退还教材. 查询自己已经领取的教材.并且对已领教材付款等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spr

  • Java模仿微信实现零钱通简易功能(两种版本)

    目录 1. 需求描述 2. 需求分析 3. 实现零钱通主要功能 3.1 写一个菜单 3.2 零钱通明细 3.3 收益入账 3.4 消费 3.5 用户退出改进 3.6 改进金额判断 4. 面向过程版实现 5. 优化成OOP版 5.1 实现OOP版 5.2 OOP的好处 最近刚刚复习了一下Java的面向对象三大特性,这里跟着hsp做个小零钱通实践一下,以下记录了学习和编写过程 1. 需求描述 使用Java 开发零钱通项目, 模仿微信实现简易功能,可以完成收益入账,消费,查看明细,退出系统等功能,先按

  • linux下用renameTo方法修改java web项目中文件夹名称的实例

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服务器上一直无法实现功能,自己一直在捣鼓,以为是window环境和Linux环境不同的原因导致,后面发现在项目中使用renameTo方法修改文件夹名称不行是因为之前改了java web项目中的js,在js中传入值到后台,后台根据值来修改文件夹名称.由于没清除缓存导致js中的代码没有刷新,所以一直出现错

  • Java Spring项目国际化(i18n)详细方法与实例

    Spring国际化概述 国际化基本规则 国际化信息"也称为"本地化信息",一般需要两个条件才可以确定一个特定类型的本地化信息,它们分别是"语言类型"和"国家/地区的类型".如中文本地化信息既有中国大陆地区的中文,又有中国台湾.中国香港地区的中文,还有新加坡地区的中文.Java通过java.util.Locale类表示一个本地化对象,它允许通过语言参数和国家/地区参数创建一个确定的本地化对象. 语言参数使用ISO标准语言代码表示,这些代码

  • JAVA实战项目实现客户选购系统详细流程

    客户选购信息系统功能需求: 1)输入多个客户购买商品信息.包括客户名称,年龄,购买的商品,每种商品的单价和数量. 2)输出多个客户购买商品的信息.包括客户名字,年龄,购买商品,每种商品的单价和数量,总的消费金额. 方法:1)定义一个多个客户信息处理的类 CustomerGoodsAdmin .包括: 属性: Customer [ ]customers 方法: void show () //用户交互界面 void inputCustomerlnfo () / /客户采购信息输入 Void prin

  • Java 实战项目之家居购物商城系统详解流程

    一.项目简述 功能: Java Web精品项目源码,家居商城分类展示,商品展示, 商品下单,购物车,个人中心,后台管理,用户管理,商品管理,分类管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: Jdbc+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload 打开订单列

  • Java 实战项目锤炼之网上图书馆管理系统的实现流程

    一.项目简述 功能: 区分为管理员用户和普通用户,普通用户:用户登录,个 人信息修改,图书查询,用户借阅,用户归还,管理员用 户:图书馆里,归还管理,借阅信息查询,图书维护,分 类管理,读者管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP + Servlert + html+ css + JavaScript + JQuery

随机推荐