家庭收支记账软件之多态继承

同样的问题,不过要求用多态继承编写。
如果写的有问题,欢迎指正!
在这里插入图片描述

package com.gem.day19Homework;
import java.util.Scanner;
public class Client {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);//键盘扫描仪
		JiluList jiluList = JiluList.getJiluList();//单例
		System.out.println("*******欢迎进入家庭收支记账软件*********");
		while (true) {
			menu(scanner, jiluList);
		}
	}

	//界面功能
	public static void menu(Scanner scanner, JiluList jiluList) {
		System.out.println("1.收支明细");
		System.out.println("2.登记收入");
		System.out.println("3.登记支出");
		System.out.println("4.退出");
		System.out.println("请输入您的选择:");
		int choice = Integer.parseInt(scanner.nextLine().trim());
		switch (choice) {
		case 1:
			jiluList.showJiluList();
			break;
		case 2:
			InMoney(scanner, jiluList);
			break;
		case 3:
			OutMoney(scanner, jiluList);
			break;

		case 4:
			System.exit(0);
			break;

		default:
			System.out.println("您输入的不正确");
			break;
		}
	}

	private static void InMoney(Scanner scanner, JiluList jiluList) {
		// TODO Auto-generated method stub
		System.out.println("本次收入金额:");
		double money = Double.parseDouble(scanner.nextLine().trim());
		System.out.println("本次收入说明:");
		String shuoming = scanner.nextLine().trim();
		Savemoney savemoney = new Savemoney("收入", shuoming, money);
		jiluList.createJilu(savemoney);
		jiluList.Savemoney(savemoney, money);

	}

	private static void OutMoney(Scanner scanner, JiluList jiluList) {
		// TODO Auto-generated method stub
		System.out.println("本次支出金额:");
		double money = Double.parseDouble(scanner.nextLine().trim());
		System.out.println("本次支出说明:");
		String shuoming = scanner.nextLine().trim();
		PayMoney paymoney = new PayMoney("支出", shuoming, money);
		jiluList.createJilu(paymoney);
		jiluList.PayMoney(paymoney, money);
	}

}

package com.gem.day19Homework;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@NoArgsConstructor
@Setter
@Getter
public abstract class JiLu {
	private String ShouZhi;
	private double balance = 10000;
	private double Money;
	private String shuoMing;

	//实例化对象只需要收支和说明

	public JiLu(String shouZhi, String shuoMing, double money) {
		super();
		this.ShouZhi = shouZhi;
		this.shuoMing = shuoMing;
		this.Money = money;
	}

	//收入  (只需要定义我的孩子必须有存款方法,抽象了,孩子必须要重写我的抽象方法,约束)
	public abstract void Inmoney(double Ymoney, double money);

	//支出
	public abstract void Outmoney(double Ymoney, double money);

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return ShouZhi + "\t" + balance + "\t" + Money + "\t" + shuoMing;

	}

}

package com.gem.day19Homework;

public class JiluList {
	private JiLu[] JiluList = new JiLu[1000];//存放记录,多态
	private int count;//记录的条数
	private static double Ymoney = 10000;
	private static final JiluList jiluList = new JiluList();

	//静态属性的构造方法
	public static JiluList getJiluList() {
		return jiluList;
	}

	//构造方法
	private JiluList() {

	}

	public void Savemoney(JiLu jiLu, double money) {
		jiLu.Inmoney(Ymoney, money);//收入,真实对象的收入方法
		Ymoney += money;
	}

	public void PayMoney(JiLu jiLu, double money) {
		jiLu.Outmoney(Ymoney, money);//支出,真实对象的支出方法
		Ymoney -= money;
	}

	public void createJilu(JiLu jiLu) {//形参,可能是收入,可能是支出
		JiluList[count++] = jiLu;
	}

	//显示所有的记录信息
	public void showJiluList() {
		for (int i = 0; i < count; i++) {
			System.out.println(JiluList[i]);//多态,全部调用孩子的toString()

		}
	}

}

package com.gem.day19Homework;

public class PayMoney extends JiLu {
	public PayMoney(String shouZhi, String shuoMing, double money) {
		super(shouZhi, shuoMing, money);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void Inmoney(double Ymoney, double money) {
		// TODO Auto-generated method stub

	}

	@Override
	public void Outmoney(double Ymoney, double money) {
		// TODO Auto-generated method stub
		if (money > getBalance()) {
			System.out.println("余额不足,支出失败");
			return;
		}
		if (money < 0) {
			System.out.println("输入错误");
			return;
		}
		setBalance(Ymoney - money);
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return getShouZhi() + "\t" + getBalance() + "\t" + getMoney() + "\t" + getShuoMing();
	}
}

package com.gem.day19Homework;

public class Savemoney extends JiLu {

	public Savemoney(String shouZhi, String shuoMing, double money) {
		super(shouZhi, shuoMing, money);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void Inmoney(double Ymoney, double money) {
		setBalance(Ymoney + money);

		// TODO Auto-generated method stub

	}

	@Override
	public void Outmoney(double Ymoney, double money) {
		// TODO Auto-generated method stub

	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return getShouZhi() + "\t" + getBalance() + "\t" + getMoney() + "\t" + getShuoMing();
	}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值