javaOOP家庭财务管理系统

题目:家庭财务管理系统

一、语言和环境

A、实现语言

Java

B、环境要求

JDK 6.0、MyEclipse10.6

二、功能要求

开发基于控制台的家庭财务管理器。具体要求如下:

(1)显示家庭财务管理系统主菜单,如图-1所示,包括:

1)查看消费信息

2)新增消费信息

3)删除消费信息

4)退出系统

(2)列出所有消费信息,内容包括:编号、消费人姓名、消费时间、消费原因、消费金额。如图-1所示。

(3)添加消费信息:输入消费的各个属性信息,并将结果保存至数组。如图-2所示。

(4)删除消费信息:删除指定序号的消费信息,如果输入的编号不存在,给出提示信息。如图-3所示。

(5)退出系统。

定义实体类 

import java.time.LocalDate;

/**
 * 消费信息实体类
 */
public class AssetInfo {
    private int Id ;//序号
    private String AssetName;//消费人姓名
    private LocalDate AssetDate;//消费日期
    private String AssetCause;//消费原因
    private double AssetMoney;//消费金额

    public AssetInfo() {}

    public AssetInfo(int Id, String AssetName, LocalDate AssetDate, String AssetCause, double AssetMoney) {
        this.Id = Id;
        this.AssetName = AssetName;
        this.AssetDate = AssetDate;
        this.AssetCause = AssetCause;
        this.AssetMoney = AssetMoney;
    }

    /**
     * 获取
     * @return Id
     */
    public int getId() {
        return Id;
    }

    /**
     * 设置
     * @param Id
     */
    public void setId(int Id) {
        this.Id = Id;
    }

    /**
     * 获取
     * @return AssetName
     */
    public String getAssetName() {
        return AssetName;
    }

    /**
     * 设置
     * @param AssetName
     */
    public void setAssetName(String AssetName) {
        this.AssetName = AssetName;
    }

    /**
     * 获取
     * @return AssetDate
     */
    public LocalDate getAssetDate() {
        return AssetDate;
    }

    /**
     * 设置
     * @param AssetDate
     */
    public void setAssetDate(LocalDate AssetDate) {
        this.AssetDate = AssetDate;
    }

    /**
     * 获取
     * @return AssetCause
     */
    public String getAssetCause() {
        return AssetCause;
    }

    /**
     * 设置
     * @param AssetCause
     */
    public void setAssetCause(String AssetCause) {
        this.AssetCause = AssetCause;
    }

    /**
     * 获取
     * @return AssetMoney
     */
    public double getAssetMoney() {
        return AssetMoney;
    }

    /**
     * 设置
     * @param AssetMoney
     */
    public void setAssetMoney(double AssetMoney) {
        this.AssetMoney = AssetMoney;
    }

    public String toString() {
        return "AssetInfo{Id = " + Id + ", AssetName = " + AssetName + ", AssetDate = " + AssetDate + ", AssetCause = " + AssetCause + ", AssetMoney = " + AssetMoney + "}";
    }
}

定义管理类

        

import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 消费信息管理类  showMenu、findAssetInfo、addAssetInfo、deleteAssetInfo
 */
public class AssetInfoManager {
    /**
     * 扫描仪
     */
    Scanner input =new Scanner(System.in);
    /**
     * 定义集合
     */
    Map<Integer,AssetInfo> assetInfoMap = new HashMap<>();

    /**
     * 初始化信息
     */
    public void init(){
        AssetInfo a1 = new AssetInfo(1,"球球", LocalDate.now(),"生日礼物",200);
        AssetInfo a2 = new AssetInfo(2,"团团", LocalDate.now(),"朋友聚餐",320);
        AssetInfo a3 = new AssetInfo(3,"嘟嘟", LocalDate.now(),"生活用品",1500);
        assetInfoMap.put(a1.getId(),a1);
        assetInfoMap.put(a2.getId(),a2);
        assetInfoMap.put(a3.getId(),a3);
    }
    /**
     * 输出菜单
     */
    public void showMenu(){
        //初始化
        init();
        boolean isExit = false;
        while (!isExit){
            System.out.println("---欢迎使用家庭财务管理系统---");
            System.out.println("1.查看消费信息");
            System.out.println("2.新增消费信息");
            System.out.println("3.删除消费信息");
            System.out.println("4.退出");
            String choose = input.next();
            switch (choose){
                case "1":
                    findAssetInfo();
                    break;
                case "2":
                    addAssetInfo();
                    break;
                case "3":
                    deleteAssetInfo();
                    break;
                case "4":
                    System.out.println("感谢使用!");
                    isExit = true;
                    break;
                default:
                    System.out.println("错误,请重新选择");
                    break;
            }
        }
    }

    /**
     * 查看信息
     */
    public void findAssetInfo(){
        System.out.println("编号\t\t消费人姓名\t\t消费时间\t\t消费原因\t消费金额");
        for (AssetInfo assetInfo : assetInfoMap.values()){
            System.out.println(assetInfo.getId()+"\t\t"+assetInfo.getAssetName()+
                    "\t\t"+assetInfo.getAssetDate()+"\t\t"+assetInfo.getAssetCause()+
                    "\t"+assetInfo.getAssetMoney());
        }
    }
    /**
     * 添加信息
     */
    public void addAssetInfo(){
        System.out.print("请输入编号:");
        int Id = input.nextInt();
        if (assetInfoMap.containsKey(Id)){
            System.out.println("该id已存在,请重新输入");
            return;
        }
        System.out.print("请输入消费人姓名:");
        String AssetName = input.next();
        LocalDate AssetDate = null;
        try {
            System.out.print("请输入消费时间:");
            AssetDate = LocalDate.parse(input.next());
        } catch (Exception e) {
            System.out.println("请输入正确的时间格式 yyyy-MM-dd");
            return;
        }
        System.out.print("请输入消费原因:");
        String AssetCause = input.next();
        System.out.print("请输入消费金额:");
        double AssetMoney = input.nextDouble();
        assetInfoMap.put(Id,new AssetInfo(Id,AssetName,AssetDate,AssetCause,AssetMoney));
        System.out.println("录入成功");

    }
    /**
     * 删除信息
     */
    public void deleteAssetInfo(){
        System.out.print("请输入消费编号:");
        int Id = input.nextInt();
        if (assetInfoMap.containsKey(Id)){
            assetInfoMap.remove(Id);
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败");
        }
    }


}

Main方法

public class Main {
    public static void main(String[] args) {
        new AssetInfoManager().showMenu();
    }
}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值