Sie sind auf Seite 1von 41

TRAINING REPORT

ON

APTECH ONLINE TESTING


BACHELOR OF TECHNOLOGY COMPUTER SCIENCE M.D. UNIVERSITY, ROHTAK BY Vaibhav Yadav 2k8-MRCE-CS-061

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING M.R. COLLEGE OF ENGINEERING FARIDABAD

Contents

1. Certificate....(3) 2. Acknowledgement ..(4) 3. Introduction to project.....(5) 4. Project Plans(7) 5. Introduction to language(10) 6. Project Design....(12)
7. 8. 9. 10.

Coding....(15) Project Testing(38) Conclusion......(40) References.....(41)

CERTIFICATE

This is to certify that VAIBHAV YADAV is the student of Computer Science Engineering (third year) Roll no. 2K8-MRCE-CS-061 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.I recommend that dissertation may be sent to evaluation.

Ms. Jyoti (Name of guide)

Ms. Hanu Bhardwaj H.O.D.(CSE Dept)

ACKNOWLEGMENT

Training is agglomeration of the theoretical and practical and technical concepts, which enhances our skills in the field of technology. No academic endeavor can be single

handedly accomplished our sincere gratitude is the staff of

APTECH Computer

Education,Pitampura. For their kind assistance and provision of our training. I sincerely acknowledge my thanks to the teachers for their guidance and motivation throughout the training and project work. I would also like to record my gratitude to Miss Inakshi for giving me a chance for a successful training here. Last, but not the least, I would like to thanks all our companions for their help which was in abundance

VAIBHAV YADAV 2K8-MRCE-CS-061

INTRODUCTION & OVERVIEW OF PROJECT


INTRODUCTION

The project is based on ONLINE TEST. This software firm deals in developing software for its clients. This a Notepad, using Java, Swing and AWT. In modern civilization has become so complicated and sophisticated that to survive one has to be competitive. This compiles the people to be acquainted with all type of happening in the society; mankind is surrounded with a vast amount of data available. Modern business management system has also rendered in a fashion so that it can be utilized with minimum possible time. Paper files require a high amount of storage space and storage creates several other problems like fire risk, spoilage and deterioration by way of aging humidity etc. Computerization of documents and the files has solved this problem to create extent. Not only this, but it has to be high amount of relaxation to human mind, as everything can be automated. Now the documents can in a number of ways, styles and number of documents can be created as and when required without making any mistakes. The suitable of computerization for an application may be determined as follows: Volume of storage and calculation: Computerization is best suited to handle large volume of data. The sufficient, economic and reliable storage characteristic of computer media must be exploited properly. Quality of Output: Quality of output in terms of accuracy, elegance of output, aesthetics in formality through use of word processing and powerful editing could justify use of a computer. Computerized solutions should be cost justifiable: Money, time saving and efficiency justify the cost of preparing writing and executing a program, Now-computer devices such as calculator can perform money tasks more economically.

PROJECT OVERVIEW
This a Online Test software, using Java, Swing and AWT. This project does the basic operation of a Online Test,
5

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
Team Structure
6

Team Will be comprising of two members. Our very able and helpful project guide Mr. Vivek Sood. Surbhi Bansal (Trainee), Chitkara Institute of Engineering & Technology ,Jansla(Pb).

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.

Phases Involved in the development of the system


Identify needs and benefits Held meetings with the management and user Studied and identified the existing system. Identify needs and project constraints Established project statements Prepared a detailed report of the existing system at work. Prepare the software requirement specifications . Actual coding started

SYSTEM DEVELOPMENT LIFE CYCLE MODEL (SDLC MODEL)


This is also known as Classic Life Cycle Model (or) Linear Sequential Model (or) Waterfall Method. This has the following activities. 1. System/Information Engineering and Modeling 2. Software Requirements Analysis 3. Systems Analysis and Design 4. Code Generation 5. Testing 6. Maintenance

System/Information Engineering and Modeling As software is always of a large system (or business), work begins by establishing requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when software must interface with other elements such as hardware, people and other resources. System is the basic and very critical requirement for the existence of software in any entity. So if the system is not in place, the system should be engineered and put in place. In some cases, to extract the maximum output, the system should be re-engineered and spruced up. Once the ideal system is engineered or tuned, the development team studies the software requirement for the system. Software Requirement Analysis This is also known as feasibility study. In this phase, the development team visits the customer and studies their system. They investigate the need for possible software automation in the given system. By the end of the feasibility study, the team furnishes a document that holds the different specific recommendations for the candidate system. It also includes the personnel assignments, costs, project schedule, and target dates. The requirements gathering process is intensified and focused specially on software. To understand the nature of the program(s) to be built, the system engineer ("analyst") must understand the information domain for the software, as well as required function, behavior, performance and interfacing. The essential purpose of this phase is to find the need and to define the problem that needs to be solved. System Analysis and Design In this phase, the software development process, the software's overall structure and its nuances are defined. In terms of the client/server technology, the number of tiers needed for the package architecture, the database design, the data structure design etc are all defined in this phase. A software development model is created. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

Code generation The design must be translated into a machine-readable form. The code generation step performs this task. If the design is performed in a detailed manner, code generation can be accomplished without much complication. Programming tools like Compilers, Interpreters, and Debuggers are used to generate the code. Different high level programming languages like C, C++, Pascal, and Java are used for coding. With respect to the type of application, the right programming language is chosen.

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

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.

10

The JAVA Platform A platform is the hardware or software environment in which a program runs. The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other hardware-based platforms. The Java platform has two components:

The Java Virtual Machine. The Java Application Programming Interface (API).

The general-purpose, high-level Java programming language is a powerful software platform. Every full implementation of the Java platform gives you the following features: Development Tools: The development tools provide everything you'll need for compiling, running, monitoring, debugging, and documenting your applications. As a new developer, the main tools you'll be using are the javac compiler, the java launcher, and the javadoc documentation tool. Application Programming Interface (API): The API provides the core functionality of the Java programming language. It offers a wide array of useful classes ready for use in your own applications. It spans everything from basic objects, to networking and security. User Interface Toolkits: The Swing and Java 2D toolkits make it possible to create sophisticated Graphical User Interfaces (GUIs). Class Thread: A thread is a thread of execution in a program. The Java Virtual Machine allows an application to have multiple threads of execution running concurrently. Every thread has a priority. Threads with higher priority are executed in preference to threads with lower priority. When code

PROJECT DESIGN
Dialog Box for Student Name.
11

12

13

14

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"; 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 myString = \"javaprograms\";\n System.out.println(myString);\n }\n}\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 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 String String myString = \"javatest\";\n}\n\nclass JavaApp{\n\npublic static void main(String[] arg){\n

15

myString

\"elephants\";

\npublic

static

void

main(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 String textstr = \"hello\";\n for (int i=4; i<5; i++)\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 int num2 = 7;\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 +3;\n number1=2;\n int number2 = 7;\n number2= number1 * 2 System.out.println(number2); \n } \n}\n", number1=2;\n int number2 = 7;\n number2= public static void public static void

for (int i=0; i<3; i++) j=j+i;\n

num2= num1 * 2 +3;\n

"Question 8:\nWhat is the result?\n\nclass JavaApp{ \n static int number1 = 4;\n public static void main(String[] a){ \n number1 * 2 +3;\n System.out.println(number2); \n } \n}\n",

"Question 9:\nWhat is the result?\n\nclass JavaApp{ \n static int number1 = 3;\n public static void main(String[] arg)\n +3;\n int number2 = 7;\n number2= number2 + number1 * 2 System.out.println(number2); \n } \n}\n",

16

"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", "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 int num = rabbit.length;\n System.out.println(num); \n } \n}\n", "Question 13:\nWhat is the result here?\n\nclass JavaApp{ \n main(String[] a){\n int number = 10;\n Integer.toBinaryString(number);\n public static void String mystr = int x = (int) (Math.random());\n

System.out.println(mystr); \n } \n}\n",

"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",

"Question 15:\nWhat is the result of this program?\n\nclass MyJavaApp{ \n public static void main(String[] a){\n +); \n } \n}\n", "Question 16:\nWhat is the result of this program?\n\nclass MyJavaApp{ \n public static void main(String[] a){\n +1stNum/2ndNum;\n int 1stNum = 5;\n int 2ndNum = 3;\n double d =1.25 System.out.println(d); \n } \n}\n", double d =1.75;\n int i = d;\n System.out.println(i+

17

"Question 17:\nWhat is the result of this program?\n\nclass MyJavaApp{ \n public static void main(String[] arg){\n +Num1/Num2;\n int Num1 = 5;\n int Num2 = 4;\n double d =1.25 System.out.println(d); \n } \n}\n",

"Question 18:\nWhat is the result of this program?\n\nclass TryJavaApp{ \n static float f;\n public static void main(String[] ar){\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 System.out.println(f * Num); \n } \n}\n", "Question 20:\nWhat is the result of this program?\n\nclass HelloJavaApp{ \n public static void main(String[] ar){\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 long num = Math.round(d);\n System.out.println(num); \n } \n}\n", "Question 22:\nWhat is the result of this program?\n\nclass JavaApp{ \n public static void main(String[] a){\n double d = 1.56789;\n int num = (int)Math.round(d * d);\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 (int) (doub2 +0.5);\n double doub1 = 1.51;\n int number1 = (int) (doub1 int number2 = System.out.println(number1); \n double doub2 = -1.51;\n byte num = 64;\n num += num;\n int Num = 2;\n f = (float)1.25 * 2; \n int Number = 5;\n f = 1.25; \n

System.out.println(number2); \n } \n}\n",
18

"Question 24:\nWhat is the result of this program?\n\nclass TryApp{ \npublic static void main(String[] arg){\n int num = 4;\n num = (num + 4/2) % num+1;\n System.out.println(num); \n } \n}\n", "Question 25:\nWhat is the result?\n\nclass MyApp{ \n public static void main(String[] ar){\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"},
19

for(int i=0; i<3; i++)\n

for(int j=1; j<3; j++)\n

System.out.print(j+i+\",\");

\n } \n}\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"," \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"} }; static int [] n = {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1}; Static 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;
20

static String testtitle="Java Programming Online Test"; static int timeLimit =10; static int passMark = 15; } /* OnlineTest class */ public class Main extends JFrame{ static String studentname =""; static int TOTAL=0; static { try{ TOTAL = QuestionSeries.tally; /* The input window */ if (studentname.length() < 1) studentname = "Anonymous "; else studentname = studentname.trim() + " "; } catch(NullPointerException e){ System.exit(0); } } int seconds, minutes; int quesnum, itemCheck, mark; final String TESTTITLE = QuestionSeries.testtitle;
21

studentname = JOptionPane.showInputDialog("Enter your name: ");

final int TIMELIMIT = QuestionSeries.timeLimit; final int PASS = QuestionSeries.passMark; String []answers = new String[TOTAL]; JButton []choice_button = new JButton[6]; JTextArea answerboxes[] = new JTextArea[4]; JCheckBox []boxes = new JCheckBox[4]; JTextPane pane = new JTextPane(); JLabel student, choose, message, timecounter, testresult; boolean start_test, check_answer, allowRestart, finishtest; Northwindow panelNorth = new Northwindow(); Southwindow panelSouth = new Southwindow(); Centerwindow panelCenter = new Centerwindow(); /* 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(); setLocation((dim.width-width)/2, (dim.height-height)/2);
22

} /**** Northwindow class**/ class Northwindow extends JPanel { /**** 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); add(message); add(new JLabel(" add(new JLabel(" } } /**** Southwindow class **/ class Southwindow extends JPanel {
23

") ); ") );

setBorder(BorderFactory.createEtchedBorder() );

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() ); } } /**** 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();
24

northEast.setBackground(new Color(230, 230, 255) ); east.add("North", northEast); JPanel westEast = new JPanel(); westEast.setLayout(new GridLayout(6,1) ); 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(" There are "+TOTAL+" questions in 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); JScrollPane panes[] = new JScrollPane[4]; for(int i=0; i<answerboxes.length; i++)
25

{ 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) testresult = new JLabel(studentname+", minutes to complete."); else testresult = new JLabel(" centerEast.add(testresult); add(west); add(east); } } /**** ActionHandler class to handle all the action events from the buttons. **/ There is no time limit for this test"); testresult.setBorder(BorderFactory.createEtchedBorder() ); You have only : "+TIMELIMIT+"

class ActionHandler implements ActionListener{


26

/* 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();
27

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 through all questions before pressing finish",

28

"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:")) { quesnum--; if(quesnum == -1) quesnum=TOTAL-1; mark_ques(); displayquestion(); checkteststatus(); } } validate(); }

29

/* Timer class */ class Timer extends Thread implements Runnable { public Timer() { new Thread(this).start(); } public void run() { while(start_test) { try { Thread.sleep(1000); seconds++; if (seconds % 60 == 0 && seconds != 0) { } timecounter.setText ("Time Counter: "+minutes+" mins : "+seconds+" secs "); if (minutes==TIMELIMIT) { start_test=false; endTest(); } } catch(InterruptedException ex) { System.out.print(ex); } }
30

seconds = 60; minutes++;

} } /* checkteststatus method */ public void checkteststatus() { if [( quesnum == TOTAL-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++) 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 */ public void displayquestion() { int j = quesnum+1; pane.setText(QuestionSeries.question[quesnum]);
31

if (start_test)message.setText("Question "+j+" out of "+TOTAL); for (int i=0; i<4; i++) answerboxes[i].setText(QuestionSeries.answers[quesnum][i]); if (start_test) { String temp=""; If (QuestionSeries.n[quesnum]==1) temp="<html>&nbsp; &nbsp; &nbsp; Choose only <b>ONE</b> Option</html>"; Elseif (QuestionSeries.n[quesnum]==2) temp="<html>&nbsp; &nbsp; Choose <b>TWO</b> Options</html>"; Elseif (QuestionSeries.n[quesnum]==3) temp="<html>&nbsp; &nbsp; Choose <b>THREE</b> Options</html>"; else temp="<html>&nbsp; &nbsp;<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.");
32

} } /* record answer method */ public void recordanswer(){ String tmp = ""; For (int i=0; i<boxes.length; i++) if (boxes[i].isSelected() ) tmp +=i+1; answers[quesnum] = tmp; } /* endTest method */ public void endTest() { message.setText("TIME OVER: please press 'finish'"); choice_button[2].setEnabled(false); choice_button[3].setEnabled(false); choice_button[4].setEnabled(true); }

33

/* mark_ques() method to highlight correct answers */ public void mark_ques() { for (int 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."); }

public void calculateResult() { mark=0; double temp=0.0; java.text.DecimalFormat df = new java.text.DecimalFormat("#0.#"); for (int 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 "+studentname.substring(0, studentname.indexOf(' ') )+", you passed");
34

else testresult.setText("Better luck next time " +studentname.substring(0,studentname.indexOf(' ') ) ); student.setText(" Final score for "+studentname+": "+TOTAL+": "+df.format(temp/TOTAL*100)+"%"); new Resultwindow().show(); } } /* Resultwindow class */ class Resultwindow extends JFrame{ Resultwindow() { super( studentname+" results: " +(mark*100/TOTAL >=PASS?"PASS":"FAIL") ); Container cont = getContentPane(); cont.setLayout(new GridLayout(TOTAL/2+3,5,2,5) ); cont.setBackground(new Color(255,220,255) ); cont.add(new JLabel(" "+"Marks: "+(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"; } "+mark+"/"+TOTAL+": "+"Percentage: "+mark+" out of

35

for(int i=0; i<TOTAL; i++) cont.add(new JLabel(" (i+1)+": "+temp pack(); setLocation(200,200); } } /* ItemHandler class */ class ItemHandler implements ItemListener{ public void itemStateChanged(ItemEvent evt){ if(start_test){ [i]) );

Question "+

for(int i=0; i<boxes.length; i++) if(boxes[i].isSelected() ) itemCheck++; if(itemCheck > QuestionSeries.n[quesnum]){ java.awt.Toolkit.getDefaultToolkit().beep(); if(QuestionSeries.n[quesnum]==1) JOptionPane.showMessageDialog(null,"<html><font color='00308a'><center>"+ "There is only "+QuestionSeries.n[quesnum]+" possible<br> answer to question "+ (quesnum+1)+ "<html>","User 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)+ Information size='4'

36

"<html>","User Message",JOptionPane.INFORMATION_MESSAGE); } itemCheck=0; } } } /* main method */ public static void main(String [] args) { Main frame = new Main(); frame.setTitle(" "+QuestionSeries.testtitle); frame.setDefaultCloseOperation( EXIT_ON_CLOSE ); frame.setVisible(true); } }

Information

37

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

38

Basically, the testing is of two types: 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.

39

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.

40

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

41

Das könnte Ihnen auch gefallen