CS250 Final Project Guide CS250 Final Project Project is due at 4:30 pm on 5/6/20. No late projects will be accepted. Any projects submitted before 5/1/20 at 11:59 pm will be checked and given a...

need help coding


CS250 Final Project Guide CS250 Final Project Project is due at 4:30 pm on 5/6/20. No late projects will be accepted. Any projects submitted before 5/1/20 at 11:59 pm will be checked and given a tentative grade. The project may be resubmitted up to twice for such checking. No further rechecks will be given after the second. Revised submissions will be accepted up to the due date. The final project will consist of three separate programs. You will be provided starting files so that everyone begins in the same place. You will need to use objects and file formats explained below so that your programs are compatible with the overall project guidelines. Part 1: DrawingObject Based Drawing and File Exporter (1/3 of project points) Filename: ObjectDrawing.java You will be provided with the DrawingObject files you will need to complete the project. You may choose to use your own so long as they are not functionally different from those provided. This portion of the program will be expected to use DrawingObjects directly to make a an image. You may wish to use your original program that drew directly in StdDraw and modify it to use objects, this would be acceptable, but you may also create a new image. After the image is drawn, the program will save the object definitions to a plain text file by encoding the objects in the manner described below in the section “File format”. The name of the exported drawing file must be: cs250_drawing.txt. (case must match as well) Your program must do this each time it is run, so do leave that portion in the final submission of this program part. You will not submit your exported file, so it is critical that your program do this. I will be grading the correctly formatted file that is generated by your program. Provided files for this part will be posted before 11:59 pm on 4/15/20. Part 2: Drawing File Loader (1/3 of project points) Filename: DrawingLoader.java This program will load a file that has been saved in the file format described the that section of this document. Prompt the user for the filename. If the filename cannot be found, attempt to load cs250_drawing.txt. If neither file exists, print a suitable error message and exit the program. When the file is successfully found, the program will then display the related drawing by calling the draw method on each of the objects drawn. It is required that you use a net.datastructures LinkedQueue object of type DrawingObject to store the drawing objects. You will have added an iterator to this object in Hwk 5, so you must use this iterator to draw all of the objects that have been loaded. A test file will be provided including a screen shot of the expected drawing for that file. You should also use your created file from part 1 to test that it can be loaded properly. Provided files for this part will be posted before 11:59 pm on 4/17/20 Part 3: Interactive Drawing Program (1/3 of project points) Filename: InteractiveDraw.java A partial program will be provided that allows the user to interactively draw circles on the screen. Expand this program so that there are a minimum of 3 buttons for colors, and 4 buttons for shapes. The program must have an additional button that saves the current drawing to our file format. You may reuse the code from Part 1; it may be particularly useful to make the code a method in that section so that you can simply call it from this program. In that case, make the method take a net.datastructures.LinkedQueue of DrawingObjects and draw them. Provided files for this part will be posted before 11:59 pm on 4/20/20 Bonus Part 4 (Optional, worth up to 10% bonus points) Filename: InteractiveDraw.java The parts above constitute the beginning of a drawing program such as MS Paint. You may optionally choose to combine all of the programs into the InteractiveDraw program. Provide buttons to load a drawing and save a drawing in addition to the buttons from Part 3. In this case, the text input need not be part of the GUI program. (~2.5% bonus) Additional options: Investigate the use of library options like JFileChooser, JOptionPane, and JColorChooser https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html https://docs.oracle.com/javase/tutorial/uiswing/components/colorchooser.html Use of these will help you build a project that is closer to an actual GUI than you could otherwise without changing StdDraw. (~2.5% bonus) Undo/Redo options: One final option would be do provide an undo and redo function using a stack. The data type of the stack should be DrawingObject and contain a reference to the last object created. Deleting this object is a little tricky as the object will exist in the queue. You’ll have to remove it from the queue without losing other items. Redo is a little easier. Simply take object from the redo stack and place it on the undo stack again. If a new object is created when the redo stack isn’t empty, delete all the items on the redo stack. (~5.0% bonus) There are no additional provided files for this portion. https://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html
Apr 28, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here