Description
In this project you will implement a program that simulates a simple text
editor with the undo/redo functionalities allowed. The program will
accept statements, one at a time with a maximum of 100 characters per
line.
There will be some special commands as follows:
1. undo: this will undo (i.e., remove) that last entered statement;
2. redo: this will redo (i.e., re-add) that last removed statement;
3. print: this command will print the entire stored input text;
4. save: will save the text to a file called (output.txt);
5. quit: will exit the program and save all results to output.txt
Execution example:
MyCommand > This is a test input
MyCommand > COMP2421 – Data structures & Algorithms
MyCommand > test1
MyCommand > print
result >
This is a test input
COMP2421 – Data structures & Algorithms
test1
MyCommand > undo
result >
This is a test input
COMP2421 – Data structures & Algorithms
MyCommand > redo
result >
This is a test input
COMP2421 – Data structures & Algorithms
test1
MyCommand > test2
MyCommand > test3
MyCommand > print
This is a test input
COMP2421 – Data structures & Algorithms
test1
test2
test3
MyCommand > quit
result > Good Bye!
In your implementation, each statement should be stored in a different
node. Implementing the undo/redo functionalities can be done through
stacks. When printing all statements, you should make sure they are
printed in the sequence they were entered.
Notes and submission instructions:
1. This is individual work. It should represent your own efforts. It is
fine to discuss your work and to ask your colleagues, but you are not
allowed to copy/paste the work of others or give your work to
anyone else. You are not allowed to post/copy from other websites
and/or social media and this will be considered as cheating.
2. Document format. Please submit only the code file (c file)
containing the code of your project. Please rename it as follows:
“A2_YourStudentID_FirstNameLastName_SectionNo.c”.
E.g., A2_1190000_AmmarAhmed_2.c given this student in section
2.
3. Input/output file name. Make sure that the input/output file
names are the same as in the specifications.
4. Include your full name, student ID, and section number in the
beginning of your file.
5. Please do not compress the file, only the C-file is needed.
6. Files not following the convention in point 2 will not be marked.
Good luck!