Java__零钱通小项目

 初学入门者可实践


需求:  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;
        }
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值