Programming Assignments for CS 302

The programs that you turn in will be graded according to the criteria given in the first of the following two links. The second link gives detailed instructions on exactly how you are to turn in your finished assignments.

Program grading criteria
Turning in your assignments

Below are your programming assignments. The due date for each one is contained in the assignment description.

Assignment 9.
The details of this assignment are in this page. This assignment is due on Friday, May 6.

Assignment 8.
The details of this assignment are in this page. This assignment is due on Monday, April 25.

Assignment 7.
The details of this assignment are in this page. This assignment is due on Monday, April 18.

Assignment 6.
The details of this assignment are in this page. This assignment is due on Monday, April 4.

Assignment 5.
The details of this assignment are in this page. This assignment is due on Wednesday, March 9.

Assignment 4.
For this assignment you will write a "launcher" program that creates Windows processes. Write a console program that prompts the user with a list of five programs that come with every copy of Windows (you choose the five programs). Have the five programs numbered in the list from 1 to 5. Have the user choose one of the five programs by inputting a number between 1 and 5. Then your program should use the Win32 function CreateProcess() to start up the program that the user chose. After the process has been created, output a message that states the PID of the newly created process. After your program launches the user's choice, your program should once again prompt the user with the list of available programs and let the user launch another program. However, one of the five programs should be special. Mark the special program in the menu with a * after its number. For the special program, your launcher program should wait for the special program to terminate before the launcher prompts the user for another choice. In other words, the launcher blocks after it launches the special program and the launcher remains blocked until the special program terminates. Your program should keep on letting the user launch programs until the user enters zero. This assignment is due on Wednesday, February 23.

Assignment 3.
This assignment is a continuation of the previous assignment. The details of this assignment are in this page. This assignment is due on Wednesday, February 16.

Assignment 2.
You can do this exercise using either the LCC-Win32 compiler or Microsoft's Visual C/C++ compiler (but this exercise is probably easier to do with Visual C/C++ because of the debugger). Download the C source mischief.c. Follow the instruction contained in the source code file. The main idea is that you are to write a function that modifies the return address stored in its stack frame so that the function returns somewhere other than it is supposed to (this is the main idea behind "buffer overflow attacks" or "smashing the stack"). This assignment is due on Monday, February 7.

Assignment 1.
Write a Win32 console application that uses the C Standard Library open function (fopen) to open a file for reading and to open another file for writing. Copy all of the characters from the input file to the output file, but convert every third character to uppercase (find a function in the C Standard Library that does this for you). Your program should allow the user to put the names of the input and output files on the command line (so you will need to use argc and argv) and if the names are not there on the command line your program should prompt the user for the file names. Here are two things you should think about. What should you do if the input file does not exist? What should you do if the output file already exists? This assignment is due on Monday, January 31.


Return to the CS 302 home page.


compliments and criticisms