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

Define a class MyDate (day, month, year) with methods to accept and display a MyDate object. Accept date as dd, mm, yyyy. Throw user defined exception “InvalidDateException” if the date is invalid. Examples of invalid dates : 03 15 2019, 31 6 2000, 29 2 2021

  import java . io .*; import java . util .*; class InvalidDateException extends Exception {       InvalidDateException ()       {               System . out . println ( "Invalid Date" );       } } class MyDate {       int day , mon , yr ;       void accept ( int d , int m , int y )       {             day = d ;             mon = m ;             yr = y ;       }       void display ()       {             System . out . println ( "Date is valid : " + day + "/" + mon + "/" + yr );       } } class Date {       public static void main ( String args []) throws Exception       {             Scanner sc = new Sca...

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...