Skip to main content

Write a program to read book information (bookid, bookname, bookprice, bookqty) in file “book.dat”. Write a menu driven program to perform the following operations using Random access file: i. Search for a specific book by name. ii. Display all book and total cost



 import java.io.*;

import java.util.*;

class Book
{
     String name,id;
     int qty;
     double price,total;
     Book(String i,String n,String p,String q)
     {
             name=n;
             id=i;
             qty=Integer.parseInt(q);
             price=Double.parseDouble(p);
             total=qty*price;
     }
     public String toString()
     {
             System.out.println("name\t id\t qty\t price\t total");
             String s=name+"\t"+id+"\t"+qty+"\t"+price+"\t"+total;
             return(s);
     }
     public static void search(Book[]arr,int n) throws IOException
     {
             BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
             String s=br.readLine();
             for(int i=0;i<n;i++)
             {
                  if (arr[i].name.equals(s))
                  {
                       System.out.println(arr[i].toString());
                       return;
                  }
             }
             System.out.println("No records found");
      }
      public static void search_cost(Book[]arr,int n)
      {
             double max=0;
             int c=0;
             for(int i=0;i<n;i++)
             {
                  if(arr[i].price>max)
                  {
                        c=i;
                  }
             }
             System.out.println(arr[c].toString());
       }
       public static void main(String args[])throws IOException
       {
             String s,space=" ";
             int ch,i;
             BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
             System.out.println("Enter number of records :");
             int n=Integer.parseInt(b.readLine());
             System.out.println("Enter records :\n <id><name><price><qty>");
             File f=new File("Book.dat");
             RandomAccessFile rf=new RandomAccessFile(f,"rw");
             for(i=0;i<n;i++)
             {
                 s=b.readLine()+"\n";
                 rf.writeBytes(s);
             }
             rf.close();
             Book it[]=new Book[20];
             RandomAccessFile rf1=new RandomAccessFile(f,"r");
             for(i=0;i<n;i++)
             {
                  s=rf1.readLine();
                  StringTokenizer t=new StringTokenizer(s,space);
                  String id=new String(t.nextToken());
                  String name=new String(t.nextToken());
                  String price=new String(t.nextToken());
                  String qty=new String(t.nextToken());
                  it[i]=new Book(id,name,price,qty);
             }
             do
             {
                  System.out.println("1. Search for a specific book by name.\n2. Display all books and total cost.\n3. Exit");
                  ch=Integer.parseInt(b.readLine());
                  switch(ch)
                  {
                       case 1: System.out.println("Enter book name to be searched:");
                               Book.search(it,n);
                               break;
                               
                       case 2: for(i=0;i<n;i++)
                                   System.out.println(it[i].toString());
                               break;
                             
                       case 3: break;
                       default: System.out.println("Invalid option");
                  }
             }
             while(ch!=3);
        }
}

Comments

Popular posts from this blog

Write a Java program to design a screen using Awt that will take a user name and password. If the user name and password are not same, raise an Exception with appropriate message. User can have 3 login chances only. Use clear button to clear the TextFields.

  import java . awt .*; import java . awt . event .*; import javax . swing .*; class InvalidPasswordException extends Exception {       InvalidPasswordException ()       {             System . out . println ( "Username and password is not same" );       } } public class Password extends Frame implements ActionListener {       Label uname , upass ;       TextField nametext ;       TextField passtext , msg ;       Button login , Clear ;       Panel p ;       int attempt = 0 ;       char c = '*' ;             public void login ()       {             p = new Panel ();             uname = new Label ( "Username : " , Label . CENTER );             upass = n...

Create an abstract class “order” having members id,description.Create two subclasses “Purchase Order” and “Sales Order” having members customer name and Vendor name respectively.Define methods accept and display in all cases. Create 3 objects each of Purchase Order and Sales Order and accept and display details.

  import java . io .*; abstract class Order {       String description ;       int id ; } class PurchaseOrder extends Order {       String customername , vendorname ;             public void accept () throws IOException      {             System . out . println ( "Enter description, customername and vendorname,id :" );             BufferedReader br = new BufferedReader ( new InputStreamReader ( System . in ));                         description = br . readLine ();             customername = br . readLine ();             vendorname = br . readLine ();             id = br . read ();      }             public void display () ...