Академический Документы
Профессиональный Документы
Культура Документы
CONTENTS
1. INTRODUCTION
About Project
Introduction
Existing System
Proposed System
Data Flow Diagram
3. SYSTEM DESIGN
15
Input design
Output design
Form design
Database design
23
4. APPENDIX
Source Code
DFD
Screen Shots
5. Normalization
Table design
38
6. SYSTEM IMPLEMENTATION
43
System configuration
7. CONCLUSION
45
Offline Examiner
8. BIBLIOGRAPHY
46
INTRODUCTION
Offline examiner is a real time project. The project will be
implemented using VB. The aim of the project is to allow teachers to
conduct examinations to the students. There are many unique features in
the project. The students are not allowed to go back to the previous
question once they click the next question. This option is up to the
teachers to decide the teachers can either enable such an option or disable
the option. The teachers are also given option to set the time limit of the
exam. When the students start their exam, after the allotted time, the exam
automatically ends and a grade sheet is printed to the students. The exams
can be of single choice or multiple choices and this also the teachers can
make the decision.
Another important feature of the project is that the students
are not allowed to take the screen shot of the questions as a matter of
security, if students try for such a malpractice an alarm is raised in the
examination hall. Various types of reports can be generated both for the
teachers as well as the administrators.
Offline Examiner
Offline Examiner
The username and password is passing through the network to the server
system and the authorization is done on that system. Each student can
attend the exam for 3 time with the given user name and password. After
that they have to re-register to attend the exam.
Administrators can generate various types of reports
In this software administrator has the power to conduct the examination
and he can view the various reports like the result and the list of the passed
students, the list of students apply for the examination and the list of
student who attend the examination etc. He can get the report of the whole
examination and the percentage of mark obtained by each student. And
also he can calculate number of students passed for a particular exam in a
class.
Administrators can enable security settings.
Administrator has the control over the software and the entire system.
Administrator can add new user (teachers) and can give user name and
password.
registered students and the student can login to the system only giving the
username and password. The administrator give security like students
cannot take the screenshots of the examination screen, cannot write exam
after the specific time, cannot answer for a previous question and cannot
change the already answered question. After the specified time the
answers are submitted to the server automatically.
Print out of the grade sheet is issued when the student completes the
exam, or when the duration is finished
Offline Examiner
After the completion of the examination the answers are submitted for
further process. The answers are compared with the database and the grade
for the students is calculated after result comparison. The students can
view and take printouts as mark sheet or score sheets using the software. If
any printer is connected with the system using software we can take the
printouts and this is the official score sheets for the students.
SYSTEM ANALYSIS
Offline Examiner
Offline Examiner
Existing System
In the existing system the exams are done only manually but in
proposed system we have to computerize all the exams using this
software.
Time consuming.
Proposed System
The aim of proposed system is to develop a system of improved
facilities. The proposed system can overcome all the limitations of the
existing system. The system provides proper security and reduces the
manual work.
Security of data.
Offline Examiner
Greater efficiency.
Better service.
Offline Examiner
9
Technical issues raised during the investigation are:
The project should be developed such that the necessary functions and
performance are achieved within the constraints. The project is developed
within latest technology. Through the technology may become obsolete
after some period of time, due to the fact that never version of same
software supports older versions, the system may still be used. So there are
minimal constraints involved with this project. The system has been
developed using Java the project is technically feasible for development.
2.3.2. ECONOMIC FEASIBILITY
The developing system must be justified by cost and benefit. Criteria
to ensure that effort is concentrated on project, which will give best, return
at the earliest. One of the factors, which affect the development of a new
system, is the cost it would require.
The following are some of the important financial questions asked
during preliminary investigation:
The costs conduct a full system investigation.
The cost of the hardware and software.
The benefits in the form of reduced costs or fewer costly
errors.
Offline Examiner
10
Offline Examiner
11
Four basic symbols are used to construct data flow diagrams. They are symbols that
represent data source, data flows, and data transformations and data storage. The points at
which data are transformed are represented by enclosed figures, usually circles, which are
called nodes.
Data Flow Diagram Symbols:_
Data Flow
_ Process
Storage
Level 0 DFD
Teachers
Administrator
Admin
details
Offline Examiner
Teacher Details
Student
Details
Students
Offline Examiner
12
Add Details
Student details
Administrator
Admin id, password
Offline Examiner
View results
results
Login
Student
Add login details
verify
validate
Login
Login
Teacher
Verify
Login
Validate
Offline Examiner
13
Offline
Examiner
Student
login id,
password
Store results
Select exam
login
results
verify
validate
Login
Add User
User details
details
User details
Select User
Delete User
Delete
Administrator
User Details
View reports
View reports
View reports
reports
Offline Examiner
14
Level 2 DFD Student
Write exam
Questions
Question
Select exam
Store results
Get grade
Student
View grade
grade
Results
View history
View history
SYSTEM DESIGN
Get details
Offline Examiner
15
Input design
The design of input focuses on controlling the amount of input
required, controlling the errors, avoiding delay, avoiding extra steps and
keeping the process simple. The input is designed in such a way so that it
provides security and ease of use with retaining the privacy. Input Design
considered the following things:
o What data should be given as input?
Offline Examiner
16
o How the data should be arranged or coded?
Offline Examiner
17
18
Offline Examiner
19
Offline Examiner
20
Offline Examiner
21
Offline Examiner
22
Offline Examiner
Offline Examiner
23
Sample Coding
Login
Private Sub cmdAdminLog_Click()
Set rs = con.Execute("select * from Adminlogin where Username='" +
txtUsername.Text + "' and Password='" + txtPassword.Text + "'")
If (Not rs.EOF) Then
MsgBox "Login Success", vbInformation, "Offline Examiner"
Unload Me
End If
rs.Close
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdTchLog_Click()
Set rs = con.Execute("select * from Userlogin where Username='" +
txtUsername.Text + "' and Password='" + txtPassword.Text + "'")
If (Not rs.EOF) Then
MsgBox "Login Success", vbInformation, "Offline Examiner"
Unload Me
End If
End Sub
Private Sub Form_Load()
connectdb
End Sub
Add Branch
Private Sub cmdAdd_Click()
If (txtbrname.Text = "" Or txtbrcode.Text = "" Or txtsem.Text = "") Then
MsgBox "Missing Fields", vbInformation, "Offline Examiner"
Else
con.Execute ("insert into Branch values('" + txtbrname.Text + "','" +
txtbrcode.Text + "'," + txtsem.Text + ")")
MsgBox "Record added successfully", vbInformation, "Offline
Examiner"
txtbrname.Text = ""
txtbrcode.Text = ""
txtsem.Text = ""
txtbrname.SetFocus
Offline Examiner
24
End If
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
connectdb
End Sub
Add Subject
Dim x As Integer
Dim i As Integer
Offline Examiner
25
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
connectdb
Set rs = con.Execute("select * from Branch")
While (Not rs.EOF)
cmbBranch.AddItem rs(1)
rs.MoveNext
Wend
rs.Close
End Sub
Add Questions
Dim x, i As Integer
Dim exid As String
Dim eID As String
Dim Qno As Integer
Private Sub cmbBranch_Click()
cmbSem.Clear
Set rs = con.Execute("select Sem from Branch where Branchcode='" +
cmbBranch.Text + "'")
If (Not rs.EOF) Then
x = rs(0)
For i = 1 To x
cmbSem.AddItem i
Next
End If
rs.Close
End Sub
Private Sub cmbSem_Click()
cmbSubjects.Clear
Set rs = con.Execute("select Subjectname from Subjects where
Branchcode='" + cmbBranch.Text + "' and Sem=" + cmbSem.Text + "")
While (Not rs.EOF)
cmbSubjects.AddItem rs(0)
rs.MoveNext
Wend
rs.Close
End Sub
Private Sub cmbSubjects_Click()
26
Offline Examiner
Set rs = con.Execute("select Subjectcode from Subjects where
Subjectname='" + cmbSubjects.Text + "' and BranchCode='" +
cmbBranch.Text + "'")
If (Not rs.EOF) Then
txtSubCode.Text = rs(0)
End If
rs.Close
End Sub
Private Sub cmdAdd_Click()
If (txtAns.Text = "" Or txtOpt1.Text = "" Or txtOpt2.Text = "" Or
txtOpt3.Text = "" Or txtOpt4.Text = "" Or txtQst.Text = "") Then
MsgBox "Missing Fields", vbInformation, "Offline Examiner"
Else
If (txtOpt1.Text <> txtAns.Text And txtOpt2.Text <> txtAns.Text And
txtOpt3.Text <> txtAns.Text And txtOpt4.Text <> txtAns.Text) Then
MsgBox "Answer key does not match any one of 4 options",
vbCritical, "Offline Examiner"
txtAns.Text = ""
txtAns.SetFocus
Else
exid = cmbBranch.Text + txtDate.Text + txtSubCode.Text
con.Execute ("insert into Questions values('" + cmbBranch.Text + "'," +
cmbSem.Text + _
",'" + txtSubCode.Text + "','" + exid + "','" + lblQno.Caption + _
"','" + txtQst.Text + "','" + txtOpt1.Text + "', '" + txtOpt2.Text +
_
"','" + txtOpt3.Text + "','" + txtOpt4.Text + "','" + txtAns.Text +
"')")
con.Execute ("insert into ExamDetails values('" + cmbBranch.Text +
"'," + cmbSem.Text + _
",'" + txtSubCode.Text + "','" + exid + "','" + txtDate.Text + "','"
+ txtTime.Text + "')")
MsgBox "Question Added Successfully", vbInformation, "Offline
Examiner"
txtAns.Text = ""
txtOpt1.Text = ""
txtOpt2.Text = ""
txtOpt3.Text = ""
txtOpt4.Text = ""
txtQst.Text = ""
txtQst.SetFocus
lblQno.Caption = lblQno.Caption + 1
End If
End If
End Sub
Offline Examiner
27
Private Sub cmdCancel_Click()
Unload Me
End Sub
Offline Examiner
28
Add User
Private Sub cmdAdd_Click()
Set rs = con.Execute("select * from Userlogin where Username='" +
txtUsername.Text + "' and Password='" + txtPassword.Text + "'")
If (Not rs.EOF) Then
MsgBox "Sorry!! User already exists. Try another username",
vbCritical, "Offline Examiner"
txtPassword.Text = ""
txtUsername.Text = ""
txtUsername.SetFocus
Else
con.Execute ("insert into Userlogin values('" + txtUsername.Text + "','"
+ txtPassword.Text + "')")
MsgBox "User added sucessfully", vbInformation, "Offline Examiner"
txtPassword.Text = ""
txtUsername.Text = ""
txtUsername.SetFocus
End If
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
connectdb
End Sub
Change Password
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdChange_Click()
If (txtConfrmpass.Text = txtNewpass.Text) Then
Set rs = con.Execute("select * from Userlogin where Username='" +
cmbUsername.Text + "' and password='" + txtcurpassword.Text + "'")
If (Not rs.EOF) Then
con.Execute ("update Userlogin set Password='" + txtNewpass.Text +
"' where Username='" + cmbUsername.Text + "'")
Offline Examiner
29
Delete User
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdDelete_Click()
con.Execute ("delete from Userlogin where Username='" +
cmbUsername.Text + "'")
MsgBox "User deleted sucessfully!!", vbInformation, "Offline Examiner"
cmbUsername.Text = ""
End Sub
Private Sub Form_Load()
connectdb
Set rs = con.Execute("select * from Userlogin")
While (Not rs.EOF)
cmbUsername.AddItem rs(0)
rs.MoveNext
Wend
End Sub
Offline Examiner
30
Select Exam
Dim dt As Date
Private Sub cmbBranch_Click()
cmbSem.Clear
Set rs = con.Execute("select Sem from Branch where BranchCode='" +
cmbBranch.Text + "'")
If (Not rs.EOF) Then
x = rs(0)
For i = 1 To x
cmbSem.AddItem i
Next
End If
rs.Close
End Sub
Private Sub cmbExID_Click()
Set rs = con.Execute("select Time from ExamDetails where ExamId='" +
cmbExID.Text + "'")
If (Not rs.EOF) Then
txtTime.Text = rs(0)
End If
rs.Close
End Sub
Private Sub cmbSem_Click()
cmbSub.Clear
Set rs = con.Execute("select Subjectname from Subjects where
Branchcode='" + cmbBranch.Text + "' and Sem=" + cmbSem.Text + "")
While (Not rs.EOF)
cmbSub.AddItem rs(0)
rs.MoveNext
Wend
rs.Close
End Sub
Private Sub cmbSub_Click()
Set rs = con.Execute("select Subjectcode from Subjects where
Subjectname='" + cmbSub.Text + "'")
If (Not rs.EOF) Then
txtSubCode.Text = rs(0)
Offline Examiner
31
End If
rs.Close
Set rs = con.Execute("select distinct(ExamID) from ExamDetails where
BranchCode='" + cmbBranch.Text + _
"' and Sem=" + cmbSem.Text + " and SubjectCode='" +
txtSubCode.Text + "' and ExDate=#" & Date & "#")
While (Not rs.EOF)
cmbExID.AddItem rs(0)
rs.MoveNext
Wend
rs.Close
End Sub
Private Sub cmdStart_Click()
If (cmbBranch.Text = "" Or cmbExID.Text = "" Or cmbSem.Text = "" Or
cmbSub.Text = "") Then
MsgBox "Missing fields, Please fill up all", vbInformation, "Offline
Examner"
Else
bcode = cmbBranch.Text
sem = cmbSem.Text
subcode = txtSubCode.Text
exid = cmbExID.Text
Load frmExam
frmExam.Show
Unload Me
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
connectdb
Set rs = con.Execute("select * from Branch")
While (Not rs.EOF)
cmbBranch.AddItem rs(1)
rs.MoveNext
Wend
rs.Close
End Sub
Offline Examiner
32
Start Exam
Private Sub cmdCancel_Click()
Unload Me
End Sub
Exam
Dim x As Integer
Dim ar(5) As Integer
Dim y, i As Integer
Dim Qcnt As Integer
Dim z As Integer
Dim ans As String
Dim selected As String
Dim mark As Integer
Dim rslt As String
Private Sub cmdFinish_Click()
If (mark >= 3) Then
rslt = "Passed"
Offline Examiner
33
Else
rslt = "Failed"
End If
con.Execute ("insert into Result values('" & uname & "','" & bcode & "',"
& sem & ",'" & subcode & "','" & exid & "'," & mark & ",'" & rslt & "')")
MsgBox mark
Unload Me
End Sub
Private Sub cmdNext_Click()
Qcnt = Qcnt + 1
If (Qcnt <= 5) Then
Set rs = con.Execute("select * from Questions where BranchCode='" &
bcode & "' and Sem=" & sem & " and SubjectCode='" & subcode & "' and
ExamID='" & exid & "' and Qno=" & ar(Qcnt - 1) & " ")
If (Not rs.EOF) Then
lblQno.Caption = Qcnt
lblQst.Caption = rs(5)
Option1.Caption = rs(6)
Option2.Caption = rs(7)
Option3.Caption = rs(8)
Option4.Caption = rs(9)
ans = rs(10)
If (Option1.Value = True) Then
selected = Option1.Caption
ElseIf (Option2.Value = True) Then
selected = Option2.Caption
ElseIf (Option3.Value = True) Then
selected = Option3.Caption
ElseIf (Option4.Value = True) Then
selected = Option4.Caption
End If
End If
Else
MsgBox "Exam Completed", vbInformation, "Offline Examiner"
cmdNext.Enabled = False
cmdFinish.Enabled = True
End If
If (ans = selected) Then
mark = mark + 1
End If
End Sub
Private Sub Form_Load()
connectdb
34
Offline Examiner
Qcnt = 1
Set rs = con.Execute("select count(*) from Questions where
BranchCode='" + bcode + "' and Sem=" & sem & " and SubjectCode='" +
subcode + "' and ExamID='" + exid + "' ")
If (Not rs.EOF) Then
x = rs(0)
End If
rs.Close
y = RandomNumbers(x, 2, 5)
For i = LBound(y) To UBound(y)
ar(i) = y(i)
Next
For i = 0 To 4
' If (ar(i) = 0) Then
' ar(i) = 1
' End If
'MsgBox ar(i)
Next
Set rs = con.Execute("select * from Questions where BranchCode='" &
bcode & "' and Sem=" & sem & " and SubjectCode='" & subcode & "' and
ExamID='" & exid & "' and Qno=" & ar(0) & " ")
If (Not rs.EOF) Then
lblQno.Caption = Qcnt
lblQst.Caption = rs(5)
Option1.Caption = rs(6)
Option2.Caption = rs(7)
Option3.Caption = rs(8)
Option4.Caption = rs(9)
End If
rs.Close
cmdFinish.Enabled = False
End Sub
Public Function RandomNumbers(Upper As Integer, _
Optional Lower As Integer = 1, _
Optional HowMany As Integer = 1, _
Optional Unique As Boolean = True) As Variant
On Error GoTo LocalError
If HowMany > ((Upper + 1) - (Lower - 1)) Then Exit Function
Dim x
As Integer
Dim n
As Integer
Dim arrNums() As Variant
Dim colNumbers As New Collection
Offline Examiner
35
ReDim arrNums(HowMany - 1)
With colNumbers
'First populate the collection
For x = Lower To Upper
.Add x
Next x
For x = 0 To HowMany - 1
n = RandomNumber(0, colNumbers.Count + 1)
arrNums(x) = colNumbers(n)
If Unique Then
colNumbers.Remove n
End If
Next x
End With
Set colNumbers = Nothing
RandomNumbers = arrNums
Exit Function
LocalError:
'Justin (just in case)
RandomNumbers = ""
End Function
Offline Examiner
36
Offline Examiner
37
RELATIONSHIPS:
Table relationships are established using Key. The two main keys of
prime importance are Primary Key & Foreign Key. Entity Integrity and
Referential Integrity Relationships can be established with these
keys.Entity Integrity enforces that no Primary Key can have null
values.Referential Integrity enforces that no Primary Key can have null
values.
Referential Integrity for each distinct Foreign Key value, there must exist
a matching Primary Key value in the same domain. Other key are Super
Key and Candidate Keys.
Offline Examiner
38
Relationships have been set between every table in the database. This
ensures both Referential and Entity Relationship Integrity.
NORMALIZATION:
As the name implies, it denoted putting things in the normal form. The
application developer via normalization tries to achieve a sensible
organization of data into proper tables and columns and where names can
be easily correlated to the data by the user. Normalization eliminates
repeating groups at data and thereby avoids data redundancy which proves
to be a great burden on the computer resources. These includes:
Normalize the data.
Choose proper names for the tables and columns.
Choose the proper name for the data.
Offline Examiner
39
Offline Examiner
40
Table Design
Data Type
Text
Text
Constrains
Not Null
Not Null
Description
Primary Key
Constrains
Not Null
Not Null
Not Null
Description
Table: Branch
Primary: BranchCode
Field Name
BranchName
BranchCode
Sem
Data Type
Text
Text
Number
Primary Key
Offline Examiner
41
Table: ExamDetails
Primary: ExamID
Field Name
BranchName
BranchCode
Sem
SubjectCode
ExamId
ExamDate
Time
Data Type
Text
Text
Number
Text
Text
Date/Time
Date/Time
Constrains
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Description
Constrains
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Description
Primary Key
Table: Questions
Primary: ExamID
Field Name
BranchName
BranchCode
Sem
SubjectCode
ExamId
Qst
Choice 1
Choice 2
Choice 3
Choice 4
Answer
Data Type
Text
Text
Number
Text
Text
Text
Text
Text
Text
Text
Text
Table: Results
Primary: ExamID
Primary Key
Offline Examiner
42
Field Name
Username
BranchName
BranchCode
Sem
SubjectCode
ExamId
Mark
Result
Data Type
Text
Text
Text
Number
Text
Text
Number
Text
Constrains
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Not Null
Description
Constrains
Not Null
Not Null
Description
Primary Key
Constrains
Not Null
Not Null
Not Null
Not Null
Description
Primary Key
Table: Student
Primary: Username
Field Name
Username
Password
Data Type
Text
Text
Table: Subjects
Primary: SubjectCode
Field Name
BranchCode
Sem
SubjectCode
SubjectNam
Data Type
Text
Number
Text
Text
Primary Key
SYSTEM IMPLEMENTATION
About Language
Microsoft Visual Basic 6.0
Visual Basic 6.0 is Microsofts latest version of the Visual Basic Programming
language. Although writing programs can be a tedious chore at time. Visual Basic
Offline Examiner
43
reduces the effort required on your part, and makes programming enjoyable. Visual
Basic makes many aspects of programming as simple as dragging graphics objects on to
screen with your mouse.
Visual Basic 6.0 is more than just a programming language; the secret to Visual
Basic is in its name Visual. With to days Windows Operating System, a program must
be able to interact with the screen. Keyboard, mouse and printer graphically.
The environment provided by Visual Basic is suitable for any type of application.
Using this environment, the user can visually design the objects that your application
uses. Visual Basic is not just a languages, its an integrated development environment in
which you can develop, run, test and debug your applications. The impressive array of
programming resources provided by Visual Basic enables to create the objects
extemporaneously which can range from pop-up menu to a message box.
A form is a major part of Visual Basic application, which allows the user to enter
the data as well as view the result. A control is an object that we draw on a form to
enable or enhance user interaction with an application. Hence a Visual Basic application
is a combination of object like forms and controls, procedures that can respond to Events
and other general-purpose procedures.
System Configuration
HARDWARE REQUIREMENTS
Processor
RAM
: 512 MB or more
Offline Examiner
44
Hard disk
20 GB or more
Monitor
: VGA/SVGA
Keyboard
104 Keys
Mouse
2 buttons/ 3 buttons
SOFTWARE
Operating System
Front end
Back end
REQUIREMENTS
: Windows 2000/XP
: Visual Basic 6.0
: MsAccess
Conclusion
Offline Examiner
45
Advantages
1. Exam can be conducted easily.
2. Exam time management i.e., Exam starts and end at the right
time.
3. Valuation is easy and result can be published with in time.
4. Only manual work needed is entering questions and
corresponding right answer key.
5. No mishap is possible because the system is password
protected.
Disadvantages
1. Exam wont be conducted if there is power failure.
2. Exam cant be conducted without Hub.
BIBLIOGRAPHY
Books
Site Address
Offline Examiner
46
www.associatedcontent.com
www.members.tripod.com
www.vbcodesource.com