为名为 CounterType 的类型定义一个类。这种类型的对象用于计数 事物,所以它记录了一个非负整数的计数。
一个。私有数据成员:count。
B.包括一个 mutator 函数,该函数将计数器设置为作为参数给出的计数。
c.包含成员函数以将计数增加一并减少计数 一个。
d。包括一个返回当前计数值的成员函数和一个输出 计数。
e.包括将计数设置为 0 的默认构造函数。
f.包括一个参数构造函数,将计数设置为给定参数。
确保没有成员函数允许计数器的值变为负数。
将您的类定义嵌入到测试程序中。
输出示例为:
a = CounterType(10)
a.display()
a.increase()
a.display()
a.setCounter(100)
a.display
将显示以下内容:
Counter: 10
Counter: 11
Counter: 100
我已经编写了代码,但我只是想确保它遵循问题的要求,以及是否有更简单的方法来编写此代码。
class CounterType:
def __init__(self, counter=0):
self.counter = counter
def increase(self):
self.counter += 1
def decrease(self):
if self.counter == 0:
print("Error, counter cannot be negative")
else:
self.counter -= 1
def setCounter(self, x):
if x < 0:
print("Error, counter cannot be negative")
else:
self.counter = x
def setCount0(self):
self.counter = 0
def display(self):
print("Counter:", self.counter)
def getCounter(self):
return self.counter
这是一个家庭作业,所以如果你能给一些提示会有所帮助
答案 0 :(得分:1)
您忘记了“确保没有成员函数允许计数器的值变为负数。”
最简单的方法是在每个函数中添加一个 if
条件。更聪明的方法是添加检查 setCounter
函数并从所有其他函数中使用此函数。
class CounterType:
def __init__(self, counter=0): # (e, f) counter = 0: default argument value so x = CounterType() works and has a counter of 0
self.counter = 0 # (a)
self.setCounter(counter)
def increase(self): # (c)
self.setCounter(self.counter + 1)
def decrease(self): # (c)
self.setCounter(self.counter - 1)
def setCounter(self, x): # (b)
if x < 0:
print("Error, counter cannot be negative")
else:
self.counter = x
def setCount0(self): # This is not needed
self.counter = 0
def display(self): # (d)
print("Counter:", self.counter)
def getCounter(self): # (d)
return self.counter