初学入门者可实践
需求: 1.菜单显示
2.账单明细
3.收入
4.消费
注意:该项目运用字符串输出信息,练习者可选择对象 数组进行编写
项目源码:
package ChangeMoney;
/**
* @description: some desc
* @author: Shuoliu
* @date: 2022/9/12 16:27
*
* 1.0版本 无法生成多个对象保存信息 类中声明对象只能在方法中,不能保存main中信息
* 2.0版本 优化解决1.0主要问题 基本功能完全能够实现
* 类中声明对象只能在方法中,不能保存main中信息 主类定义一个对象,次类又定义一个对象,陷入jvm机制死循环,不能产子
*/
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
*菜单
*/
public class Menu {
private int choice;
private Scanner scanner = new Scanner(System.in);
public void MenuPlace(){
int flag = 1;
Detail income = new Detail();
while (flag != 0) {
System.out.println("-----------零钱通菜单------------");
System.out.println("\t" + " 1" + "\t" + "零钱通明细");
System.out.println("\t" + " 2" + "\t" + "收益入账");
System.out.println("\t" + " 3" + "\t" + "消费");
System.out.println("\t" + " 4" + "\t" + "退 出");
System.out.println("请选择(1-4)");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println(income.information);
break;
case 2:
income.info();
break;
case 3:
income.info1();
break;
case 4:
flag--;
break;
default:
System.out.println("输入有误,请重新输入");
choice = scanner.nextInt();
}
}
}
}
//零钱通明细
class Detail {
private int i = 1; //while循环中判断是否继续
private String choice; // y/n
Scanner scanner = new Scanner(System.in);
private String Project; //消费项目
private double Change; //收入
private double RemainingSum = 0; //余额
String information = "------------零钱通明细-------------";
//日期
Date time = new Date();
DateFormat DfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm::ss");
//DateFormat转换为String类型
String stime = DfTime.format(time);
//收入方法
public void info() {
while (true) {
System.out.println("请输入你收入的项目名称");
setProject(scanner.next());
System.out.println("请输入你收入的金额");
setChange(scanner.nextDouble());
setRemainingSum(getRemainingSum() + getChange());
information += "\n" + getProject() + "\t" + getChange() + "\t" +stime + "\t" + "余额" + getRemainingSum();
while (i != 0) {
System.out.println("你还想继续录入吗?y/n");
choice = scanner.next();
if (choice.equals("y")) {
break;
} else if (choice.equals("n")) {
i--;
} else {
System.out.println("输入有误,请重新输入");
}
}
break;
}
}
public void info1() {
while (true) {
System.out.println("请输入你消费的项目名称");
setProject(scanner.next());
System.out.println("请输入你消费的金额");
setChange(scanner.nextDouble());
setRemainingSum(getRemainingSum() - getChange());
information += "\n" + getProject() + "\t" + getChange() + "\t" +stime + "\t" + "余额" + getRemainingSum();
while (i != 0) {
System.out.println("你还想继续录入吗?y/n");
choice = scanner.next();
if (choice.equals("y")) {
break;
}
else if (choice.equals("n")) {
i--;
}
else {
System.out.println("输入有误,请重新输入");
}
}
break;
}
}
public String getProject () {
return Project;
}
public void setProject (String project){
Project = project;
}
public double getChange () {
return Change;
}
public void setChange ( double change){
Change = change;
}
public double getRemainingSum () {
return RemainingSum;
}
public void setRemainingSum ( double remainingSum){
RemainingSum = remainingSum;
}
}