Compare character just read in with character just popped

Assignment Help JAVA Programming
Reference no: EM131154272

Well Balanced Project

Overview

For this project you will write a program which determines if the parentheses, curly brackets, and square brackets in a text file are properly paired within a text file. The parentheses characters are ( and ). The curly bracket characters are { and }. The square bracket characters are [ and ]. Properly paired means for each left parenthesis there is a corresponding right parenthesis, for each left curly bracket there is a corresponding right curly bracket, and for each left square bracket there is a corresponding right square bracket. In addition to this, the left and right parentheses, curly brackets, and square brackets have to occur in the correct order.

The algorithm to perform the check of well­balanced parentheses, curly brackets, and square brackets uses a stack and is straight forward:

One at a time, the algorithm reads in a character from the input file, prints the character, and processes the character as follows:

A. If the character is anything other than a parenthesis, curly bracket, or square bracket then ignore that character and read in the next character from the input file.

B. If the character is a left parenthesis, left curly bracket, or left square bracket then push that character onto the stack and read in the next character from the input file.

C. If the character is a right parenthesis, right curly bracket, or right square bracket then:

1. Pop just one character off the top of the stack.

2. Compare the character just read in with the character just popped off the top of the stack:

a. If both characters are parentheses, or both characters are curly brackets, or both characters are square brackets (Hence, both characters are the same type) then balance is maintained and read in the next character from the input file.

b. If both characters are not the same type then print an error message telling the user the input does not have well­balanced parentheses, curly brackets, or square brackets and terminate the program.

There are two other situations where the text within a text file are not properly paired. One situation is when the number of left parentheses, curly brackets, and/or square brackets is more than the number of right parentheses, curly brackets, and/or square brackets. The other situation is when the number of right parentheses, curly brackets, and/or square brackets is more than the number of left parentheses, curly brackets, and/or square brackets. You'll have to figure out how to detect and when each situation might occur within the algorithm given in the previous paragraph.

Design

1. The input to your program will be read from a plain text file called project2.txt. This is the statement you'll use to open the file:

FileInputStream fstream = new FileInputStream("project2.txt");

Assuming you are using Eclipse to create your project, you'll store the input file project2.txt in the parent directory of your source code (.java files) which happens to be the main directory of your project in Eclipse. If you're using some other development environment, you'll have to figure out where to store the input file.

Any text file containing computer code can be used to test your program. You should use a number of test text files to test your program. Some of your test text files have well­balanced parentheses, curly brackets, and square brackets and other test text files do not have well­balanced parentheses, curly brackets, and square brackets.

2. Make the name of the driver class Project2 and it should only contain only one method:

public static void main(String args[]).

The main method will open the file project2.txt and hand off the input to another class or classes to perform the well­balanced parentheses, curly brackets, and square brackets algorithm. Therefore, the main method itself should be fairly short.

3. Download the files Stack.java and DynamicArrayStack.java containing the some of the array implementation of the stack class. You cannot add data members to or modify the data members of the dynamic array stack class. You cannot modify the dynamic array stack class constructor. You will write the code for the size, isEmpty, push(AnyType newValue), top(), and pop() methods.

You will add the appropriate code to the dynamic array stack class to resize the array data (the stack's storage) when the array data is completely full or when the number of values in the stack is ¼ the size of the array data. You do not need to write this code yourself, it is code discussed in class.

You do not need to write any additional methods to help in your implementation of the dynamic array stack class.

4. Your program will, one at a time, read in a character from the input file, print the character, and process the character according to the algorithm described in the overview section. If the text in the input file does not contain well­balanced parentheses, curly brackets, or square brackets then your program will print an error message and terminate properly. If the text in the input file does contain well­balanced parentheses, curly brackets, and square brackets then your program will print a message stating this and complete its execution normally.

5. Do NOT use your own packages in your program. Do NOT use any graphical user interface code in your program.

6. Make your program as modular as possible, not placing all your code in one .java file. You can create as many classes as you need in addition to the classes described above. Methods should be reasonably small following the guidance that "A function should do one thing, and do it well."

7. Document and comment your code thoroughly.

Reference no: EM131154272

Questions Cloud

Single phase core type transformer : The emf per turn of 3300 /395, 50Hz single phase core type transformer is 7.5V, if the maximum flux density is 1 Tesla, then find a suitable number of primary and secondary turns and the net cross- sectional area of the core.
Write a mips assembly program : Given the base 3 number 12022 -  What is this number in decimal? -  What is this number in binary?- What is this number in base 9?
Determine the force applied to plunger by electric system : Determine the force applied to the plunger by the electric system.
Overloaded functions and overridden functions : Difference between overloaded functions and overridden functions.
Compare character just read in with character just popped : Compare the character just read in with the character just popped off the top of the stack. If the character is a left parenthesis, left curly bracket, or left square bracket then push that character onto the stack and read in the next character fr..
How does the group influence the state government : Discuss its connection or relationship to each of the two major political parties in your state. Analyze the interest group's relationship with the two major political parties by addressing these questions: How does the group influence the state gove..
Calculate the gross torque developed for a flux per pole : A four-pole, dc series motor has a lap-connected, two-layer armature winding with a total of 400 conductors. Calculate the gross torque developed for a flux per pole of 0.02 Wb and an armature current of 50 A. (Note: The number of parallel paths i..
History of the united states juvenile justice system : The history of the United States juvenile justice system can be traced back to the colonial period in the 1600's
Determine the air-gap flux density : If the bore of the machine is 42 cm in diameter, its axial length is 28 cm, and each pole subtends an angle of 60°, determine the air-gap flux density. (Note that the number of parallel paths is equal to the number of poles for lap windings.)

Reviews

Write a Review

JAVA Programming Questions & Answers

  Need the build function.use recursion

Implement remaining function. Everything else is provided. Use given material to receive points. Implement remaining function. Everything else is provided. Use given material to receive points. Implement remaining function. Everything else is provide..

  Program that allows two players to play tic-tac-toe

Implement a program that allows two players to play tic-tac-toe. Draw the game grid and an indication of whose turn it is (X or O). Upon the next click, check that the mouse click falls into an empty location,

  Explain what is set interface

In the java language, explain What is Set Interface?

  Illustrate the power of java inheritance and polymorphism

Illustrate the power of Java inheritance and polymorphism. Your response to this question is in multiple parts. You will submit your answers as specified at the end of this question.

  Write a program that specializes in solving the equations

Write a program that specializes in solving the equations Ax=b by Doolittle's decomposition method, where a is the HIbber matrix of arbitrary size nxn and

  Rna hairpins and mirror box drawings

When the program starts up, it should draw a vertical line from the top of the screen to the bot- tom that cleanly divides the window in half. This makes it easier for the user to see the mirror effect.

  Gui and multithreading

If you need help with completing discussions please click here for more information. Describe one (1) way in which a GUI can take advantage of multiple threads. Provide one (1) example of such advantages to support your response

  Maintain a constant media schedule

It is usually unnecessary or not feasible to maintain a constant media schedule all year. What are the two other alternatives and what key characteristics of these two alternatives would be taken into account?

  Output the number of tails using the constant array

Assume that this program compiles and runs. Assume that the user enters 5 0 (separated by a space) for input. What is the output. As always, be precise when showing your output. Output the number of Tails using the constant array for the "Tails" h..

  Calculates and displays the mortgage payment amount

Write a Java program without a graphical user interface that calculates and displays the mortgage payment amount given the amount of the mortgage, the term of the mortgage, and the interest rate of the mortgage. In this program, hard code the amou..

  Question regarding the ethical hacking exercise

Identify and describe the phases that are involved in an ethical hacking exercise. Describe how an ethical hacker can also perform these steps, and whether a not a boundary exists in the steps that an ethical hacker should not cross. If is there i..

  Implement a probability calculator for the standard normal

implement a probability calculator for the standard normal distribution using GUI.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd