Java项目小练习零钱通
-
- (学习)老韩思路:
- 一些说明
- SmallChangeSys 用来写main方法代码如下
- 具体说明各个方法的作用:
- public void menu()方法
- void detailed_()方法
- public void input()方法
- public void output()方法
- SmallChangeSysOOP完整代码
- 一些图片
- 还请大家一键三连 谢了老铁
注意:本项目来自B站韩顺平老师 点此跳转
完整代码请看这里:gitee
点击这里 GitHub链接
文章图片
如图:
(学习)老韩思路: (1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)
(2)可以使用对象
(3)可以使用String拼接
完成收益入账,完成功能驱动程序员增加新的变化的代码
(1)要接收收益入账的金额,并更新余额
(2)拼接好字符串
(3)找到时间如何输出,并且修改其输出格式
我用的字符串拼接
文章图片
**
一些说明 【Java学习|Java小项目 零钱通】**:创建一个包 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 {
privatedouble 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
SmallChangeSysOOP完整代码
package com.project.money.oop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
privatedouble 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
一些图片
文章图片
文章图片
文章图片
文章图片
还请大家一键三连 谢了老铁 点赞 + 关注 + 收藏
推荐阅读
- 数据结构|数据结构 (栈)迷宫求解(c++版本)
- 项目|c语言学生成绩管理系统(增、删、查、改、排序、分析优秀及格率等)
- 几种主流的分布式定时任务,你知道哪些()
- Spring Boot + MDC 实现全链路调用日志跟踪,这才叫优雅。。
- 技能树-基础之章-数据结构-链表操作
- 面试集锦专栏|【面试常问】线程中常用的方法
- MySQL基础|Mysql运算符
- java面试题|2022java面试题小总结
- Java|数据结构与算法(java)(线性表-队列)