Advertisement
Guest User

438801554

a guest
Apr 8th, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.77 KB | None | 0 0
  1. import java.util.*;
  2. class Main
  3. {
  4.    public static void main(String args[])
  5.    {
  6.        Scanner s=new Scanner(System.in);
  7.        Directory dr=new Directory();
  8.        while(true)
  9.        {
  10.            System.out.println("1- Add person details into the telephone book.");
  11.            System.out.println("2- Remove a person from the telephone book.");
  12.            System.out.println("3- Update a telephone number by providing person first name.");
  13.            System.out.println("4- Display the entire telephone book.");
  14.            System.out.println("5- Search a telephone number based on person first name.");
  15.            System.out.println("6- Sort the entire telephone book.");
  16.            System.out.println("7- Exit the program.");
  17.            int choice=s.nextInt();
  18.            switch(choice)
  19.            {
  20.                case 1:
  21.                    System.out.print("Enter first name: ");
  22.                    String first_name=s.next();
  23.                    System.out.print("Enter last name: ");
  24.                    String last_name=s.next();
  25.                    System.out.print("Enter phone number: ");
  26.                    String phone_number=s.next();
  27.                    System.out.print("Enter city: ");
  28.                    String city=s.next();
  29.                    System.out.print("Enter gender: ");
  30.                    char gender=s.next().charAt(0);
  31.                    System.out.print("Enter address: ");
  32.                    String address=s.next();
  33.                    System.out.print("Enter email: ");
  34.                    String email=s.next();
  35.                    Node node=new Node(first_name,last_name,phone_number,city,address,gender,email);
  36.                    dr.insert(node);
  37.                    break;
  38.                case 2:
  39.                    System.out.print("Enter phone number: ");
  40.                    String ph_no=s.next();
  41.                    dr.remove(ph_no);
  42.                    break;
  43.                case 3:
  44.                    System.out.print("Enter first name: ");
  45.                    String f_n=s.next();
  46.                    System.out.print("Enter updated phone number: ");
  47.                    String ph_number=s.next();
  48.                    dr.update(f_n,ph_number);
  49.                    break;
  50.                case 4:
  51.                    dr.display();
  52.                    break;
  53.                case 5:
  54.                    System.out.print("Enter first name to search: ");
  55.                    String f_name=s.next();
  56.                    dr.search(f_name);
  57.                    break;
  58.                case 6:
  59.                    dr.sort();
  60.                    break;
  61.                case 7:
  62.                    return;
  63.                default:
  64.                    System.out.println("Invalid option");
  65.                    break;
  66.            }
  67.          
  68.        }
  69.    }
  70. }
  71. class Directory
  72. {
  73.    Node head,tail;
  74.    Directory()
  75.    {
  76.        head=null;
  77.        tail=null;
  78.    }
  79.    public void insert(Node node) // method that insert node into list if phone number is new
  80.    {
  81.        Node temp=head;
  82.        while(temp!=null && !temp.phone_number.equals(node.phone_number))
  83.            temp=temp.next;
  84.        if(temp!=null)
  85.        {
  86.            System.out.println("Entered phone number already exists");
  87.            return;
  88.        }
  89.        if(head==null)
  90.        {
  91.            head=node;
  92.            tail=node;
  93.        }
  94.        else
  95.        {
  96.            tail.next=node;
  97.            tail=node;
  98.        }
  99.        System.out.println("Inserted Successfully");
  100.    }
  101.    public void remove(String ph_no)  // method that removes node with given phone number
  102.    {
  103.        Node prev=null;
  104.        Node node=head;
  105.        while(node!=null && !node.phone_number.equals(ph_no))
  106.        {
  107.            prev=node;
  108.            node=node.next;
  109.        }
  110.        if(node==null)
  111.            System.out.println("Phone number not found");
  112.        else if(prev==null)
  113.        {
  114.            head=head.next;
  115.            if(head==null)
  116.                tail=null;
  117.            System.out.println("Deleted Successfully");
  118.        }
  119.        else
  120.        {
  121.            prev.first_name=node.first_name;
  122.            prev.last_name=node.last_name;
  123.            prev.phone_number=node.phone_number;
  124.            prev.city=node.city;
  125.            prev.gender=node.gender;
  126.            prev.address=node.address;
  127.            prev.email=node.email;
  128.            prev.next=node.next;
  129.            System.out.println("Deleted Successfully");
  130.        }  
  131.    }
  132.    public void update(String first_name,String phone_number)  // method that updates the phone number of person if exists
  133.    {
  134.        boolean found=false;
  135.        Node node=head;
  136.        while(node!=null)
  137.        {
  138.            if(node.first_name.equals(first_name))
  139.            {
  140.                node.phone_number=phone_number;
  141.                found=true;
  142.            }
  143.            node=node.next;
  144.        }
  145.        if(!found)
  146.            System.out.println("No person found with given first name");
  147.        else
  148.            System.out.println("Updated Successfully");
  149.    }
  150.    public void display() // method that displays data in directory
  151.    {
  152.        if(head==null)
  153.        {
  154.            System.out.println("Empty directory");
  155.            return;
  156.        }
  157.        System.out.println("People are as follows: ");
  158.        Node node=head;
  159.        while(node!=null)
  160.        {
  161.            System.out.println(node.toString());
  162.            node=node.next;
  163.        }
  164.    }
  165.    public void search(String first_name)       // method that searches for person with first name
  166.    {
  167.        Node node=head;
  168.        boolean found=false;
  169.        while(node!=null)
  170.        {
  171.            if(node.first_name.equals(first_name))
  172.            {
  173.                System.out.println(node.toString());
  174.                found=true;
  175.            }
  176.            node=node.next;
  177.        }
  178.        if(!found)
  179.            System.out.println("No person found with given first name");
  180.    }
  181.    public void sort() // sorts data in linked lists according to first name
  182.    {
  183.        Node node1=head;
  184.        while(node1!=null)
  185.        {
  186.            Node node2=node1.next;
  187.            while(node2!=null)
  188.            {
  189.                if(node1.first_name.compareTo(node2.first_name)>0)
  190.                {
  191.                    swap(node1,node2);
  192.                }
  193.                node2=node2.next;
  194.            }
  195.            node1=node1.next;
  196.        }
  197.        System.out.println("Sorted Successfully");
  198.    }
  199.    public void swap(Node n1,Node n2)
  200.    {
  201.        String temp="";
  202.      
  203.        temp=n1.first_name;
  204.        n1.first_name=n2.first_name;
  205.        n2.first_name=temp;
  206.      
  207.        temp=n1.last_name;
  208.        n1.last_name=n2.last_name;
  209.        n2.last_name=temp;
  210.      
  211.        temp=n1.phone_number;
  212.        n1.phone_number=n2.phone_number;
  213.        n2.phone_number=temp;
  214.      
  215.        temp=n1.city;
  216.        n1.city=n2.city;
  217.        n2.city=temp;
  218.      
  219.        temp=n1.address;
  220.        n1.address=n2.address;
  221.        n2.address=temp;
  222.      
  223.        temp=n1.email;
  224.        n1.email=n2.email;
  225.        n2.email=temp;
  226.      
  227.        char t=n1.gender;
  228.        n1.gender=n2.gender;
  229.        n2.gender=t;
  230.    }  
  231. }
  232. // prototype of person details
  233. class Node
  234. {
  235.    String first_name,last_name,phone_number,city,address,email;
  236.    char gender;
  237.    Node next=null;
  238.    Node() { }
  239.    Node(String first_name,String last_name,String phone_number,String city,String address,char gender,String email)
  240.    {
  241.        this.first_name=first_name;
  242.        this.last_name=last_name;
  243.        this.phone_number=phone_number;
  244.        this.city=city;
  245.        this.address=address;
  246.        this.gender=gender;
  247.        this.email=email;
  248.    }
  249.    public String toString()
  250.    {
  251.        return "\nFirst Name: "+this.first_name+"\nLast Name: "+this.last_name+"\nPhone Number: "+this.phone_number+"\nCity: "+this.city+
  252.        "\nAddress: "+this.address+"\nGender: "+this.gender+"\nEmail: "+this.email+"\n";
  253.    }
  254. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement