java 简单零钱通

news2024/11/16 7:00:38

目标

面向过程版

代码

package new_pluse;

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



public class change_common{
	public static void main(String arg[]){
		//定义相关变量
		Scanner scanner = new Scanner(System.in);
			String key="";
			String detaile="1 ==============零钱通明细============";
			boolean loop=true;
			double money=0;
			double balance=0;
			Date date=null;
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");//格式化信息
			
			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 (key) {
				case "1": 
					System.out.println(detaile);
					break;
				case "2":  
					System.out.println("收益为多少");
					money=scanner.nextDouble();
					//money的值范围应该校验
					balance+=money;
					//拼接收益入账信息
					date= new Date();//获取当前日期
					detaile+="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
					System.out.println(detaile);
					if (money<0) {
						System.out.println("\n输入的金额应该大于0\n");
						break;
						
					}
					break;		
					
				case "3": 
					System.out.println("3 消费金额");
					money=scanner.nextDouble();
					if (money<0||money>balance) {
						System.out.println( "\n你消费的金额应该在0--"+balance);
						break;
						
					}
					
					System.out.println("消费说明");
					String note=scanner.next();
					balance-=money;
					detaile+="\n"+note+"\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
					

					break;
				case "4": 
					
					String choice="";
					while(true) {
						System.out.println("你确定要退出吗 y/n");
						choice=scanner.next();
						if ("y".equals(choice)||"n".equals(choice)) {
							break;
							
						}
						
						
					}//判断是不是y或者n
					
					//在用户退出后判断y或N
					if (choice.equals("y")) {
							loop=false;//退出
					}
					//看要不要退出
					System.out.println("4 退出");
				
					break;
				default:
				
			 }
				}while (loop);
			System.out.println("========退出了零钱通项目=========");
		}}
		


	 	
			

知识

  1. 运用do  while语句实现整个主体循环
  2. 运用switch语句来进行选择不同功能
  3. 运用if语句进行金钱的逻辑判断

面对过程

就是每一个类实现一个功能     代码

package new_pluse;

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

public class oppo_change {
	Scanner scanner = new Scanner(System.in);
	String key="";
	String detaile=" ==============零钱通明细============";
	boolean loop=true;
	double money=0;
	double balance=0;
	Date date=null;
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");//格式化信息oppo
		
	
	public void mainmenu() {
		
		
		
		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 (key) {
		case "1":
			this.detail();
			break;
			
			
			
		case "2":
			this.income();
//			qpp.income(scanner, money, balance, detaile, sdf, date);
			
			
			
			break;
		case "3":
			this.consum();
					
			break;
		case "4":
			this.goout();
			break;
		}
		} while (loop);
		
	}
	
		
		
	
	public void detail() {
		System.out.println(detaile);

		
	}
	public void income() {
		System.out.println("收益为多少");
		money=scanner.nextDouble();
		if (money<0) {
			System.out.println("\n输入的金额应该大于0\n");
			return;
			
		}
		//money的值范围应该校验
		balance+=money;
		//拼接收益入账信息
		date= new Date();//获取当前日期
		detaile+="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
	
		System.out.println(detaile);
						
	}
	public void consum(){
		System.out.println("3 消费金额");
		money=scanner.nextDouble();
		if (money<0||money>balance) {
			System.out.println( "\n你消费的金额应该在0--"+balance);
			return;
			
		}
		
		System.out.println("消费说明");
		String note=scanner.next();
		balance-=money;
		detaile+="\n"+note+"\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
		System.out.println(detaile);
		

//		break;
		
	}
	public void goout() {
		String choice="";
		while(true) {
			System.out.println("你确定要退出吗 y/n");
			choice=scanner.next();
			if ("y".equals(choice)||"n".equals(choice)) {
				break;
				
			}
			
			
		}//判断是不是y或者n
		
		//在用户退出后判断y或N
		if (choice.equals("y")) {
				loop=false;//退出
		}
		//看要不要退出
		System.out.println("4 退出");
	
		return;
	}
	

}
/*package new_pluse;

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



public class change_common{
	public static void main(String arg[]){
		//定义相关变量
		Scanner scanner = new Scanner(System.in);
			String key="";
			String detaile="1 ==============零钱通明细============";
			boolean loop=true;
			double money=0;
			double balance=0;
			Date date=null;
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");//格式化信息
			
			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 (key) {
				case "1": 
					System.out.println(detaile);
					break;
				case "2":  
					System.out.println("收益为多少");
					money=scanner.nextDouble();
					//money的值范围应该校验
					balance+=money;
					//拼接收益入账信息
					date= new Date();//获取当前日期
					detaile+="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
					System.out.println(detaile);
					if (money<0) {
						System.out.println("\n输入的金额应该大于0\n");
						break;
						
					}
					break;		
					
				case "3": 
					System.out.println("3 消费金额");
					money=scanner.nextDouble();
					if (money<0||money>balance) {
						System.out.println( "\n你消费的金额应该在0--"+balance);
						break;
						
					}
					
					System.out.println("消费说明");
					String note=scanner.next();
					balance-=money;
					detaile+="\n"+note+"\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
					

					break;
				case "4": 
					
					String choice="";
					while(true) {
						System.out.println("你确定要退出吗 y/n");
						choice=scanner.next();
						if ("y".equals(choice)||"n".equals(choice)) {
							break;
							
						}
						
						
					}//判断是不是y或者n
					
					//在用户退出后判断y或N
					if (choice.equals("y")) {
							loop=false;//退出
					}
					//看要不要退出
					System.out.println("4 退出");
				
					break;
				default:
				
			 }
				}while (loop);
			System.out.println("========退出了零钱通项目=========");
		}}
		


	 	
			
*/

使用一个菜单类menue

	public void mainmenu() {
		
		
		
		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 (key) {
		case "1":
			this.detail();
			break;
			
			
			
		case "2":
			this.income();
//			qpp.income(scanner, money, balance, detaile, sdf, date);
			
			
			
			break;
		case "3":
			this.consum();
					
			break;
		case "4":
			this.goout();
			break;
		}
		} while (loop);
		
	}
	

来模仿每个行为

然后分别用方法构建每个行为 如detail,consum,goout等

public void detail() {
		System.out.println(detaile);

		
	}
	public void income() {
		System.out.println("收益为多少");
		money=scanner.nextDouble();
		if (money<0) {
			System.out.println("\n输入的金额应该大于0\n");
			return;
			
		}
		//money的值范围应该校验
		balance+=money;
		//拼接收益入账信息
		date= new Date();//获取当前日期
		detaile+="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
	
		System.out.println(detaile);
						
	}
	public void consum(){
		System.out.println("3 消费金额");
		money=scanner.nextDouble();
		if (money<0||money>balance) {
			System.out.println( "\n你消费的金额应该在0--"+balance);
			return;
			
		}
		
		System.out.println("消费说明");
		String note=scanner.next();
		balance-=money;
		detaile+="\n"+note+"\t"+money+"\t"+sdf.format(date)+"\t"+balance;//拼接信息
		System.out.println(detaile);
		

//		break;
		
	}
	public void goout() {
		String choice="";
		while(true) {
			System.out.println("你确定要退出吗 y/n");
			choice=scanner.next();
			if ("y".equals(choice)||"n".equals(choice)) {
				break;
				
			}
			
			
		}//判断是不是y或者n
		
		//在用户退出后判断y或N
		if (choice.equals("y")) {
				loop=false;//退出
		}
		//看要不要退出
		System.out.println("4 退出");
	
		return;
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1869557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能巡检平台建设,减轻一线巡检员负担

智能巡检系统平台的建设&#xff0c;通过技术手段减轻一线巡检员的工作负担&#xff0c;提高巡检工作的效率和质量。以下是该平台建设的几个关键点和效果归纳&#xff1a; 一、自动化规划与分配 智能巡检系统能够自动规划巡检路线、分配巡检任务&#xff0c;从而减少了巡检员在…

@城规人快来抄作业!转GIS开发月薪12000+

从性价比极低的时薪&#xff0c;到相对稳定的月薪过万&#xff0c;我做对了哪些事情&#xff1f; 今天分享的是城乡规划专业的L拿到GIS开发高薪offer的故事。 初识新中地 该同学是城乡规划专业本科&#xff0c;下面称他为L同学。 L同学是今年夏天在网络上了解了GIS开发和新…

小程序发布必须进行软件测试吗?测试内容有哪些?

在如今移动互联网时代&#xff0c;小程序已成为许多企业广泛采用的一种营销手段&#xff0c;然而&#xff0c;发布小程序之前进行充分的软件测试是至关重要的&#xff0c;因为它不仅可以确保小程序的质量&#xff0c;还可以避免潜在的风险和损失。 在进行小程序发布前进行软件…

ELK日志集成

https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef

SKYDROID-C12—— 让美景近在眼前

C12是一款小型高清双光吊舱&#xff0c;使用新一代影像芯片&#xff0c;搭配高清无畸变摄像头&#xff0c;有效像素达到500万&#xff0c;拥有强悍的2K视频录制和拍照能力&#xff0c;支持数字变倍&#xff0c;随时随地捕捉清晰的图像&#xff0c;让远处美景近在眼前。

UI(三)布局

文章目录 1、Colum和Row——垂直方向容器和水平方向容器2、ColumnSplit和RowSplit——子组件之间插入一条分割线3、Flex——弹性布局子组件的容器4、Grid和GridItem——网格容器和网格容器单元格5、GridRow和GridCol——栅格容器组件和栅格子组件6、List、ListItem、ListItemGr…

“一站式企业服务平台”全景解析

在当今市场竞争日益激烈、商业环境瞬息万变的大经济环境下&#xff0c;企业在经营过程中常常面临政策不知道摸不清、资源获取困难、融资渠道狭窄、市场开拓不畅、政务办理繁琐等诸多问题&#xff0c;为了解决这些问题&#xff0c;帮扶企业发展&#xff0c;同时优化区域营商环境…

JavaWeb系列三: JavaScript学习 下

文章目录 js数组定义方式数组遍历 js函数函数入门函数使用方式使用方式一使用方式二 函数注意事项函数练习题 定义对象使用object定义使用{}定义 事件onload事件onclick事件失去焦点事件内容发生改变事件表单提交事件静态注册动态注册表单作业 dom对象文档对象模型document对象…

Oracle ACE夜话--和首席-总监一起跟大家谈一谈分布式数据库发展

前言 在昨日的Oracle ACE夜话中&#xff0c;和薛首席、尹总监一起聊了下当前分布式数据库的内容&#xff0c;现将分享内容又进行了相应整理&#xff0c;分享给大家&#xff0c;也希望大家多多指正。 一、自我介绍 尚雷&#xff0c;公众号【尚雷的驿站】&#xff0c;PG ACE&a…

矩阵新玩法,云微客AI矩阵系统开启新营销大门

在激烈的市场竞争中&#xff0c;商家企业们都在追求更加高效的营销方式&#xff0c;在如今流量至上的时代&#xff0c;短视频凭借其魅力&#xff0c;成为了众多企业吸引流量、获客引流的核心营销途径。而想要挤进短视频流量圈的你&#xff0c;是否经常听到矩阵这个词呢&#xf…

cad怎么导出为图片?分享四种导出方法

cad怎么导出为图片&#xff1f;在工程设计、建筑设计、机械设计等领域&#xff0c;CAD图纸的编辑和分享是一项日常工作。然而&#xff0c;如何将CAD图纸高效、准确地导出为图片格式&#xff0c;一直是设计师们关注的焦点。今天&#xff0c;就为大家推荐四款强大的CAD导出图片软…

Java web应用性能分析之【prometheus监控指标体系】

Java web应用性能分析之【系统监控工具prometheus】_javaweb服务器性能监控工具-CSDN博客 Java web应用性能分析之【prometheusGrafana监控springboot服务和服务器监控】_grafana 导入 prometheus-CSDN博客 因为篇幅原因&#xff0c;前面没有详细说明Prometheus的监控指标&…

clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装

前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…

鸿蒙Harmony开发实战案例:使用OpenGL绘制3D图形

XComponent控件常用于相机预览流的显示和游戏画面的绘制,在OpenHarmony上&#xff0c;可以配合Native Window创建OpenGL开发环境&#xff0c;并最终将OpenGL绘制的图形显示到XComponent控件。本文将采用"Native C"模板&#xff0c;调用OpenGL ES图形库绘制3D图形&…

智慧校园-宿舍管理系统总体概述

在教育信息化的不断推动下&#xff0c;智慧校园宿舍管理系统脱颖而出&#xff0c;它以一种全新的视角和方式&#xff0c;重塑了高校宿舍管理的传统模式。该系统深度融合了云计算、物联网、大数据等先进科技&#xff0c;旨在为学生提供一个既安全可靠又充满便捷与温馨的居住体验…

实现设计开挂|如何设计出坚不可摧的网球拍?

数字揭秘 我们发现自己可能偶尔会以过激的方式表达沮丧或愤怒&#xff0c;哪怕是在公共场合。就算是世界级的网球运动员也无法避免偶尔的情绪爆发&#xff0c;他们有时会砸球拍来释放被压抑的情绪或应对来自竞赛的压力。 网球运动员的情绪爆发已被证明是不可避免的。哪怕是包括…

Transformer教程之Transformer的历史背景

在现代人工智能领域&#xff0c;Transformer模型已经成为一种不可或缺的技术&#xff0c;它在自然语言处理&#xff08;NLP&#xff09;和计算机视觉等多个领域取得了巨大的成功。本文将带你回顾Transformer的历史背景&#xff0c;了解它是如何从最初的构想到今天的广泛应用的。…

SpringBoot启动出错:无法访问org.springframework.boot.autoconfigure.SpringBootApplication

无法访问org.springframework.boot.autoconfigure.SpringBootApplication类文件具有错误的版本 61.0&#xff0c;应为 52.0请删除该文件或确保该文件位于正确的类路径子目录中。 出现该问题是由于版本不兼容&#xff0c; 在pom.xml文件中&#xff0c;修改版本为2开头即可

企业工程项目管理系统源码:Java版源码解析

一、项目概述 鸿鹄工程项目管理系统是基于Spring Cloud、Spring Boot、Mybatis、Vue和ElementUI技术栈&#xff0c;采用前后端分离架构构建的工程管理软件。它旨在应对企业快速发展中的管理挑战&#xff0c;提升工程管理效率&#xff0c;减轻工作负担&#xff0c;加速信息处理…

10分钟微调专属于自己的大模型_10分钟微调大模型

1.环境安装 # 设置pip全局镜像 (加速下载) pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 安装ms-swift pip install ms-swift[llm] -U# 环境对齐 (通常不需要运行. 如果你运行错误, 可以跑下面的代码, 仓库使用最新环境测试) pip install -r r…