1. Use the NetBeans IDE to create a new project named:
               COSC485_Project1_
2. Write programs that can build a DFA based on the specifications and then process the
strings and decide whether they are accepted.
3. Your code will need to read in two input files then output your answer to a file as well.
4. The user will type the names of the input files and the name of the output file to the 
command line (not through the keyboard terminal).
5. For example if the user provides the following
command line inputs (in one line):
       “../COSC485_P1_DFA.txt” “../COSC485_P1_Strings.txt”
“../COSC485_P1_Answers.txt”
a. Then COSC485_P1_DFA.txt is the file that contains the specifications for a
DFA;
b.
COSC485_P1_Strings.txt is the file that contains some number of strings;
c.
COSC485_P1_Answers.txt will be the file that you create to write your answer to, which contains the information that which of the strings are accepted by the DFA and which are not;
d. The users may choose other file names they desire but the order of them won’t change. It means the first file will be the specifications of a DFA; the second file will be a set of strings; and the third file will be the answers.
e. Sample files are provided, but the sample input files are by
no mean listing all testing cases. You have to add testing cases to the input file to test your program completely. What you can assume is that the input file structure will be the same as those sample input files.
6. The specifications of a DFA
may or may not omit the transitions leading to a sink/dead state. That is to say, any missing transition may come out of a state is assumed to go into a sink/dead state (such a state may or may not be specified as one element of the set of states).
7.
Bonus 1: If your program provides a GUI that can draw the state transition diagram based on the provided description of a DFA then you will receive 30 bonus points;
8.
Bonus 2: If your program can process the input automaton even if it is a NFA then you will receiv 70 bonus points. If you did do this part then you need to let the instructor know when you do the program demonstration and also specifying it in the submission comments. Your program command line inputs for the NFA part will be (in one line):
      “../COSC485_P1_NFA.txt” “../COSC485_P1_Strings.txt”

“../COSC485_P1_Answers.txt”

9. Bonus 3: If you gained both of the above two bonus points then you will receive additional 20 extra bonus points.
10.
You may receive partial credits for the standard requirements (i.e. the DFA implementation) but you will not receive partial credits for each of the bonus point parts, i.e. you either receive all the points for that part or none of it.
11. You are required to demonstrate your project to the instructor in class on the project due day.

Submission:

1. Please zip your top project folderand you should get a file with this name:                 COSC485_Project1_.zip
2. Be sure to unzip the above file and try the program out to make sure zip works correctly.
3. Then submit your zip file to the corresponding online submission folder before the due time.

Grading:

1. Grading of this program is based on:
a. Whether your program performs as it should (60%);
b. Whether your program has the correct logical structure (30%);
c. Whether you program follows the recommended programming style (10%).
2. The total of this project is 100 points excluding the bonus points.