我对这个问题有意见。对于这个问题,我将编写一个与超类交互的子类。
某公司用多种方法编写了一个大类银行账户,包括:
方法/构造函数和描述:
我将设计一个新的类MinMaxAccount,其实例可用于代替BankingAccount对象,但包括记住该帐户记录的最小和最大余额的新行为。应提供与超类相同的方法,以及以下新行为:
方法/构造函数和描述:
帐户的构造函数根据启动信息设置初始余额。假设只有借方和贷方方法会更改帐户余额。
我在记录最小值和最大值时遇到问题,b/c 我不确定我是否在正确的轨道上。目前,它只返回最新的输入。任何建议将不胜感激。
// This is the subclass
public class MinMaxAccount extends BankingAccount{
private Startup thing;
private int min;
private int max;
// constructor
public MinMaxAccount(Startup s) {
super(s);
Startup thing = s;
min = Integer.MAX_VALUE;
max = Integer.MIN_VALUE;
}
// returns the lowest balance
public int getMin() {
while (super.getBalance()<min) {
min = super.getBalance();
}
return min;
}
// returns the highest value
public int getMax() {
while (super.getBalance()>max) {
max = super.getBalance();
}
return max;
}
}
马蒂·斯特普(Marty Stepp)提供的超类,这里需要的远不止这些:
import java.util.LinkedList;
import java.util.List;
public class BankingAccount {
private int balance;
private List<String> historyTransaction;
private List<String> historyBalance;
public BankingAccount() {
historyTransaction = new LinkedList<String>();
historyBalance = new LinkedList<String>();
}
public BankingAccount(Startup s) {
this.balance = s.startup_getBalance();
historyTransaction = new LinkedList<String>();
historyBalance = new LinkedList<String>();
historyTransaction.add(valueToHistory(s.startup_getBalance()));
historyBalance.add(toString());
}
public void debit(Debit d) {
balance += d.debit_getBalance();
historyTransaction.add(valueToHistory(d.debit_getBalance()));
historyBalance.add(toString());
}
public void credit(Credit c) {
balance += c.credit_getBalance();
historyTransaction.add(valueToHistory(c.credit_getBalance()));
historyBalance.add(toString());
}
public int getBalance() {
return balance;
}
public boolean equals(Object o) {
if(o instanceof BankingAccount) {
return (this.getBalance() == ((BankingAccount) o).getBalance());
}
return false;
}
private String valueToHistory(int value) {
int absValue = Math.abs(value);
return (value < 0 ? "(-" : "") + (absValue / 100) + "." + (absValue % 100 / 10) + (absValue % 100 % 10) + (value < 0 ? ")" : " ");
}
public String toString() {
int absBalance = Math.abs(balance);
return (balance < 0 ? "-" : "") + "$" + (absBalance / 100) + "." + (absBalance % 100 / 10) + (absBalance % 100 % 10);
}
public String historyBalanceToString() {
/*int maxLength = 0;
for(String piece : historyBalance) {
maxLength = Math.max(maxLength, piece.length());
}*/
int maxLength = 8;
String build = "";
for(int i = 0; i < historyBalance.size(); i++) {
for(int j = 0; j < maxLength - historyBalance.get(i).length(); j++) {
build += " ";
}
build += historyBalance.get(i);
if(i != historyBalance.size() - 1) {
build += "\n";
}
}
return build;
}
public String historyTransactionToString() {
String total = toString() + " ";
int maxLength = 0;
for(String piece : historyTransaction) {
maxLength = Math.max(maxLength, piece.length() + 2);
}
maxLength = Math.max(maxLength, total.length() + 2);
String build = "";
for(int i = 0; i < historyTransaction.size() - 1; i++) {
for(int j = 0; j < maxLength - historyTransaction.get(i).length(); j++) {
build += " ";
}
build += historyTransaction.get(i);
build += "\n";
}
build += "+";
for(int i = 0; i < maxLength - (historyTransaction.get(historyTransaction.size() - 1).length() + 1); i++) {
build += " ";
}
build += historyTransaction.get(historyTransaction.size() - 1);
build += "\n";
for(int i = 0; i < maxLength; i++) {
build += "-";
}
build += "\n";
for(int i = 0; i < maxLength - total.length(); i++) {
build += " ";
}
build += total;
return build;
}
public static class Startup {
private int balance;
public Startup(int balance) {
this.balance = balance;
}
public int startup_getBalance() {
return balance;
}
}
public static class Debit {
private int balance;
public Debit(int balance) {
this.balance = balance;
}
public int debit_getBalance() {
return balance;
}
}
public static class Credit {
private int balance;
public Credit(int balance) {
this.balance = balance;
}
public int credit_getBalance() {
return balance;
}
}
// REPLACEME
}
您缺少的是,当余额发生变化时,您需要记录最小值和最大值,而不是在查询时。
覆盖更改余额的方法,如果设置了新的最小值或最大值,则记录最小值/最大值。在查询时返回存储的最小值或最大值。
主要内容:普通算法,分治算法程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢? 查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助 分治算法解决。 普通算法 普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都
我有一个熊猫数据框,有两列,一列是温度,另一列是时间。 我想做第三和第四列,叫做最小和最大。这些列中的每一个都将填充nan's,除非有一个局部min或max,那么它将具有该极值的值。 这里是一个数据的样本,本质上我试图识别图中所有的峰值和低点。 有没有内置的熊猫工具可以做到这一点?
我试图找到矩阵中每列的最小值和最大值,但我当前的代码运行不正确。我试图把最小值放在一个新矩阵的第一行,最大值放在下一行,并对每一列这样做。任何帮助都将不胜感激,谢谢!
抱歉,这是我的笔记。 在最后一天,我一直在阅读极大极小树和阿尔法数据修剪,为我的项目做准备。这是c语言中奥赛罗的实现。 我阅读了大量关于它的资料,我知道它被问了很多。在我开始我的评估功能之前,我想充分了解这一点。 在随附的图像中,我无法弄清楚函数和究竟会做什么,任何输入将不胜感激。 如果任何人有任何提示或事情,我应该注意在实现这个和我的奥赛罗评估功能,我愿意采取任何帮助,我可以找到。
输入:p=1,r=55,x=5 产量:5 50 从1到55迭代后,如果数字之和=5,则可能的结果将5,14,23,32,41,50因此输出是一个越来越小的结果 我试着做下面的代码,但我正在从键错误中获取索引。我想这是因为此列表中没有添加任何内容。
本文向大家介绍Powershell小技巧之找出最大最小值,包括了Powershell小技巧之找出最大最小值的使用技巧和注意事项,需要的朋友参考一下 要找出对象的最大最小值,请使用Measure-Object: 它支持多个数据并且还支持不通的数据类型,这里将它小小的修改就能返回WINDOWS目录下最近新创的文件: 只需要设置对象其中的一个属性就能够查看你想要的信息。 支持所有PS版本