Programming Assignment 5

Page 1 of 3 EECS 293 Software Craftsmanship 2018 Fall Semester Programming Assignment 5 Due at the beginning of your discussion session on October 1-5

c/c++代写,java代写,python代写,matlab代写,作业代写,留学生作业代写

Page 1 of 3 EECS 293 Software Craftsmanship 2018 Fall Semester Programming Assignment 5 Due at the beginning of your discussion session on October 1-5, 2018 Reading • Read the Quick Reference on routine names (blackboard). • Read Sections 7 (preamble), 7.1, 7.2, 7.3, 7.5, 7.6, and 19.6 in Code Complete. Grading Guidelines An automatic C (or less) is triggered by: • Any routine with complexity greater than 4, or by • Any piece of code that is essentially repeated. Programming First, make all the changes discussed in your discussion section. Additionally, you should refactor your code to make sure that it adopts the principles covered in the reading assignments. Expression Simplifica�on In this assignment, you will design and implement a method on Expression that removes multiple parentheses. The objective is to replace an expression such as ((a)) with the Boolean expression a. Add to Symbol the method Symbol simplified(). The method attempts to execute the substitution in the figure. Page 2 of 3 The simplified method: • On an AbstractListSymbol, returns itself, • On a Term, returns a new Term whose subexpression has been simplified, and • On an Expression, returns either itself or, if at all possible, a new Expression o That has been simplified as in the figure and o Whose bottom Term has been simplified recursively. To aid in the implementation of simplified, add the following method to Symbol: Optional subterm(); The definition and implementation of subterm is left up to you. You should not cast variables. User Interface For extra credit, implement a command line interface to the Boolean expression project. Its input is a Boolean list, and its output is a textual representation of the corresponding tree (or an explanation if an error occurred). Alternatively, your implementation could display the tree representation in a graphical interface. General Considera�ons This assignment concludes the Boolean expression project. In the next assignment, we will turn to a different project. These classes may contain as many auxiliary private and packageprivate methods as you see fit, and additional package-private Page 3 of 3 helper classes may be defined. However, any modification or addition to public classes and methods must be approved by the instructors at the discussion board. You should write JUnit tests to make sure that your primary methods work as intended. However, we will revisit testing later on in the course, so extensive testing is not yet recommended. Similarly, your code should have a reasonable number of comments, but documentation is going to be the topic of a future assignment. As a general guideline at this stage of the course, comments and tests should be similar to those accepted in EECS 132. Discussion Guidelines The discussion will focus on routines, including but not limited to appropriate routine names. Submission Bring a copy to discussion to display on a projector. Additionally, submit an electronic copy of your program to Canvas. In addition to your code, include a README file explaining how to compile and run the code. The code should be handed in a zip, tar.bz2, or tar.gz archive. Archives in 7z cannot be accepted.

留学生作业代写,cs作业代写,cs代写,作业代写,北美cs作业代写,澳洲cs作业代写,加拿大cs作业代写,cs作业代写价格,靠谱cs作业代写,程序代写
WeChat