Vous êtes sur la page 1sur 20

CONTENTS

1. Introduction

2. Objective & Scope of the Project

3. System Implementation

4. System Design & Development

5. User Manual

6. References

1
1. Introduction

The Online Quiz is a GUI application for candidate to appear for an online test in

an effective way and there is no loss of time to check the paper. The chief aim of

Online Quiz is to effectively estimate the candidate completely via a totally

automated system which besides preserving time, offers swifter outcomes.

Generally, pupil is provided with paper, pen etc. for taking the test but the Online

Quiz doesn’t require all these.

This software, being simple in design and working, does not require much of

training to users, and can be used as a powerful tool for automating a Quiz.

During coding and design of the software Project, Java NetBeans IDE, a powerful

front-end tool is used for getting Graphical User Interface (GUI) based integrated

platform and coding simplicity. As a back-end a powerful, open source RDBMS,

My SQL is used as per requirement of the CBSE curriculum of Informatics Practices

Course.

2
2. Objective & Scope of the Project

The main objectives of the proposed software system are

 Economic feasibility

 Time flexibility

 Technical feasibility

 User-friendly interface

 Eco-Friendly System

The main advantages of the proposed software system are

 The main purpose of the system is to efficiently evaluate the candidate


thoroughly through a fully automated system that not only saves a lot of time
but also gives fast results and save paper.

 It is a cost-effective and popular means of mass-evaluation system.

 The candidates can login through the client computers with their roll number
given to them and can take the exam.

3
3. System Implementation

3.1 The Hardware used:


 Pentium Dual Core or Core2duo Processor
 2gb RAM
 250gb Harddisk

3.2 The Softwares used:

 Microsoft Windows 7 or Microsoft Windows 10

 Java NetBeans 8.2 as Front-end Development environment.

 MySQL Server 5.7 for Database

 MS-Word 2016 for documentation.

4
4. System Design & Development
4.1 Database Design:
An important aspect of system design is the design of data storage structure. To begin with a
logical model of data structure is developed first. A database is a container object which contains
tables, queries, reports and data validation policies enforcement rules or contraints etc. A logical
data often represented as a records are kept in different tables after reducing anomalies and
redundancies. The goodness of data base design lies in the table structure and its relationship.
This software project maintains a database named QUIZ which contains the following tables.

Table Design:
The database of Quiz System contains 4 tables. The tables are normalized to minimize the
redundancies of data and enforcing the validation rules of the organization. Most of the tables
are designed to store master records. The tables and their structure are given below.
Table: LogIn

Column Name Type Size

ID (Primary Key) Varchar 20


Password Varchar 30

Table: IP

Column Name Type Size


SNo Integer 11
Questions Varchar 200
a Varchar 100
b Varchar 100
c Varchar 100
d Varchar 100
Result Varchar 1

5
Table: GK

Column Name Type Size


SNo Integer 11
Questions Varchar 200
a Varchar 100
b Varchar 100
c Varchar 100
d Varchar 100
Result Varchar 1

Table: Result

Column Name Type Size


ID Varchar 20
ipresult Varchar 20
gkresult Varchar 20

4.2 Menu Design:


JSS Infoware gateway comprises the following options, organized in a user friendly way. The
menu system divided in Menu Bars, each having a pull down menus containing options for a
specific task.

Menu Forms
Sr. Pull Down Menu Purpose
Bar Attached
Test.java
IP Take a test for IP
1. Select Test.java
GK Take a test for GK

--
2. Exit QUIT Close application

6
4.3 I/O Forms Design & Event Coding:
The software project for Public Quiz Management contains various forms along with
programming codes. Forms (JFrames) and their event coding are given below.

Frame: LogIn.java

Coding of LOGIN.java

import java.sql.*;
public class LogIn extends javax.swing.JFrame {
/** Constructor */
public LogIn() {
initComponents();
}

private void loginBTNActionPerformed(java.awt.event.ActionEvent evt) {


String PWord = new String(Password.getPassword());
String Id = ID.getText();
try {
Class.forName("java.sql.Driver");
7
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
String sql = "select * from LogIn where ID = '" + Id + "'";
ResultSet rs = stmt.executeQuery(sql);
rs.next();
String str = rs.getString("Password");
if(str.equals(PWord))
{
Menu m = new Menu(Id);
m.setVisible(true);
this.setVisible(false);
}
else
{
InvalidLBL.setText("Incorrect ID or Password");
}
} catch (Exception e) { InvalidLBL.setText("Incorrect ID or Password");}
}

private void regLBLMouseClicked(java.awt.event.MouseEvent evt) {


Register r = new Register();
r.setVisible(true);
this.setVisible(false);
}

Frame: Register.java

8
Coding of Register.java
import java.sql.*;
import javax.swing.JOptionPane;
public class Register extends javax.swing.JFrame {
/** Constructor */
public Register() {
initComponents();
}
private void RegisterTFActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("java.sql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
Statement stmt = conn.createStatement();
String sql;
sql = "insert into Result values ('" + IDTF.getText() + "',0,0,0,0)";
stmt.executeUpdate(sql);
sql = "insert into LogIn values ( '" + IDTF.getText() + "' , '" + PasswordTf.getText() +
"' )";
stmt.executeUpdate(sql);
stmt.close();
conn.close();
new Menu(IDTF.getText()).setVisible(true);
this.setVisible(false);

9
}
catch( Exception e)
{
JOptionPane.showMessageDialog(null,"" + e);
}
}

public static void main(String args[]) {


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Register().setVisible(true);
}
});
}

Frame: Menu.java

Coding for Menu.java


public class Menu extends javax.swing.JFrame {
String ID;
/** Constructor */
public Menu() {
initComponents();
10
}
public Menu(String id) {
initComponents();
ID = id;
}
private void startTestBTNActionPerformed(java.awt.event.ActionEvent evt) {
String sub = null;
if(IP.isSelected()) {
sub = "IP";
}
else if(GK.isSelected()) {
sub = "GK";
}
if (sub != null)
{
Test t = new Test(sub,ID);
t.setVisible(true);
this.setVisible(false);
}
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
IP.doClick();
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
GK.doClick();
}
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Menu().setVisible(true);
}
});
}
Frame: Test.java

11
Coding for Test.Java
import java.sql.*;
import javax.swing.JOptionPane;
public class Test extends javax.swing.JFrame {
String ID;
String Subject;
int index =1;
int max =0;
int result = 0;
char [] answers;
/** Constructor */
public Test()
{
initComponents();
}
public Test(String subject, String id)
{
initComponents();
ID = id;
Subject = subject;
PrevBTN.setVisible(false);
try

12
{Class.forName("java.sql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
Statement stmt = conn.createStatement();
String sql = "select max(SNo) from " + Subject;
ResultSet rs = stmt.executeQuery(sql);
rs.next();
max = rs.getInt(1);
answers = new char[max];
for(int i=0; i<max;i++) {
answers[i] = 'e';
}
rs.close();
stmt.close();
conn.close();
getQues();
}
catch(Exception r){ JOptionPane.showMessageDialog(null,""+ r);
}
}
private void getQues()
{
try
{
Class.forName("java.sql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
Statement stmt = conn.createStatement();
String sql = "select * from " + Subject + " where SNo = " + index;
ResultSet rs = stmt.executeQuery(sql);
rs.next();
QuesTA.setText("\nQ" + index + ". " + rs.getString(2));
a.setText(rs.getString("a"));
b.setText(rs.getString("b"));
c.setText(rs.getString("c"));
d.setText(rs.getString("d"));
a.setSelected(answers[index-1] == 'a');
b.setSelected(answers[index-1] == 'b');
13
c.setSelected(answers[index-1] == 'c');
d.setSelected(answers[index-1] == 'd');
e.setSelected(answers[index-1] == 'e');
rs.close();
stmt.close();
conn.close();
}
catch(Exception r){ JOptionPane.showMessageDialog(null,""+ r); }
}
private void PrevBTNActionPerformed(java.awt.event.ActionEvent evt) {
index--;
getQues();
if(index == 1) {
PrevBTN.setVisible(false);
}
if(index < max) {
NextBTN.setVisible(true);
}
}
private void NextBTNActionPerformed(java.awt.event.ActionEvent evt) {
index++;
getQues();
if(index == max) {
NextBTN.setVisible(false);
}
if(index > 1) {
PrevBTN.setVisible(true);
}
}
private void bActionPerformed(java.awt.event.ActionEvent evt) {
answers[index-1] = 'b';
}
private void ResultBTNActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Class.forName("java.sql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
14
Statement stmt = conn.createStatement();
String sql = "select Result from " + Subject;
ResultSet rs = stmt.executeQuery(sql);
int i = 0;
while(rs.next())
{
char ans = rs.getString(1).charAt(0);
if(ans == answers[i]) {
result++;
}
i++;
}
float res = ((float)result * 100 ) / max;
sql = "Select " + Subject + "Result from Result where ID = '" + ID + "'";
rs = stmt.executeQuery(sql);
rs.next();
if(res > rs.getFloat(1))
{
sql = "update Result set " + Subject + "Result = " + res + " where ID = '" + ID + "'";
stmt.executeUpdate(sql);
}
stmt.close();
conn.close();
new Result(res,ID).setVisible(true);
this.setVisible(false);
}
catch(Exception r){ JOptionPane.showMessageDialog(null,r); }
}
private void aActionPerformed(java.awt.event.ActionEvent evt) {
answers[index-1] = 'a';
}
private void cActionPerformed(java.awt.event.ActionEvent evt) {
answers[index-1] = 'c';
}
private void dActionPerformed(java.awt.event.ActionEvent evt) {
answers[index-1] = 'd';
}
public static void main(String args[]) {
15
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Test().setVisible(true);
}
});}

Frame: Result.java

Coding of Result.java
import java.sql.*;
import javax.swing.table.*;
import javax.swing.JOptionPane;
public class Result extends javax.swing.JFrame {

float result;
16
String ID;
/** Creates new form Result */
public Result() {
initComponents();
}
public Result(float res, String id)
{
initComponents();
result = res;
ID = id;
Score.setText(res + "%");
try {
Class.forName("java.sql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/quizdb",
"root", "kvuc");
Statement stmt = conn.createStatement();
String sql = "select * from Result where ID = '" + ID + "'";
ResultSet rs = stmt.executeQuery(sql);
Object[] newrow = new Object[5];
newrow[0] = "MAX MARKS";
rs.next();
for(int i=1; i<=4;i++) {
newrow[i] = rs.getString(i+1);
}
DefaultTableModel tm = (DefaultTableModel)scoreTBL.getModel();
tm.addRow(newrow);
}
catch (Exception e) { JOptionPane.showMessageDialog(null,"" + e);
}
}
private void BackBTNActionPerformed(java.awt.event.ActionEvent evt) {
new Menu(ID).setVisible(true);
this.setVisible(false);
}
17
private void exitBTNActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Result().setVisible(true);
}
});

18
5. User Manual
7.1 Working with Software Project:

The Quiz Management Program consists of the following logically organised Menu-structure for
the easy functionality. User may choose the menu options for corresponding works.

Select:
This menu item gives options to select java, html, dbms and networking.

Exit:
This menu closes the application.

19
6. References

In order to work on this project titled -LibSys – Public Library Management System, the
following books and literature are refered by me during the various phases of development of
the project.

1. http://www.mysql.org/

2. http://www.netbeans.org/

3. On-line Help of NetBeans ®

4. Informatics Practices for class XII -by Sumita Arora

20

Vous aimerez peut-être aussi