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()