Sunday, October 7, 2012

The Surfer’s Preserver


The Surfer’s Preserver is a simple device that prevents other phones in the house from disrupting your critical Internet session by disconnecting them from the line while you surf! The circuit is also useful in preventing eavesdropping from other extensions since other phones are "dead" until you hang up.  The circuit wires in series with either of the offending phone’s wires (red or green) and it is small enough to tuck behind the wall cover plate.

Circuit Description: Due to the resistor divider, the SCR will not fire unless there is at least 17 volts across the bridge. When the receiver is lifted, the full line voltage appears across the circuit and the SCR triggers. The SCR will remain triggered since the DC phone current is about 25 mA and the SCR holding current is only about 5 mA. If the phone line is in use when the receiver is lifted, the line voltage is insufficient to trigger the SCR and the phone remains disconnected. When the phone rings, the 17 volt threshold is quickly passed and the SCR triggers early in the ring voltage cycle, supplying a nearly full amplitude ring voltage to the phone.



A momentary push-button switch may be added across the 33k resistor to manually trigger the SCR so that the phone can connect when another phone is off-hook. This push-button could be mounted in the wall plate if the plate is in a convenient location or the circuit could be built into the telephone itself with a small switch added on the side. This push-button is handy if more than one telephone is on the line.

Other SCRs may be substituted as long as their working voltage is above 150 volts and their holding current is well below your phone’s current. Connect a current meter in series with your phone to determine your current - expect about 25 to 30 mA.

The circuit requires that the modem or other phones pull the line voltage below 17 volts when off-hook. A simple voltage check will determine if the voltage is dropping low enough. It will typically drop to 5 volts. If you must raise the trigger voltage, increase the 33k resistor. A very high resistor value may reduce the ringing volume on older phones or prevent normal phone use.

A separate circuit may be constructed for each phone or one circuit may be used to disconnect several phones. To use one circuit for several phones, make sure that they share a common wire not shared with the modem. Place the circuit in series with the common wire. The advantage of this connection is that the push-button is not needed to transfer a call from one phone to another but some custom wiring may be necessary.

Telephone Ringer


Caution: The circuit generates a high voltage which can shock.

The Phone Ringer circuit will work with any ordinary phone including older bell ringer types. The circuit rings the phone in a completely realistic manner until someone answers. When the receiver is lifted the user hears the audio of your choice. It might be another telephone, a tape recording, a favorite talk radio show, a fake busy-signal, a scanner tuned to weather or police, cues for the actor who forgot his next line, or whatever audio source strikes your fancy. DC current is passed through the phone to activate the phone’s electronics.



Provisions for experimenters include a ring inhibit control and an additional transistor will activate devices when the phone is answered. The ring inhibit control is used to start the ringing when a signal goes low and the activate-on-answer control can start a tape recording or other device when the phone is answered. For example, the ringer could be triggered by an alarm clock to make an artificial but realistic wake-up call. When you answer, your own voice instructs you about the importance of getting up. This wake-up caller is quite persistent, calling back the instant you hang up!



Do not connect this circuit or the phones used with this circuit to the phone lines.

The phone cable will have red and green wires which are simply connected to the points indicated by the schematic. Polarity should not matter. Other devices may be connected as described but no connection to a "real" phone line is intended.

The circuitry is simple and not particularly critical. The first two inverters form a slow pulse generator which controls the ringing rate. Change the 0.22 uf capacitor to change the ringing rate and change the 22 Meg. resistor in series with the diode to change the length of the ring. The second two inverters generate the 20 Hz ringing signal. This frequency can be changed by changing the .033uf capacitor. Mechanical bell ringers have a resonant clapper and should be driven with a frequency near 20 Hz but a slight variation may give a better ring. The last two inverters buffer the ringing signal and drive the two output transistors. Practically any transistors can be used for the output including 2N4401 and 2N4403 but power transistors in a TO-220 package might be more desirable if a lot of ringing is anticipated. The transistors should be capable of handling several hundred milliamperes. Any low-leakage signal diodes will work for the 1N914s.

The power transformer must handle 20 Hz with at least some efficiency so it is best to use larger units. Molded transformers will work fine but of course they cannot be DC types which have built-in rectifiers. Choose a transformer with a low voltage winding rated for an output voltage well below the DC power supply used. The circuit as shown runs on 12 volts with a 9 volt transformer. Some transformers have 220 volt windings which can give a stronger ring if necessary. A 6 volt filament transformer powered by the circuit as shown will give a quite strong ring. Reduce the 10 ohm emitter resistors to 4.7 ohms to get more ring power if power transistors are used . (Don't leave them out entirely since they help prevent high frequency oscillations.)


Ringing is inhibited by applying a voltage near VCC to the 1N914 diode. A simple transistor inverter can change the sense and increase the sensitivity so that a couple of volts will start the ringing (fig. 2). If the phone is to ring when the squelch of a modern scanner breaks try looking in the scanner for an analog switch integrated circuit. One of its pins will jump between 0 and 5 volts when the squelch breaks and this signal is fine for driving the inverter circuit. Fig. 2 also shows how to connect a photocell so that the phone rings only when the lights are off. (Record a dial tone so the victim concludes that the caller keeps hanging up just as he turns on the light.) The ringer control can also be used in a variety of other ways to automate the ringing. For example, a 470k pull-up resistor combined with a large electrolytic capacitor connected to ground makes an interesting doorbell. Just connect the doorbell switch across the capacitor and the phone will ring for a few seconds when the switch is pushed. (The capacitor discharges quickly but charges slowly.)




Fig. 3 shows how to add an answer activated control. The 1k resistor may be replaced with a relay for controlling a tape recorder. Put a diode across the winding to protect the transistor from inductive kick-back.

The phone ringer may be used to construct a pretend cellular phone system for the kids using an ordinary cordless phone and a regular phone wired in series. Keep the wiring neat and insulated so that the ring voltage doesn't "bite" anyone. Connect the ringer, ordinary phone and the base unit of the cordless phone in series. Wire a switch which enables the ringer and shorts the ordinary phone (two-pole switch). When the cordless phone is answered, flip the switch to talk. Shorting the ordinary phone is probably not necessary but be prepaired for a rather loud buzzing in the earpiece when the other phone rings! The advanced experimenter may wish to build an artificial phone system by adding a on-hook high voltage supply, dial tone oscillators, and appropriate switching circuitry. Quite a challange!


Telephone In-Use Indicator

When a new computer modem enters the household, the demands on the home phone line skyrockets. The Internet surfer can use phone time on a par with the most talkative teenager. And the computer modem user can be quite sensitive about his privacy: simply lifting another receiver can knock him off-line causing emotional stress. The phone wiring may be modified so that the modem is always in control by connecting the phone line directly to the modem and connecting the rest of the phones to the modem's "phone" jack. But this solution gives the computer user too much power over the phone line and it doesn't solve the problem if two computers share a single line. Here is a simple blinking LED circuit which will alert users when the line is in use before the receiver is lifted. The circuit loads the phone line so lightly that it meets the on-hook telephone equipment leakage specification and the short lamp flashes draw very little current from the nine-volt battery. One of these devices may be placed at each extension without significantly loading the phone line. The circuit is connected to the red and green wires for a single-line system or the yellow and black wires for the second line in a two-line system. Polarity doesn't matter, thanks to the full-wave rectifier. In order to preserve your phone line balance, do not power this device from a line-powered power supply. Only use a battery as shown and insulate the battery and circuitry by building the device into a plastic case. Do not ground the circuitry. The circuit will work with other batteries and battery voltage. Four AA, C, or even D cells (6 volts) will last considerably longer if you have teenagers burning up your batteries. A small 9-volt rectangular battery will be fine for most users.

Sunday, July 29, 2012

Clap-Based Digital Volume Control


This clap-based digital volume control offers four levels of volume control. With each clap, the volume of the audio system increases. After the fourth clap, the level of volume returns to the first or minimum level.

The circuit consists of a microphone, a level detector, a 4-stage counter and four analogue switches connected to a resistive ladder network.

The four outputs of the CD4040 counter are available at pins 9, 7, 6 and 2. These outputs are connected to the level detector formed by LED1 through LED4 and control input pins 13, 5, 12 and 6 of IC CD4066 quad bilateral switch. Resistors R9 through R12 form the ladder network.

The circuit is powered by regulated 5V and consumes only a few milliamperes of current. The audio input signal from sources such as MP3 player and PC is fed to pin 8 of CD4066. The output of the circuit is taken from pin 1 of CD4066 and can be fed to any audio power amplifier.



The clapping signal captured by the electret microphone (MIC1) is amplified by transistor T1. MIC1 gets its bias voltage through resistor R1. 

Counter IC CD4040 (IC1) gets a clock pulse at its pin 10 when a certain noise level (threshold) is received through T1. The counter output determines the configuration of the four electronic switches inside IC2. 

When output pin 9 of IC1 goes high, control pin 13 of IC2 shorts its pins 1 and 2, bypassing resistor R9 in the audio output line. Similarly, control pins 5, 12 and 6 of IC2 bypass resistors R10, R11 and R12, respectively. Thus, as per the sequential output across IC1, the series resistors are effectively introduced or removed in the audio output signal line. The maximum audio output is obtained when resistors R9 through R12 are shorted. The level of the audio signal can be seen on the LEDs (LED1 through LED4), with LED4 showing the maximum level.

Switch S1 allows the counter to reset, thus switching off all the switches of CD4066. In this case, attenuation in the audio output path is maximum as none of resistors R9 through R12 is shorted. 

To calibrate the circuit, disconnect the clock input (pin 10) of CD4040 from the collector of T1. Now apply a pulse to the clock input by briefly connecting it to the +5V line. You will see the counter outputs change the state sequentially and so also the bilateral switches in CD4066. 

Wednesday, May 9, 2012

Printing numbers in spiral form using Java



import java.io.*;
public class spiral
{
    public static void main(String args[])throws IOException
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter the value of n:");
        int n=Integer.parseInt(br.readLine());
        int a[][]=new int[n][n];
        int i,j,x=1,p=0,q=n-1;
        while(x<=(n*n))
        {
            for(i=p;i<=q;i++)
            {
                a[p][i]=x;
                x++;
            }
            for(i=(p+1);i<=q;i++)
            {
                a[i][q]=x;
                x++;
            }
            for(i=(q-1);i>=p;i--)
            {
                a[q][i]=x;
                x++;
            }
            for(i=(q-1);i>=(p+1);i--)
            {
                a[i][p]=x;
                x++;
            }
            p++;
            q--;
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
    }
}

Decimal to Roman Conversion using Java



import java.io.*;
public class RomanConversion
{  
    // Parallel arrays used in the conversion process.
    private static final String[] RCODE = {"M", "CM", "D", "CD", "C", "XC", "L","XL","X","IX", "V","IV","I"};
    private static final int[]    BVAL  = {1000, 900, 500, 400,  100,  90,  50, 40,  10,   9,   5,  4,   1};
    public static String binaryToRoman(int binary)
    {
       if (binary <= 0 || binary >= 4000)
       throw new NumberFormatException("Value Outside Roman Numeral Range");
       String roman="";// Roman notation will be accumualated here.      
       // Loop from biggest value to smallest, successively subtracting,
       // from the binary value while adding to the roman representation.
       for (int i=0;i<RCODE.length;i++)
       {
           while (binary>=BVAL[i])
           {
               binary-=BVAL[i];
                roman+=RCODE[i];
           }
       }
       return roman;
   }
   public static void main(String args[])throws IOException
   {
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     System.out.print("Enter The Number:");
     int no=Integer.parseInt(br.readLine());
     System.out.print("Roman: "+binaryToRoman(no));
   }
}
//--------------------------------------------------------------------------
/**
 Output:-

 Enter The Number:1995
 Roman: MCMXCV

 Enter The Number:880
 Roman: DCCCLXXX

 Enter The Number:3818
 Roman: MMMDCCCXVIII
 */

Magic Square using JAVA


import java.io.*;
public class MagicSquare
{
    public static void main(String args[])throws IOException
        {
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter the value of n:");
            int n=Integer.parseInt(br.readLine());
            if(n%2==0)
            {              
                System.out.print("N must be odd!!...Please re-enter:");
                n=Integer.parseInt(br.readLine());
            }
            int[][] magic=new int[n][n];
            int row=n-1;
            int col=n/2;
            magic[row][col]=1;
            for (int i=2;i<=n*n;i++)
            {
                if(magic[(row+1)%n][(col+1)%n]==0)
                 {
                     row=(row+1)%n;
                     col=(col+1)%n;
                    }
                    else
                    {
                        row=(row-1+n)%n;
                    }
                    magic[row][col]=i;
                }
                for(int i=0;i<n;i++)
                {
                    for(int j=0;j<n;j++)
                    {
                        if(magic[i][j]<10) System.out.print(" ");//for alignment
                        if(magic[i][j]<100) System.out.print(" ");//for alignment
                        System.out.print(magic[i][j]+" ");
                    }
                    System.out.println();
                }
            }
        }
//------------------------------------------------------------------------------
/**
 Output:-

 Enter the value of n:3

  4   9   2
  3   5   7
  8   1   6
 
 Enter the value of n:5

 11  18  25   2   9
 10  12  19  21   3
  4   6  13  20  22
 23   5   7  14  16
 17  24   1   8  15

 Enter the value of n:6
 N must be odd!!...Please re-enter:7

 22  31  40  49   2  11  20
 21  23  32  41  43   3  12
 13  15  24  33  42  44   4
  5  14  16  25  34  36  45
 46   6   8  17  26  35  37
 38  47   7   9  18  27  29
 30  39  48   1  10  19  28
 */      

Linked List Using JAVA


import java.io.*;
 class Node{
     protected int data;
     protected Node link;
   
     public Node(){
         link=null;
         data=0;
        }
        public Node (int d,Node n)
        {
            data=d;
            link=n;
        }
        public void setlink(Node n)
        {
            link=n;
        }
        public void setData(int d)
        {
            data=d;
        }
        public Node getlink()
        {
            return link;
        }
        public int getData(){
            return data;
        }
    }
   

class linklist{
        protected Node start;
        public linklist()
        {
            start=null;
        }
        public boolean isEmpty()
        {
            return start==null;
        }
        public void Insert(int val)
        {
            Node nptr,ptr,save=null;
            nptr=new Node(val,null);
            boolean ins=false;
            if(start==null)
            start=nptr;
            else if(val<=start.getData())
            {
                nptr.setlink(start);
                start=nptr;
            }
            else {
                save=start;
                ptr=start.getlink();
                while(ptr!=null)
                {
                    if(val>=save.getData() && val<=ptr.getData())
                    {
                        save.setlink(nptr);
                        nptr.setlink(ptr);
                        ins=true;
                        break;
                    }
                    else{
                        save=ptr;
                        ptr=ptr.getlink();
                    }
                }
                if(ins==false)
                {
                    save.setlink(nptr);
                }
            }
        }
        public void Traverse()
        {
            Node ptr=start;
           System.out.print(start.getData()+"-->");
            ptr=start.getlink();
            while(ptr.getlink()!=null)
            {
               System.out.print(ptr.getData()+"-->");
                ptr=ptr.getlink();
            }
            System.out.print(ptr.getData()+".");
            System.out.println();
        }

    public void split(linklist L1,linklist L2)
    {
        Node ptr=start;
        int n=0;
           n=start.getData();
           if(prime(n)==true)
           L1.Insert(n);
           else if(prime(n)==false)
           L2.Insert(n);
            ptr=start.getlink();
            while(ptr.getlink()!=null)
            {
               n=ptr.getData();
               if(prime(n)==true)
               L1.Insert(n);
               else if(prime(n)==false)
               L2.Insert(n);
               ptr=ptr.getlink();
            }
            n=ptr.getData();
            if(prime(n)==true)
            L1.Insert(n);
            else if(prime(n)==false)
            L2.Insert(n);
            System.out.println();
    }
    public boolean prime(int n)
    {
       boolean flag=true;
       for(int i=2;i<n;i++)
       {
           if(n%i==0)
           {
           flag=false;
           break;
        }
    }
    if(flag==true)
    return true;
    else
    return false;
  }      
}
     
   
   


     
       

Infix To Post Fix using Java



import java.io.*;
public class InToPost
 {
  private Stack theStack;
  private String input;
  private String output="";
  public InToPost(String in)
  {
    input=in;
    int stackSize=input.length();
    theStack=new Stack(stackSize);
  }
  public String doTrans()
  {
    for (int i=0;i<input.length();i++)
    {
      char ch=input.charAt(i);
      switch(ch)
      {
      case '+':
      case '-':
        gotOper(ch,1);
        break; //   (precedence 1)
      case '*': // it's * or /
      case '/':
        gotOper(ch,2); // go pop operators
        break; //   (precedence 2)
      case '(': // it's a left paren
        theStack.push(ch); // push it
        break;
      case ')': // it's a right paren
        gotParen(ch); // go pop operators
        break;
      default: // must be an operand
        output=output+ch; // write it to output
        break;
      }
    }
    while(!theStack.isEmpty())
    {
      output=output+theStack.pop();
    }
    return output; // return postfix
  }
  public void gotOper(char opThis,int prec1)
  {
    while (!theStack.isEmpty())
    {
      char opTop=theStack.pop();
      if(opTop=='(')
      {
        theStack.push(opTop);
        break;
      }// it's an operator
      else
      {// precedence of new op
        int prec2;
        if(opTop=='+'||opTop=='-')
          prec2=1;
        else
          prec2=2;        if (prec2<prec1) // if prec of new op less
        { //    than prec of old
          theStack.push(opTop); // save newly-popped op
          break;
        } else
          // prec of new not less
          output=output+opTop; // than prec of old
      }
    }
    theStack.push(opThis);
  }
  public void gotParen(char ch)
  {
    while(!theStack.isEmpty())
    {
      char chx=theStack.pop();
      if(chx=='(')
        break;
      else
        output=output+chx;
    }
  }
  public static void main(String[] args) throws IOException
  {
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter the infix expression:");
    String input=br.readLine();
    String output;
    InToPost theTrans=new InToPost(input);
    output=theTrans.doTrans();
    System.out.println("Postfix expression is:"+output);
  }
}
//-----------------------------------------------------------------------
/**
 Output:-

 Enter the infix expression:a/(b+c)+d*(e-f)
 Postfix expression is:abc+/def-*+

 Enter the infix expression:a+(b/c)*d-(e*f)
 Postfix expression is:abc/d*+ef*-

 */

Employee Database Using JAVA



import java.io.*;
public class employee
{
    public static void write()throws IOException
    {
        long empcode;
        String empname;
        int hrsworked;
        double rate;
        boolean con=true;
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        FileOutputStream obj=new FileOutputStream("emp.dat");
        DataOutputStream fl=new DataOutputStream(obj);
        while(con)
        {
            System.out.print("Enter Employee name:");
            empname=br.readLine();
            System.out.print("Enter employee code:");
            empcode=Long.parseLong(br.readLine());
            System.out.print("Enter Hours Worked:");
            hrsworked=Integer.parseInt(br.readLine());
            System.out.print("Enter rate:");
            rate=Double.parseDouble(br.readLine());
            fl.writeUTF(empname);
            fl.writeLong(empcode);
            fl.writeInt(hrsworked);
            fl.writeDouble(rate);
            System.out.print("Continue(y/n)?:");
            String c=br.readLine();
            if(c.equalsIgnoreCase("n")==true)
            con=false;
            System.out.println();
        }
        obj.close();
        fl.close();
        System.out.println("Data added to file successfully!!");
        System.out.println();
    }
    public static void append()throws IOException
    {
        long empcode;
        String empname;
        int hrsworked;
        double rate;
        boolean con=true;
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        FileOutputStream std=new FileOutputStream("emp.dat",true);
        DataOutputStream mat=new DataOutputStream(std);
        while(con)
        {
            System.out.print("Enter Employee name:");
            empname=br.readLine();
            System.out.print("Enter employee code:");
            empcode=Long.parseLong(br.readLine());
            System.out.print("Enter Hours Worked:");
            hrsworked=Integer.parseInt(br.readLine());
            System.out.print("Enter rate:");
            rate=Double.parseDouble(br.readLine());
            mat.writeUTF(empname);
            mat.writeLong(empcode);
            mat.writeInt(hrsworked);
            mat.writeDouble(rate);
            System.out.print("Continue(y/n)?:");
            String c=br.readLine();
            if(c.equalsIgnoreCase("n")==true)
            con=false;
        }
        std.close();
        mat.close();
        System.out.println("Data added to file successfully!!");
        System.out.println();
    }
       
    public static void read()throws IOException
    {
        long empcode[]=new long[100];
        String empname[]=new String[100];
        int hrsworked[]=new int[100];;
        double rate[]=new double[100];
        boolean con=true;
        int x=0;
        FileInputStream obj=new FileInputStream("emp.dat");
        DataInputStream fl=new DataInputStream(obj);
        boolean eof=false;
        while(!eof)
        {
            try
            {
                empname[x]=fl.readUTF();
                empcode[x]=fl.readLong();
                hrsworked[x]=fl.readInt();
                rate[x]=fl.readDouble();
                x++;
            }
            catch(EOFException e)
            {
                eof=true;
            }
        }
        for(int i=0;i<x;i++)
        {
            for(int j=0;j<x-1;j++)
            {
                if(empname[j].compareTo(empname[j+1])>1)
                {
                    long lt;
                    int it;
                    String st;
                    double dt;
                    st=empname[j];
                    lt=empcode[j];
                    it=hrsworked[j];
                    dt=rate[j];
                    empname[j]=empname[j+1];
                    empcode[j]=empcode[j+1];
                    hrsworked[j]=hrsworked[j+1];
                    rate[j]=rate[j+1];
                    empname[j+1]=st;
                    empcode[j+1]=lt;
                    hrsworked[j+1]=it;
                    rate[j+1]=dt;
                }
            }
        }
        System.out.println("Employee Code\t Name\t\tHours Worked\tRate\t\tWeekly Wages");
        for(int i=0;i<x;i++)
        {
            System.out.println(empcode[i]+"\t\t "+empname[i]+"\t\t"+hrsworked[i]+"\t\tRs."+rate[i]+"\t\tRs."+(hrsworked[i]*rate[i]));
        }
            x=0;
            System.out.println();
    }
    public static void main(String args[])throws IOException
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        boolean con=true;
        while(con)
        {
            System.out.println("       Menu");
            System.out.println("1:Write to file");
            System.out.println("2:Read from file");
            System.out.println("3:Modify to file");
            System.out.print("Enter your option:");
            int n=Integer.parseInt(br.readLine());
            System.out.println();
            if(n==1)
            write();
            else if(n==2)
            read();
            else if(n==3)
            append();
            else
            System.out.println("Wrong Entry!!!!");
            System.out.print("Continue with menu options(y/n)?:");
            String c=br.readLine();
            if(c.equalsIgnoreCase("n")==true)
            con=false;
        }
    }
}
//---------------------------------------------------------------------------
/**
 Output:-
       Menu
1:Write to file
2:Read from file
3:Modify to file
Enter your option:1

Enter Employee name:abc
Enter employee code:47
Enter Hours Worked:56
Enter rate:25
Continue(y/n)?:y

Enter Employee name:pqr
Enter employee code:96
Enter Hours Worked:45
Enter rate:65
Continue(y/n)?:y

Enter Employee name:xyz
Enter employee code:87
Enter Hours Worked:85
Enter rate:51
Continue(y/n)?:n

Data added to file successfully!!

Continue with menu options(y/n)?:y
       Menu
1:Write to file
2:Read from file
3:Modify to file
Enter your option:2

Employee Code    Name       Hours Worked    Rate        Weekly Wages
47               abc        56              Rs.25.0     Rs.1400.0
96               pqr        45              Rs.65.0     Rs.2925.0
87               xyz        85              Rs.51.0     Rs.4335.0

Continue with menu options(y/n)?:y
       Menu
1:Write to file
2:Read from file
3:Modify to file
Enter your option:3

Enter Employee name:lmn
Enter employee code:69
Enter Hours Worked:20
Enter rate:90
Continue(y/n)?:n
Data added to file successfully!!

Continue with menu options(y/n)?:y
       Menu
1:Write to file
2:Read from file
3:Modify to file
Enter your option:2

Employee Code    Name       Hours Worked    Rate        Weekly Wages
47               abc        56              Rs.25.0     Rs.1400.0
69               lmn        20              Rs.90.0     Rs.1800.0
96               pqr        45              Rs.65.0     Rs.2925.0
87               xyz        85              Rs.51.0     Rs.4335.0
   
Continue with menu options(y/n)?:n

*/