题目:家庭财务管理系统
一、语言和环境
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();
}
}