Ask Java Expert


Home >> Java

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.

Java, Programming

  • Category:- Java
  • Reference No.:- M91909722

Have any Question?


Related Questions in Java

Chatbotscreate a small networked chat application that is

Chatbots Create a small, networked chat application that is populated by bots. Introduction On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

Assignment game prototypeoverviewfor this assessment task

Assignment: Game Prototype Overview For this assessment task you are expected to construct a prototype level/area as a "proof of concept" for the game that you have designed in Assignment 1. The prototype should function ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

In relation to javaa what is constructor the purpose of

(In relation to Java) A. What is constructor? the purpose of default constructor? B. How do you get a copy of the object but not the reference of the object? C. What are static variables and instance variables? D. Compar ...

Project descriptionwrite a java program to traverse a

Project Description: Write a java program to traverse a directory structure (DirWalker.java) of csv files that contain csv files with customer info. A simple sample in provided in with the sample code but you MUST will r ...

Fundamentals of operating systems and java

Fundamentals of Operating Systems and Java Programming Purpose of the assessment (with ULO Mapping) This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements ...

Assessment -java program using array of Assessment -JAVA Program using array of objects

Assessment -JAVA Program using array of objects Objectives This assessment item relates to the course learning outcomes as stated in the Unit Profile. Details For this assignment, you are required to develop a Windowed G ...

Applied software engineering assignment 1 -learning

Applied Software Engineering Assignment 1 - Learning outcomes - 1. Understand the notion of software engineering and why it is important. 2. Analyse the risk factors associated with phases of the software development lif ...

Retail price calculatorwrite a java program that asks the

Retail Price Calculator Write a JAVA program that asks the user to enter an item's wholesale cost and its markup percentage. It should then display the item's retail price. For example: (If an item's wholesale cost is 5. ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As