Académique Documents
Professionnel Documents
Culture Documents
PROJECT REPORT
ON
ONLINE TESTING
SUBMITTED IN THE PARTIAL FULFILMENT OF THE REQUIREMENT
FOR THE AWARD OF THE DEGREE
MASTER
OF
COMPUTER APPLICATION
Submitted to:
Submitted by:
Mr Sandeep Maan
Neelam
HOD,
Roll No
MCA-6th SEM
Contents
1. Certificate
2. Acknowledgement
3. Introduction to project
4. Project Plans
5. Introduction to language
6. Project Design
7. Coding
8. Project Testing
9. Conclusion
10. References
CERTIFICATE
This is to certify that Neelam is the student of Computer Science (Third year)
has completed the dissertation entitled ONLINE TESTING under my
supervision and they have completed with all requirements of the ordinance
for the submission of the dissertation. This is their original work and this
report is not submitted elsewhere for award of any degree .I recommend that
dissertation may be sent to evaluation.
Neelam
(Name of guide)
Mr.Sandeep Maan
H.O.D.
PROJECT OVERVIEW
This is an Online Test software, using Java, Swing and AWT. This project does the basic
operation of an Online Test,
In this project all the frames are designed in Swing. Today most programmers use Swing.
Swing is a set of classes that provides more powerful and flexible GUI components than
does the AWT. Swing provides the look and feel of the modern Java GUI.
Swing did not exist in the early days of Java. Rather, it was a response to deficiencies
present in Javas original GUI subsystem: the Abstract Window Toolkit. The AWT
defines a basic set of controls, windows, and dialog boxes that support a usable, but
limited graphical interface.
PROJECT PLANS
PROJECT PLANS
Team Structure
Team Will be comprising of two members.
Development Schedule
The work in developing the new system commented immediately with our first meeting with the
management and users thereafter we were in continuous touch with the management and users of the
company.
Testing
Once the code is generated, the software program testing begins. Different testing
methodologies are available to unravel the bugs that were committed during the previous
phases. Different testing tools and methodologies are already available. Some companies
build their own testing tools that are tailor made for their own development operations.
Maintenance
10
Software will definitely undergo change once it is delivered to the customer. There are
many reasons for the change. Change could happen because of some unexpected input
values into the system. In addition, the changes in the system could directly affect the
software operations. The software should be developed to accommodate changes that
could happen during the post implementation period.
11
INTRODUCTION TO LANGUAGE
JAVA
12
INTRODUCTION TO LANGUAGE
JAVA
TECHNOLOGY USED:
The strength of any project depends upon the technology on which the project is based.
Today we are living in a world where technologies related to information technology are
evolving every day, new technologies are taking an edge over the older ones. Every new
technology provides some new benefits, but only small part of them remains in the
competitive world. JAVA is the latest technology, which is in use nowadays and has
proved to be the most reliable development framework.
ABOUT JAVA:
Java technology is both a programming language and a platform.
The Java programming language is a high-level language that can be characterized by all
of the following buzzwords:
Simple
Object oriented
Distributed
Multithreaded
Dynamic
Architecture neutral
Portable
High performance
Robust
Secure
In the Java programming language, all source code is first written in plain text files
ending with the .java extension. Those source files are then compiled into .class files by
the javac compiler. A .class file does not contain code that is native to your processor; it
instead contains bytecodes the machine language of the Java Virtual Machine1 (Java
VM). The java launcher tool then runs your application with an instance of the Java
Virtual Machine.
13
14
15
PROJECT DESIGN
16
PROJECT DESIGN
Dialog Box for Student Name.
17
18
19
ER DIAGRAM
20
PROJECT CODING
21
PROJECT CODING
import java.awt. *;
import java.awt. event.*;
import javax.swing.*;
class QuestionSeries
{
static String info ="Java Online Test Week
\n \nINSTRUCTIONS:\nThere are 25
questions in this test and 10 minutes to complete them all.\nThe finish button is
highlighted in blue when you reach the end of the test. \nClicking the finish button will
display the results with the correct answers marked in light red. \n \nThe timecounter
begins when you click on the 'start' button \n \nBest of luck!\n";
"Question 2:\nWhat is the result of attempting to compile and run the following program
with \n\n>javac JavaApp.java\n>java JavaApp\n\nclass TryFirst{\n
\"javatest\";\n}\n\nclass
JavaApp{\n\npublic
static
System.out.println(new TryFirst().myString);\n}\n}\n",
22
void
String myString =
main(String[]
arg){\n
"Question 3: \nWhat is the result of attempting to compile and run the following
program with \n>javac JavaApp.java\n>java JavaApp\n\nclass MyJavaApp{ \n
myString
\"elephants\";
\npublic
static
void
main(String[]
String
arg){
\n
System.out.println(myString); \n } \n}\n",
"Question 4:\nWhat is the result?\n\nclass JavaApp{ \n public static void main(String[]
a){ \n
System.out.println(str);
\n } \n}\n",
int j=0;\n
System.out.println(j);
\n } \n}\n",
int num1;\n
System.out.println(num2); \n } \n}\n",
number1=2;\n
number2= number1 * 2
number1=2;\n
number2=
"Question 9:\nWhat is the result?\n\nclass JavaApp{ \n static int number1 = 3;\n public
static void main(String[] arg)\n int number2 = 7;\n number2= number2 + number1 * 2
+3;\n System.out.println(number2); \n } \n}\n",
23
"Question 10:\nWhat is the result of compiling and running the following code?\n\nclass
JavaApp{ \n public static void main(String[] a){\n
System.out.println(x); \n } \n}\n",
static
void
main(String[]
a){\n
int
num
text.length;\n
System.out.println(num); \n } \n}\n",
"Question 12:\nWhat would be the result here?\n\nclass Myclass{ \n public static void
main(String[] a){\n
char []rabbit={'a','b','c','d'};\n
System.out.println(num); \n } \n}\n",
main(String[]
String
a){\n
int
number
10;\n
mystr
"Question 14:\nWhat would be the result if we were to run this program with\n>java
MyJavaApp hello java world ?\n\nclass MyJavaApp{ \npublic static void main(String[]
args){\n System.out.println(args[1]); \n } \n}\n",
double d =1.75;\n
int i = d;\n
System.out.println(i++); \n } \n}\n",
"Question 16:\nWhat is the result of this program?\n\nclass MyJavaApp{ \n public
static void main(String[] a){\n
24
double d =1.25
double d =1.25
f = 1.25;
\n
System.out.println(f*4); \n } \n}\n",
"Question 19:\nWhat is the result of this program?\n\nclass JavaApp{ \n static float f;\n
public static void main(String[] ar){\n
f = (float)1.25 * 2;
\n
num += num;\n
System.out.println(num); \n } \n}\n",
double d = 1.56789;\n
System.out.println(num); \n } \n}\n",
double d = 1.56789;\n
System.out.println(num); \n } \n}\n",
System.out.println(number1); \n
int number2 =
"Question 24:\nWhat is the result of this program?\n\nclass TryApp{ \npublic static void
main(String[] arg){\n
System.out.println(num); \n } \n}\n",
System.out.print(j+i+\",\");
\n } \n}\n"
};
Static String [][]answers ={
{"It will not compile as the main method String is not an array\n","It will compile but
there will be a runtime error if we try to run it with:- \n>java JavaApp\n","The program is
fine, but we will need another program to run it and get the output.\n","It will compile
and run and output \"java\" to the screen\n"},
{"It will not compile as you cannot have 2 java source files on the same page\n"," \nIt
will output \"javatest","It will not compile as the String myString is not-static and it is
being accessed from a static method\n"," \nIt compiles but there is no output at
runtime\n"},
{" \nFine - it will output elephants\n","Runtime error MyJavaApp is not
public\n","Compiler error myString is a non-static variable being accessed in a static
method\n","Compile error in the main() method\n"},
{" \nIt will output hello\n","The out put will be \nhello\nhello\n"," \nNo output the for
loop needs a ' ; ' at the end\n"," \nCompilation error for loops have to start with a
zero\n"},
{" \n3\n"," \n6\n"," \n4\n"," \n2\n"},
{" \n17\n"," \n5\n"," \n3\n","It won't compile\n"},
{" \n14\n"," \n7\n"," \n17\n"," \nError.\n"},
{" \n16\n"," \n14\n"," \n7\n"," \nError\n"},
{" \n15\n"," \n23\n"," \n50\n"," \nError\n"},
26
{" \n1\n"," \nYou cannot predict the random result\n"," \n0\n"," \nError\n"},
{" \n6\n"," \n5\n"," \n0\n"," \nError\n"},
{" \n4\n"," \n3\n"," \n0\n"," \nError\n"},
{" \n00001010\n"," \n10\n"," \n1010\n"," \nError\n"},
{"hello java world\n"," \nhello\n"," \njava\n"," \nworld\n"},
{" \n1.75\n"," \n2\n"," \n3\n"," \nError\n"},
{" \n3.25\n"," \n2.25\n"," \n2.2... and a very long number\n"," \nThe code will not
compile\n"},
{" \n2.5\n"," \n2.25\n"," \n2.2 ... -something and a very long number\n"," \nThe code will
not compile\n"},
{" \nError float f is not initialised\n"," \noutput: 5\n"," \noutput: 5.0\n"," \nError, this is
not a valid way to initialise a float type variable\n"},
{" \n4.0\n"," \n5\n"," \n5.0\n"," \nError, it will not compile\n"},
{" \n128\n"," \n-128\n"," \n1\n"," \nError, number is out of range\n"},
{" \n1\n"," \n2\n"," \n1.0\n"," \nError\n"},
{"3. - and to 15 decimal places\n"," \n2\n"," \n3\n"," \nError\n"},
{" 2 \n-2\n"," 1\n-2\n"," 2\n-1\n"," 1\n-1\n"},
{" \n1\n"," \n3\n"," \n4\n"," \n6\n"},
{"1,2,2,3,3,4\n","1,2,3,3,4,6\n","1,2,3,4\n"," \n0,1,1,2,2,3,3,4\n"}
};
/* OnlineTest class */
static {
try{
TOTAL = QuestionSeries.tally;
/*
28
/* OnlineTest Constructor */
protected Main(){
for (int i=0; i<TOTAL; i++) answers[i] ="";
getContentPane().setLayout(new BorderLayout() );
getContentPane().add("North", panelNorth);
getContentPane().add("South", panelSouth);
getContentPane().add("Center", panelCenter);
int width = 0, height=0;
if(java.awt.Toolkit.getDefaultToolkit().getScreenSize().getWidth()<799){width=
640;
height=460; }
else {width=720; height=540; }
29
setSize(width,height);
Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setLocation((dim.width-width)/2, (dim.height-height)/2);
}
30
setLayout(new GridLayout(2,2));
setBackground(new Color(230, 230, 255));
student = new JLabel("\t Welcome : "+studentname+" to the Online Java
Test");
student.setFont(new Font("",Font.BOLD,16) );
message = new JLabel();
message.setForeground(Color.blue);
add(student);
add(message);
add(new JLabel("
") );
add(new JLabel("
") );
setBorder(BorderFactory.createEtchedBorder() );
}
}
}
}
timecounter.setForeground(new Color(0,90,20) );
northEast.add(timecounter);
westEast.add(new JLabel(" "));
String []boxs = {" A ", " B ", " C ", " D "};
for(int i=0; i<boxes.length; i++)
{
boxes[i] = new JCheckBox(boxs[i]);
boxes[i].addItemListener(new ItemHandler() );
westEast.add(boxes[i]);
}
westEast.add(new JLabel() );
choose = new JLabel(" CHOOSE CORRECT ANSWERS");
choose.setBorder(BorderFactory.createEtchedBorder() );
centerEast.add(choose);
JScrollPane panes[] = new JScrollPane[4];
for(int i=0; i<answerboxes.length; i++)
{
answerboxes[i] = new JTextArea();
answerboxes[i].setBorder(BorderFactory.createEtchedBorder() );
answerboxes[i].setEditable(false);
answerboxes[i].setBackground(Color.white);
answerboxes[i].setFont(new Font("",0,12) );
answerboxes[i].setLineWrap(true);
answerboxes[i].setWrapStyleWord(true);
panes[i] = new JScrollPane(answerboxes[i]);
centerEast.add(panes[i]);
}
If (TIMELIMIT >0)
33
minutes to complete.");
else
testresult = new JLabel("
testresult.setBorder(BorderFactory.createEtchedBorder() );
centerEast.add(testresult);
add(west);
add(east);
}
}
/**** ActionHandler class to handle all the action events from the buttons. **/
/* actionPerformed method */
public void actionPerformed(ActionEvent evt){
String source = evt.getActionCommand();
If (source.equals("start:"))
{
choice_button[1].setVisible(false);
start_test=true;
allowRestart=true;
if (TIMELIMIT >0)new Timer(); // inner Timer class
panelSouth.remove(choice_button[1]); //start
displayquestion();
}
34
If (start_test)
{
If (source.equals("previous:"))
{
recordanswer();
quesnum--;
if (quesnum == -1)
quesnum=TOTAL-1;
checkteststatus();
displayquestion();
}
If (source.equals("next:"))
{
Recordanswer ();
Quesnum++;
if(quesnum == TOTAL-1) finishtest=true;
if(quesnum == TOTAL) quesnum=0;
checkteststatus();
displayquestion();
}
If (source.equals("finish:"))
{
if (finishtest)
{
recordanswer();
quesnum = 0;
choice_button[4].setBackground(Color.lightGray);
timecounter.setForeground(Color.blue);
35
"User Message",JOptionPane.INFORMATION_MESSAGE);
}
}
if (check_answer)
{
if (source.equals("check next:"))
{
quesnum++;
if(quesnum == TOTAL) quesnum=0;
mark_ques();
displayquestion();
checkteststatus();
}
if(source.equals("check previous:"))
36
{
quesnum--;
if(quesnum == -1) quesnum=TOTAL-1;
mark_ques();
displayquestion();
checkteststatus();
}
}
validate();
}
/* Timer class */
seconds = 60;
37
minutes++;
}
timecounter.setText ("Time Counter: "+minutes+" mins : "+seconds+" secs ");
if (minutes==TIMELIMIT)
{ start_test=false;
endTest();
}
}
catch(InterruptedException ex) { System.out.print(ex); }
}
}
}
/* checkteststatus method */
boxes[i].setSelected(false);
}
/* displayquestion method */
String temp="";
If (QuestionSeries.n[quesnum]==1)
temp="<html>
Choose only <b>ONE</b> Option</html>";
Elseif (QuestionSeries.n[quesnum]==2)
temp="<html>
Choose <b>TWO </b> Options</html>";
Elseif (QuestionSeries.n[quesnum]==3)
temp="<html>
Choose <b>THREE</b> Options</html>";
else
39
temp="<html>
<b>ALL are true</b> true</html>";
choose.setText(temp);
}
Else
{
timecounter.setText(" Your choices are shown in the boxes");
choose.setText(" Correct answers are marked in light red.");
}
}
/* endTest method */
choice_button[4].setEnabled(true);
}
41
"+mark+" out of
"+TOTAL+": "+df.format(temp/TOTAL*100)+"%");
new Resultwindow().show();
}
}
/* Resultwindow class */
cont.setBackground(new Color(255,220,255) );
cont.add(new JLabel(" "+"Marks: "+mark+"/"+TOTAL+": "+"Percentage:
"+(mark*100/TOTAL)+"%") );
for(int i=0; i<3; i++)cont.add(new JLabel() );
String temp[] = new String[TOTAL];
for(int i=0; i<TOTAL; i++){
if(QuestionSeries.choice[i].equals(answers[i]))
temp[i]="correct";
else temp[i]="wrong";
}
for(int i=0; i<TOTAL; i++) cont.add(new JLabel("
"+(i+1)+": "+temp
Question
[i]) );
pack();
setLocation(200,200);
}
}
/* ItemHandler class */
size='4'
Information
Message",JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null,"<html><font
size='4'
color='00308a'><center>"+
"There are only "+QuestionSeries.n[quesnum]+" possible<br> answers to
question "+(quesnum+1)+
"<html>","User
Information
Message",JOptionPane.INFORMATION_MESSAGE);
}
itemCheck=0;
}
}
}
44
/* main method */
45
/import java.awt. *;
import java.awt. event.*;
import javax.swing.*;
class QuestionSeries
{
static String info ="Java Online Test Week
\n \nINSTRUCTIONS:\nThere are 25
questions in this test and 10 minutes to complete them all.\nThe finish button is
highlighted in blue when you reach the end of the test. \nClicking the finish button will
display the results with the correct answers marked in light red. \n \nThe timecounter
begins when you click on the 'start' button \n \nBest of luck!\n";
static String []question ={"Question 1:\nWhat is the result of attempting to compile and
run the following program?\n\npublic class JavaAppclass{\npublic static void
main(String
args){\n
String
System.out.println(myString);\n }\n}\n",
46
myString
\"javaprograms\";\n
"Question 2:\nWhat is the result of attempting to compile and run the following program
with \n\n>javac JavaApp.java\n>java JavaApp\n\nclass TryFirst{\n
\"javatest\";\n}\n\nclass
JavaApp{\n\npublic
static
void
String myString =
main(String[]
arg){\n
System.out.println(new TryFirst().myString);\n}\n}\n",
"Question 3: \nWhat is the result of attempting to compile and run the following
program with \n>javac JavaApp.java\n>java JavaApp\n\nclass MyJavaApp{ \n
myString
\"elephants\";
\npublic
static
void
main(String[]
String
arg){
\n
System.out.println(myString); \n } \n}\n",
"Question 4:\nWhat is the result?\n\nclass JavaApp{ \n public static void main(String[]
a){ \n
System.out.println(str);
\n } \n}\n",
"Question 5:\nWhat is the result here?\n\nclass MyJavaApp{ \n
main(String[] a){ \n
int j=0;\n
System.out.println(j);
\n } \n}\n",
"Question 6:\nWhat is the result?\n\nclass MyJavaApp{ \n
main(String[] a){ \n
int num1;\n
System.out.println(num2); \n } \n}\n",
"Question 7:\nWhat is the result?\n\nclass MyJavaApp{ \n int num1;\n public static
void main(String[] a){ \n
number1=2;\n
47
number2= number1 * 2
"Question 8:\nWhat is the result?\n\nclass JavaApp{ \n static int number1 = 4;\n public
static void main(String[] a){ \n
number1=2;\n
number2=
System.out.println(x); \n } \n}\n",
"Question 11:\nWhat is the result?\n\nclass Tryclass{ \n static String text = \"rabbit\";\n
public
static
void
main(String[]
a){\n
int
num
text.length;\n
System.out.println(num); \n } \n}\n",
"Question 12:\nWhat would be the result here?\n\nclass Myclass{ \n public static void
main(String[] a){\n
char []rabbit={'a','b','c','d'};\n
System.out.println(num); \n } \n}\n",
"Question 13:\nWhat is the result here?\n\nclass JavaApp{ \n
main(String[]
String
a){\n
int
number
10;\n
mystr
double d =1.75;\n
int i = d;\n
System.out.println(i++); \n } \n}\n",
"Question 16:\nWhat is the result of this program?\n\nclass MyJavaApp{ \n public
static void main(String[] a){\n
double d =1.25
double d =1.25
f = 1.25;
\n
System.out.println(f*4); \n } \n}\n",
"Question 19:\nWhat is the result of this program?\n\nclass JavaApp{ \n static float f;\n
public static void main(String[] ar){\n
f = (float)1.25 * 2;
\n
num += num;\n
System.out.println(num); \n } \n}\n",
"Question 21:\nWhat is the result of this program?\n\nclass JavaApp{ \n public static
void main(String[] a){\n
double d = 1.56789;\n
System.out.println(num); \n } \n}\n",
49
double d = 1.56789;\n
System.out.println(num); \n } \n}\n",
"Question 23:\nWhat is the result of this program?\n\nclass MyJavaApp{\npublic static
void main(String[] arg){\n
+0.5);\n
System.out.println(number1); \n
int number2 =
System.out.println(num); \n } \n}\n",
"Question 25:\nWhat is the result?\n\nclass MyApp{ \n public static void main(String[]
ar){\n
\n } \n}\n"
};
50
System.out.print(j+i+\",\");
static String [][]answers ={{"It will not compile as the main method String is not an
array\n","It will compile but there will be a runtime error if we try to run it with:- \n>java
JavaApp\n","The program is fine, but we will need another program to run it and get the
output.\n","It will compile and run and output \"java\" to the screen\n"},{"It will not
compile as you cannot have 2 java source files on the same page\n"," \nIt will output
\"javatest","It will not compile as the String myString is not-static and it is being accessed
from a static method\n"," \nIt compiles but there is no output at runtime\n"},{" \nFine - it
will output elephants\n","Runtime error MyJavaApp is not public\n","Compiler error
myString is a non-static variable being accessed in a static method\n","Compile error in
the
main()
method\n"},{"
\nIt
will
output
hello\n","The
out
put
will
be
\nhello\nhello\n"," \nNo output the for loop needs a ' ; ' at the end\n"," \nCompilation
error for loops have to start with a zero\n"},{" \n3\n"," \n6\n"," \n4\n"," \n2\n"},{"
\n17\n"," \n5\n"," \n3\n","It won't compile\n"},{" \n14\n"," \n7\n"," \n17\n","
\nError.\n"},{" \n16\n"," \n14\n"," \n7\n"," \nError\n"},{" \n15\n"," \n23\n"," \n50\n","
\nError\n"},{" \n1\n"," \nYou cannot predict the random result\n"," \n0\n","
\nError\n"},{" \n6\n"," \n5\n"," \n0\n"," \nError\n"},{" \n4\n"," \n3\n"," \n0\n","
\nError\n"},{" \n00001010\n"," \n10\n"," \n1010\n"," \nError\n"},{"hello java world\n","
\nhello\n"," \njava\n"," \nworld\n"},{" \n1.75\n"," \n2\n"," \n3\n"," \nError\n"},{"
\n3.25\n"," \n2.25\n"," \n2.2... and a very long number\n"," \nThe code will not
compile\n"},{" \n2.5\n"," \n2.25\n"," \n2.2 ... -something and a very long number\n","
\nThe code will not compile\n"},{" \nError float f is not initialised\n"," \noutput: 5\n","
51
\noutput: 5.0\n"," \nError, this is not a valid way to initialise a float type variable\n"},{"
\n4.0\n"," \n5\n"," \n5.0\n"," \nError, it will not compile\n"},{" \n128\n"," \n-128\n","
\n1\n"," \nError, number is out of range\n"},{" \n1\n"," \n2\n"," \n1.0\n","
\nError\n"},{"3. - and to 15 decimal places\n"," \n2\n"," \n3\n"," \nError\n"},{" 2 \n2\n","
1\n-2\n","
2\n-1\n","
1\n-1\n"},{"
\n1\n","
\n3\n","
\n4\n","
\n6\n"},{"1,2,2,3,3,4\n","1,2,3,3,4,6\n","1,2,3,4\n"," \n0,1,1,2,2,3,3,4\n"} };
String
[]choice=
{"23","2","3","1","1","4","4","3","4","3","4","1","3","3","4","4","2","4","3","2","2","3","
3","2","1"};
static int tally = choice.length;
static String testtitle="Java Programming Online Test";
static int timeLimit =10;
static int passMark = 15;
}
/* OnlineTest class */
static {
try{
TOTAL = QuestionSeries.tally;
/*
/* OnlineTest Constructor */
protected Main(){
for (int i=0; i<TOTAL; i++) answers[i] ="";
getContentPane().setLayout(new BorderLayout() );
getContentPane().add("North", panelNorth);
getContentPane().add("South", panelSouth);
getContentPane().add("Center", panelCenter);
int width = 0, height=0;
if(java.awt.Toolkit.getDefaultToolkit().getScreenSize().getWidth()<799){width=
640;
height=460; }
else {width=720; height=540; }
setSize(width,height);
Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
54
setLocation((dim.width-width)/2, (dim.height-height)/2);
}
/**
** Northwindow class
**/
/**
** Northwindow constructor
**/
public Northwindow(){
setLayout(new GridLayout(2,2));
setBackground(new Color(230, 230, 255));
student = new JLabel("\t Welcome : "+studentname+" to the Online Java
Test");
student.setFont(new Font("",Font.BOLD,16) );
message = new JLabel();
message.setForeground(Color.blue);
add(student);
55
add(message);
add(new JLabel("
") );
add(new JLabel("
") );
setBorder(BorderFactory.createEtchedBorder() );
}
}
/**
** Southwindow class
**/
class Southwindow extends JPanel{
public Southwindow(){
String []key = {"","start:","next:","finish:","check next:","check previous:"};
for(int i=0; i<choice_button.length; i++)
{
choice_button[i] = new JButton(key[i]);
choice_button[i].addActionListener(new ActionHandler() );
if(i !=0)add(choice_button[i]);
}
setBorder(BorderFactory.createEtchedBorder() );
}
56
/**
** Centerwindow class
**/
class Centerwindow extends JPanel{
public Centerwindow(){
setLayout(new GridLayout(1,2) );
JScrollPane west = new JScrollPane(pane);
pane.setForeground(Color.red);
pane.setFont(new Font ("monospaced",0,12) );
pane.setText(QuestionSeries.info);
pane.setEditable(false);
JPanel east = new JPanel();
east.setLayout(new BorderLayout() );
JPanel northEast = new JPanel();
northEast.setBackground(new Color(230, 230, 255) );
east.add("North", northEast);
JPanel westEast = new JPanel();
westEast.setLayout(new GridLayout(6,1) );
57
east.add("West", westEast);
JPanel centerEast = new JPanel();
centerEast.setLayout(new GridLayout(6,1) );
centerEast.setBackground(new Color(255,255,200));
east.add("Center", centerEast);
timecounter = new JLabel("
total");
timecounter.setFont(new Font ("Arial",Font.BOLD,16) );
timecounter.setForeground(new Color(0,90,20) );
northEast.add(timecounter);
westEast.add(new JLabel(" "));
String []boxs = {" A ", " B ", " C ", " D "};
for(int i=0; i<boxes.length; i++) {
boxes[i] = new JCheckBox(boxs[i]);
boxes[i].addItemListener(new ItemHandler() );
westEast.add(boxes[i]);
}
westEast.add(new JLabel() );
choose = new JLabel(" CHOOSE CORRECT ANSWERS");
choose.setBorder(BorderFactory.createEtchedBorder() );
centerEast.add(choose);
58
testresult.setBorder(BorderFactory.createEtchedBorder() );
centerEast.add(testresult);
add(west);
add(east);
}
}
59
/**
** ActionHandler class to handle all the action events from the buttons.
**/
/* actionPerformed method */
public void actionPerformed(ActionEvent evt){
String source = evt.getActionCommand();
if(source.equals("start:")){
choice_button[1].setVisible(false);
start_test=true;
allowRestart=true;
if(TIMELIMIT >0)new Timer(); // inner Timer class
panelSouth.remove(choice_button[1]); //start
displayquestion();
}
if(start_test){
if(source.equals("previous:")) {
recordanswer();
quesnum--;
if(quesnum == -1) quesnum=TOTAL-1;
checkteststatus();
displayquestion();
}
if(source.equals("next:")) {
recordanswer();
60
quesnum++;
if(quesnum == TOTAL-1) finishtest=true;
if(quesnum == TOTAL) quesnum=0;
checkteststatus();
displayquestion();
}
if(source.equals("finish:")) {
if (finishtest){
recordanswer();
quesnum = 0;
choice_button[4].setBackground(Color.lightGray);
timecounter.setForeground(Color.blue);
timecounter.setFont(new Font ("Arial",0,14) );
start_test=false;
check_answer=true;
panelSouth.add(choice_button[0]);
mark_ques();
displayquestion();
checkteststatus();
calculateResult();
}
else
JOptionPane.showMessageDialog(null,"Cycle
"User Message",JOptionPane.INFORMATION_MESSAGE);
}
}
61
through
all
if (check_answer){
if(source.equals("check next:")) {
quesnum++;
if(quesnum == TOTAL) quesnum=0;
mark_ques();
displayquestion();
checkteststatus();
}
if(source.equals("check previous:")) {
quesnum--;
if(quesnum == -1) quesnum=TOTAL-1;
mark_ques();
displayquestion();
checkteststatus();
}
}
validate();
}
/* Timer class */
while(start_test){
try {
Thread.sleep(1000);
seconds++;
if(seconds % 60 == 0 && seconds != 0){
seconds -= 60;
minutes++;
}
timecounter.setText("
/* checkteststatus method */
==
1)&&(start_test))choice_button[3].setBackground(Color.green);
else choice_button[4].setBackground(Color.lightGray);
if(answers[quesnum].length() >0){
for(int i=0; i<answers[quesnum].length(); i++)
63
TOTAL-
boxes[Integer.parseInt(answers[quesnum].substring(i,i+1)
1].setSelected
)-
(true);
}
else for(int i=0; i<boxes.length; i++)boxes[i].setSelected(false);
}
/* displayquestion method */
<b>ONE</b> Option</html>";
if(QuestionSeries.n[quesnum]==2)
temp="<html> Choose <b>TWO
else
</b> Options</html>";
if(QuestionSeries.n[quesnum]==3)
temp="<html> Choose <b>THREE</b>
Options</html>";
}
else {
timecounter.setText(" Your choices are shown in the boxes");
choose.setText(" Correct answers are marked in light red.");
}
}
/* endTest method */
65
i=0;
i<answerboxes.length;
i++)
answerboxes[i].setBackground(Color.white);
for(int i=0; i<QuestionSeries.choice[quesnum].length(); i++)
answerboxes[Integer.parseInt(QuestionSeries.choice[quesnum].substring(i,i+1))1].setBackground(Color.red);
if(QuestionSeries.choice[quesnum].equals(answers[quesnum]))
message.setText("Answer correct, well done!");
else message.setText("Sorry, you got this one wrong.");
}
i=0;
i<TOTAL;
i++)if(QuestionSeries.choice[i].equals(answers[i]))mark++;
temp=(double)mark;
if(temp/TOTAL*100
>=PASS)
testresult.setText("
Well
done
testresult.setText("
Better
"+studentname.substring(0,studentname.indexOf(' ') ) );
66
luck
next
time
"+mark+" out of
"+TOTAL+": "+df.format(temp/TOTAL*100)+"%");
new Resultwindow().show();
}
}
/* Resultwindow class */
}
for(int i=0; i<TOTAL; i++) cont.add(new JLabel("
"+(i+1)+": "+temp
Question
[i]) );
pack();
setLocation(200,200);
}
}
/* ItemHandler class */
size='4'
color='00308a'><center>"+
"There is only "+QuestionSeries.n[quesnum]+" possible<br> answer to question
"+(quesnum+1)+
68
"<html>","User
Information
Message",JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null,"<html><font
size='4'
color='00308a'><center>"+
"There are only "+QuestionSeries.n[quesnum]+" possible<br> answers to
question "+(quesnum+1)+
"<html>","User
Information
Message",JOptionPane.INFORMATION_MESSAGE);
}
itemCheck=0;
}
}
}
69
/* main method */
70
FLOW CHART
71
FLOW CHART
72
FLOW CHART
73
FLOW CHART
74
FLOW CHART
75
PROJECT TESTING
76
PROJECT TESTING
The basic purpose of the testing phase is to detect the errors that may be present in the
program. However often the aim of testing is to demonstrate that a program works by
showing that it has no errors, this is opposite of what testing should be viewed as .So
testing can be defined as:
TESTING IS THE PROCESS OF EXECUTING A PROGRAM WITH THE INTENT
OF FINDING ERRORS.
Testing is the process of executing a program/system with the intent of finding errors.
The emphasis is on the deliberate intent of finding errors. This is quite different to simply
proving that a program or system works. The fundamental purpose of software testing is
to find problems in the software so that they can be fixed, resulting in code that is more
reliable, stable and more closely matches what the real end-user wants.
Each test report is in the form of a java source file, split into three sections:
1. A summary of the test (date, tester, etc)
2. Test code
3. Actual test results
77
Therefore each report will have the standard header, and will be self contained and
complete. Software testing is the process of testing the software product. Effective
software testing will contribute to the delivery of higher quality software products ,more
satisfied users ,and lowers maintainance costs ,more accurate and reliable results.
However ,ineffective testing will lead to the opposite results .It is a very expensive
process and consumes one third to one-half of the cost of a typical development project.
The testing of newly developed software , prior to its actual use ,is a commonly followed
practice. It is the process of executing program (or a part of program) with the intention
of finding errors. However, testing cannot show the absence of errors it can only show
that errors are present.
78
ER DIAGRAM
79
1. UNIT TESTING:
The starting point of testing is unit testing. Unit testing is the process of taking a module
and running it in isolation from the rest of the software product by using prepared test
cases and comparing the actual results with the results predicted by the specification and
design of the module. The purpose of this phase (also called the implementation phase) of
software development is to translate the software design in to source code. During the
implementation phase ,each component of the design is implemented as a program
module ,and each of these program modules is unit tested (i.e; tested independently as a
stand alone unit),debugged ,and documented .The purpose of unit testing is to determine
the correct working of the individual modules.The end-product of the implementation
phase is a set of program modules that have been individually tested.
2.INTEGRATION TESTING:
Integration testing follows unit testing. It is performed to determine that the interface
between modules is also correct .One specific target of integration testing is the interface:
whether parameters match on both sides as to type ,permissible ranges, meaning and
utilization .During integration testing the focus is on interconnections between various
components.
80
81
CONCLUSIONS
82
Conclusions
This project that I undertook was truly a very rewarding experience for me in
more than one way. It has given a big thrust to my technical knowledge as
prospective Software professional. It has also helped me enhance my skills on
the personal front.
And I feel extremely satisfied by the fact that I have managed to develop the
project of course with equal contribution from my team members. I think I
have exploited the opportunity that came my way to the fullest extent by
increasing my technical know-how and also gaining the valuable work
experience apart from studying the other subjects in our curriculum.
83
REFERENCES
84
References
Complete reference in Java by Patrick Naughton
Complete reference in Java 2 by Herbert Schildt
Programming in Java by E.Balagursamy.
Www. google .com
www.java.co.in
85