Possible Project Topics:
(I)Compare Array, Vector, and Linked List:
(A) Write an ordered linked list C++ program to store a list of address structs,
where each struct contains a name (last, first), address, and telephone number.
The list should be in ascending to the last name.

Assume that it is an empty list in the beginning, after user enter a record, you start to insert
user's information in.  Where to insert it depends on the last name.  For examples, if user enter
the following three records, you will insert the second one after the first one.
When the third one comes, you will insert it between last two records.

  Name             Address                     Phone Number
Adam, Pascal     123 First Ave. 38102            432-5612
Waters, Kim      781 Knight-Arnold st.38126      807-1234
Farmer, Dawn     2889 Felix Ave. 38111           547-1109

You should be able for any one to update the list by inserting a new record from keyboard
or deleting an existing record from list.

In addition, the list can be printed whenever needed.

(B) Use Array or Vector to complete the above jobs.

(C) Compare the running time.

(II) Application of Queue:
Problem Description:
The management of some bank is actively pursuing the idea of improving services to their customers.
There have been complains about the time a customer has to spend in the lines to have his/her transaction
done.  The bank does not want to keep more than 3 teller windows opened, since that would necessitate
hiring more tellers.  Instead the management decided to hire a programmer that will write a simulation program
that models the banking situation in order to learn the most efficient queuing technique.

There are 3 such techniques that management would like to evaluate:
1. Customer picks the queue when he/she comes in (the shortest one).  There is no changing queue after it was
    chosen.
2. One of the tellers is dedicated to short transactions only (express line).  If customer transaction will take no
    more than 5 minutes, he can use the dedicated teller window.  Other customers (with transactions requiring
    more than 5 minutes) use other 2 tellers, picking one with the shortest line waiting.
3. All customers wait in one queue, and are called by one of the tellers, as he/her is finished with previous customer.

Specifications:
1. Each model of serving customers needs to be executed with the same data file.  Each line in the data file will
    represent 1 customer and it will contain the time of customer arrival and the time length of his/her transaction.
2. The output should produce the customer average waiting time (the time when customer is being served at the
    teller window not included) for each queuing technique.
3. You need to use your own class Linked_List with several member functions.  Those class methods need to be
     used by all of 3 functions (each such function simulating one queuing technique).  The main is to just call those
     three functions and display average waiting time for each queuing technique.

(III) Study of Sorting Methods:
(A) Define each method
(B) Implement each method
(C) Compare running time
(IV) Compare JAVA, C++, Visual Basic languages

(V) Write a program to collect Data from Web, store in a database system and do analysis.

(VI) Compare different operating systems:
        Microsoft Windows:
              - Windows 95 and 98
              - Windows Me
              - Windows NT
              - Windows 2000
              - Windows XP
        Mac OS
        Unix
        Linux