1. UML Diagram of Shapes, Rectangle and Square
Shapes ClassShapes- name: String
- colour: String
- Xcoord: double
- Ycoord: double
~ Shapes() <>
~ Shapes(initName:String, initColour:String, initXcoord:double, initYcoord:double) <>
+ setName(newName:String)
+ setXcoord(newXcoord:double):boolean
+ setYcoord(newYcoord:double):boolean
+ setColour(String newColour)
+ getXcoord():double
+ getYcoord():double
+ getName():String
+ getColour():String
+ getArea():double
Rectangle ClassRectangle- side: double
~ Rectangle()
~ Rectangle(initLength:double, initWidth:double, initName:String, initColour:String, xCoord:double, yCoord:double)
+ setLength(_length:double):boolean
+ setWidth(_width:double):boolean
+ getWidth():double
+ getLength():double
+ calcArea():double
+ getArea():double
+ toString():String
Square ClassSquare- side: double
~ Square()
~ Square(initside:double, initName:String, initColour:String, xCoord:double, yCoord:double)
+ setSide(newSide:double)
+ calcArea():double
+ getArea():double
+ toString():String
2. UML diagram of ShapesList class
ShapesList ClassShapesList- MAXSIZE: int
- myList[]:Shapes
- currsize:int
~ ShapesList ()
~ ShapesList (_maxsize:int)
+ void addShape(_newShape:Shapes)
+ toString():String
+ bubbleSort()
+ exportToFile(outputString:String)
+ readFromFile()
3. I commented in the ShapeList.java file.
a) addShape() method is used to add shapes in list. It adds the shapes till MAXSIZE which is 10.
b) toString() method is for return the information of class.
c) bubbleSort() method is for sort the shapes based on area of shape. The sorting is based on bubble sort.
d) exportToFile() method is for write the data in text file
e) readFromFile() method is for read the data from text file
4. The ‘file’ object contains the “export.txt” file. The BufferedWriter class writes text to a character-output stream. The object of this class helps to write the data in output file.
5. Attribute used of sorting: Ycoord of shape
Explanation of sorting algorithm by pseudo code:pseudo code for sort:
for index1 in range(len(sList) -1):
for index2 in range (len(sList) - (index1 + 1)):
if (sList[index2] > sList[index2 + 1]):
swapListPositions (sList, index2, index2 + 1)
6. Sorting Algorithm: Bubble Sort
This algorithm used two loops to compare element with other elements of array for sorting. The inner loop works currsize-1 times. The process of inner loop varies 0 to (size of array – (index of upper loop + 1)).
7. The Selection sort is another algorithm which could be used for sorting.
8. The getArea() method is returning the area of rectangle. The value of rectangle area comes from calcArea() method which is in same class.
9. Absolute path:
C:UsersDocumentsworkspaceshape codeexport.txt
The output file is located in ‘c’ drive.
BufferedWriter class writes text to a character-output stream. The object of this class helps to write the data in output file.
10. The try-catch is used to catch the exception if it occurs while read the data from file.
Error after removing try-catch and file:
Unhandled exception type FileNotFoundException
Error after removing only file:
java.io.FileNotFoundException: ShapesFile.txt (The system cannot find the file specified)