Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class Main
- {
- public static void main(String args[])
- {
- Scanner s=new Scanner(System.in);
- Directory dr=new Directory();
- while(true)
- {
- System.out.println("1- Add person details into the telephone book.");
- System.out.println("2- Remove a person from the telephone book.");
- System.out.println("3- Update a telephone number by providing person first name.");
- System.out.println("4- Display the entire telephone book.");
- System.out.println("5- Search a telephone number based on person first name.");
- System.out.println("6- Sort the entire telephone book.");
- System.out.println("7- Exit the program.");
- int choice=s.nextInt();
- switch(choice)
- {
- case 1:
- System.out.print("Enter first name: ");
- String first_name=s.next();
- System.out.print("Enter last name: ");
- String last_name=s.next();
- System.out.print("Enter phone number: ");
- String phone_number=s.next();
- System.out.print("Enter city: ");
- String city=s.next();
- System.out.print("Enter gender: ");
- char gender=s.next().charAt(0);
- System.out.print("Enter address: ");
- String address=s.next();
- System.out.print("Enter email: ");
- String email=s.next();
- Node node=new Node(first_name,last_name,phone_number,city,address,gender,email);
- dr.insert(node);
- break;
- case 2:
- System.out.print("Enter phone number: ");
- String ph_no=s.next();
- dr.remove(ph_no);
- break;
- case 3:
- System.out.print("Enter first name: ");
- String f_n=s.next();
- System.out.print("Enter updated phone number: ");
- String ph_number=s.next();
- dr.update(f_n,ph_number);
- break;
- case 4:
- dr.display();
- break;
- case 5:
- System.out.print("Enter first name to search: ");
- String f_name=s.next();
- dr.search(f_name);
- break;
- case 6:
- dr.sort();
- break;
- case 7:
- return;
- default:
- System.out.println("Invalid option");
- break;
- }
- }
- }
- }
- class Directory
- {
- Node head,tail;
- Directory()
- {
- head=null;
- tail=null;
- }
- public void insert(Node node) // method that insert node into list if phone number is new
- {
- Node temp=head;
- while(temp!=null && !temp.phone_number.equals(node.phone_number))
- temp=temp.next;
- if(temp!=null)
- {
- System.out.println("Entered phone number already exists");
- return;
- }
- if(head==null)
- {
- head=node;
- tail=node;
- }
- else
- {
- tail.next=node;
- tail=node;
- }
- System.out.println("Inserted Successfully");
- }
- public void remove(String ph_no) // method that removes node with given phone number
- {
- Node prev=null;
- Node node=head;
- while(node!=null && !node.phone_number.equals(ph_no))
- {
- prev=node;
- node=node.next;
- }
- if(node==null)
- System.out.println("Phone number not found");
- else if(prev==null)
- {
- head=head.next;
- if(head==null)
- tail=null;
- System.out.println("Deleted Successfully");
- }
- else
- {
- prev.first_name=node.first_name;
- prev.last_name=node.last_name;
- prev.phone_number=node.phone_number;
- prev.city=node.city;
- prev.gender=node.gender;
- prev.address=node.address;
- prev.email=node.email;
- prev.next=node.next;
- System.out.println("Deleted Successfully");
- }
- }
- public void update(String first_name,String phone_number) // method that updates the phone number of person if exists
- {
- boolean found=false;
- Node node=head;
- while(node!=null)
- {
- if(node.first_name.equals(first_name))
- {
- node.phone_number=phone_number;
- found=true;
- }
- node=node.next;
- }
- if(!found)
- System.out.println("No person found with given first name");
- else
- System.out.println("Updated Successfully");
- }
- public void display() // method that displays data in directory
- {
- if(head==null)
- {
- System.out.println("Empty directory");
- return;
- }
- System.out.println("People are as follows: ");
- Node node=head;
- while(node!=null)
- {
- System.out.println(node.toString());
- node=node.next;
- }
- }
- public void search(String first_name) // method that searches for person with first name
- {
- Node node=head;
- boolean found=false;
- while(node!=null)
- {
- if(node.first_name.equals(first_name))
- {
- System.out.println(node.toString());
- found=true;
- }
- node=node.next;
- }
- if(!found)
- System.out.println("No person found with given first name");
- }
- public void sort() // sorts data in linked lists according to first name
- {
- Node node1=head;
- while(node1!=null)
- {
- Node node2=node1.next;
- while(node2!=null)
- {
- if(node1.first_name.compareTo(node2.first_name)>0)
- {
- swap(node1,node2);
- }
- node2=node2.next;
- }
- node1=node1.next;
- }
- System.out.println("Sorted Successfully");
- }
- public void swap(Node n1,Node n2)
- {
- String temp="";
- temp=n1.first_name;
- n1.first_name=n2.first_name;
- n2.first_name=temp;
- temp=n1.last_name;
- n1.last_name=n2.last_name;
- n2.last_name=temp;
- temp=n1.phone_number;
- n1.phone_number=n2.phone_number;
- n2.phone_number=temp;
- temp=n1.city;
- n1.city=n2.city;
- n2.city=temp;
- temp=n1.address;
- n1.address=n2.address;
- n2.address=temp;
- temp=n1.email;
- n1.email=n2.email;
- n2.email=temp;
- char t=n1.gender;
- n1.gender=n2.gender;
- n2.gender=t;
- }
- }
- // prototype of person details
- class Node
- {
- String first_name,last_name,phone_number,city,address,email;
- char gender;
- Node next=null;
- Node() { }
- Node(String first_name,String last_name,String phone_number,String city,String address,char gender,String email)
- {
- this.first_name=first_name;
- this.last_name=last_name;
- this.phone_number=phone_number;
- this.city=city;
- this.address=address;
- this.gender=gender;
- this.email=email;
- }
- public String toString()
- {
- return "\nFirst Name: "+this.first_name+"\nLast Name: "+this.last_name+"\nPhone Number: "+this.phone_number+"\nCity: "+this.city+
- "\nAddress: "+this.address+"\nGender: "+this.gender+"\nEmail: "+this.email+"\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement