Core Java Report
-
Upload
sandeep-singh -
Category
Documents
-
view
74 -
download
7
Transcript of Core Java Report
SIX WEEKS TRAINING REPORT
(June-July, 2012)
TITLE OF THE TRAINING (Core JAVA)
Submitted by:-
Sandeep Singh
Reg.no.:-10901876
Prog. Name:-B.Tech-CSE
CSE/IT Dept.
School of SCIENCE & ENGINEERING
Lovely Professional University, Phagwara
DECLARATION
I hereby declare that I have completed my six weeks summer training at
APPIN Tech and lab(name of the company) and
Appin Technology 233-A,opp. GNDU,Amritsar (location of organization)
from 01/june/2012(start date) to 15/july/2012(end date) under the guidance of
Mr.Amandeep Singh sir (Name of Industry coordinator). I have worked with
full dedication during these six weeks of training and my learning outcomes
fulfill the requirements of training for the award of degree of BTECH(Relevant
Degree ), Lovely Professional University, Phagwara.
(Signature of student)
Student’s name:- Charanbir Singh
Registration no:- 10905650
Date: 07/08/2012
Acknowledgement
First of all I am very happy that LPU is editing such type of activities In its
course that provides students a chance to unleash their talent by making newer
and newer projects.and finally I am very thankful to my training tutor who
assigned in me the desire of making more and more project.
Charanbir Singh
REG.NO:-10905650
TRAINING INSTITUTE:- APPIN SECURITY GROUP
Appin Security Group is a global Information Security company focused on training,
consulting and solutions. The company was formed as a merger of two entities, XIRS
Ventures Inc based in Austin Texas incorporated in 2003 and XIRS Appin incubated inside
IIT, Delhi India formed in 2004.
Later the name XIRS was dropped from the company and the merged entity is known as
Appin Technologies. From USA & India, the company has now expanded its operations to
Europe, Africa and South East Asia as well.
The company has gone through several mergers and acquisitions and has operated businesses
under the trademarks 'Appin Knowledge Solutions', 'XIRS Appin', 'Appin Technologies',
'Appin Overseas', 'Appin Software Security' all of whom form a part of the current Appin
Security Group.
CAREERS - APPIN SECURITY GROUP
Appin Security Group is an industry leader in Information Security & Investigative solutions
and training. Our focus is to attract and develop great talent. Are you ready to be challenged?
Are you ready to achieve and be recognized? It's all here for you. Explore the possibilities
and start your job by enrolling yourself training programs at 'Appin Technology Lab'. To join
a program, please click 'IT & Security training' icon on left and chose the nearest center.
Hiring at Appin Security Group is limited to students graduating from Appin's training
centers running globally. If you feel you are a deserving candidate and are unable to join our
courses for any reason, you can write to us at '[email protected]'.
WORK CULTURE
We all know that making time for relaxation, reflection…vacation, is important. But, at
Appin, we believe it is equally important to maintain a work environment that
encourages...fun!
Employees have fun
Last year, employees and their blood relatives from 17 locations participated in golf outings,
cricket and more and more.
Super Savings
Lots of us are watching our budgets these days, so bargains and discounts are always
welcome. Appin's HR benefits offer a total of 27 different discount programs for employees,
including everything from day care to pet insurance to new cars!
Setting the Goal for the Future
Professionalism and Integrity. Employer of Choice. Accelerated Growth. Global Strength and
Consistency. These are Appin's four strategic priorities.
Taking Time
Most employees need to accrue five years of service with their employer to get 18 days of
Personal Time Off each year. Appin offers employees at least that many, and they don't need
to wait for years!
Diversity
Appin continues its efforts to encourage and promote diversity in the workplace. Our New
Delhi, India based headquarters has employees of all 25 states of India and 7 different
nationalities
REPUTATION REPAIR, NEGATIVE CONTENT REMOVAL AND ONLINE
REPUTATION MANAGEMENT SERVICE
Appin security group has developed and created a highly effective and efficient means to
removing unwanted content from the Internet. We use our strong commercial relationships
with social media and complaints or ripoff website publishers to get the content removed.
Through the negative content removal service, appin will contact the host web site and not
only demand the immediate take down of the content, but will also explain to them the
improper nature of the posting and the need for its immediate removal. We also demand and
warn the offending sites that it may not, under any circumstances, repost, resubmit, or
otherwise disseminate the offending information else threaten them with legal action. We will
also co-ordinate with police and lawyers to threaten content writers and website publishers.
We may also use offensive security technology to protect your online reputation.
The Information-age Security Specialists
Every day when Appin-ites wake up, we strive to come up with new ways to make our clients
feel more secured. Its our mission to secure what is important to you, and to better it with
time.
We offer Information Security, Ethical Hacking & Allied Technology training to students and
help them build a career by taking our coursesranging from 6 weeks to 3 years. Having
trained and mentored over 83000 students in classroom and distance learning training
sessions; we are confident of doing justice with a students career. We also provide exclusive
business opportunities to Individuals and Small Business to start afranchise in their area
focused on IT & Security training and solutions.
Over 110 entrepreneurs have joined hands with us in 18 nations and 70 cities. Its true that we
are still very short of the 33000 mark achieved by Subway but hope to get there soon.
We offer investigative solutions to investigative and intelligence bodies with specialization in
cyber investigation work. Over 530 organizations including countries governments and top-
notch lawyers trust us with theirinvestigation related work.
Last but not the least, Appin holds unique distinction of providingInformation
security consulting & network security services to India's all 4 major airports and is also
a security solutions provider to over 1300 Websites that are audited and monitored by Appin
globally.
We have served Microsoft, Intuit, Actis & Daikin; we promise to help you with your security
needs with equal zeal and enthusiasm if you are 20 people company that selects us as
their security partner. We will feel extremely privileged for same.
ii LOCATION :- Amritsar
Appin Technology Lab
233-A, Opp. GNDU
Amritsar.
phone no:-:1912436741
iii. Specialization of Work Culture in the training organization.:-CORE JAVA
iv . About the External Guide.:-Amandeep singh sir
INTRODUCTION OF JAVA:-
Java programming language was originally developed by Sun Microsystems, which was
initiated by James Gosling and released in 1995 as core component of Sun Microsystems.s
Java platform (Java 1.0 [J2SE]).
The latest release of the Java Standard Edition is 7 (J2SE). With the advancement of Java and
its wide spread popularity, multiple configurations were built to suite various types of
platforms. Ex: J2EE for Enterprise Applications, J2ME for Mobile Applications.
Sun Microsystems has renamed the new J2 versions as Java SE, Java EE and Java ME
respectively. Java is guaranteed to be Write Once, Run Anywhere.
FEATURES:-
Object Oriented : In java everything is an Object. Java can be easily extended since it
is based on the Object model.
Platform independent: Unlike many other programming languages including C and C+
+ when Java is compiled, it is not compiled into platform specific machine, rather into
platform independent byte code. This byte code is distributed over the web and
interpreted by virtual Machine (JVM) on whichever platform it is being run.
Simple :Java is designed to be easy to learn. If you understand the basic concept of
OOP java would be easy to master.
Secure : With Java's secure feature it enables to develop virus-free, tamper-free
systems. Authentication techniques are based on public-key encryption.
Architectural- neutral :Java compiler generates an architecture-neutral object file
format which makes the compiled code to be executable on many processors, with the
presence Java runtime system.
Portable :being architectural neutral and having no implementation dependent aspects
of the specification makes Java portable. Compiler and Java is written in ANSI C with a
clean portability boundary which is a POSIX subset.
Robust :Java makes an effort to eliminate error prone situations by emphasizing mainly
on compile time error checking and runtime checking.
Multi-threaded : With Java's multi-threaded feature it is possible to write programs that
can do many tasks simultaneously. This design feature allows developers to construct
smoothly running interactive applications.
Interpreted :Java byte code is translated on the fly to native machine instructions and is
not stored anywhere. The development process is more rapid and analytical since the
linking is an incremental and light weight process.
High Performance: With the use of Just-In-Time compilers Java enables high
performance.
Distributed :Java is designed for the distributed environment of the internet.
Dynamic : Java is considered to be more dynamic than C or C++ since it is designed to
adapt to an evolving environment. Java programs can carry extensive amount of run-
time information that can be used to verify and resolve accesses to objects on run-time.
Java Development Kit (JDK):-
A Java Development Kit (JDK) is a program development environment for writing Java
applets and applications. It consists of a runtime environment that "sits on top" of the
operating system layer as well as the tools and programming that developers need to compile,
debug, and run applets and applications written in the Java language.
Java Runtime Environment (JRE):-
The Java Runtime Environment (JRE), also known as Java Runtime, is part of the Java
Development Kit (JDK), a set of programming tools for developing Java applications. The
Java Runtime Environment provides the minimum requirements for executing a Java
application; it consists of the Java Virtual Machine (JVM), core classes, and supporting files.
JAVA VIRTUAL MACHINE(JVM):-
A Java virtual machine (JVM) is a virtual machine that can execute Java bytecode. It is the
code execution component of the Java software platform.
JVMs are available for many hardware and software platforms. The use of the same bytecode
for all JVMs on all platforms allows Java to be described as a write once, run
anywhere programming language, versus write once, compile anywhere, which describes
cross-platform compiled languages. Thus, the JVM is a crucial component of the Java
platform
Java program
Syntax:-
Class class _name
{
public static void main(string ar[])
{
Here we write the statements
}
}
A simple program code that would print the words Hello World.
public class MyFirstJavaProgram
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
Compilation and execution of the program. Please follow the steps written below:
1. First open notepad and write the code written above.
2. Then we Save the file as : MyFirstJavaProgram.java.
3. After that Open a command prompt window and go to the directory where you saved the
class. Let us assume its C:\.
4. Type ' javac MyFirstJavaProgram.java ' and press enter to compile your code. If there are no
errors in your code the command prompt will take you to the next line.( Assumption : The
path variable is set).
5. Now type ' java MyFirstJavaProgram ' to run your program.
6. You will be able to see ' Hello World ' printed on the window.
Java is an Object Oriented Language. As a language that has the Object Oriented feature Java
supports the following fundamental concepts:
Polymorphism
Inheritance
Encapsulation
Abstraction
Classes
Objects
Instance
Polymorphism
Polymorphism is the ability of an object to take on many forms. The most common use of
polymorphism in OOP occurs when a parent class reference is used to refer to a child
class object.
For e.g:-class employee
{
public static main( String args[] )
{
Student studentObject = new Student();
Employee employeeObject = new Employee();
Person ref = studentObject; //Person ref. points to a
// Student object
// getName() method of Student class is called
String temp= ref.getName();
System.out.println( temp );
ref = employeeObject; //Person ref. points to an
// Employee object
//getName() method of Employee class is called
String temp = ref.getName();
System.out.println( temp ); }
Inheritance
Inheritance can be defined as the process where one object acquires the properties of
another. With the use of inheritance the information is made manageable in a hierarchical
order.
Simple inheritance:
When a subclass is derived simply from it's parent class then this mechanism is known as
simple inheritance. In case of simple inheritance there is only a sub class and it's parent class.
It is also called single inheritance or one level inheritance.
Multilevel Inheritance
It is the enhancement of the concept of inheritance. When a subclass is derived from a derived class
then this mechanism is known as the multilevel inheritance. The derived class is called the subclass
or child class for it's parent class and this parent class works as the child class for it's just above
( parent ) class. Multilevel inheritance can go up to any number of level.
e.g.
class A {
int x;
class A {
int x;
int y;
int get(int p, int q){
x=p; y=q; return(0);
}
void Show(){
System.out.println(x);
}
}
class B extends A{
public static void main(String args[]){
A a = new A();
a.get(5,6);
a.Show();
}
void display(){
System.out.println("B");
}
}
int y;
int get(int p, int q){
x=p; y=q; return(0);
}
void Show(){
System.out.println(x);
}
}
class B extends A{
void Showb(){
System.out.println("B");
}
}
class C extends B{
void display(){
System.out.println("C");
}
public static void main(String args[]){
A a = new A();
a.get(5,6);
a.Show(); }
}
Abstraction
Abstraction refers to the ability to make a class abstract in OOP. An abstract class is one
that cannot be instantiated. All other functionality of the class still exists, and its fields,
methods, and constructors are all accessed in the same manner. We just cannot create an
instance of the abstract class.
declaration.
abstract class Figure {
double dim1;
double dim2;
Figure(double a, double b) {
dim1 = a;
dim2 = b;
}
abstract double area();
}
class Rectangle extends Figure {
Rectangle(double a, double b) {
super(a, b);
}
double area() {
System.out.println("Inside Area for Rectangle.");
return dim1 * dim2;
}
}
class Triangle extends Figure {
Triangle(double a, double b) {
super(a, b);
}
double area() {
System.out.println("Inside Area for Triangle.");
return dim1 * dim2 / 2;
}
}
class AbstractAreas {
public static void main(String args[]) {
Rectangle r = new Rectangle(9, 5);
Triangle t = new Triangle(10, 8);
Figure figref;
figref = r;
System.out.println("Area is " + figref.area());
figref = t;
System.out.println("Area is " + figref.area());
}
}
Encapsulation
Encapsulation is one of the four fundamental OOP concepts. The other three are inheritance,
polymorphism, and abstraction.
Encapsulation is the technique of making the fields in a class private and providing access to
the fields via public methods. If a field is declared private, it cannot be accessed by anyone
outside the class, thereby hiding the fields within the class. For this reason, encapsulation is
also referred to as data hiding.
Now we will look into the concepts Classes and Objects.
Object - Objects have states and behaviors. Example: A dog has states-color, name,
breed as well as behaviors -wagging, barking, eating. An object is an instance of a
class.
Class - A class can be defined as a template/ blue print that describe the
behaviors/states that object of its type support.
Objects in Java:
Let us now look deep into what are objects. If we consider the real-world we can find many
objects around us, Cars, Dogs, Humans etc. All these objects have a state and behavior.
If we consider a dog then its state is . name, breed, color, and the behavior is . barking,
wagging, running
If you compare the software object with a real world object, they have very similar
characteristics.
Software objects also have a state and behavior. A software object's state is stored in fields
and behavior is shown via methods.
So in software development methods operate on the internal state of an object and the object-
to-object communication is done via methods.
Classes in Java:
A class is a blue print from which individual objects are created.
A sample of a class is given below:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
A class can contain any of the following variable types.
Local variables . variables defined inside methods, constructors or blocks are called
local variables. The variable will be declared and initialized within the method and the
variable will be destroyed when the method has completed.
Instance variables . Instance variables are variables within a class but outside any
method. These variables are instantiated when the class is loaded. Instance variables
can be accessed from inside any method, constructor or blocks of that particular class.
Class variables . Class variables are variables declared with in a class, outside any
method, with the static keyword.
A class can have any number of methods to access the value of various kind of methods. In
the above example, barking(), hungry() and sleeping() are variables.
Below mentioned are some of the important topics that need to be discussed when looking
into classes of the Java Language.
Constructors:
When discussing about classes one of the most important sub topic would be constructors. Every class has a constructor. If we do not explicitly write a constructor for a class the java compiler builds a default constructor for that class.
Each time a new object is created at least one constructor will be invoked. The main rule of constructors is that they should have the same name as the class. A class can have more than one constructor.
Example of a constructor is given below:
class Puppy{ public puppy(){ }
public puppy(String name){ // This constructor has one parameter, name. }}
Object:
Example of creating an object is given below:
Creating an object
student w1=new student()//object created of class employee
student w2=new student()//copy created
w1=w2//assign one object to another
class Puppy{
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public static void main(String []args){
// Following statement would create an object myPuppy
Puppy myPuppy = new Puppy( "tommy" );
}
}
Java Package:
In simple it is a way of categorizing the classes and interfaces. When developing applications
in Java, hundreds of classes and interfaces will be written, therefore categorizing these
classes is a must as well as makes life much easier.
Import statements:
In java if a fully qualified name, which includes the package and the class name, is given then
the compiler can easily locate the source code or classes. Import statement is a way of giving
the proper location for the compiler to find that particular class.
For example following line would ask compiler to load all the classes available in directory
java_installation/java/io :
import java.io.*;
Loop Control statements:-
Java has very flexible three looping mechanisms. You can use one of the following three
loops:
while Loop
do...while Loop
for Loop
As of java 5 the enhanced for loop was introduced. This is mainly used for Arrays.
The while Loop:
A while loop is a control structure that allows you to repeat a task a certain number of times.
Syntax:
The syntax of a while loop is:
while(Boolean_expression)
{
//Statements
}
The do...while Loop:
A do...while loop is similar to a while loop, except that a do...while loop is guaranteed to
execute at least one time.
Syntax:
The syntax of a do...while loop is:
do
{
//Statements
}while(Boolean_expression);
The for Loop:
A for loop is a repetition control structure that allows you to efficiently write a loop that
needs to execute a specific number of times.
A for loop is useful when you know how many times a task is to be repeated.
Syntax:
The syntax of a for loop is:
for(initialization; Boolean_expression; update)
{
//Statements
}
Enhanced for loop in Java:
As of java 5 the enhanced for loop was introduced. This is mainly used for Arrays.
Syntax:
The syntax of enhanced for loop is:
for(declaration : expression)
{
//Statements
}
The break Keyword:
The break keyword is used to stop the entire loop. The break keyword must be used inside
any loop or a switch statement.
The break keyword will stop the execution of the innermost loop and start executing the next
line of code after the block.
The continue Keyword:
The continue keyword can be used in any of the loop control structures. It causes the loop to
immediately jump to the next iteration of the loop.
In a for loop, the continue keyword causes flow of control to immediately jump to the
update statement.
In a while loop or do/while loop, flow of control immediately jumps to the Boolean
expression.
Syntax:
The syntax of a continue is a single statement inside any loop:
continue;
The if Statement:
An if statement consists of a Boolean expression followed by one or more statements.
Syntax:
The syntax of an if statement is:
if(Boolean_expression)
{
//Statements will execute if the Boolean expression is true
}
The if...else Statement:
An if statement can be followed by an optional else statement, which executes when the
Boolean expression is false.
Syntax:
The syntax of a if...else is:
if(Boolean_expression){
//Executes when the Boolean expression is true
}else{
//Executes when the Boolean expression is false
}
The if...else if...else Statement:
An if statement can be followed by an optional else if...else statement, which is very usefull
to test various conditions using single if...else if statement.
Syntax:
The syntax of a if...else is:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
//Executes when the Boolean expression 3 is true
}else {
//Executes when the one of the above condition is true.
}
Nested if...else Statement:
It is always legal to nest if-else statements. When using if , else if , else statements there are
few points to keep in mind.
An if can have zero or one else's and it must come after any else if's.
An if can have zero to many else if's and they must come before the else.
Once an else if succeeds, none of he remaining else if's or else's will be tested.
Syntax:
The syntax for a nested if...else is as follows:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}
}
The switch Statement:
A switch statement allows a variable to be tested for equality against a list of values. Each
value is called a case, and the variable being switched on is checked for each case.
Syntax:
The syntax of enhanced for loop is:
switch(expression){
case value :
//Statements
break; //optional
case value :
//Statements
break; //optional
//You can have any number of case statements.
default : //Optional
//Statements
}
Reason for choosing this training.
Easy to Use:
The fundamentals of Java came from a programming language calledc++ . A l though
power fu l l anguage , i t was f e l t t o be t oo complex i n i t s syn t ax and
inadequate for all of Java's requirements. Java built on, and improved the ideas of c+
+,to provide a programming language that was powerful and simple to use.
Reliability:
Java needed to reduce the likelihood of fatal errors from
programmer mistakes.With this in mind, object-oriented programming was introduced.
Once data andits manipulation were packaged together in one place, it increased Java’s
robustness.
Secure:
As Java was originally targeting mobile devices that would be exchangingdata over
networks, it was built to include a high level of security. Java is probably
themost secure programming language to date.
Platform Independent:
Programs needed to work regardless of the machine theywere being executed on. Java was
written to be a portable language that doesn't care aboutthe operating system or the hardware
of the computer.
Project
Simulator of an Elevator
Source code:
//Elevator Simulator
//An Elevator simulator program demonstrating 2 elevators in a four floor building.
//No internal java activex component is used in this simulator.
//Command Buttons are designed from scratch.
//Class Elevator : Main Class holding paint method and mouse events.
//Class MyButton : Used to design command buttons for user interface
//Class Lift : Used to design 2 elevator
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.security.*;
//Main Elevator class
public class elevator extends Applet
implements MouseListener, MouseMotionListener
{ String Msg="";
String UserId="";
String Trans="";
int opt,s1,t1,s2,t2;
int mousex = 0, mousey = 0; // coordinates of mouse
//First elevator user interface up command buttons
//MyButton E11Up=new MyButton();
MyButton E12Up=new MyButton();
MyButton E13Up=new MyButton();
MyButton E14Up=new MyButton();
//MyButton E21Up=new MyButton();
//Second elevator user interface up command buttons
MyButton E22Up=new MyButton();
MyButton E23Up=new MyButton();
MyButton E24Up=new MyButton();
//First elevator user interface down command buttons
MyButton E11Down=new MyButton();
MyButton E12Down=new MyButton();
MyButton E13Down=new MyButton();
//MyButton E14Down=new MyButton();
//Second elevator user interface down command buttons
MyButton E21Down=new MyButton();
MyButton E22Down=new MyButton();
MyButton E23Down=new MyButton();
//MyButton E24Down=new MyButton();
//First elevator Internal control panel
MyButton E11=new MyButton();
MyButton E12=new MyButton();
MyButton E13=new MyButton();
MyButton E14=new MyButton();
//Second elevator Internal control panel
MyButton E21=new MyButton();
MyButton E22=new MyButton();
MyButton E23=new MyButton();
MyButton E24=new MyButton();
//Two Elevators
MyLift L1=new MyLift();
MyLift L2=new MyLift();
//Administrator Control panel for First elevator
MyButton E1Source=new MyButton();
MyButton E1Target=new MyButton();
MyButton E1Go=new MyButton();
//Administrator Control panel for Second elevator
MyButton E2Source=new MyButton();
MyButton E2Target=new MyButton();
MyButton E2Go=new MyButton();
MyButton EStop=new MyButton();
MyButton E1Emergency=new MyButton();
MyButton E1Open=new MyButton();
MyButton E1Close=new MyButton();
MyButton E2Emergency=new MyButton();
MyButton E2Open=new MyButton();
MyButton E2Close=new MyButton();
public void init()
{ addMouseListener(this);
addMouseMotionListener(this);
opt=0;
s1=1;t1=1;s2=1;t2=1; //used by administrator to keep record of elevators start
and target position
//=================================================================
=======================
//===============Defination Text,Id,Position and Size of different user
command buttons
//=================================================================
=======================
E14Up.SetMyButton(300,50,30,22,"Up","E14Up");
//E14Down.SetMyButton(300,80,50,22,"Down","E14Down");
E13Up.SetMyButton(300,175,30,22,"Up","E13Up");
E13Down.SetMyButton(300,205,50,22,"Down","E13Down");
E12Up.SetMyButton(300,300,30,22,"Up","E12Up");
E12Down.SetMyButton(300,330,50,22,"Down","E12Down");
//E11Up.SetMyButton(300,425,30,22,"Up","E11Up");
E11Down.SetMyButton(300,455,50,22,"Down","E11Down");
E24Up.SetMyButton(500,50,30,22,"Up","E24Up");
//E24Down.SetMyButton(500,80,50,22,"Down","E24Down");
E23Up.SetMyButton(500,175,30,22,"Up","E23Up");
E23Down.SetMyButton(500,205,50,22,"Down","E23Down");
E22Up.SetMyButton(500,300,30,22,"Up","E22Up");
E22Down.SetMyButton(500,330,50,22,"Down","E22Down");
//E21Up.SetMyButton(500,425,30,22,"Up","E21Up");
E21Down.SetMyButton(500,455,50,22,"Down","E21Down");
E11.SetMyButton(50,530,8,8,"1","E11");
E12.SetMyButton(70,530,8,8,"2","E12");
E13.SetMyButton(90,530,8,8,"3","E13");
E14.SetMyButton(110,530,8,8,"4","E14");
E21.SetMyButton(690,530,8,8,"1","E21");
E22.SetMyButton(710,530,8,8,"2","E22");
E23.SetMyButton(730,530,8,8,"3","E23");
E24.SetMyButton(750,530,8,8,"4","E24");
//===========================Defination of Location,Size,Text,Id of Two
Elevators
L1.SetMyLift(1,200,50,80,"L1","L1");
L2.SetMyLift(1,600,50,80,"L2","L2");
//===========================Defination of Location,Size,Text and
Id of Administartor Command Buttons
E1Source.SetMyButton(20,601,50,20,"Source","E1Source");
E1Target.SetMyButton(20,622,50,20,"Target","E1Target");
E1Go.SetMyButton(100,610,30,20,"Go","E1Go");
E2Source.SetMyButton(670,601,50,20,"Source","E2Source");
E2Target.SetMyButton(670,622,50,20,"Target","E2Target");
E2Go.SetMyButton(770,610,30,20,"Go","E2Go");
EStop.SetMyButton(415,600,40,20,"Stop","EStop");
E1Emergency.SetMyButton(130,530,73,25,"Emergency","E1Emergency");
E1Open.SetMyButton(210,530,45,25,"Open","E1Open");
E1Close.SetMyButton(265,530,50,25,"Close","E1Close");
int k=370;
E2Emergency.SetMyButton(k+130,530,73,25,"Emergency","E2Emergency");
E2Open.SetMyButton(k+210,530,45,25,"Open","E2Open");
E2Close.SetMyButton(k+265,530,50,25,"Close","E2Close");
}
//Main paint method starts
//this method is used to draw applet window
// different conditional checks are done here.
public void paint(Graphics g)
{ EStop.Draw(g);
E1Emergency.Draw(g);
E1Open.Draw(g);
E1Close.Draw(g);
E2Emergency.Draw(g);
E2Open.Draw(g);
E2Close.Draw(g);
g.setColor(Color.magenta);
g.drawString("Administrator",400,590);
g.setColor(Color.black);
g.drawString("Internal Panel",500,560);
g.drawString("Internal Panel",690,560);
int i,j;
g.setColor(Color.gray);
for(j=150;j<=575;j=j+125)
{
g.drawLine(0,j-1,800,j-1);
g.drawString("Floor No " + (5-(j /125)),380,j-130);
}
g.drawLine(0,575,800,575);
g.setColor(Color.red);
g.drawString("Elevator 1",180,20);
g.drawString("Elevator 2",580,20);
E14Up.Draw(g);
//E14Down.Draw(g);
E13Up.Draw(g);
E13Down.Draw(g);
E12Up.Draw(g);
E12Down.Draw(g);
//E11Up.Draw(g);
E11Down.Draw(g);
E24Up.Draw(g);
//E24Down.Draw(g);
E23Up.Draw(g);
E23Down.Draw(g);
E22Up.Draw(g);
E22Down.Draw(g);
//E21Up.Draw(g);
E21Down.Draw(g);
E11.Draw(g);E12.Draw(g);E13.Draw(g);E14.Draw(g);
E21.Draw(g);E22.Draw(g);E23.Draw(g);E24.Draw(g);
L1.Draw(g);
L2.Draw(g);
g.setColor(Color.blue);
/*g.drawString("Busy",100,40);
g.drawString("Busy",100,190);
g.drawString("Busy",100,340);
g.drawString("Busy",100,490);
g.drawString("Busy",660,40);
g.drawString("Busy",660,190);
g.drawString("Busy",660,340);
g.drawString("Busy",660,490);
*/
UserId="User";
if(Msg=="E11") { L1.Move(g,1,UserId); }
if(Msg=="E12") { L1.Move(g,2,UserId); }
if(Msg=="E13") { L1.Move(g,3,UserId); }
if(Msg=="E14") { L1.Move(g,4,UserId); }
if(Msg=="E21") { L2.Move(g,1,UserId); }
if(Msg=="E22") { L2.Move(g,2,UserId); }
if(Msg=="E23") { L2.Move(g,3,UserId); }
if(Msg=="E24") { L2.Move(g,4,UserId); }
if (Msg=="E11Up" && L1.Floor<1) { L1.Move(g,1,UserId);}
if (Msg=="E12Up" && L1.Floor<2) { L1.Move(g,2,UserId);}
if (Msg=="E13Up" && L1.Floor<3) { L1.Move(g,3,UserId);}
if (Msg=="E14Up" && L1.Floor<4) { L1.Move(g,4,UserId);}
if (Msg=="E11Down" && L1.Floor>1) { L1.Move(g,1,UserId);}
if (Msg=="E12Down" && L1.Floor>2) { L1.Move(g,2,UserId);}
if (Msg=="E13Down" && L1.Floor>3) { L1.Move(g,3,UserId);}
if (Msg=="E14Down" && L1.Floor>4) { L1.Move(g,4,UserId);}
if (Msg=="E21Up" && L2.Floor<1) { L2.Move(g,1,UserId);}
if (Msg=="E22Up" && L2.Floor<2) { L2.Move(g,2,UserId);}
if (Msg=="E23Up" && L2.Floor<3) { L2.Move(g,3,UserId);}
if (Msg=="E24Up" && L2.Floor<4) { L2.Move(g,4,UserId);}
if (Msg=="E21Down" && L2.Floor>1) { L2.Move(g,1,UserId);}
if (Msg=="E22Down" && L2.Floor>2) { L2.Move(g,2,UserId);}
if (Msg=="E23Down" && L2.Floor>3) { L2.Move(g,3,UserId);}
if (Msg=="E24Down" && L2.Floor>4) { L2.Move(g,4,UserId);}
UserId="Administrator";
if (Msg=="E1Source") { s1=s1+1; if(s1>4){s1=1;} }
if (Msg=="E1Target") { t1=t1+1; if(t1>4){t1=1;} }
if (Msg=="E1Go") { L1.Move(g,s1,UserId);L1.Move(g,t1,UserId);}
if (Msg=="E2Source") { s2=s2+1; if(s2>4){s2=1;} }
if (Msg=="E2Target") { t2=t2+1; if(t2>4){t2=1;} }
if (Msg=="E2Go") { L2.Move(g,s2,UserId);L2.Move(g,t2,UserId);}
g.setColor(Color.gray);
for(j=150;j<=575;j=j+125)
{
g.drawLine(0,j-1,800,j-1);
g.drawString("Floor No " + (5-(j /125)),380,j-130);
}
g.setColor(Color.blue);
g.drawString(" At Floor " +L1.Floor,100,40);
g.drawString(" At Floor " +L1.Floor,100,165);
g.drawString(" At Floor " +L1.Floor,100,290);
g.drawString(" At Floor " +L1.Floor,100,415);
g.drawString(" At Floor" +L2.Floor,660,40);
g.drawString(" At Floor" +L2.Floor,660,165);
g.drawString(" At Floor" +L2.Floor,660,290);
g.drawString(" At Floor" +L2.Floor,660,415);
E1Source.Draw(g);g.setColor(Color.red);g.drawString(""+s1,80,615);
E1Target.Draw(g);g.setColor(Color.red);g.drawString(""+t1,80,635);
E1Go.Draw(g);
E2Source.Draw(g);g.setColor(Color.red);g.drawString(""+s2,750,615);
E2Target.Draw(g);g.setColor(Color.red);g.drawString(""+t2,750,635);
E2Go.Draw(g);
MakeHistory.WriteIt(MyLift.Trans,g);
}
// Handled mouse clicked.and Id is stored in Msg. Msg used in paint to identy
command button clicked
public void mouseClicked(MouseEvent me)
{ mousex=me.getX();
mousey=me.getY();
Msg="";
//Msg=E11Up.Execute(mousex,mousey)
Msg=E12Up.Execute(mousex,mousey);
if(Msg=="")
Msg=E13Up.Execute(mousex,mousey);
if (Msg=="")
Msg=E14Up.Execute(mousex,mousey);
if (Msg=="")
Msg=E11Down.Execute(mousex,mousey);
if (Msg=="")
Msg=E12Down.Execute(mousex,mousey);
if (Msg=="")
Msg=E13Down.Execute(mousex,mousey);
if (Msg=="")
//Msg=E14Down.Execute(mousex,mousey);
//Msg=E21Up.Execute(mousex,mousey)
Msg=E22Up.Execute(mousex,mousey);
if (Msg=="")
Msg=E23Up.Execute(mousex,mousey);
if (Msg=="")
Msg=E24Up.Execute(mousex,mousey);
if (Msg=="")
Msg=E21Down.Execute(mousex,mousey);
if (Msg=="")
Msg=E22Down.Execute(mousex,mousey);
if (Msg=="")
Msg=E23Down.Execute(mousex,mousey);
if (Msg=="")
//Msg=E24Down.Execute(mousex,mousey);
Msg=E11.Execute(mousex,mousey);
if (Msg=="")
Msg=E12.Execute(mousex,mousey);
if (Msg=="")
Msg=E13.Execute(mousex,mousey);
if (Msg=="")
Msg=E14.Execute(mousex,mousey);
if (Msg=="")
Msg=E21.Execute(mousex,mousey);
if (Msg=="")
Msg=E22.Execute(mousex,mousey);
if (Msg=="")
Msg=E23.Execute(mousex,mousey);
if (Msg=="")
Msg=E24.Execute(mousex,mousey);
if (Msg=="")
Msg=E1Source.Execute(mousex,mousey);
if (Msg=="")
Msg=E1Target.Execute(mousex,mousey);
if (Msg=="")
Msg=E1Go.Execute(mousex,mousey);
if (Msg=="")
Msg=E2Source.Execute(mousex,mousey);
if (Msg=="")
Msg=E2Target.Execute(mousex,mousey);
if (Msg=="")
Msg=E2Go.Execute(mousex,mousey);
if (Msg=="")
Msg=EStop.Execute(mousex,mousey);
//MyLift.MStatus=1;
//if(Msg=="EStop")
// {MyLift.MStatus=0; return; }
if (Msg!="")
{
repaint();
}
//Msg="";
}
//unhandled mouse events necessary to implements as
// elevator class implements MouseListener, MouseMotionListener
public void mouseEntered(MouseEvent me) { }
public void mouseExited(MouseEvent me) { }
public void mousePressed(MouseEvent me) {}
public void mouseReleased(MouseEvent me) {}
public void mouseDragged(MouseEvent me) { }
public void mouseMoved(MouseEvent me) { }
}
// Command Button coding starts
class MyButton
{
int Left,Top,Width,Height;
String Caption,Id;
//used to set different attributes of a command button
public void SetMyButton(int Left,int Top,int Width,int Height,String Caption,String
Id)
{
this.Left=Left;
this.Top=Top;
this.Width=Width;
this.Height=Height;
this.Caption=Caption;
this.Id=Id;
}
//Used to draw command button on applet which uses graphics conted Gr of the
Parent Applet
public void Draw(Graphics Gr)
{ Gr.setColor(Color.blue);
Gr.fillRoundRect(Left,Top,Width,Height,5,5);
Gr.setColor(Color.gray);
Gr.fillRoundRect(Left+3,Top+3,Width-6,Height-6,3,3);
Gr.setColor(Color.black);
Gr.drawString(Caption,Left+6,Top+16);
}
//Used to detect whether user clicked in command button
// return "" if mouse is not within range
// else returns id of command button which is stored in Msg String
public String Execute(int x,int y)
{ if (x>=Left && x<=Left+Width && y>=Top && y<=Top+Height)
return this.Id;
else
return "";
}
}
// Coding of Lift(Elevator) starts
class MyLift
{ public static String Trans="";
//public static int MStatus=1;
int Left,Top,Width,Height;
public int Floor;
String Caption,Id;
//different attributes of elevator are set by SetMyLift method
public void SetMyLift(int Floor,int Left,int Width,int Height,String Caption,String Id)
{ this.Left=Left;
this.Top=570-(Floor*125);
this.Width=Width;
this.Height=Height;
this.Caption=Caption;
this.Id=Id;
this.Floor=Floor;
}
//used to draw elevator in parent applet
//This method uses Graphics context(Gr) of Parent applet
public void Draw(Graphics Gr)
{ Gr.setColor(Color.red);
Gr.fillRoundRect(Left,Top,Width,Height,5,5);
Gr.setColor(Color.gray);
Gr.fillRoundRect(Left+3,Top+3,Width-6,Height-6,3,3);
Gr.setColor(Color.black);
Gr.drawString(Caption,Left+6,Top+16);
}
//Used to undraw elvator from the applet
// It redraws Elevator in background color(White) on the parent applet
public void Remove(Graphics Gr)
{ Gr.setColor(Color.white);
Gr.fillRoundRect(Left,Top,Width,Height,5,5);
Gr.fillRoundRect(Left+3,Top+3,Width-6,Height-6,3,3);
Gr.drawString(Caption,Left+6,Top+16);
}
//Used to move elevator from current floor to target floor
//It also keeps record whether user/administrator moved the elevator
public void Move(Graphics Gr,int TFloor,String UserId)
{ int TTop;
TTop=570-(TFloor*125);
int ydiff,dy;
ydiff=TTop-Top;
if (ydiff<0)
{ dy=-1;}
else
{ dy=1;}
ydiff=Math.abs(ydiff);
int i,j,k;
for(i=1;i<=ydiff;i++)
{
this.Remove(Gr);
this.Top=this.Top+dy;
this.Draw(Gr);
for(j=1;j<=30000;j++)
for(k=1;k<=50;k++);
//if (MStatus==0) break;
}
Gr.setColor(Color.gray);
Gr.fillRoundRect(300,625,275,20,5,5);
Gr.setColor(Color.white);
Gr.drawString(this.Id+" moved by " + UserId + " from "+this.Floor+ " to " +
TFloor ,350,640);
for(j=1;j<=30000;j++)
for(k=1;k<=5000;k++);
Trans=this.Id+" moved by " + UserId + " from "+this.Floor+ " to " +
TFloor+"\n";
this.Floor=TFloor;
}
}
Learning Outcome from training:-
Introduction to Programming
This unit is rather large and easily broken into two separate units
Strands/Learning Outcomes Comments1A. Students will have an understanding of procedures relating to the classroom, use of compiler, and computer procedures.
1B. Students will have a basic familiarity with the layout of a driver program (main/begin) and how to run such a program
This includes a “Hello World” program where students identify the code which controls screen output, and also looking at Chapter 1 of the Java MBCS
1Ba. Students will learn to use the BlueJ environment to create an instance of an object and test individual methods
This will be used as students handle simple IO by passing parameters through blueJ to the methods and viewing the output as what is returned from the methods
1C. Students will use, write and modify System.out.println() method calls
Could also introduce System.out.print() as well, and cover briefly string concatenation using the + operator
1D. Students will be able to identify the escape sequences and determine output based on code that uses them
\n, \t, etc.
1E. Students will be able to recognize and write comments to document their code
Use both // and /* */ notation
1F. Students will have an understanding of basic syntax rules as they apply to case sensitivity and the use of the ;
throughout program1G. Students will be able to declare variables of both primitive and object types. As a part of this students should be able to:
Recognize the primitive variable types
Identify the parts of creating an object (creating the reference variable and assigning it to the memory location created by the constructor call)
This involves the use of new and theconstructor call for objects. (Random numbers?)
1H. Students should be able to use the variables they declared in a series of mathematical operations. As a part of this students will be able to:
Recognize the use of mathematical operators (except concatenation) must be used with primitive variable types.
Use the assignment operator to store the result of a calculation.
1I. Students should be able to use method calls to assign values to variables.
For Example:
String name = new String(“Tony”);
int len = name.length();
Students should be reading API documentation and applying return values to assignments.
1J. Students should understand and be able to use primitive numeric type casting (int to double and vice versa)
int x = (int)4.5;
Program Assignments/Chapter Resources
Input/Output
Please note that this unit can either be treated as a separate unit or taught as part of a larger course. The primary focus here is not to teach students 1 method of input or output, but introduce a range of IO possibilities (some written by teacher) that will allow them to read object documentation and apply it to any situation.
Strands/Learning Outcomes Comments2A. Students will have familiarity with basic concepts Students will understand that
involved in sequential input. when a series of values are entered into an input stream they are read from the stream in the same order in which they are entered.
2B. Students will be able to read the documentation for an object that will provide them with input or output and utilize that object accordingly.
2C. Students will be able to use the Integer and Double static parse methods to convert Strings into numbers
Useful when input is given as a string and needs to be converted into a number.
Possible IO packages include:
ObjectDraw (mouse input) Swing (JOption Pane, and using other preset forms –
as the course progresses students will eventually modify the frame code to create they layout of objects that they want)
Simple IO classes created by teacher to read from a file
Please note that these are not specifically recommended – they are just examples of possible IO packages that can be used for this unit.
Methods
Strands/Learning Outcomes Comments3A. Students will be able to, given the outline of a data storage object, write simple methods that involve return statements with either just member data, a quick mathematical operation, or apply the IO principles covered already in the course.
Part II of case study
3B. Students will be able to identify the difference between a regular method and a static method and how that applies to how the method is called.
Using other static methods inside the main method similar to free functions in C++ (Also use of Color.red, etc. as static …)
3C. Students will know the rules of calling methods as they apply to calling a method from within the same object, as well as calling a method from an object reference.
3D. Students will be able to read inherited objects, recognizing the ability to call super class methods as if they were members of the same object.
Decision Structures:
Strands/Learning Outcomes Comments4A. Students will be able to use boolean expressions to return a true or false value from a method.
Part III Case Study
4B. Students will be able to use if/then structures within methods to control the result of a method call.
4C. Students will be able to utilize boolean method calls within an if/then structure
4D. Students will be able to relational and logical operators to form complex boolean statements
4E. Students will be able to trace code containing boolean statements.
4F. Students will understand the creation and use of a class variable as a counter.
Looping Structures
Strands/Learning Outcomes Comments5A. Students will be able to recognize patterns in code that can be condensed into a repetition structure
Part IV of case study
5B. Students will be able to use a for structure to condense code that contains patterns.
Adding a series of objects to a collection..
5C. Students will understand the underlying structure of a collection class and be able to store values in a set.
5D. Students will be able to use a while structure to loop through an unknown number of iterations
Using an iterator (while(it.hasNext()) to retrieve values stored in a set.
5E. Students will be able to perform the following algorithms using either a set or an ArrayList and an iterator:
Place a series of values inside a collection Print a series of objects stored in a collection
Perform a simple search of a series of objects in
Many of these algorithms were done in procedural programs from a series of input values. The use of collection classes (and abstract IO classes) allows for the implementation of these algorithms with abstract collections (sets and lists).
an Iterator
Sort the items stored in an unordered collection (such as a set) and transfer the sorted group to a list
Count objects with a specific attribute stored in a collection
Accumulate a total based upon an attribute of an object (ie. You have a collection of car dealerships from an area. Find the total number of cars sold within the area – sum of cars sold at each individual dealer)
5F. Students will be able to use object casting when retrieving an object from a container
Introduction to Indexing/Array Lists
Strands/Learning Outcomes Comments6A. Students will be able to iterate through an ArrayList using the .get() method with an index value.
6B. Students will be able perform the algorithms addressed in the previous chapter using indexing of a list as opposed to iterating through a collection.
6C. Students will be able to use ArrayLists whose subscripts are representative of an aspect of the data
6D. Students will understand the concept of object casting and the need for it when using container classes. Students will also be able to determine appropriate casting based on sub and super class relationships
AP I: More Algorithms for Collections
Strands/Learning Outcomes CommentsAP1A. Students will be able to identify the three main interface collection classes specified by the subset and describe the individual properties of
Set, Map, List
each.AP1B. Students will be able to identify and read documentation for the instance classes that implement the interfaces from CCA.
HashSet, TreeSet, HashMap,TreeMap, LinkedList
AP1C. Students will be able to implement data structure changes to the MBS Case Study using the Collection Classes for environment implementations.
Case Study Part V
AP1D. Students will have knowledge of abstraction and how it applies to interface and implementation classes as demonstrated through the collection classes.
AP1E. Students will become familiar with different sort algorithms and the timing (Big-O) associated with each.
AP1F. Students will be able to trace and make generic statements about algorithms using a variety of data structures.
AP1G. Students will be able to take an implementation of an algorithm andreimplement it using a different collection class, and discuss the ramifications in memory and timing associated with the changes.
Recursion
Strands/Learning Outcomes CommentsAP2A. Students will be able to identify a recursive method from code.
AP2B. Students will be able to name the base case of a recursive method
AP2C. Students will be able to trace recursive method calls and predict outcome of code based upon input values
AP2D. Students will be able to use abstraction to make generalized statements about a recursive method without being given a specific starting value or series of values.
s
Built in Arrays/2D Arrays
Strands/Learning Outcomes CommentsAP3A. Students will be able to make comparisons between lists and built in 1 dimensional arrays
AP3B. Students will be able to construct, fill, and manipulate 1 dimensional arrays of primitive values
AP3C. Students will be able to construct, fill, and manipulate 1 dimensional arrays of objects, and recognize the impact of the null references for unconstructed objects that belong to that array
AP3D. Students will be able to recreate the algorithms used in chapters 5 and 6 with iterators and ArrayLists for 1 dimensional arrays.
AP3E. Students will be able to pass arrays to methods and write methods with return values that are arrays
AP3F. Students will be able to construct two dimensional arrays of primitives and objects
AP3G. Students will be able to perform the following algorithms with two dimensional arrays:
Traverse the two dimensional array for the purpose of storing information.
Print all elements of the array (or some property thereof)
Traverse the array with a counter, counting elements with a specific attribute
Traverse the array with an accumulator, performing a mathematical calculation based upon data stored in the two dimensional array
Traverse the array and change the state of the items stored within it
Stacks and Queues
Strands/Learning Outcomes CommentsAP4A. Students will understand the difference between the usage of stacks, queues and priority queues.
FIFO and LIFO data structure…
AP4B. Students will apply the interface objects Stack, Queue, and Priority Queue as supplied by
the CollegeBoard to various problem solving situations.AP4C. Students will be able to implement the Stack, Queue, and Priority Queue interface objects using either the collection classes or the List/Tree Node objects supplied by the CollegeBoard.
AP5D. Students will be able to implement changes to the MBS Case Study using these data structures
List and Tree Implementations
Strands/Learning Outcomes CommentsAP5A. Students will be able to use (and trace code using) the ListNodeinterface supplied by the CollegeBoard to implement a linked list data structure
AP5B. Students will be able to implement the abstract Java List object usingListNode
AP5C. Students will be able to create data storage objects that use ListNodesas member data
AP5D. Students will be able to use (and trace code using) the TreeNodeinterface supplied by the CollegeBoard to implement a tree data structure
AP5E. Students will be able to implement a version of the abstract Java List object using TreeNode
AP5F. Students will be able to create data storage objects that use TreeNodesas member data
Object Oriented Design/Large Systems
Strands/Learning Outcomes CommentsAP6A. Students will be able to dissect a problem statement into a series of interacting objects that are representative of the data storage and controllers needed to solve the problem.
AP6B. Students will be able to write classes that implement the objects they describe from OODA.
AP6C. Students will be able to create object maps based on existing programs as well as ones they design
AP6D. Students will be able to write documentation of objects they design.