CMSC350 Program that accepts an arithmetic expression

Anonymous
timer Asked: Feb 9th, 2019
account_balance_wallet $25

Question Description

The second programming project involves writing a program that accepts an arithmetic expression of unsigned integers in postfix notation and builds the arithmetic expression tree that represents that expression. From that tree, the corresponding fully parenthesized infix expression should be displayed and a file should be generated that contains the three address format instructions. This topic is discussed in the week 4 reading in module 2, section II-B. The main class should create the GUI shown below:

The GUI must be generated by code that you write. You may not use a drag-and-drop GUI generator.

Pressing the Construct Tree button should cause the tree to be constructed and using that tree, the corresponding infix expression should be displayed and the three address instruction file should be generated.

The postfix expression input should not be required to have spaces between every token. Note in the above example that 9+- are not separated by spaces.

The above example should produce the following output file containing the three address instructions:

Add R0 5 9
Sub R1 3 R0
Mul R2 2 3
Div R3 R1 R2

It is not necessary to reuse registers within an expression as shown in module 2, section II-B, and you can assume there are as many available as needed. Each new expression should, however, begin using registers starting at R0.

Inheritance should be used to define the arithmetic expression tree. At a minimum, it should involve three classes: an abstract class for the tree nodes and two derived classes, one for operand nodes and another for operator nodes. Other classes should be included as needed to accomplish good object-oriented design. All instance data must be declared as private.

You may assume that the expression is syntactically correct with regard to the order of operators and operands, but you should check for invalid tokens, such as characters that are not valid operators or operands such as 2a, which are not valid integers. If an invalid token is detected a

page1image299553456

1

RuntimeException should be thrown and caught by the main class and an appropriate error message should be displayed. Below is an example:

You are to submit two files.

  1. The first is a .zip file that contains all the source code for the project, which includes any code that was provided. The .zip file should contain only source code and nothing else, which means only the .java files. If you elect to use a package the .java files should be in a folder whose name is the package name.
  2. The second is a Word document (PDF or RTF is also acceptable) that contains the documentation for the project, which should include the following:
    1. A UML class diagram that includes all classes you wrote. Do not include predefined classes. You need only include the class name for each individual class, not the variables or methods
    2. A test plan that includes test cases that you have created indicating what aspects of the program each one is testing
    3. A short paragraph on lessons learned from the project
page2image259379824

Unformatted Attachment Preview

CMSC 350 Project 2 The second programming project involves writing a program that accepts an arithmetic expression of unsigned integers in postfix notation and builds the arithmetic expression tree that represents that expression. From that tree, the corresponding fully parenthesized infix expression should be displayed and a file should be generated that contains the three address format instructions. This topic is discussed in the week 4 reading in module 2, section II-B. The main class should create the GUI shown below: The GUI must be generated by code that you write. You may not use a drag-and-drop GUI generator. Pressing the Construct Tree button should cause the tree to be constructed and using that tree, the corresponding infix expression should be displayed and the three address instruction file should be generated. The postfix expression input should not be required to have spaces between every token. Note in the above example that 9+- are not separated by spaces. The above example should produce the following output file containing the three address instructions: Add Sub Mul Div R0 R1 R2 R3 5 9 3 R0 2 3 R1 R2 It is not necessary to reuse registers within an expression as shown in module 2, section II-B, and you can assume there are as many available as needed. Each new expression should, however, begin using registers starting at R0. Inheritance should be used to define the arithmetic expression tree. At a minimum, it should involve three classes: an abstract class for the tree nodes and two derived classes, one for operand nodes and another for operator nodes. Other classes should be included as needed to accomplish good object-oriented design. All instance data must be declared as private. You may assume that the expression is syntactically correct with regard to the order of operators and operands, but you should check for invalid tokens, such as characters that are not valid operators or operands such as 2a, which are not valid integers. If an invalid token is detected a 1 RuntimeException should be thrown and caught by the main class and an appropriate error message should be displayed. Below is an example: You are to submit two files. 1. The first is a .zip file that contains all the source code for the project, which includes any code that was provided. The .zip file should contain only source code and nothing else, which means only the .java files. If you elect to use a package the .java files should be in a folder whose name is the package name. 2. The second is a Word document (PDF or RTF is also acceptable) that contains the documentation for the project, which should include the following: a. A UML class diagram that includes all classes you wrote. Do not include predefined classes. You need only include the class name for each individual class, not the variables or methods b. A test plan that includes test cases that you have created indicating what aspects of the program each one is testing c. A short paragraph on lessons learned from the project 2 Grading Rubric: Criteria Design Functionality Test Cases Documentation Overall Score Meets 5 points GUI is hand coded and matches required design (1) Inheritance hierrachy with at least 3 classes is used (2) Other classes are used to support good object-oriented design (1) All instance data is private (1) 10 points Produces correct fully parenthesized infix expressions for all input (3) Does Not Meet 0 points GUI is generated by a GUI generator or does not match required design (0) Inheritance hierrachy not used or has less than 3 classes (0) Does not use other classes to support good object-oriented design (0) Some instance data is not private (0) 0 points Does not produce correct fully parenthesized infix expressions for some input (0) Produces correct three address file for all input (3) Correctly parses expressions without space delimiters (2) Registers restart at R0 on each new expression (1) Detects invalid tokens (1) 5 points All operators included in test cases (2) Test cases include expressions without spaces (1) Test cases include a case to test invalid token beginning with a digit (1) Test cases include a case to test invalid operators (1) 5 points Correct UML diagram included (2) Lessons learned included (2) Comment blocks with class description included with each class (1) Meets 16 or more Does not produce correct three address file for some input (0) Does not correctly parse expressions without space delimiters (0) Registers do not restart at R0 on each new expression (0) Does not detect invalid tokens (0) 0 points Some operators not included in test cases (0) Test cases don't include expressions without spaces (0) Test cases do not include a case to test invalid token beginning with a digit (0) Test cases do not include a case to test invalid operators (0) 0 points Correct UML diagram not included (0) Lessons learned not included (0) Comment blocks with class description not included with each class (0) Does not meet 0-15 3 ...
Purchase answer to see full attachment

Tutor Answer

Prof_Befly
School: New York University

All the files are contained...

flag Report DMCA
Review

Anonymous
Thanks, good work

Similar Questions
Hot Questions
Related Tags
Study Guides

Brown University





1271 Tutors

California Institute of Technology




2131 Tutors

Carnegie Mellon University




982 Tutors

Columbia University





1256 Tutors

Dartmouth University





2113 Tutors

Emory University





2279 Tutors

Harvard University





599 Tutors

Massachusetts Institute of Technology



2319 Tutors

New York University





1645 Tutors

Notre Dam University





1911 Tutors

Oklahoma University





2122 Tutors

Pennsylvania State University





932 Tutors

Princeton University





1211 Tutors

Stanford University





983 Tutors

University of California





1282 Tutors

Oxford University





123 Tutors

Yale University





2325 Tutors