Oop 面向对象的设计课程圈-我这样做对吗?
问题Oop 面向对象的设计课程圈-我这样做对吗?,oop,class,Oop,Class,问题 使用面向对象的设计来设计一个名为Circle的类,该类将接收圆的直径,并计算和显示该圆的周长和面积。设计类表…为每个操作编写一个算法…编写一个测试或驱动程序算法来测试解决方案 Class Table Class Circle Attributes diameter Responsibilities receive diameter
使用面向对象的设计来设计一个名为Circle的类,该类将接收圆的直径,并计算和显示该圆的周长和面积。设计类表…为每个操作编写一个算法…编写一个测试或驱动程序算法来测试解决方案
Class Table
Class
Circle
Attributes
diameter
Responsibilities
receive diameter
calculate circumference
calculate area
display circumference
display area
Operations
+setDiameter()
-calculateCircumference
-calculateArea
+displayCircumference
+display Area
Algorithm
Class Circle
diameter1
setDiameter (inDiameter1)
Diameter1=inDiameter1
END
displayDiameter()
calculateCircumference (Circumference)
calculateArea (Area)
Display "The Diameter is", Diameter1
Display "The Circumference is", Circumference
Display "The Area is", Area
END
calculateCircumference (Circumference)
Circumference=Diameter1*3.14
END
calculateArea (Area)
Area=(Diameter1*Diameter1)*3.14
END
Test or Driver Algorithm
Create Circle as NewCircle()
testCircle()
inDiameter1=5
Circle.setDiameter (inDiameter1)
Circle.displayCircumference()
Circle.displayArea()
我这样做对吗?你有几个问题其实很琐碎:
Class Table
Class
Circle
Attributes
diameter
Responsibilities
receive diameter
calculate circumference
calculate area
display circumference
display area
Operations
+setDiameter()
-calculateCircumference
-calculateArea
+displayCircumference
+display Area
Algorithm
Class Circle
diameter1
setDiameter (inDiameter1)
Diameter1=inDiameter1
END
displayDiameter()
calculateCircumference (Circumference)
calculateArea (Area)
Display "The Diameter is", Diameter1
Display "The Circumference is", Circumference
Display "The Area is", Area
END
calculateCircumference (Circumference)
Circumference=Diameter1*3.14
END
calculateArea (Area)
Area=(Diameter1*Diameter1)*3.14
END
Test or Driver Algorithm
Create Circle as NewCircle()
testCircle()
inDiameter1=5
Circle.setDiameter (inDiameter1)
Circle.displayCircumference()
Circle.displayArea()
名为displayDiameter()
的函数实际上除了显示直径外,还显示周长和面积;这在逻辑上并没有什么错误,只是似乎选择了一个不幸的函数名
Class Table
Class
Circle
Attributes
diameter
Responsibilities
receive diameter
calculate circumference
calculate area
display circumference
display area
Operations
+setDiameter()
-calculateCircumference
-calculateArea
+displayCircumference
+display Area
Algorithm
Class Circle
diameter1
setDiameter (inDiameter1)
Diameter1=inDiameter1
END
displayDiameter()
calculateCircumference (Circumference)
calculateArea (Area)
Display "The Diameter is", Diameter1
Display "The Circumference is", Circumference
Display "The Area is", Area
END
calculateCircumference (Circumference)
Circumference=Diameter1*3.14
END
calculateArea (Area)
Area=(Diameter1*Diameter1)*3.14
END
Test or Driver Algorithm
Create Circle as NewCircle()
testCircle()
inDiameter1=5
Circle.setDiameter (inDiameter1)
Circle.displayCircumference()
Circle.displayArea()
您的
calculateArea
正在将面积计算为直径2
*pi
。是不是应该是1/4*diameter
2
*pi
?@Roflcoptr我会想象这个类的设计和算法将是语言不可知的。@glowcoder是的,我也这么认为,但我被结尾的关键字激怒了。@Roflcoptr可能是教授的一些古怪要求。当我在大学时,我让一位教授给我打分,因为我的伪代码不符合适当的语法。原来她的“伪代码”是她为硕士论文编写的语言,是bash和perl的黑客版本……这是一个PHP类,但这是一个通用的东西,我们不必使用特定的语言,他只是在衡量我们是否理解,我只是想弄清楚我是否在正确的轨道上。无论如何,你可以使用正确的标记。谢谢你,我会修复它,否则可以吗?
Class Table
Class
Circle
Attributes
diameter
Responsibilities
receive diameter
calculate circumference
calculate area
display circumference
display area
Operations
+setDiameter()
-calculateCircumference
-calculateArea
+displayCircumference
+display Area
Algorithm
Class Circle
diameter1
setDiameter (inDiameter1)
Diameter1=inDiameter1
END
displayDiameter()
calculateCircumference (Circumference)
calculateArea (Area)
Display "The Diameter is", Diameter1
Display "The Circumference is", Circumference
Display "The Area is", Area
END
calculateCircumference (Circumference)
Circumference=Diameter1*3.14
END
calculateArea (Area)
Area=(Diameter1*Diameter1)*3.14
END
Test or Driver Algorithm
Create Circle as NewCircle()
testCircle()
inDiameter1=5
Circle.setDiameter (inDiameter1)
Circle.displayCircumference()
Circle.displayArea()