198k views
1 vote
Software Requirements

The program shall read through the contents of the input file by way of standard input. This means that the user of the program shall use file redirection on the command line in order for the program to read an existing file. The program shall send its encrypted or decrypted output data to standard output.

The program shall first check the entries on the command line. If the entries are not correct, the program shall print out a usage message and terminate. If the command line entries are correct, the program shall read through the input file "character by character" to fill up a two-dimensional table. Each time the table is filled, the program shall transpose the rows (first) and columns (second) to encrypt the message, and then write the table contents to standard output in the same manner that the table was filled. For decryption, the columns shall be transposed first, and then the rows. This process of filling the table, transposing the table rows and columns, and then writing out the table contents shall happen repeatedly. When the final set of characters are read from the input file, the program shall space-fill the remaining table contents so that all cells are filled before the double transposition occurs.

After the program detects the end of the input file and writes out the last characters that were read in, it shall send a message to standard error saying "Encryption is done" or "Decryption is done" , and then terminate normally.

The double transposition key shall be hard-coded into the implementation of the algorithm. The two-dimensional table shall have default values of 6 rows and 4 columns. These values shall be declared as global constants near the top of the source code file. The row and column transpositions for encryption shall occur as follows:

Rows: (0, 1, 2, 3, 4, 5) -> (3, 5, 0, 2, 1, 4)

Columns: (0, 1, 2, 3) -> (3, 2, 0, 1)

Sample Program Runs

C:\> a.exe

Usage: a.exe -d

C:\> a.exe -e cipheredData.txt

Encryption is done

C:\> a.exe -d readableData.txt

Decryption is done

Please provide screen shots as well.

User Misticos
by
7.4k points

1 Answer

2 votes

Final answer:

The program reads the contents of an input file, transposes rows and columns, and writes the output data. It checks command line entries, fills a two-dimensional table, and encrypts or decrypts the message. After processing the file, it spaces-fill the table contents and sends a message before terminating.

Step-by-step explanation:

The subject of the question is software requirements and program implementation. The program is required to read the contents of an input file through standard input and send the encrypted or decrypted output data to standard output. It checks the command line entries for correctness and fills a two-dimensional table with the characters from the file. The program then transposes the rows and columns of the table to encrypt or decrypt the message, and repeats this process until all characters from the input file are processed. Finally, it spaces-fill the remaining table contents, writes out the table contents, and sends a message to standard error before terminating.

User Steve Lee
by
7.7k points