DS Assignment 1
DS Assignment 1
Date Released 10th Feb 2013 Date of Submission: 18th Feb 2013 12:00 Midnight (Late Submission Policy19th Feb 12:00 Midnight, your marks will be multiplied by 0.9 20th Feb 12:00 Midnight, your marks will be multiplied by 0.8 21st Feb 12:00 Midnight, your marks will be multiplied by 0.7 22nd Feb 12:00 Midnight, your marks will be multiplied by 0.6 23rd Feb 12:00 Midnight, your marks will be multiplied by 0.5 24th Feb 12:00 Midnight, your marks will be multiplied by 0.4 25th Feb 12:00 Midnight, your marks will be multiplied by 0.3 After 25th Feb 2013, assignment will not be accepted. ) You can do the assignment in groups of two students. In each file, names of both the students and their student ids, should be written in comments. There should be proper alignment of all statements in your programs. Use appropriate readable variable names and method names so that your program is readable. If
programs of two groups are found same or almost similar, appropriate action will be taken against both groups.
Please send your softcopies of your project in zipped files to [email protected]
Description of Assignment
In this assignment, you are required to develop a Phone Directory Application using Generic Array List (code was given to you in class). Using this application, you should be able to add new name/phone number pairs to arraylist, given the name search phone number, modify existing number, and delete existing name/number pair from arraylist. This application will use following classes: DirectoryEntry Class
MyArrayList Class PhoneDirectory Class The skeleton of all these classes and required methods are given below. You need to read these first read and understand the given classes and complete the classes and run the application. Sample output of the execution of application should produce the output as in the attached notepad file. //Start of Phone Book Application using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PhoneApplication { class DirectoryEntry // Class DirectoryEntry { string name; string phoneNumber; //constructor public DirectoryEntry( two parameter constructor) { . } public void SetPhoneNumber (.) { .. } public string GetName () { } public string GetPhoneNumber( ) {.} public override string ToString() {
string entry = "\n\nName = "+ name+" \nPhone Number = "+ phoneNumber; return entry; } // End of Class DirectoryEntry //Start of Generic Class MyArrayList public class MyArrayList<T> { T[ ] data; public int numOfElements; public MyArrayList( {. } )// Constructor without paramerts
public void Add(T newElement) // Method for adding a new element to MyArrayList {} private void Reallocate( )// Method for allocating space for new array {.} public T Remove(int index)//Method for removing an element from MyArrayList at {} //index position
public T Get(int index) //Method for returning an element at index {. } public T Set(int index, T newValue) //Method for setting a new value at a given index {..} // position and returning old element
public int Count ()//Method for returning number of elements in MyArrayList {} }//End of generic MyArrayList Class //Start of PhoneDirectory Class class PhoneDirectory { MyArrayList<DirectoryEntry> phoneBook; //Method for adding a Directory Entry to phonebook
public void AddEntry (DirectoryEntry DE) {. } //Method for printing all entries in phoneBook public void PrintDirectory() {.. }// end of printDirectory //Method for Displaying Menu public void DisplayMenu () { . . switch (choice) { case 1: AddPhoneEntry(); break; case 2: SearchPhoneNumber(); break; case 3: DeletePhoneEntry(); break; case 4: ModifyPhoneNumber(); break; case 5: PrintDirectory(); break; case 6: ExitDirectoryApplication(); break; default: Console.WriteLine("Invalid Choice. Please enter correct choice"); break; } } while ( choice != 6); } //This AddPhoneEntry method asks user to enter name and phone number and adds entry //to the phonebook by calling AddEntry() method, which you need to write yourself public void AddPhoneEntry() { string name, phoneNumber; Console.Write("Enter name : ");
name = Console.ReadLine(); Console.Write("\nEnter the Phone Number: "); phoneNumber = Console.ReadLine(); AddEntry (new DirectoryEntry (name, phoneNumber)); } //This method asks user to enter name and this method will search the corresponding //phone number. If the name does not exist then it should display appropriate message. public string SearchPhoneNumber() { ..} //This method should ask the user to enter name and this method will search the //corresponding phone number. If the name does not exist then it should display //appropriate message. Else it should remove the entry from the phonebook and display the message that it has been deleted. public void DeletePhoneEntry() {.} // This method should ask the user to enter name and it will search the name in the //phone book. If the name does not exist then it should display appropriate message. //Else it should ask the user to enter new phone number and replace it in the phonebook. //This method should also display modified entry. public void ModifyPhoneNumber() {. }
//This method written to exit from application public void ExitDirectoryApplication() { Console.WriteLine("\n\n Bye Bye"); Console.ReadKey(); System.Environment.Exit(0); } public static void Main() {
PhoneDirectory pd = new PhoneDirectory(); pd.phoneBook = new MyArrayList <DirectoryEntry>(); pd.DisplayMenu(); Console.ReadKey(); } } }//End of Application