Java
基础知识
01概述
02变量
03运算符
04程序控制语句
05数组
06面向对象编程
07代码练习
08重载
09作用域
10构造方法&构造器
11this
12包
13修饰符
14封装
15继承
16super
17覆盖&重写
18多态
19零钱通项目
20类变量&类方法
21抽象类
22接口
23内部类
24枚举
25泛型
26常用API
27lambda表达式
28正则表达式
29异常
30File&IO流
31日志技术
32多线程
33网络编程
-
+
首页
19零钱通项目
## 项目需求 零钱通项目,功能有零钱通明细、收益入账、消费、退出系统 - 用户输入4退出时,给出提示信息为确定要退出吗? Y/N,必须输入正确的Y/N,,否则循环输入指令,直到输入y或者n; - 在收益入账和消费时,判断金额是否合理,并给出相应提示  项目先化繁为简 ## 面向过程编程 ```java import java.text.SimpleDateFormat; import java.util.Scanner; import java.util.Date; public class SmallChangeSys { public static void main(String[] args) { boolean loop = true; Scanner scanner = new Scanner(System.in); String key = ""; // 1.零钱通明细 String details = "\n----------零钱通明细----------"; //2.收益入账 double money = 0.0; double balance = 0.0; //余额 Date date = null; //表示当前的日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可用于日期格式化 //3.消费 String note = ""; do { System.out.println("=========零钱通菜单========="); System.out.println("\t1. 零钱通明细"); System.out.println("\t2. 收益入账"); System.out.println("\t3. 消费"); System.out.println("\t4. 退 出"); System.out.println("请选择(1-4):"); key = scanner.next(); switch (key){ case "1": System.out.println(details); break; case "2": System.out.println("本次收益入账金额:"); money = scanner.nextDouble(); //money值校验 if (money <= 0){ System.out.println("收益入账金额需要大于零"); break; } balance += money; date = new Date();//获取到当前的日期 details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" + balance; //System.out.println(details); break; case "3": System.out.println("消费金额:"); money = scanner.nextDouble(); //消费金额校验 if (money > balance || money <= 0){ System.out.println("您的消费金额应该在0-" + balance); break; } System.out.println("消费说明:"); note = scanner.next(); balance -= money; date = new Date();//获取到当前的日期 details += "\n" + note + "\t-" + money + "\t" + sdf.format(date) + "\t" + balance; break; case "4": String choice = ""; //必须输入y或者n while (true){ System.out.println("确定要退出吗?y/n"); choice = scanner.next(); if ("y".equals(choice) || "n".equals(choice)){ break; } } //如果输入y则退出程序 if (choice.equals("y")){ loop = false; } break; default: System.out.println("输入有误,请重新选择"); } }while (loop); System.out.println("------已退出零钱通项目------"); } } ```  ## 面向对象编程 SmallChangeSysOOP类 用于完成各个 功能 ```java import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //将每个功能对应一个方法 public class SmallChangeSysOOP { boolean loop = true; Scanner scanner = new Scanner(System.in); String key = ""; // 1.零钱通明细 String details = "\n----------零钱通明细----------"; //2.收益入账 double money = 0.0; double balance = 0.0; //余额 Date date = null; //表示当前的日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可用于日期格式化 //3.消费 String note = ""; // 主菜单 public void mainMenu(){ do { System.out.println("=========OOP版本 零钱通菜单========="); System.out.println("\t1. 零钱通明细"); System.out.println("\t2. 收益入账"); System.out.println("\t3. 消费"); System.out.println("\t4. 退 出"); System.out.println("请选择(1-4):"); key = scanner.next(); 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); } //零钱通明细 public void detail(){ System.out.println(details); } //收益入账 public void income(){ System.out.println("本次收益入账金额:"); money = scanner.nextDouble(); //money值校验 if (money <= 0){ System.out.println("收益入账金额需要大于零"); return ; //退出方法 不再执行后面的代码 } balance += money; date = new Date();//获取到当前的日期 details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" + balance; } //消费 public void pay(){ System.out.println("消费金额:"); money = scanner.nextDouble(); //消费金额校验 if (money > balance || money <= 0){ System.out.println("您的消费金额应该在0-" + balance); return; } System.out.println("消费说明:"); note = scanner.next(); balance -= money; date = new Date();//获取到当前的日期 details += "\n" + note + "\t-" + money + "\t" + sdf.format(date) + "\t" + balance; } //退出功能 public void exit(){ String choice = ""; //必须输入y或者n while (true){ System.out.println("确定要退出吗?y/n"); choice = scanner.next(); if ("y".equals(choice) || "n".equals(choice)){ break; } } //如果输入y则退出程序 if (choice.equals("y")){ loop = false; } } } ``` SmallChangeSysApp类 用于完成测试 ``` //直接调用SmallChangeSysOOP的对象,显示主菜单即可 public class SmallChangeSysApp { public static void main(String[] args) { new SmallChangeSysOOP().mainMenu(); } } ``` 
毛林
2025年9月7日 12:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码