Mathematics 1201: Programming in C Programming Projects Prof. Wickerhauser For full credit, you must send me your source code on diskette or by email. It must compile and run with data that I choose. Anyone who wishes to write a different program than the ones listed below should come see me with a description of what it will purport to do, and I will approve it if it seems interesting. [BIBL] Write a program that repeatedly prompts the user for Title, Author, Publisher, Date, ISBN, and any other information relevant to books in your field, then writes that information to a file. Have it create a bibliography of several books and print it in a nice format. Write a second program that prompts the user for partial information about a book and then supplies the rest from the bibliography file. [BIGN] Write a program that multiplies two very large integers, with an arbitrary number of digits each. Have it read the numbers from standard input and write the product to standard output. [COMS] Write a program that reads a .c file and computes the ratio of lines of comments to lines of code. Choose any reasonable method for counting comment lines; use semicolons to count lines of code. Have it issue a stern reprimand if the ratio is less than 1. Have it complain if the input file is empty or does not look like a C program. [MATR] Write a program that multiplies two matrices containing complex coefficients. Have it read the matrix coefficients from two files in the following format: File for matrix A: MA NA A[0][0]_real A[0][0]_imaginary A[0][1]_real A[0][1]_imaginary ... A[MA-1][NA-1]_real A[MA-1][NA-1]_imaginary File for matrix B: MB NB B[0][0]_real B[0][0]_imaginary ... B[MB-1][NB-1]_real B[MB-1][NB-1]_imaginary Have it check that NA==MB and terminate with an error message if not. Have it write the output matrix AxB to a file in the same format. Your code should work for matrices of `arbitrary' size, but it should terminate with an error message if there is not enough memory or if it cannot write the output file. [SMUT] Write a program that reads a file of text and replaces each `target' word with its first letter followed by a string of asterisks that indicate its length. Have it read the list of target words from a file, so that new words to censor can be added. Allow words to be separated by newlines, blanks, tabs, formfeeds, and punctuation symbols like commas, periods, single and double quotes, and parentheses. [TAX] Write a program that prompts the user for the information requested on Form 1040EZ, then have it compute the tax. Allow the user to go back and change previous entries at any point and recompute the tax. [TREE] Write a program that builds a family tree. Have it use data structures with members like Born, Died, Married, and pointer members like Father, Mother, and Children[], filled with information acquired from the user. Write a second program that queries the user for partial information about an ancestor and supplies the rest.