Mini Pro
Mini Pro
Mini Pro
MANAGEMENT SYSTEM
Submitted To
Mrs.Shalu Maurya
Submitted By
Harshit Rao(0709513019)
Ankit Tomar(0709513006)
1|Page
ACKNOWLEDGEMNT
We would like to thank our project coordinator and our faculty in charge
Mr. Shalu Maurya, for constant and valuable suggestions while doing the
project work , we express our profound gratitude to you because without your
support this project couldn’t have been completed on time. We also
acknowledge the unseen presence of Mr.Saurabh Srivastava who helped us
through out and his teachings helped us make our project more effectively.
2|Page
TABLE OF CONTENTS
1. Abstract
2. Introduction To Project
Problem Statement
Existing System
Background
Glossary
4. Schedule Estimation
6. Conclusion
7. Future Enhancement
8. References
3|Page
ABSTRACT
4|Page
INTRODUCTION TO PROJECT
Background - The software would be used for carrying out entire Examination
Management System ie: Enrollment of student into university, generating
barcode against the answer sheet number, pre-evaluation, post evaluation and
eventually result generation. The proposed project is based on .NET Framework
and C# language. The Examination Management System would have all the
essential features and, an easy to use and interactive interface.
Glossary –
i. .NET Framework:
6|Page
• Programmer portability is very important, especially for those
programmers already familiar with C and C++.
• Support for internationalization is very important.
• C# is intended to be suitable for writing applications for both
hosted and embedded systems, ranging from the very large that use
sophisticated operating systems, down to the very small having
dedicated functions.
• Although C# applications are intended to be economical with
regard to memory and processing power requirements, the
language is not intended to compete directly on performance and
size with C.
ii. Barcode:
Code 39 (also known as "USS Code 39", "Code 3/9", "Code 3 of 9",
"USD-3", "Alpha39", "Type 39", "Code 93") is a barcode symbology that
can encode uppercase letters (A through Z), digits (0 through 9) and a
handful of special characters like the $ sign. The barcode itself does not
contain a check, but it can be considered self-checking by some, on the
grounds that a single erroneously interpreted bar cannot generate another
valid character. Possibly the most serious drawback of Code 39 is its low
data density: It requires more space to encode data in Code 39 than, for
example, in Code 128. This means that very small goods cannot be
labeled with a Code 39 based barcode. However, Code 39 is still widely
used and can be decoded with virtually any barcode reader. One
advantage of Code 39 is that since there is no need to generate a check
digit, it can easily be integrated into existing printing system by adding a
barcode font to the system or printer and then printing the raw data in that
font.
The Code 39 (also known as 3 of 9 bar code) is a variable length,
discrete, alphanumeric bar code. Its character set contains 43 meaningful
characters: 0 - 9, A-Z, -, ., $, /, +, %, and space. Each character is
composed of nine elements: five bars and four spaces. Three of the nine
elements are wide (binary value 1), and six elements are narrow (binary
value 0). An additional common character (*) is used for both start and
stop delimiters.
7|Page
PROJECT ANALYSIS AND SPECIFICATION
FEASIBILITY STUDY
Economic Feasibility
The project is economically feasible as the resources required for development
of the project must be available in the organisation readily, and minor
investment costs could be bared very easily by an organisation.
Technical Feasibility
To deploy the application, the only technical aspects needed are mentioned
below:
Operating Environment : Win 2000/XP/Vista/W7
Platform : .Net Framework & IIS
Database : SQL Server 2005
For Users:
.NET Framework 3.5 or above
8|Page
Functional Specification
ii. Methodology: Windows 7 Home Premium has been chosen as the server
platform. And SDLC (system development life cycle) has been chosen as
methodology following agile model.
9|Page
System Development Life cycle:
A SDLC should result in a high quality system that meets or exceeds customer
expectations, reaches completion within time and cost estimates, works
effectively and efficiently in the current and planned Information Technology
infrastructure, and is inexpensive to maintain and cost-effective to enhance.
Here we have used Agile Model for development of the Barcode generator.
Functions Performed
Student Registration
Pre-Evaluation entries
Post-Evaluation entries
Result Generation
10 | P a g e
MODULE DESCRIPTION
(A) Registration
All the entries required are entered in the database using this
module. The entries such as the roll number, paper code, paper id,
date of exam etc.. are entered corresponding to the unique code of
the answer sheet. Once these entries are done the answer sheet is
sent for evaluation.
11 | P a g e
This module of the software is concerned with the entry that is to
be done after the answer sheet has been evaluated. In this module
the code of the answer sheet is entered and if the entry
corresponding to the code entered exist in the data base then all the
pre evaluation information entered before are displayed. The marks
awarded for the corresponding answer sheet are then entered.
The roll number of the student is entered and the marks of the
subjects for which the student had appeared are displayed but if the
roll number is not found in the database then an error is genrated.
12 | P a g e
DATA FLOW DIAGRAMS
EXAMINATION
DATABASE CONTROL EXAMINATION
CONTROLLER SYSTEM
13 | P a g e
SECOND LEVEL DFD
14 | P a g e
ENTITY RELATIONSHIP DIAGRAM
15 | P a g e
CLASS DIAGRAM
16 | P a g e
CODING AND TESTING
Coding Sample
namespace BarTry
{
public partial class Welcome : Form
{
public Welcome()
{
InitializeComponent();
}
}}
17 | P a g e
Code for Barcode Generation Module
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Data;
using System.IO;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.ComponentModel;
namespace BarTry
{
public partial class Generator : Form
{
public Generator()
{
InitializeComponent();
}
int W = Convert.ToInt32(this.txtWidth.Text.Trim());
int H = Convert.ToInt32(this.txtHeight.Text.Trim());
try
{
if (type != TYPE.UNSPECIFIED)
{
b.IncludeLabel = this.chkGenerateLabel.Checked;
barcode.Image = b.Encode(type,
this.txtData.Text.Trim(), this.btnForeColor.BackColor,
this.btnBackColor.BackColor, W, H);
barcode.Width = barcode.Image.Width;
barcode.Height = barcode.Image.Height;
18 | P a g e
barcode.Location = new
Point((this.groupBox2.Location.X/2)+100, (this.groupBox2.Location.Y/2 )-
40);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
this.btnBackColor.BackColor = this.BackColor;
this.btnForeColor.BackColor = this.ForeColor;
}
19 | P a g e
private void Savedata_Click(object sender, EventArgs e)
{ //We are using SQL express.
//My database name is "PictureDb".
SqlConnection con = new SqlConnection
("Data Source=HARSHIT-PC\\SQLEXPRESS;Initial
Catalog=BARCODE;Integrated Security=True");
//I have used a table named "tblUsers" and fill the fields
SqlCommand com = new SqlCommand("insert into
tblUsers(fldCode,fldPic) values('" + txtData.Text + "',@Pic)", con);
com.Parameters.AddWithValue("@Pic", pic);
try
{
con.Open();
com.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
20 | P a g e
SqlDataAdapter dp = new SqlDataAdapter(command);
DataSet ds = new DataSet("MyImages");
dp.Fill(ds, "MyImages");
int i = ds.Tables[0].Rows.Count;
if ((i == 0))
{
barcode.Image = null; ;
MessageBox.Show("No such answer sheet exists in database");
}
else
{
byte[] MyData = new byte[0];
DataRow myRow;
myRow = ds.Tables["MyImages"].Rows[0];
MyData = (byte[])myRow["fldPic"];
}
interface IBarcode
{
string Encoded_Value
{
21 | P a g e
get;
}
string RawData
{
get;
}
List<string> Errors
{
get;
}
}
public enum TYPE : int { UNSPECIFIED, CODE39, CODE39Extended, ITF14,
PostNet };
#region Constructors
/// <summary>
/// Default constructor. Does not populate the raw data. MUST be
done via the RawData property before encoding.
/// </summary>
public Barcode()
{
//constructor
}//Barcode
/// <summary>
/// Constructor. Populates the raw data. No whitespace will be
added before or after the barcode.
/// </summary>
/// <param name="data">String to be encoded.</param>
public Barcode(string data)
{
//constructor
this.Raw_Data = data;
}//Barcode
public Barcode(string data, TYPE iType)
{
this.Raw_Data = data;
this.Encoded_Type = iType;
}
#endregion
#region Properties
22 | P a g e
/// <summary>
/// Gets or sets the raw data to encode.
/// </summary>
public string RawData
{
get { return Raw_Data; }
set { Raw_Data = value; }
}//RawData
/// <summary>
/// Gets the encoded value.
/// </summary>
public string EncodedValue
{
get { return Encoded_Value; }
}//EncodedValue
/// <summary>
/// Gets the Country that assigned the Manufacturer Code.
/// </summary>
/// <summary>
/// Gets or sets the Encoded Type (ex. UPC-A, EAN-13 ... etc)
/// </summary>
public TYPE EncodedType
{
set { Encoded_Type = value; }
get { return Encoded_Type; }
}//EncodedType
/// <summary>
/// Gets the Image of the generated barcode.
/// </summary>
public Image EncodedImage
{
get
{
return _Encoded_Image;
}
}//EncodedImage
/// <summary>
/// Gets or sets the color of the bars. (Default is black)
/// </summary>
public Color ForeColor
{
get { return this._ForeColor; }
set { this._ForeColor = value; }
}//ForeColor
/// <summary>
/// Gets or sets the background color. (Default is white)
/// </summary>
public Color BackColor
{
get { return this._BackColor; }
set { this._BackColor = value; }
}//BackColor
/// <summary>
/// Gets or sets the width of the image to be drawn. (Default is
300 pixels)
/// </summary>
public int Width
{
get { return _Width; }
set { _Width = value; }
23 | P a g e
}
/// <summary>
/// Gets or sets the height of the image to be drawn. (Default is
150 pixels)
/// </summary>
public int Height
{
get { return _Height; }
set { _Height = value; }
}
/// <summary>
/// Gets or sets whether a label should be drawn below the image.
/// </summary>
public bool IncludeLabel
{
set { this._IncludeLabel = value; }
get { return this._IncludeLabel; }
}
/// <summary>
/// Gets or sets the amount of time in milliseconds that it took to
encode and draw the barcode.
/// </summary>
/// <summary>
/// Gets the XML representation of the Barcode data and image.
/// </summary>
/// <summary>
/// Gets or sets the image format to use when encoding and
returning images. (Jpeg is default)
/// </summary>
public ImageFormat ImageFormat
{
get { return _ImageFormat; }
set { _ImageFormat = value; }
}
/// <summary>
/// Gets the list of errors encountered.
/// </summary>
public List<string> Errors
{
get { return this.ibarcode.Errors; }
}
/// <summary>
/// Gets the assembly version information.
/// </summary>
public Version Version
{
get { return
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; }
}
#endregion
#region Functions
#region General Encode
public Image Encode(TYPE iType, string StringToEncode, int Width,
int Height)
{
this.Width = Width;
this.Height = Height;
return Encode(iType, StringToEncode);
24 | P a g e
}
public Image Encode(TYPE iType, string StringToEncode, Color
ForeColor, Color BackColor, int Width, int Height)
{
this.Width = Width;
this.Height = Height;
return Encode(iType, StringToEncode, ForeColor, BackColor);
}
public Image Encode(TYPE iType, string StringToEncode, Color
ForeColor, Color BackColor)
{
this.BackColor = BackColor;
this.ForeColor = ForeColor;
return Encode(iType, StringToEncode);
}
public Image Encode(TYPE iType, string StringToEncode)
{
Raw_Data = StringToEncode;
return Encode(iType);
}
internal Image Encode(TYPE iType)
{
Encoded_Type = iType;
return Encode();
}
internal Image Encode()
{
ibarcode.Errors.Clear();
if (Raw_Data.Trim() == "")
throw new Exception("EENCODE-1: Input data not allowed to
be blank.");
if (this.EncodedType == TYPE.UNSPECIFIED)
throw new Exception("EENCODE-2: Symbology type not allowed
to be unspecified.");
this.Encoded_Value = "";
switch (this.Encoded_Type)
{
case TYPE.CODE39:
ibarcode = new Code39(Raw_Data);
break;
case TYPE.CODE39Extended:
ibarcode = new Code39(Raw_Data, true);
break;
}
this.Encoded_Value = ibarcode.Encoded_Value;
this.Raw_Data = ibarcode.RawData;
_Encoded_Image = (Image)Generate_Image();
25 | P a g e
return EncodedImage;
}
#endregion
switch (this.Encoded_Type)
{
case TYPE.ITF14:
{
b = new Bitmap(Width, Height);
//draw image
int pos = 0;
pos++;
}//while
//bearer bars
pen.Width = (float)b.Height / 8;
26 | P a g e
pen.Color = ForeColor;
pen.Alignment = PenAlignment.Inset;
g.DrawLine(pen, new Point(0, 0), new
Point(b.Width, 0));//top
g.DrawLine(pen, new Point(0, b.Height), new
Point(b.Width, b.Height));//bottom
g.DrawLine(pen, new Point(0, 0), new
Point(0, b.Height));//left
g.DrawLine(pen, new Point(b.Width, 0), new
Point(b.Width, b.Height));//right
}//using
}//using
if (IncludeLabel)
Label_ITF14((Image)b);
break;
}//case
case TYPE.PostNet:
{
b = new Bitmap(Encoded_Value.Length * 4, 20);
//draw image
for (int y = b.Height - 1; y > 0; y--)
{
int x = 0;
if (y < b.Height / 2)
{
//top
while (x < b.Width)
{
if (Encoded_Value[x / 4] == '1')
{
//draw bar
b.SetPixel(x, y, ForeColor);
b.SetPixel(x + 1, y, ForeColor);
b.SetPixel(x + 2, y, BackColor);
b.SetPixel(x + 3, y, BackColor);
}//if
else
{
//draw space
b.SetPixel(x, y, BackColor);
b.SetPixel(x + 1, y, BackColor);
b.SetPixel(x + 2, y, BackColor);
b.SetPixel(x + 3, y, BackColor);
}//else
x += 4;
}//while
}//if
else
{
//bottom
while (x < b.Width)
{
b.SetPixel(x, y, ForeColor);
b.SetPixel(x + 1, y, ForeColor);
b.SetPixel(x + 2, y, BackColor);
b.SetPixel(x + 3, y, BackColor);
x += 4;
}//while
27 | P a g e
}//else
}//for
break;
}//case
default:
{
b = new Bitmap(Width, Height);
if (iBarWidth <= 0)
throw new Exception("EGENERATE_IMAGE-2: Image
size specified not large enough to draw image. (Bar size determined to be
less than 1 pixel)");
//draw image
int pos = 0;
pos++;
}//while
}//using
}//using
if (IncludeLabel)
Label_Generic((Image)b);
break;
}//case
}//switch
_Encoded_Image = (Image)b;
return b;
}//Generate_Image
/// <summary>
/// Gets the bytes that represent the image.
/// </summary>
/// <param name="savetype">File type to put the data in before
returning the bytes.</param>
28 | P a g e
/// <returns>Bytes representing the encoded image.</returns>
#endregion
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode =
InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.Save();
}//using
return img;
}//try
catch (Exception ex)
{
throw new Exception("ELABEL_ITF14-1: " + ex.Message);
}//catch
}
private Image Label_Generic(Image img)
{
try
{
System.Drawing.Font font = new Font("Microsoft Sans Serif",
10, FontStyle.Bold);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode =
InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
29 | P a g e
g.CompositingQuality = CompositingQuality.HighQuality;
g.Save();
}//using
return img;
}//try
catch (Exception ex)
{
throw new Exception("ELABEL_GENERIC-1: " + ex.Message);
}//catch
}//Label_Generic
#endregion
#endregion
#region Misc
internal static bool CheckNumericOnly(string Data)
{
int STRING_LENGTHS = 18;
int i = 0;
while (i < strings.Length)
if (temp.Length >= STRING_LENGTHS)
{
strings[i++] = temp.Substring(0, STRING_LENGTHS);
temp = temp.Substring(STRING_LENGTHS);
} else
strings[i++] = temp.Substring(0);
return true;
}
#endregion
30 | P a g e
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <returns>Image representing the barcode.</returns>
public static Image DoEncode(TYPE iType, string Data)
{
using (Barcode b = new Barcode())
{
return b.Encode(iType, Data);
}//using
}
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <param name="XML">XML representation of the data and the image
of the barcode.</param>
/// <returns>Image representing the barcode.</returns>
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <param name="IncludeLabel">Include the label at the bottom of
the image with data encoded.</param>
/// <returns>Image representing the barcode.</returns>
public static Image DoEncode(TYPE iType, string Data, bool
IncludeLabel)
{
using (Barcode b = new Barcode())
{
b.IncludeLabel = IncludeLabel;
return b.Encode(iType, Data);
}//using
}
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="data">Raw data to encode.</param>
/// <param name="IncludeLabel">Include the label at the bottom of
the image with data encoded.</param>
/// <param name="Width">Width of the resulting barcode.
(pixels)</param>
/// <param name="Height">Height of the resulting barcode.
(pixels)</param>
/// <returns>Image representing the barcode.</returns>
public static Image DoEncode(TYPE iType, string Data, bool
IncludeLabel, int Width, int Height)
{
using (Barcode b = new Barcode())
{
b.IncludeLabel = IncludeLabel;
return b.Encode(iType, Data, Width, Height);
31 | P a g e
}//using
}
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <param name="IncludeLabel">Include the label at the bottom of
the image with data encoded.</param>
/// <param name="DrawColor">Foreground color</param>
/// <param name="BackColor">Background color</param>
/// <returns>Image representing the barcode.</returns>
public static Image DoEncode(TYPE iType, string Data, bool
IncludeLabel, Color DrawColor, Color BackColor)
{
using (Barcode b = new Barcode())
{
b.IncludeLabel = IncludeLabel;
return b.Encode(iType, Data, DrawColor, BackColor);
}//using
}
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <param name="IncludeLabel">Include the label at the bottom of
the image with data encoded.</param>
/// <param name="DrawColor">Foreground color</param>
/// <param name="BackColor">Background color</param>
/// <param name="Width">Width of the resulting barcode.
(pixels)</param>
/// <param name="Height">Height of the resulting barcode.
(pixels)</param>
/// <returns>Image representing the barcode.</returns>
public static Image DoEncode(TYPE iType, string Data, bool
IncludeLabel, Color DrawColor, Color BackColor, int Width, int Height)
{
using (Barcode b = new Barcode())
{
b.IncludeLabel = IncludeLabel;
return b.Encode(iType, Data, DrawColor, BackColor, Width,
Height);
}//using
}
/// <summary>
/// Encodes the raw data into binary form representing bars and
spaces. Also generates an Image of the barcode.
/// </summary>
/// <param name="iType">Type of encoding to use.</param>
/// <param name="Data">Raw data to encode.</param>
/// <param name="IncludeLabel">Include the label at the bottom of
the image with data encoded.</param>
/// <param name="DrawColor">Foreground color</param>
/// <param name="BackColor">Background color</param>
/// <param name="Width">Width of the resulting barcode.
(pixels)</param>
/// <param name="Height">Height of the resulting barcode.
(pixels)</param>
32 | P a g e
/// <param name="XML">XML representation of the data and the image
of the barcode.</param>
/// <returns>Image representing the barcode.</returns>
#endregion
#endregion
}
class Blank : BarcodeCommon, IBarcode
{
#endregion
}
class Code39 : BarcodeCommon, IBarcode
{
private System.Collections.Hashtable C39_Code = new
System.Collections.Hashtable();
private System.Collections.Hashtable ExtC39_Translation = new
System.Collections.Hashtable();
private bool _AllowExtended = false;
public Code39(string input)
{
Raw_Data = input;
}
public Code39(string input, bool AllowExtended)
{
Raw_Data = input;
_AllowExtended = AllowExtended;
}
private string Encode_Code39()
{
this.init_Code39();
this.init_ExtendedCode39();
if (_AllowExtended)
InsertExtendedCharsIfNeeded(ref strFormattedData);
33 | P a g e
string result = "";
foreach (char c in strFormattedData)
{
try
{
result += C39_Code[c].ToString();
result += "0";
}
catch
{
if (_AllowExtended)
Error("EC39-1: Invalid data.");
else
Error("EC39-1: Invalid data. (Try using Extended
Code39)");
}
}
this.C39_Code.Clear();
return result;
}
private void init_Code39()
{
C39_Code.Clear();
C39_Code.Add('0', "101001101101");
C39_Code.Add('1', "110100101011");
C39_Code.Add('2', "101100101011");
C39_Code.Add('3', "110110010101");
C39_Code.Add('4', "101001101011");
C39_Code.Add('5', "110100110101");
C39_Code.Add('6', "101100110101");
C39_Code.Add('7', "101001011011");
C39_Code.Add('8', "110100101101");
C39_Code.Add('9', "101100101101");
C39_Code.Add('A', "110101001011");
C39_Code.Add('B', "101101001011");
C39_Code.Add('C', "110110100101");
C39_Code.Add('D', "101011001011");
C39_Code.Add('E', "110101100101");
C39_Code.Add('F', "101101100101");
C39_Code.Add('G', "101010011011");
C39_Code.Add('H', "110101001101");
C39_Code.Add('I', "101101001101");
C39_Code.Add('J', "101011001101");
C39_Code.Add('K', "110101010011");
C39_Code.Add('L', "101101010011");
C39_Code.Add('M', "110110101001");
C39_Code.Add('N', "101011010011");
C39_Code.Add('O', "110101101001");
C39_Code.Add('P', "101101101001");
C39_Code.Add('Q', "101010110011");
C39_Code.Add('R', "110101011001");
C39_Code.Add('S', "101101011001");
C39_Code.Add('T', "101011011001");
C39_Code.Add('U', "110010101011");
C39_Code.Add('V', "100110101011");
C39_Code.Add('W', "110011010101");
C39_Code.Add('X', "100101101011");
34 | P a g e
C39_Code.Add('Y', "110010110101");
C39_Code.Add('Z', "100110110101");
C39_Code.Add('-', "100101011011");
C39_Code.Add('.', "110010101101");
C39_Code.Add(' ', "100110101101");
C39_Code.Add('$', "100100100101");
C39_Code.Add('/', "100100101001");
C39_Code.Add('+', "100101001001");
C39_Code.Add('%', "101001001001");
C39_Code.Add('*', "100101101101");
}
private void init_ExtendedCode39()
{
ExtC39_Translation.Clear();
ExtC39_Translation.Add(Convert.ToChar(0).ToString(), "%U");
ExtC39_Translation.Add(Convert.ToChar(1).ToString(), "$A");
ExtC39_Translation.Add(Convert.ToChar(2).ToString(), "$B");
ExtC39_Translation.Add(Convert.ToChar(3).ToString(), "$C");
ExtC39_Translation.Add(Convert.ToChar(4).ToString(), "$D");
ExtC39_Translation.Add(Convert.ToChar(5).ToString(), "$E");
ExtC39_Translation.Add(Convert.ToChar(6).ToString(), "$F");
ExtC39_Translation.Add(Convert.ToChar(7).ToString(), "$G");
ExtC39_Translation.Add(Convert.ToChar(8).ToString(), "$H");
ExtC39_Translation.Add(Convert.ToChar(9).ToString(), "$I");
ExtC39_Translation.Add(Convert.ToChar(10).ToString(), "$J");
ExtC39_Translation.Add(Convert.ToChar(11).ToString(), "$K");
ExtC39_Translation.Add(Convert.ToChar(12).ToString(), "$L");
ExtC39_Translation.Add(Convert.ToChar(13).ToString(), "$M");
ExtC39_Translation.Add(Convert.ToChar(14).ToString(), "$N");
ExtC39_Translation.Add(Convert.ToChar(15).ToString(), "$O");
ExtC39_Translation.Add(Convert.ToChar(16).ToString(), "$P");
ExtC39_Translation.Add(Convert.ToChar(17).ToString(), "$Q");
ExtC39_Translation.Add(Convert.ToChar(18).ToString(), "$R");
ExtC39_Translation.Add(Convert.ToChar(19).ToString(), "$S");
ExtC39_Translation.Add(Convert.ToChar(20).ToString(), "$T");
ExtC39_Translation.Add(Convert.ToChar(21).ToString(), "$U");
ExtC39_Translation.Add(Convert.ToChar(22).ToString(), "$V");
ExtC39_Translation.Add(Convert.ToChar(23).ToString(), "$W");
ExtC39_Translation.Add(Convert.ToChar(24).ToString(), "$X");
ExtC39_Translation.Add(Convert.ToChar(25).ToString(), "$Y");
ExtC39_Translation.Add(Convert.ToChar(26).ToString(), "$Z");
ExtC39_Translation.Add(Convert.ToChar(27).ToString(), "%A");
ExtC39_Translation.Add(Convert.ToChar(28).ToString(), "%B");
ExtC39_Translation.Add(Convert.ToChar(29).ToString(), "%C");
ExtC39_Translation.Add(Convert.ToChar(30).ToString(), "%D");
ExtC39_Translation.Add(Convert.ToChar(31).ToString(), "%E");
ExtC39_Translation.Add("!", "/A");
ExtC39_Translation.Add("\"", "/B");
ExtC39_Translation.Add("#", "/C");
ExtC39_Translation.Add("$", "/D");
ExtC39_Translation.Add("%", "/E");
ExtC39_Translation.Add("&", "/F");
ExtC39_Translation.Add("'", "/G");
ExtC39_Translation.Add("(", "/H");
ExtC39_Translation.Add(")", "/I");
ExtC39_Translation.Add("*", "/J");
ExtC39_Translation.Add("+", "/K");
ExtC39_Translation.Add(",", "/L");
ExtC39_Translation.Add("/", "/O");
ExtC39_Translation.Add(":", "/Z");
ExtC39_Translation.Add(";", "%F");
35 | P a g e
ExtC39_Translation.Add("<", "%G");
ExtC39_Translation.Add("=", "%H");
ExtC39_Translation.Add(">", "%I");
ExtC39_Translation.Add("?", "%J");
ExtC39_Translation.Add("[", "%K");
ExtC39_Translation.Add("\\", "%L");
ExtC39_Translation.Add("]", "%M");
ExtC39_Translation.Add("^", "%N");
ExtC39_Translation.Add("_", "%O");
ExtC39_Translation.Add("{", "%P");
ExtC39_Translation.Add("|", "%Q");
ExtC39_Translation.Add("}", "%R");
ExtC39_Translation.Add("~", "%S");
ExtC39_Translation.Add("`", "%W");
ExtC39_Translation.Add("@", "%V");
ExtC39_Translation.Add("a", "+A");
ExtC39_Translation.Add("b", "+B");
ExtC39_Translation.Add("c", "+C");
ExtC39_Translation.Add("d", "+D");
ExtC39_Translation.Add("e", "+E");
ExtC39_Translation.Add("f", "+F");
ExtC39_Translation.Add("g", "+G");
ExtC39_Translation.Add("h", "+H");
ExtC39_Translation.Add("i", "+I");
ExtC39_Translation.Add("j", "+J");
ExtC39_Translation.Add("k", "+K");
ExtC39_Translation.Add("l", "+L");
ExtC39_Translation.Add("m", "+M");
ExtC39_Translation.Add("n", "+N");
ExtC39_Translation.Add("o", "+O");
ExtC39_Translation.Add("p", "+P");
ExtC39_Translation.Add("q", "+Q");
ExtC39_Translation.Add("r", "+R");
ExtC39_Translation.Add("s", "+S");
ExtC39_Translation.Add("t", "+T");
ExtC39_Translation.Add("u", "+U");
ExtC39_Translation.Add("v", "+V");
ExtC39_Translation.Add("w", "+W");
ExtC39_Translation.Add("x", "+X");
ExtC39_Translation.Add("y", "+Y");
ExtC39_Translation.Add("z", "+Z");
ExtC39_Translation.Add(Convert.ToChar(127).ToString(),
"%T"); //also %X, %Y, %Z
}
36 | P a g e
FormattedData = output;
}
#endregion
}
abstract class BarcodeCommon
{
protected string Raw_Data = "";
protected List<string> _Errors = new List<string>();
namespace BarTry
{
public partial class Pre : Form
{
public Pre()
{
InitializeComponent();
37 | P a g e
}
if (Regular.Checked)
{
state = Regular.Text;
}
else if (Carryover.Checked)
{
state = Carryover.Text;
}
else if (re.Checked)
{
38 | P a g e
state = re.Text;
}
SqlConnection con = new SqlConnection("Data Source=HARSHIT-
PC\\SQLEXPRESS;Initial Catalog=BARCODE;Integrated Security=True");
con.Open();
SqlCommand com = new SqlCommand("Insert into pre VALUES('" +
rno.Text + "','" + papercode.Text + "','" + paperid.Text + "','" + dat.Text
+ "','" + ccode.Text + "','" + state.ToString() + "','" + sem.Text + "','"
+textBox1.Text + "','" + c.ToString() + "')", con);
com.ExecuteNonQuery();
con.Close();
textBox1.Clear();
rno.Clear();
papercode.Clear();
paperid.Clear();
dat.Clear();
ccode.Clear();
sem.Clear();
MessageBox.Show("Entries Updated Successfully");
}
}
}
namespace BarTry
{
public partial class Post : Form
{
public Post()
{
InitializeComponent();
}
39 | P a g e
}
40 | P a g e
{
SqlConnection con = new SqlConnection("Data Source=HARSHIT-
PC\\SQLEXPRESS;Initial Catalog=BARCODE;Integrated Security=True");
con.Open();
SqlCommand com = new SqlCommand("Insert into post VALUES('" +
textBox1.Text + "','" + r_no.Text + "','" + textBox3.Text + "','" +
textBox9.Text + "','" + textBox7.Text + "','" + textBox6.Text + "')", con);
com.ExecuteNonQuery();
con.Close();
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox8.Clear();
textBox9.Clear();
r_no.Clear();
MessageBox.Show("Entries Updated Successfully");
}
}
}
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
41 | P a g e
("select * from Register where rno='" +
TextBox1.Text + "'", con);
SqlConnection connect = new SqlConnection
("Data Source=HARSHIT-PC\\SQLEXPRESS;Initial
Catalog=BARCODE;Integrated Security=True");
SqlCommand command = new SqlCommand
("select * from post where rno='" +
TextBox1.Text + "'", connect);
int i = ds.Tables[0].Rows.Count;
int j = dset.Tables[0].Rows.Count;
if ((j == 0))
{
Response.Redirect("Error.aspx");
}
else
{
String student = dset.Tables[0].Rows[0][2].ToString();
String father = dset.Tables[0].Rows[0][3].ToString();
Label1.Text = student;
Label2.Text = father;
} if ((i == 0))
{
Response.Redirect("Error.aspx");
}
else
{
Label3.Visible = true;
Label4.Visible = true;
GridView1.Visible = true;
}
}
}
42 | P a g e
TESTING
Software testing can also be stated as the process of validating and verifying
that a software program/application/product:
1. meets the business and technical requirements that guided its design and
development;
2. works as expected; and
3. can be implemented with the same characteristics.
The testing of the software is done under various circumstances and considering
different modules or parts of the software disintegrated into units or integrated
as a software, etc.
Unit Testing
Each module as described earlier was tested keeping it in isolation form other
modules. Each of the 5 modules were tested as a single unit for any ambiguity
or errors.
System Testing
The unit tested modules were integrated together an a software as a whole was
implemented and validations for redundancy,etc were applied.
α Testing
Alpha testing is the software prototype stage when the software is first able to
run. It will not have all the intended functionality, but it will have core functions
and will be able to accept inputs and generate outputs. An alpha test usually
takes place in the developer's offices on a separate system.
43 | P a g e
Just as when the software started functioning to the needs it was tested for the
exceptions and errors (logical and syntactical) so as the desired outcome is
achieved.
β Testing
The software has reached "beta" stage when it is operating with most of its
functionality, and is ready for user feedback.
This was done after making an executable of the software and implementing it
on a host other than on which it was developed, ie: friends system and was
checked for the unexpected situations or conditions as viewed from the point of
view of globalisation and user friendliness and environment.
Then it was corrected at our site and was tailor made in such a way it works in
different types of environment.
Acceptance Testing
Usually the end users who will be using the applications test the application
before ‘accepting’ the application.
This type of testing gives the end users the confidence that the application being
delivered to them meets their requirements.
This testing also helps nail bugs related to usability of the application.
This was done by delivering the entire integrated set of modules a complete
software package to the project in-charge and various test cases were satisfied
as per user requirements.
44 | P a g e
IMPLEMENTATION
This activity deals with bringing out the desired software into the real
application for which it has been developed.
The software has been developed in such a manner that it provides a user
friendly GUI to the user. It provides an efficient environment to the user so that
user can work on it without much of training. Illustrations of the screen shots
are elucidated below.
1. Welcome Screen
The first interactive form that user encounters just as the application is
launched displays a Menu to the user for performing different
operations:-
45 | P a g e
2. Registration of New Student
46 | P a g e
Validation
i. Redundancy check :
If the enrollment number entered by the user has already been registered
then a message box saying enrollment number already registered is
displayed and new entry is to be done to save the entries in the database.
47 | P a g e
ii. Entries not completed:
If all the entries of the form is not filled by the user before pressing the
submit button then a message box saying entries not completed is displayed.
The entries will be saved in the database when only if all the entries have
been filled.
48 | P a g e
iii. Numbers Only :
If the entries that must contain numbers only is entered with any alphabet or
special character the a message box saying only integers are allowed is
displayed and the wrong entry is to be reentered.
49 | P a g e
iv. Alphabets and space only:
If the entries that must contain alphabet and space only is entered with any
number or special character then a message box saying only Alphabet and
space are allowed is displayed and the wrong entry is to be reentered.
50 | P a g e
If everything is correct and entries are made correctly and properly
validated then entries move to the database and a message is displayed
that database updated successfully and the entries are reset.
51 | P a g e
3. Barcode Generator
52 | P a g e
ii.)Saving Barcode image at desired location and in the database
After the barcode is generated user can save the image of the barcode in
GIF, JPEG and PNG format at the desired disk location by clicking on
the save image button. Finally user saves the barcode generated along
with the unique code in the database by clicking on save button.
53 | P a g e
4. Pre Evaluation Entries
This form allows the user to enter the pre evaluation entries
corresponding to a particular answer sheet. The answer sheet code is
entered in the barcode id text field.
i . If the code entered in the barcode id text field does not match with the
entries existing in the database then an error message is issued that “ No
such answer sheet exist in the database”.
54 | P a g e
ii. If a match is found in the database then a form is displayed in which all
the pre evaluation entries such as roll number, course, paper code, semester
etc are entered. Finally the data entered is saved in the database on the click
of submit button of the pre evaluation entry form.
i. If the answer sheet number that has been entered in the barcode id text field
does not exist in the database then an error message “ No such answer sheet
exist in the database ” displayed.
55 | P a g e
ii. If the answer sheet number that has been entered in the barcode id text field d
exist in the database then all the pre evaluation entries are displayed, a text field
in which marks are to be entered is also displayed. The marks are then entered
and saved in the database by clicking on the submit button.
6. View Result
56 | P a g e
i. If the user wants to view the result of any candidate roll number of that
student can be entered here, if the roll number exists in the database then the
result is generated.
ii. If the roll number does not exist in the database then an error message is
issued.
57 | P a g e
DATABASE STRUCTURE
Each module of the software interacts with its respective tables in a smooth
manner there by ensuring the smooth running of the software.
i. User Table:
Table 1 :tblUsers
This table contains the unique code of the answer sheet and their corresponding
barcode image. The code of the answer sheet has been defined as the primary
key here.
58 | P a g e
ii. Registration:
Table2 : Register
Table 3: pre
It holds the pre evaluation details of every answer sheet. Code of the answer
sheet defined in the user table is again used here and defined as the primary key
of the table.
59 | P a g e
iv. Post Evaluation
Table 4: post
The table holds the post evaluation data along with some pre evaluation entries
inherited from the pre evaluation table. The code has been defined as the
primary key of the table.
60 | P a g e
Deliverable Items –
61 | P a g e
Milestone Description –
The following milestones or check points mark the completion of some phase of
project implementation-
ii. Analysis – Study and gather information from the resources that provide
the information about the development of a Barcode Generator and a
general examination management system.
iii. Design – In this phase the front-end graphical user interface is created that
will interact with the user.
iv. Coding – It include the back-end coding for the design that provides
proper working and output to the user.
• Unit Testing
• System Testing
• α-Testing
• β-Testing
• Acceptance Testing
vi. Maintenance – This phase includes the modifications in the software after
it is delivered to the user as it may meet few ambiguous situations, they
have to be rectified and removed.
62 | P a g e
Work Breakdown Structure Organization Chart
63 | P a g e
Work Breakdown Structure Worksheet
Work
ID Work Name Description Complexity
1.0 Barcode based A software for automating Medium
examination examination process of university.
management system.
1.1 Project Management
1.1.1 Scope Management Define Specific Boundaries for Medium
Software and Manage them throughout
the development techniques
1.1.1.1 Initiation The Process of formally recognizing
the need of the software and analyzing
similar software on the web
1.1.1.1.1 Scope Statement Documentation of Scope
1.1.1.1.2 Problem Statement Documentation of Problem
1.1.1.2 Scope Planning The process of developing a written
Scope Management Plan as the basis
for future project decisions
1.1.1.2.1 Scope Management Plan Documentation of Detailed Scope
Management Plan
1.1.1.3 Scope Definition The process of subdividing the major Medium
project deliverables into smaller, more
manageable components
1.1.1.3.1 WBS(Work Breakdown Broad Categorization of Work to be
Structure) done during software development
1.1.1.4 Scope Verification The process of formally accepting the
software scope by the stakeholders
clients.
1.1.1.4.1 Formal Acceptance Documentation of Scope Approval
1.1.1.5 Scope Change Control The process of controlling changes to
project scope
1.1.1.5.1 Scope Changes, Documentation of any Scope Changes
Corrective Action and occurs during software development
Lessons Learned for future reference
1.1.2 Schedule Management Estimation of Efforts in terms of time , High
1.1.2.1 Schedule Estimation Estimation of time frame needed to
complete the project
1.1.2.1.1 WBS Update Detailed Documentation of Program,
Project, Tasks, Activities and Work
Packages
1.1.2.1.2 Schedule Estimation Documentation for Schedule
64 | P a g e
Work
ID Work Name Description Complexity
Estimation Calculations
1.1.2.1.3 Scheduling Control Detailed Documentation for Schedule
Updates, Corrective Actions and
Lessons Learned for future reference
1.2 Feasibility Study
1.2.1 Business Problem Detailed Description of Problem Medium
Definition
1.2.2 Feasibility Report Detailed documentation of feasibility Medium
study
1.3 Analysis
1.3.1 Functional Requirement Define Behavior and functionalities of Medium
the Proposed Software
1.3.2 Non Functional Define Qualities(Constraints) for the Medium
Requirement Proposed Software
1.3.3 Analysis Report Detailed Documentation of analysis High
phase
1.4 Design
1.4.1 Modeling Includes Designing of all types of High
UML diagrams
1.4.1.1 Usage Modeling The Process to identify how people
work with the proposed system
1.4.1.2 Process Modeling The Process to identify how processes
will interact
1.4.1.2.1 Data Flow Diagrams Is a graphical representation of the
"flow" of data through the software
1.4.1.3 Entity Relationship Abstract and conceptual representation
Diagram of data.
1.4.2 User Interface Designing Mainly includes form Designing Medium
1.4.2.1 Standards Documentation of standards adopted
Documentation for designing User Interface
1.4.2.2 Forms Designing The Process of creating User interface
considering all standards.
1.5 Develop
1.5.1 Software Coding Coding with high level of standards Medium
1.5.2 Software Debugging Debug code for proper functionality Medium
1.5.3 Unit Testing Software verification and validation Medium
method in which a programmer tests if
individual units of source are correct.
1.5.4 System Testing Testing conducted on a complete, Medium
integrated system.
65 | P a g e
Work
ID Work Name Description Complexity
1.5.5 α Testing Testing conducted at the Developer Medium
sight by end users.
1.5.6 β Testing Testing conducted at the end users site Medium
1.5.7 Acceptance Testing End-user testing, Site testing Medium
1.6 Implement
1.6.1 Implementation Detailed plan how to implement the Medium
Planning developed software
1.6.1.1 Plan Documentation Detailed documentation of
implementation plan
1.6.2 User Support Generalized illustrative user manual Low
Documentations
1.6.3 Implementation Testing Verification and validation of Medium
and verification developed software after
implementation
1.6.3.1 User Acceptance Report Acceptance of the software from the
user.
1.6.3.2 Providing Deliverables Providing the deliverable items to the
user.
1.6.4 Implementation Constant monitoring of the Medium
Performance Monitoring implemented software for performance
enhancement
1.7 Infrastructure
1.7.1 Facilities Work environment Medium
1.7.2 Install Development Install all the software and hardware Medium
Hardware and Software needed for the software development
66 | P a g e
CRITICAL PATH
1
0
0
0
67 | P a g e
SCHEDULE ESTIMATION
Cost and Schedule Estimation Equations and Related fields
1.
1.
Effort=A*EAF*KLOCB
Where
A: Constant, used to capture the multiplicative effects on effort with projects of increasing size
Calibrated to 2.94
2.
Schedule=[3.67*Effort(.28+.2*(B-.91))]*Sched%/100
Where
3.
Cost=Salary*Staff*Schedule
Where
68 | P a g e
Driver Very Low Low Nominal High Very High Extra High
Scale Drivers
Precedentedness (PREC) 6.20 4.96 3.72 2.48 1.24 0.00
Development Flexibility (FLEX) 5.07 4.05 3.04 2.03 1.01 0.00
Architecture/Risk Resolution (RESL) 7.07 5.65 4.24 2.83 1.41 0.00
Team Cohesion (TEAM) 5.48 4.38 3.29 2.19 1.10 0.00
Process Maturity (PMAT) Weighted average of “Yes” to CMM Maturity Questionnaire
answers
Cost Drivers
Analyst Capability (ACAP) 1.42 1.19 1.00 0.85 0.71 NA
Application Experience (APEX) 1.22 1.10 1.00 0.88 0.81 NA
Programmer Capability (PCAP) 1.34 1.15 1.00 .88 .76 NA
Platform Experience (PLEX) 1.19 1.09 1.00 0.91 0.85 NA
Language and Tool Experience (LTEX) 1.20 1.09 1.00 0.91 0.84 NA
Personnel Continuity (PCON) 1.29 1.12 1.00 0.90 0.81 NA
Use of Software Tool (TOOL) 1.17 1.09 1.00 0.90 0.78 NA
Multisite Development (SITE) 1.22 1.09 1.00 0.93 0.86 0.80
Development Schedule (SCED) 1.43 1.14 1.00 1.00 1.00 NA
Execution Time (TIME) NA NA 1.00 1.11 1.29 1.63
Main Storage (STOR) NA NA 1.00 1.05 1.17 1.46
Platform Volatility (PVOL) NA 0.87 1.00 1.15 1.30 NA
Required Reliability (RELY) 0.82 0.92 1.00 1.10 1.26 NA
Database Size (DATA) NA 0.90 1.00 1.14 1.28 NA
Product Complexity (CPLX) 0.73 0.87 1.00 1.17 1.34 1.74
Required Reusability (RUSE) NA 0.95 1.00 1.07 1.15 1.24
Documentation (DOCU) 0.81 0.91 1.00 1.11 1.29 1.63
Key Process Area Almost Always Often (60%- About Half Occasionally Rarely If Doesn’t Don’t
(>90%) 90%) (40%-60%) (10%-40%) Ever (<10%) Apply Know
Requirement Management √
69 | P a g e
Software Project Planning √
Software Project Tracking √
and Oversight
Software Subcontract √
Management
Software Quality √
Assurance
Software Configuration √
Management
Organization Process √
Focus
Organization Process √
Definition
Training Program √
Integrated Software √
Management
Software Product √
Engineering
Intergroup Coordination √
Peer Reviews √
Quantitative Process √
Management
Software Quality √
Management
Defect Prevention √
Technology Change √
Management
Process Change √
Management
PMAT=5-[∑18i=1(((KPA%)i/100)*5/18)
PMAT=2.2233
B=.91+.01*∑5i SFi
B=1.0997
Effort=A*EAF*KLOCB
A=2.94
EAF=.87
70 | P a g e
Effort≈21.56 Person Months
Schedule=[3.67*Effort(.28+.2*(B-.91))]*Sched%/100
Staff= 2
Schedule=2.5 months
Conclusion:
Effort Needed Schedule
21.56 person months 2.5 months
71 | P a g e
SLOC Attribute Included Excluded
What is included or excluded
Executable statements √
Non executable data declaration statements and √
compiler directives
Comments, continuation lines, banners, blank √
b: These lines should be considered as pre-existing lines of code and the amount of rework required on
the translated code should be defined through the use of rework percentages.
72 | P a g e
Equipment Configuration –
Hardware Used-
Intel Core 2 Duo, 2.40 GHZ
4GB DDR RAM
320GB Hard Disk
14.1 inch Screen
Implementation Languages –
73 | P a g e
CONCLUSION
74 | P a g e
FUTURE ENHANCEMENTS
A login system could have been provided so that only few of the staff can
use the software.
Use of AJAX tabs could have given entirely different look to the software
which being more proficient.
75 | P a g e
REFRENCES
v. Reference 5: www.ajax.net-tutorials.com
76 | P a g e