SYCS-135 INTRODUCTION TO PROGRAMMING
 ASSIGNMENT 8


Due Date for Tues./Thurs: November 2, 2000 (Garuba)
Due Date for Mon./Wed./Fri.: November 3, 2000 (Keeling)

 

 

Problem: Your consultant on the Year 2K problem has just been involved in a skiing accident in Colorado and will be unable to return to work for several weeks. Today is Friday and you have 2 weeks to meet a deadline for completing the necessary modifications for upgrading a number of application programs to be Year 2000 compatible. Your manager has agreed that you can use the company’s very experienced top programmer for 1 week, and a junior programmer recently hired from Howard University for 2 weeks, starting on Monday. In order to allocate the work in the most effective way, you have decided to write a program that will read in the documentation of the applications under scrutiny, and count the frequency of keywords such as Date, Year, 2000 etc. Your consultant has assured you that he kept the documentation up to date, so your plan is to isolate the code that has the most references to the keywords associated with dates and give this code to the top programmer, assuming that this code will require the most modification. The rest of the code you will give to the junior programmer.

So your job is to determine the number of times the following keywords appear in each paragraph of the documentation: year, years, date, dates, 2000, Y2K, and any date 1900 to 1999. Any alphabetic character can be upper case or lower case. Thus date is counted the same as Date for frequency purposes.

Input: Create a text file "applic.txt" containing the following paragraph followed by at least 2 more paragraphs of documentation that you make up yourself.

To modify DEDUCTION_1 to account for Year 2000 compatibility, check for dates 1979-1999 taking into account year 1900. Years before 1979 should be handled using the Y2K routine A, years >= 1979 should be handled using the OLD_1 routines.

There is at least one blank after each punctuation character and surrounding each mathematical symbol (e.g., <= ) symbol. Words have a maximum of 20 characters and can contain alphabetic characters, digits and underscore characters only. Paragraphs are separated by one or more blank lines.

In your C++ program name your external input file applic.txt and include the following combined declaration and open statement in your program:

ifstream aread = "applic.txt";

Output: Your output should present, in a neat and readable manner the following:

Your name, the course number, assignment number and date, and problem description.

The applications’ documentation exactly as written in applic.txt.

After each paragraph, a statement giving the frequency counts in the paragraph, of the following four categories of names or symbols:

Category                     Sequence of characters                  Meaning

Year                             "year" or "years"              singular or plural of word year

Date                             "date" or "dates"              singular or plural of word date

Year 2000                "2000" or "Y2K"              Nomenclature for year 2000

Prior Years               "19NM"                                   N and M are integers chosen

from 0 -> 9.

Examples of the last category, Prior Years, are 1904, 1987, 1998.

For example, if applic.txt included only the first paragraph listed above, the frequency counts output would be:

For paragraph 1:

Frequency of Year = 4

Frequency of Date = 1

Frequency of Year 2000 = 2

Frequency of Prior Years = 5

Special Requirements: Use enumeration types, arrays, strings and the <string.h> library functions.

Assignment Submission: On November 1st  for Keeling and October 30th for Garuba, hand in a hard copy of your algorithm in pseudocode, your test oracle and desk-checking calculations, your C++ program compilation listing, and your output obtained from running your program with the external file "applic.txt". SCS users will also submit their programs electronically on November 3rd (Keeling) or November 2nd (Garuba), see below.

Pseudocode: A 1-page description of your algorithm in pseudocode.

Test Oracle: Write at least 2 additional paragraphs of documentation and use your algorithm to calculate by hand the frequency counts.

Program Documentation: At the top of your source code as a comment, include your name, course number and title, assignment number, and date, followed by a description of the problem. Include comments as necessary throughout your program to illustrate the algorithm, logic of flow, meaning of variables etc. Follow the style guidelines described in class.

---------------------------------------------------------
Electronic Submission - SCS Laboratory

All C++ program assignments are now to be submitted electronically. Your program will be run using the instructors' data. For Assignment 8, name your C++ program file assign8k.c (for Mon./Wed./Fri - Keeling) or assign8g (for Tues./Thurs.- Garuba) and use one of the following commands to submit your program:

$ Keeling assign8k.c                                 (for Mon./Wed./Fri - Keeling)

$ Keeling assign8g.c                                 (for Tues./Thurs.- Garuba)

The assignment is to be submitted electronically no later than 10:00pm on Nov. 2, 2000 for Keeling's class and no later then 10:00pm on Nov. 1, 2000 for Dr. Garuba's class. The receiving file will be closed at 10:00pm and no late assignments will be accepted. If before the due dates, you send in a version of your assignment, having already sent in an earlier version, the later version will automatically replace the earlier version in the assignment file.


---------------------------------------------------------
Electronic Submission – via E-mail

If you do not have an SCS account, your program can be submitted via E mail. If you select this mode of submission then you must make sure that you make the subject of your message “assign8.c “ and use the following E mail addresses

 

            [email protected] (for Mon./Wed./Fri - Keeling)

            [email protected]  (for Tues./Thurs.- Garuba)

 

The body of the message should be your source code listing with the program’s output as comments.