You are on page 1of 15

COLLEGE OF COMPUTER STUDEIS

INFORMATION TECHNOLOGY DEPARTMENT

CCS0023L
(Object Oriented Programming)

EXERCISE

5
Creating Classes and Objects
I. Objectives:

At the end of the experiment, students must be able to:

Cognitive
a) understand how object-oriented programming and some of its concepts
b) understand the classes and objects
c) understand how instance variables/methods and class(static) variables/methods are being
used

Psychomotor:
a) construct a program using classes and objects
b) compile and debug the error of the program

Affective
a) appreciate the concept behind this experiment

II. BACKGROUND INFORMATION

A class is a considered as the center of Object Oriented Programming methodology and


defines the abstract characteristics of a thing (object), including the thing's characteristics (its
attributes, fields or properties) and the thing's behaviors (the things it can do, or methods,
operations or features). An object is an instantiation of a class.

In a way, a class and its objects have the relationship of a data type and variables. A class
is simply a template for holding objects. It is abstract but objects are real. Classes are generally
declared using the keyword “class”.

III. EXPERIMENTAL PROCEDURE: Create the Class Diagram of the following program
description using JDeveloper.
1. A zoo contains a large number of different types of animal. All animals respond to
a message 'talk()' by announcing what they are and their name and age. Each type
of animal is represented by a different sub-class of the animal class.
The zoo itself provides methods to add and subtract animals and responds to the
message 'feedingTime()' by sending the message talk to all the animals.
Animal classes
Create an Animal class and appropriate sub-classes for say Lion, Tiger etc.
Zoo class
Create a Zoo class can contain a number of animals and provides methods to add
and remove animals as well as responding to the method 'feedingTime()'.

CODE:

public class Animals


{ public String Lion;
public String Tiger;
public String Monkey;
public String Eagle;
public String Crocodile;
public int age;
public String name;

public Animals()
{ this.Lion="";
this.Tiger="";
this.Monkey="";
this.Eagle="";
this.Crocodile="";
}
public void setLion (String Lion)
{ this.Lion=Lion;
}
public String getLion ()
{ return this.Lion;
}
public void setTiger (String Tiger)
{ this.Tiger=Tiger;
} public String
getTiger (){ return
this.Tiger;
}
public void setMonkey (String Monkey){
this.Monkey=Monkey;
}
public String getMonkey (){
return this.Monkey;
}
public void setEagle (String Eagle)
{ this.Eagle=Eagle;
}
public String getEagle ()
{ return this.Eagle;
}
public void setCrocodile (String Crocodile){
this.Crocodile=Crocodile;
}
public String getCrocodile ()
{ return this.Crocodile;
}
}

public class Zoo {


public int numberOfAnimals = 5;
public int age;
public String name;

public class Lion extends Animals


{ public void vocalize()
{ System.out.println("Lion");
}
Animals Lion = new Lion();
public void setname (String name){
this.name="Simba";
}
public String getname ()
{ return this.name;
}
public void setage (int age){
this.age=10;
}
public int getage ()
{ return this.age;
}
public class Tiger extends Animals
{ public void vocalize()
{ System.out.println("Tiger");
}
Animals Tiger = new Tiger();
public void setname (String name){
this.name="Scar";
}
public String getname ()
{ return this.name;
}
public void setage (int age){
this.age=10;
}
public int getage ()
{ return this.age;
}
}
public class Monkey extends Animals {
public void vocalize()
{ System.out.println("Monkey");
}
private String feedingtime;
Animals Monkey = new Monkey();
public void setname (String name){
this.name="Tatang";
}
public String getname ()
{ return this.name;
}
public void setage (int age)
{ this.age=15;
} public int
getage (){ return
this.age;
}
}
public class Eagle extends Animals
{ public void vocalize()
{ System.out.println("Eagle");
}
private String feedingtime;
Animals Eagle = new Eagle();
public void setname (String name){
this.name="Nalu";
}
public String getname ()
{ return this.name;
}
public void setage (int age)
{ this.age=7;
} public int
getage (){ return
this.age;
}
}
public class Crocodile extends Animals
{ public void vocalize()
{ System.out.println("Crocodile");
}
private String feedingtime;
Animals Crocodile = new Crocodile();
public void setname (String name){
this.name="Lolong";
}
public String getname ()
{ return this.name;
}
public void setage (int age)
{ this.age=100;
} public int
getage (){ return
this.age;
}
}
}
}

public class Application { public static


void main(String [] args)
{ System.out.println("Lion");
System.out.println("Name: Simba");
System.out.println("Age: 10\n");
System.out.println("Tiger");
System.out.println("Name: Scar");
System.out.println("Age: 10\n");
System.out.println("Monkey");
System.out.println("Name: Tatang");
System.out.println("Age: 15\n");
System.out.println("Eagle");
System.out.println("Name: Nalu");
System.out.println("Age: 7\n");
System.out.println("Crocodile");
System.out.println("Name: Lolong");
System.out.println("Age: 100\n");

}
}

DIAGRAM:

Menu class
As this apllication, like so many, will require a menu for the user to drive it, create
a Menu class which has a constructor which enables a set of menu item strings to
be specified and a method which displays the menu and returns the user choice as
an integer. This method should perform some error checking on the user input.
Application class
Create a suitable application class with a main method which provides a menu for
user interaction and interacts with a zoo object.

2. Write a grading program for each class with the following grading policies:

a. There are two quizzes, each graded on the basis of 10 points.

b. There is one midterm exam and one final exam, each graded on the basis of 100
points.

c. The final exam counts for 50% of the grade, the midterm counts for 25%, and
the two quizzes together count for a total of 25%.(Do not forget to normalize
the quiz scores. They should be converted to a percent before they are average
in.) Any grade of 90 or more is an A, any grade of 80 or more (but less than 90
is B, any grade of 70 or more (but less than 80) is a C, any grade of 60 or more
(but less than 70) is a D, and any grade below 60 is an F. The program will read
in the student’s scores and output the student’s record, which consists of two
quiz and two exam scores as well as the student’s overall numeric score for the
entire course and final letter grade. Define and use a class for the student
record. The class should have instance variables for the quizzes, midterm, final,
course overall numeric score, and course final letter grade. The overall numeric
score is a number in the range 0 to 100, which represents the weighted average
of the student’s work. The class should have input and output methods. The
input method should not ask for the final numeric grade nor should it ask for
the final letter grade. The class should have methods to compute the overall
numeric grade and the final letter grade. These last two methods will be void
methods that set the appropriate instance variables. Remember, one method can
call another method. If you prefer, you can define a single method that sets both
the overall numeric score and the final letter grade, but if you do this, use a
helping method. Your program should use all the methods we discussed. Your
class should have a reasonable set of accessor and mutator methods, whether or
not your program uses them. You may add other methods if you wish

CODE:

import java.util.Scanner;
public class MainMethod extends AddViewRecord {

public static void main(String[] args)


{ menu();
}
public static void menu()
{
Scanner sc = new Scanner(System.in);
System.out.println("=====================");
System.out.println("KING CLASS RECORD");
System.out.println("=====================");
System.out.println("1. Display Grades");
System.out.println("2. Add Record");
System.out.println();
do{
int choice = sc.nextInt();
switch (choice)
{
case 1:
{
if(AddViewRecord.rec_count==0)
{
System.out.println("No records.");
break;
}
else{
AddViewRecord.disp();
System.out.print("Press 1 to go to menu, press any other number button to quit.");
int choice2 = sc.nextInt();
switch (choice2)
{
case 1:{
menu();
break;
}
default:
{
System.out.print("Thank you!");
System.exit(0);
}
}
}
} case
2: {
int count;
if(StudentRecord.rec_count>=100)
{

}
System.out.print("Enter number of records to input : ");
count = sc.nextInt();
for(int i=0; i<count; i++)
{
System.out.println("Student " + (i+1));
AddViewRecord.addRecord();
}
System.out.println();
System.out.println();
System.out.println();
System.out.println("Record(s) added successfully!");
System.out.println();
System.out.print("Press 1 to go to menu, press any other number button to quit.");
int choice3 = sc.nextInt(); switch (choice3)
{
case 1:{
menu();
break;
}
default:
{
System.out.print("Thank you!");
System.exit(0);
}

}
}
}
}while(AddViewRecord.rec_count==0);
}
}
public class StudentRecord { public static int
rec_count = 0; public static String[] stud_name =
new String[10]; public static double[] quiz1 =
new double[10]; public static double[] quiz2 =
new double[10]; public static double[] mExam =
new double[10]; public static double[] fExam =
new double[10]; public static double[] ave = new
double[10];
public static char[] lGrade = new char[10];

}
public class StudentRecord { public static int
rec_count = 0; public static String[] stud_name =
new String[10]; public static double[] quiz1 =
new double[10]; public static double[] quiz2 =
new double[10]; public static double[] mExam =
new double[10]; public static double[] fExam =
new double[10]; public static double[] ave = new
double[10]; public static char[] lGrade = new
char[10];
}

DIAGRAM
3. Create a class that graphs the grade distribution (number of A’s, B’s, C’s, D’s, and
F’s) horizontally by printing lines with proportionate numbers of asterisks
corresponding to the percentage of grades in each category. Write methods to set the
number of each letter grade; red the number of each letter grade, return the total
number of grades, return the percent of each letter grade as a whole number between
0 and 100, inclusive; and draw the graph. Set it up so that 50 asterisks correspond to
100% (each one corresponds 2%), include a scale on the horizontal axis indicating
each 10% increment from 0 to 100%, and label each line with its letter grade. For
example, if there are 1 A’s, 4 B’s, 6 C’s, 2 D’s and 1 F, the total number of grades is
14, the percentage of A’s is 7, percentage of B’s is 29, percentage of C’s is 43,
percentage of D’s is 14, and percentage of F’s is 7. The A row would contain 4
asterisks (7% of 50 rounded to the nearest the B row 14, the C row 21, the D row 7,
and the F row 4, so the graph would look like this

0 10 20 30 40 50 60 70 80 90 100
***************************************************
**** A
************** B
********************* C
******* D
**** F

Code:
import java.util.Scanner;
import java.lang.Math;
public class MainClass {

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);
int a,b,c,d,f;
System.out.println("Input no. of A's");
a = sc.nextInt();
System.out.println("Input no. of B's");
b = sc.nextInt();
System.out.println("Input no. of C's");
c = sc.nextInt();
System.out.println("Input no. of D's");
d = sc.nextInt();
System.out.println("Input no. of F's");
f = sc.nextInt(); int total = a+b+c+d+f; double
aPer = (((double)a/(double)total)*100.0); double bPer =
(((double)b/(double)total)*100.0); double cPer =
(((double)c/(double)total)*100.0); double dPer =
(((double)d/(double)total)*100.0); double fPer =
(((double)f/(double)total)*100.0); System.out.println("0
10 20 30 40 50 60 70 80 90 100");
for(int i=0; i<50; i++)
{
System.out.print('*');
}
System.out.println();
//
for(int i=0; i<Math.round(((double)((Math.round(aPer))*0.5))); i++)
{
System.out.print('*');
}
System.out.print(" A");
System.out.println();
for(int i=0; i<Math.round(((double)((Math.round(bPer))*0.5))); i++)
{
System.out.print('*');
}
System.out.print(" B");
System.out.println();
for(int i=0; i<Math.round(((double)((Math.round(cPer))*0.5))); i++)
{
System.out.print('*');
}
System.out.print(" C");
System.out.println();
for(int i=0; i<Math.round(((double)((Math.round(dPer))*0.5))); i++)
{
System.out.print('*');
}
System.out.print(" D");
System.out.println();
for(int i=0; i<Math.round(((double)((Math.round(fPer))*0.5))); i++)
{
System.out.print('*');
}
System.out.print(" F");
System.out.println();
}
}
DIAGRAM:

V. QUESTION AND ANSWER:


1. What is the difference between classes and objects?
Classes is a template or blue print that defines an object’s attributes and operations and that
is created at design time. While Object is a running instance of a class that consumes
memory and has a finite lifespan.
2. Consider the following class:
public class IdentifyMyParts {
public static int x = 7;
public int y = 3; }

1. What are the class variables?


The class variable is x.

2. What are the instance variables?


The instance variable is y.
Topic Introduction to Object-Oriented
Programming

Lab Activity No 5a
Lab Activity Zoo Animals
CLO 2
Program execution (20)
Correct output (20)
Design of output (10)
Design of logic (20)
Standards (20)
Delivery (10)
TOTAL

Topic Introduction to Object-Oriented


Programming
Lab Activity No 5b
Lab Activity Grading System
CLO 2
Program execution (20)
Correct output (20)
Design of output (10)
Design of logic (20)
Standards (20)
Delivery (10)
TOTAL

Topic Introduction to Object-Oriented


Programming
Lab Activity No 5c
Lab Activity Grade Distribution
CLO 2
Program execution (20)
Correct output (20)
Design of output (10)
Design of logic (20)
Standards (20)
Delivery (10)
TOTAL

You might also like