The Programming Project: Java Tutorial
Showing posts with label Java Tutorial. Show all posts
Showing posts with label Java Tutorial. Show all posts

Tuesday, September 10, 2013

Applet

This Java code simply display a "Quote" on the Applet. Here is the snapshot.
 

import java.awt.*;
import java.applet.*;
/*
<applet code="AppletQuote" width=900 height=80>
</applet>
*/
public class AppletQuote extends Applet
    {
    public void init()
        {
        setBackground(Color.cyan);
        }
    public void paint(Graphics g)
        {
        Quotes qts = new Quotes();
            int n = (int)(Math.random()*10);
              g.drawString(qts.getQuote(n),30,30);   
            }
        }
class Quotes
    {
    Quotes()
        {
        }
    public String getQuote(int n)
        {
        return (quotes[n]);
        }
    private static String quotes[]={"I like mathematics because it is not human and has nothing particular to do with this planet or with the whole accidental universe                         - because like Spinoza's God, it won't love us in return.  ~Bertrand Russell",
                    "If there is a God, he's a great mathematician.  ~Paul Dirac",
                    "Do not worry about your problems with mathematics, I assure you mine are far greater. ~Albert Einstein",
                    "There are things which seem incredible to most men who have not studied mathematics. ~ Aristotle",
                    "Mathematics is a game played according to certain simple rules with meaningless marks on paper. ~ David Hilbert",
                    "Go down deep enough into anything and you will find mathematics~ Dean Schlicter",
                    " Life is good for only two things, discovering mathematics and teaching mathematics. ~ Simeon Poisson",
                    "In mathematics you don't understand things. You just get used to them. ~ Johann von Neumann",
                    " Medicine makes people ill, mathematics make them sad and theology makes them sinful. ~ Martin Luther",
                    "A man whose mind has gone astray should study mathematics. ~ Francis Bacon"};
    }

Nested Class Demonstration

This program will generate a Bank A/C class for some customers with provision for Locker and FixedDeposit classes, both of which will be inner-class of Bank class. One deducts a fixed locker fee from the outer class balance variable and the other one adds interest to the balance variable, calculated on the amount to be fixed.



import java.util.*;
public class BankAccount
    {
    public static void main(String[] args)
        {
        String choice="";
        Bank[] customer = new Bank[10];
        for(int i=0;i<10;i++)
            customer[i]=new Bank();
            int k=0;
            boolean flag=false;
            Scanner in = new Scanner(System.in);
        do
            {
            customer[k].setData();
            for(int i=0;i<k;i++)
                  if(customer[k].getAccountNumber()==customer[i].getAccountNumber())
                    flag=true;
            if(flag==true)
                {
                System.out.println("Account Number already exisits:");
                flag=false;
                continue;       
                }
            k++;   
            System.out.println(" Want to add another record yes/no:");
            choice = in.next();
            }while("YES".equalsIgnoreCase(choice));
            flag=false;
            int i;
            System.out.println(" Do you want to get locker facility  yes/no:");
            choice = in.next();
                if("YES".equalsIgnoreCase(choice))
                    {
                    System.out.println(" Enter the A/C number:");
                    int ac = in.nextInt();
                    for(i=0;i<k;i++)
                         if(ac==customer[i].getAccountNumber())
                         {
                         flag=true;
                         break;
                         }
                    if(flag)
                        customer[i].displayLocker();
                    else
                        System.out.println(" Invalid A/C Number:");
                    }
            flag=false;
            System.out.println(" Do you want to fix an amount yes/no:");
            choice = in.next();
                if("YES".equalsIgnoreCase(choice))
                    {
                    System.out.println(" Enter the A/C number:");
                    int ac = in.nextInt();
                    for(i=0;i<k;i++)
                         if(ac==customer[i].getAccountNumber())
                         {
                         flag=true;
                         break;
                         }
                    if(flag)
                        {
                        System.out.println(" Enter the amount you want to deposite:");
                        double amt = in.nextDouble();
                        customer[i].displayFixedDeposit(amt);
                        }
                    else
                        System.out.println(" Invalid A/C Number:");
                    }
        }
    }
class Bank
    {
    Bank()
        {
        accountNumber=0;
        balance=0.0;
        name="";
        }
    public void setData()
        {
        Scanner in = new Scanner(System.in);
        System.out.println(" Enter the name:");
        name=in.nextLine();
        System.out.println(" Enter the A/C number:");
        accountNumber=in.nextInt();
        System.out.println(" Enter the balance:");
        balance=in.nextDouble();
        }
    public void displayFixedDeposit(double amt)
        {
        FixedDeposit fd = new FixedDeposit();
        fd.addInterest(amt);
        fd.afterAdd();
        }
    public void displayLocker()
        {
        Locker loc = new Locker();
        loc.deduct();
        loc.afterDeduct();
        }
    public int getAccountNumber()
        {
        return accountNumber;
        }
    public void getData()
        {
        System.out.println("A/C number:"+accountNumber+" Name:"+name+" Balance:"+balance);
        }
    class Locker{
            void deduct()
                {   
                balance -= lockerFee;
                }
            void afterDeduct()
                {
                System.out.println(" After Deduction:");
                getData();            
                }
            final double lockerFee = 30.0;
                }
    class FixedDeposit{
              void addInterest(double amt)
                  {
                  balance += (8.25*amt)/100;
                  }
              void afterAdd()
                  {
                  System.out.println(" After adding Interest:");
                  getData();
                  }
              final double interestRate = 8.25;
              }
    private int accountNumber;
    private double balance;
    private String name;
    }

Sunday, September 8, 2013

Simple Java Program to Demonstrate ArrayList and use of gc()

Inherit the STUDENT Class(Program here http://thecprojectt.blogspot.in/2013/09/simple-java-program-to-demonstrate.html)  and override the input method so as to input the department of each student. Search and display a sorted list of students one department or students based on scoring criteria. Create an arraylist of students and remove a student based on scoring criteria and then call gc() and check for free memory



import java.util.*;
public class ListStudent
    {
    public static void main(String[] args)
    {
      int[] mdays={31,28,31,30,31,30,31,31,30,31,30,31};
int[] ldays={31,29,31,30,31,30,31,31,30,31,30,31};
int ch,k=0,n;
String d1;
boolean lp,fg=true;
Runtime r = Runtime.getRuntime();
    Scanner in = new Scanner(System.in);
    Course co = new Course();
    extendStudent[] students = new extendStudent[6];
    for(int i=0;i<6;i++)
    students[i]=new extendStudent();
    ArrayList<extendStudent> L = new ArrayList<extendStudent>();
    System.out.println("Courses available are Graduation, PG and PhD with 3,2 and 1 seats respectively:");
    String choice1="";
        do
    {
   
    System.out.println("\n Enter the course name:");
    String S = in.next();
    if(co.getCourse(S).equals("XX"))
    {
    System.out.println("Invalid course:");
    continue;
    }
    if(co.getSeat(S)>co.getSeatLimit(S))
    {
    System.out.println("Seats for the course "+S+" is exhausted:");
    continue;
    }
      System.out.println("Enter the Record for student :"+(k+1));
      students[k].setCourse(S);
    students[k].inputData();
    L.add(students[k]);
    k++;
    System.out.println(" Want to add another record yes/no:");
    choice1 = in.next();
    }while("YES".equalsIgnoreCase(choice1));
    n=k;
    System.out.println(" Intial List Size is: "+L.size());
    System.out.println("Press 1 to display Records of all STUDENTS:");
    System.out.println("Press 2 to see the result of all STUDENTS:");
    ch = in.nextInt();
    switch(ch)
    {
    case 1:
    for(int i=0;i<L.size();i++)
    L.get(i).displayAll();
    break;
    case 2:
        for(int i=0;i<L.size();i++)
        L.get(i).resultBuild();
        break;
        default:
        System.out.println("Wrong choice:");
        break;
        }
        System.out.println(" Intial List Size is: "+L.size());
        System.out.println(" Total free memory is: "+r.freeMemory()+" Bytes");
        System.out.println(" Want to search by Admission Date(dd/mm/yyyy)? yes/no:");
        String choice = in.next();
        if("YES".equalsIgnoreCase(choice))
        {
        int d=0,m=0,y=0;
         
          do {
fg=true;
int i=0;
int j=0;

String temp ="";
System.out.println("Enter the admission date(dd/mm/yyyy):");
d1=in.next();
while(d1.charAt(i)!='/' && i<d1.length())
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
fg=false;
break;
}
} //d extraction
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);
  if(fg==true && j<=2 && d1.charAt(i)=='/' && j >0 )
{
j=0;
d = Integer.valueOf(temp);
i=i+1;
temp="";
while(d1.charAt(i)!='/' && i<d1.length() )
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
//j++;
fg=false;
break;
}
} //m extraction
m = Integer.valueOf(temp);
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);

if(fg==true && j<=2 && d1.charAt(i)=='/' && j >0 && m <=12 && 1<=m)
{
j=0;
//m = Integer.valueOf(temp);
//System.out.println(d);
i=i+1;
temp="";
while(i<d1.length())
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
fg=false;
i++;
break;
//j++;

}
} //y extraction
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);
if(fg==true && j==4)
{
y = Integer.valueOf(temp);
fg=true;
}//end of else of y
else
fg=false;
if(fg==true)
{
if(y%400==0)
    lp=true;
else if (y%100==0)
    lp=false;
else if (y%4==0)
    lp=true;
else
    lp=false;
   
if(lp==false)
{
if(d>mdays[m-1] || d < 1 )
{
System.out.println("Invalid d of a m:");
fg=false;
}
}//non-lp y checking
else
{
if(d>ldays[m-1] || d < 1)
{
System.out.println("Invalid d of a m:");
fg=false;
}
} //lp y checking
} // checking for vaild date in months
}while(fg==false);
d1="";
d1=d+"/"+m+"/"+y;
for(int i=0;i<L.size();i++)
        {
        if(L.get(i).searchByAdmissionDate().equals(d1))
        L.get(i).displayAll();
        }
       
}
        System.out.println("Press 1 to display Records on basis of Departments:");
    System.out.println("Press 2 to display Records on basis of Scoring Criteria:");
    ch = in.nextInt();
    switch(ch)
    {
    case 1:
    System.out.println("Enter the Department name:");
    String dept = in.next();
    for(int i=0;i<L.size();i++)
        if(L.get(i).deptName().equals(dept))
        {
        System.out.println("Department name: "+dept+" Student Name: "+L.get(i).getName());
        }
    break;
    case 2:
    System.out.println("Enter the cut-off percentage:");
    double per = in.nextDouble();
    extendStudent S = new extendStudent();
    for(int i=0;i<n-1;i++)
    {
    for(int j=0;j<n-i-1;j++)
    {
    if(L.get(j).getPercentage()<L.get(j+1).getPercentage())
    {
    S=L.get(j);
    L.set(j,L.get(j+1));
    L.set(j+1,S);
    }
    }
    }
    System.out.println(" Sorted List is:");
    for(int i=0;i<n;i++)
    {
    System.out.println("Department name: "+L.get(i).deptName()+" Student Name: "+L.get(i).getName()+" Percentage Marks: "+L.get(i).getPercentage());
      }
   
    System.out.println("List after imposing the cut-off percentage:");
    for(int i=0;i<L.size();i++)
    {
    if(L.get(i).getPercentage()>=per)
      System.out.println("Department name: "+L.get(i).deptName()+" Student Name: "+L.get(i).getName()+" Percentage Marks: "+L.get(i).getPercentage());
    else
    {
    L.remove(i);
    r.gc();
    }
    }
   
    break;
    default:
    System.out.println("Wrong choice:");
    break;
    }
        in.close();
        System.out.println(" List Size after elimination is: "+L.size());
       
        System.out.println(" Total free memory after removing unwanted objects: "+r.freeMemory()+" Bytes");
    }
    }
class StudentRecord
{

StudentRecord()
{
roll=0;
name="";
co="";
for(int i:marks)
marks[i]=0;
}
public String searchByAdmissionDate()
{
return (dte);
}
public String getName()
{
return name;
}
public void resultBuild()
{
int sum=0;
System.out.println("----------------------------------------------------");
System.out.println("Name :"+name);
System.out.println("Course :"+co);
System.out.println("Roll Number :"+roll);
System.out.println("----------------------------------------------------");
for(int i=0;i<5;i++)
{
System.out.println("Subject "+(i+1)+" "+marks[i]);
sum +=marks[i];
}
System.out.println("Total Marks: "+sum);
System.out.println("Percentage: "+sum/5);
percentage= sum/5;
System.out.println("");
}
public void inputData()
{
Scanner in = new Scanner(System.in);
System.out.println("Enter the name:");
name=in.nextLine();
System.out.println("Enter the roll number:");
roll=in.nextInt();
do {
flag=true;
int i=0;
int j=0;
String temp ="";
System.out.println("Enter the admission date(dd/mm/yyyy):");
dte=in.next();
while(dte.charAt(i)!='/' && i<dte.length())
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
flag=false;
break;
}
} //day extraction
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);
  if(flag==true && j<=2 && dte.charAt(i)=='/' && j >0 )
{
j=0;
day = Integer.valueOf(temp);
i=i+1;
temp="";
while(dte.charAt(i)!='/' && i<dte.length() )
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
//j++;
flag=false;
break;
}
} //month extraction
month = Integer.valueOf(temp);
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);

if(flag==true && j<=2 && dte.charAt(i)=='/' && j >0 && month <=12 && 1<=month)
{
j=0;
//month = Integer.valueOf(temp);
//System.out.println(day);
i=i+1;
temp="";
while(i<dte.length())
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
flag=false;
i++;
break;
//j++;

}
} //year extraction
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);
if(flag==true && j==4)
{
year = Integer.valueOf(temp);
flag=true;
}//end of else of year
else
flag=false;
if(flag==true)
{
if(year%400==0)
    leap=true;
else if (year%100==0)
    leap=false;
else if (year%4==0)
    leap=true;
else
    leap=false;
   
if(leap==false)
{
if(day>mdays[month-1] || day < 1 )
{
System.out.println("Invalid day of a month:");
flag=false;
}
}//non-leap year checking
else
{
if(day>ldays[month-1] || day < 1)
{
System.out.println("Invalid day of a month:");
flag=false;
}
} //leap year checking
} // checking for vaild date in months
}while(flag==false);
dte="";
dte=day+"/"+month+"/"+year;
System.out.println("Enter the marks:");
for(int i=0;i<5;i++)
{
System.out.println("Enter the marks in Subject:"+(i+1));
marks[i]=in.nextInt();
}
}
public void setCourse(String S)
{
co=S;
}
public void displayAll()
{
System.out.println("Roll No. = "+roll+" Name= "+name+" Course ="+co);
System.out.println("Admission date: "+dte);
for(int i=0;i<5;i++)
{
System.out.println("Marks in Subject "+(i+1)+"= "+marks[i]);
}
System.out.println("");
}
public double getPercentage()
{
return percentage;
}
private int roll;
private String name;
private String co;
private String dte;
private boolean flag=true;
private boolean leap;
private double percentage;
private int day;
private int month;
private int year;
int[] marks = new int[5];
int[] mdays={31,28,31,30,31,30,31,31,30,31,30,31};
int[] ldays={31,29,31,30,31,30,31,31,30,31,30,31};
}
class extendStudent extends StudentRecord
{
public extendStudent()
{
super();
Department="";
}
public void inputData()
{
Scanner in = new Scanner(System.in);
System.out.println("Enter the department:");
Department = in.nextLine();
super.inputData();
}
public String deptName()
{
return Department;
}
public double getPercentage()
{
return super.getPercentage();
}

private String Department;
}
class Course
{
Course()
{
seats=new int[3];
seats[0]=0;
seats[1]=0;
seats[2]=0;
}
public String getCourse(String S)
{
for(int i=0;i<3;i++)
if(S.equalsIgnoreCase(course[i]))
{
seats[i]++;
return course[i];
}
return "XX";
}
public int getSeat(String S)
{
for(int i=0;i<3;i++)
{
if(S.equalsIgnoreCase(course[i]))
return seats[i];
}
return -9;
}
public int getSeatLimit(String S)
{
for(int i=0;i<3;i++)
{
if(S.equalsIgnoreCase(course[i]))
return fixSeat[i];
}
return -9;
}
private static String[] course = {"Graduation", "PG", "PhD"};
private static int[] fixSeat={3,2,1};
private int[] seats;
}


Simple Java Program to Demonstrate Class and Objects

Design a STUDENT class to store roll,name,admission date and marks in 5 subjects taken from user. Create an array of STUDENT objects. Provide methods corresponding to admission date and receiving marks, preparing mark sheet. Support also must be there to show number of students who have taken admission.





import java.util.*;
public class Student
    {
    public static void main(String[] args)
    {
      int[] mdays={31,28,31,30,31,30,31,31,30,31,30,31};
int[] ldays={31,29,31,30,31,30,31,31,30,31,30,31};
int ch,n;
String d1;
boolean lp,fg=true;
    Scanner in = new Scanner(System.in);
        StudentRecord[] students = new StudentRecord[6];
        Course co = new Course();
        System.out.println("Courses available are Graduation, PG and PhD with 3,2 and 1 seats respectively:");
        for(int i=0;i<6;i++)
    students[i]=new StudentRecord();
    String choice1="YES";
    int k=0;
    do
    {
   
    System.out.println("\n Enter the course name:");
    String S = in.next();
    if(co.getCourse(S).equals("XX"))
    {
    System.out.println("Invalid course:");
    continue;
    }
    if(co.getSeat(S)>co.getSeatLimit(S))
    {
    System.out.println("Seats for the course "+S+" is exhausted:");
    continue;
    }
      System.out.println("Enter the Record for student :"+(k+1));
      students[k].setCourse(S);
    students[k].inputData();
    k++;
    System.out.println(" Want to add another record yes/no:");
    choice1 = in.next();
    }while("YES".equalsIgnoreCase(choice1));
    n=k;
    System.out.println("Press 1 to display Records of all STUDENTS:");
    System.out.println("Press 2 to see the result of all STUDENTS:");
    ch = in.nextInt();
    switch(ch)
    {
    case 1:
    for(int i=0;i<n;i++)
    students[i].displayAll();
    break;
    case 2:
        for(int i=0;i<n;i++)
        students[i].resultBuild();
        break;
        default:
        System.out.println("Wrong choice:");
        break;
        }
        System.out.println(" Want to search by Admission Date(dd/mm/yyyy)? yes/no:");
        String choice = in.next();
        if("YES".equalsIgnoreCase(choice))
        {
        int d=0,m=0,y=0;
         
          do {
fg=true;
int i=0;
int j=0;

String temp ="";
System.out.println("Enter the admission date(dd/mm/yyyy):");
d1=in.next();
while(d1.charAt(i)!='/' && i<d1.length())
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
fg=false;
break;
}
} //d extraction
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);
  if(fg==true && j<=2 && d1.charAt(i)=='/' && j >0 )
{
j=0;
d = Integer.valueOf(temp);
i=i+1;
temp="";
while(d1.charAt(i)!='/' && i<d1.length() )
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
//j++;
fg=false;
break;
}
} //m extraction
m = Integer.valueOf(temp);
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);

if(fg==true && j<=2 && d1.charAt(i)=='/' && j >0 && m <=12 && 1<=m)
{
j=0;
//m = Integer.valueOf(temp);
//System.out.println(d);
i=i+1;
temp="";
while(i<d1.length())
{
if(0 <= d1.charAt(i)-48 && d1.charAt(i)-48 <= 9 )
{
temp=temp+d1.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
fg=false;
i++;
break;
//j++;

}
} //y extraction
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"fg="+fg);
if(fg==true && j==4)
{
y = Integer.valueOf(temp);
fg=true;
}//end of else of y
else
fg=false;
if(fg==true)
{
if(y%400==0)
    lp=true;
else if (y%100==0)
    lp=false;
else if (y%4==0)
    lp=true;
else
    lp=false;
   
if(lp==false)
{
if(d>mdays[m-1] || d < 1 )
{
System.out.println("Invalid d of a m:");
fg=false;
}
}//non-lp y checking
else
{
if(d>ldays[m-1] || d < 1)
{
System.out.println("Invalid d of a m:");
fg=false;
}
} //lp y checking
} // checking for vaild date in months
}while(fg==false);
d1="";
d1=d+"/"+m+"/"+y;
for(int i=0;i<n;i++)
        {
        if(students[i].searchByAdmissionDate().equals(d1))
        students[i].displayAll();
        }
       
}
         
        in.close();
    }
    }
class Course
{
Course()
{
seats=new int[3];
seats[0]=0;
seats[1]=0;
seats[2]=0;
}
public String getCourse(String S)
{
for(int i=0;i<3;i++)
if(S.equalsIgnoreCase(course[i]))
{
seats[i]++;
return course[i];
}
return "XX";
}
public int getSeat(String S)
{
for(int i=0;i<3;i++)
{
if(S.equalsIgnoreCase(course[i]))
return seats[i];
}
return -9;
}
public int getSeatLimit(String S)
{
for(int i=0;i<3;i++)
{
if(S.equalsIgnoreCase(course[i]))
return fixSeat[i];
}
return -9;
}
private static String[] course = {"Graduation", "PG", "PhD"};
private static int[] fixSeat={3,2,1};
private int[] seats;
}
class StudentRecord
{

StudentRecord()
{
roll=0;
name="";
co="";
for(int i:marks)
marks[i]=0;
}
public String searchByAdmissionDate()
{
return (dte);
}
public void resultBuild()
{
int sum=0;
System.out.println("Name :"+name);
System.out.println("Course :"+co);
System.out.println("Roll Number :"+roll);
System.out.println("------------------------------------------");
for(int i=0;i<5;i++)
{
System.out.println("Subject "+(i+1)+" "+marks[i]);
sum +=marks[i];
}
System.out.println("Total Marks: "+sum);
System.out.println("Percentage: "+sum/5);
System.out.println("");
}
public void inputData()
{
Scanner in = new Scanner(System.in);
System.out.println("Enter the name:");
name=in.nextLine();
System.out.println("Enter the roll number:");
roll=in.nextInt();
do {
flag=true;
int i=0;
int j=0;
String temp ="";
System.out.println("Enter the admission date(dd/mm/yyyy):");
dte=in.next();
while(dte.charAt(i)!='/' && i<dte.length())
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
flag=false;
break;
}
} //day extraction
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);
  if(flag==true && j<=2 && dte.charAt(i)=='/' && j >0 )
{
j=0;
day = Integer.valueOf(temp);
i=i+1;
temp="";
while(dte.charAt(i)!='/' && i<dte.length() )
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
i++;
//j++;
flag=false;
break;
}
} //month extraction
month = Integer.valueOf(temp);
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);

if(flag==true && j<=2 && dte.charAt(i)=='/' && j >0 && month <=12 && 1<=month)
{
j=0;
//month = Integer.valueOf(temp);
//System.out.println(day);
i=i+1;
temp="";
while(i<dte.length())
{
if(0 <= dte.charAt(i)-48 && dte.charAt(i)-48 <= 9 )
{
temp=temp+dte.charAt(i);
i++;
j++;
}
else
{
System.out.println("Incorrect format:");
flag=false;
i++;
break;
//j++;

}
} //year extraction
}
//System.out.println("Temp="+temp+"I="+i+"J="+j+"flag="+flag);
if(flag==true && j==4)
{
year = Integer.valueOf(temp);
flag=true;
}//end of else of year
else
flag=false;
if(flag==true)
{
if(year%400==0)
    leap=true;
else if (year%100==0)
    leap=false;
else if (year%4==0)
    leap=true;
else
    leap=false;
   
if(leap==false)
{
if(day>mdays[month-1] || day < 1 )
{
System.out.println("Invalid day of a month:");
flag=false;
}
}//non-leap year checking
else
{
if(day>ldays[month-1] || day < 1)
{
System.out.println("Invalid day of a month:");
flag=false;
}
} //leap year checking
} // checking for vaild date in months
}while(flag==false);
dte="";
dte=day+"/"+month+"/"+year;
System.out.println("Enter the marks:");
for(int i=0;i<5;i++)
{
System.out.println("Enter the marks in Subject:"+(i+1));
marks[i]=in.nextInt();
}
}
public void setCourse(String S)
{
co=S;
}
public void displayAll()
{
System.out.println("Roll No. = "+roll+" Name= "+name+" Course ="+co);
System.out.println("Admission date: "+dte);
for(int i=0;i<5;i++)
{
System.out.println("Marks in Subject "+(i+1)+"= "+marks[i]);
}
System.out.println("");
}
private int roll;
private String name;
private String co;
private String dte;
private boolean flag=true;
private boolean leap;
private int day;
private int month;
private int year;
int[] marks = new int[5];
int[] mdays={31,28,31,30,31,30,31,31,30,31,30,31};
int[] ldays={31,29,31,30,31,30,31,31,30,31,30,31};
}