library managemant
TRANSCRIPT
-
7/30/2019 library managemant
1/105
A PROJECT REPORT ON (PROJECT GUIDE) LIBRARY SYSTEM MRS.KALPANA GARGOF A LEVEL
(SUBMITTED BY) (DIRECTOR)RAVINDER SINGH TOMAR MRS. KALPANA GARG
INDEX
Page1
-
7/30/2019 library managemant
2/105
1. INTRODUCTION OF PROJECT2. RATIONAL
a) CURRENT SYSTEM
b) PRESENT SYSTEM
C) CANDIDATE
3. OBJECTIVE
4. ANALYSIS REPORT
5. SYSTEMS DIAGRAM
a. HIERARCHIAL CHARTS
b. SYSTEM FLOW CHART
c. ER DIAGRAMd. DATA FLOW DIAGRAM
6. DESIGN
a) FORM
b) DATA BASE TABLE
c) PROGRAM CODE
7. TESTING AND DEBUGGING8. LIMITATION
9. ADVANTAGE
10.CONCLUSION
11.BIBLIOGRAPHY
CERTIFICATE
Page2
-
7/30/2019 library managemant
3/105
This is to certify that RAVINDER SINGH TOMAR (Doeacc reg. no.-656696 ) has satisfactorily completed the project work entitled:
LIBERARY MANAGEMENT SYSTEM
in partial fulfillment of A Level examination by DOEACC SOCIETYfor the year 2008-2009.The work has been carried out by the studenthimself and has not been submitted anywhere else for the award of anyother course .
Mrs. Kalpana Garg Mrs. KalpanaGarg
(Project Guide)(DIRECTOR)
Page3
-
7/30/2019 library managemant
4/105
A c k n o w l e d g m e n t s
It is easy to highlight those persons who are actively involve indevelopment of any project but it is hard to bring to highlightthose persons who have given their best in the making of projectindirectly, thats why they have acquired a special corner in ourhearts and it is a Herculean task to foot the bill of their precioussupport and encouragement and they will win laurels for theirgenerous help because we were unable to come with flying colorwithout their support.
Very first, I would like to thank Mrs. Kalpna Garg trend me forthis level of project. She taught how the system should bedesigned? She gave me some personal skills to understand anysystem, and to make the project adoptable. She taught me thestandards, which provide a professional look-n-feel to anypackage. Her Skill of analyzing any problem is quite different buteffective enough. She gave pretty best approaches for makingthis attractive project.
Mrs. Kalpna Garg , who opt me for her trust anddirection which made a royal for me to prove me. e encouragedme to make this level of project so that I can make my identity.She was the only one who envisaged for such a system that canmake feel better relief in examination to benefit both by thefaculties and students. All this attributed him for a keypersonality.
Contribution of Miss. Parul Bansal and Miss.
Divya Agrawal is really remarkable who have given their all kindof help to make this project at its best output. What ever resultare being gain from this project were helpless without their
Page4
-
7/30/2019 library managemant
5/105
guideline and support. The success of this project cant beimagine in the absence of their precious suggestions.
And, finally heartfelt indebtedness to Mr. Ashutosh Garg and allthe CEDTI faculties, who made me to develop and deeper in thisproject up to an extent.
RAVINDRASINGH TOMAR
REG No. 656696
Page5
-
7/30/2019 library managemant
6/105
INTRODUCTIONOF
PROJECT
Page6
-
7/30/2019 library managemant
7/105
INTRODUCTION
Now a day every field wants a computerized system for the
better performances of their work. The computerized system, all the
information will be carried out in the same way as the manual system
but so many aspects.
The manual system is time consuming because of less work
efficiency in comparison to machine and also it need much paper
work that is a big problem and there may be possibilities of errors.
The computer system proposed is beneficial more powerful,
hang accuracy and speed and it remove the problem related withmanual system.
The main of LIBRARY INFORMATION SYSTEM is as
follows:
1. Information of members.
2. Information of books.
3. Information of issuing detail.
4. Elimination of manual labor.
.
Page7
-
7/30/2019 library managemant
8/105
Page8
-
7/30/2019 library managemant
9/105
PROJECT REQUIREMENT
Category : - LIBERARY MANAGEMENT SYSTEM
Tools/ Platform :-
Language Software: - RDBMS and Visual Basic
Front End : - Microsoft Visual Basic 6.0
Back End : - Microsoft Access
Hardware : - Pentium or Equivalent Processor,
32MB or above RAM, 2GB or above
Hard Disk, VGA/SVGA Monitor.
Operating System : - Windows XP Service Pack 2
Page9
-
7/30/2019 library managemant
10/105
RATIONALS
Page10
-
7/30/2019 library managemant
11/105
RATIONALS
CURRENT SYSTEM:-
Now a days, in IT era after computerizing the system, the accuracy,
efficiency and record increase tremendously and access of data
information will become easier and quicker. By computerizing the
manual system, we have thought of reducing and solving the problemof manual system which are as following:
1. Managing through manual process is time taking, a lengthy /
difficult process.
2. It dose not provide the facility of fine calculation.
3. Maintenance of book issuing detail is difficult.
4. In this way, we can save the time & man power.
PRESENT SYSTEM:-
In present system we are trying to reduce drawback of current
system. The drawback of time consolation could rectify in our
present system, which will make our system more time efficient.
Secondary being computerizing our system will have much speed
accuracy as compared to system. Our all data and information will
be stored on secondary storage device, which are not perishable as
compared to paper stationary resulting less out expenditure on
stationary items. In our present the process are carried out
automatically. It avoid or reduce human action ant thus save labors.
Page11
-
7/30/2019 library managemant
12/105
CANDIDATE SYSTEM:-
With the help of GUI we will reduce the handling problems of
current system and made it easy in use, using database system we will
make a project, which will be feasible in all respect. It increase
efficiency and speed in operation in our project it make a easy
separation & accounting the dues and gives the reports of all object
like members, books etc.
Page12
-
7/30/2019 library managemant
13/105
O B J E C T I
V E
Page13
-
7/30/2019 library managemant
14/105
OBJECTIVE1. To convert existing manual system in to computerized.
2. To add the facilities of automatic fine calculation.
3. To make possible reports on various object based.
4. To develop such system through which access of information
become easy for voting.
Page14
-
7/30/2019 library managemant
15/105
ANALYSIS
Page15
-
7/30/2019 library managemant
16/105
REQUIREMENT ANALYSIS
AN OVERVIEW TO SYSTEM ANALYSISThe system analysis phase is considered to be one of the most important
phases in the system development life cycle. It is immensely importantthat the software developer make through study of the existing system,through study of the system is made and need i.e. features that are criticalto system success and users wants are brought out.The study will enable the developer to know the intricacies of the existing
system.
Requirement analysis is done in order to understand the problem whichthe S/W system is to solve e.g., the problem could be automating theexisting manual system or developing a completely new automatedsystem or a combination of the two. For large systems having a largenumber of features and the need to perform many different task. Theemphasis in requirement analysis is on identifying what is needed fromthe system, and not how the system achieves its goal.The system analysis can be divided into three major steps They are asfollows:
1.Identification of Needs (Customers requirement)2.Preliminary investigation3.Feasibility Study
(i) Technical Feasibility
(ii)Economical Feasibility(iii)Operational Feasibility
1. PROBLEM DEFINITION ): -
In the present scenario we use the manual voting system at most of the places which has the following problem:-
1. Show working procedure.
2. More and more papers need more space.
Page16
-
7/30/2019 library managemant
17/105
3. Files management is typical.
4. Chances of errors in calculation
Therefore we want to create such powerful software which not onlycomputerized the present library management system -But also should be so handy and easy that can be handled and operatedeasily without any problem.
2. Preliminary investigation:- As there is a likely to be a stream of user
requests, standard procedure must be established to deal with them. The
preliminary investigation is one way to handle this. The objective is to
determine whether the request is valid and feasible before a
recommendation is reached to do nothing, improve or modify the existing
system or build a new one. For eliciting information regarding users
requirements various approaches can be followed like asking, getting
information from the existing system and prototyping. Here existing
system is examined in the light of current problems faced by the staff and
candidates and found unsatisfactory, and new system has to be put as
soon as possible to cope up with current situation. So, all the requests of
the user is gathered and put in a file.
3. Feasible study:- Feasibility study is a test of system proposal
according to its work ability, impact on the organization, ability to meet
Page17
-
7/30/2019 library managemant
18/105
user needs, and effective use of resources. This study is carried out to
select the best system that meets performance requirements. This entails
identification, description, and evaluation of candidate systems and
selection of the best system for the job. As discussed above, it is must to
install new system which is capable to cope up with current situation. So,
it after studying all the feasibility and current demand of the organization
the system proposed is found feasible to built.
Economic feasibility:- Feasibility analysis is the most frequently used
method for evaluating the effectiveness of a candidate system. More
commonly known as cost / benefit analysis, the procedure is to determine
the benefits and savings that are expected of a candidate system and
compare them with costs. If benefits outweigh costs, then the decision is
made to design and implement the system. Otherwise further justification
or alterations in the proposed system will have to be made if it is to have
a chance of being approved.
Technical Feasibility:- Technical feasibility centers around the existing
computer system (hardware, software etc) and to what extent it can
support the proposed addition. For eg. if the current computer is
operating at 80% capacity an arbitrary ceiling then running another
application could overload the system or require additional hardware.
This involves financial considerations to accommodate technical
Page18
-
7/30/2019 library managemant
19/105
enhancements. If the budget is a serious constraint, the candidate system
is considered not feasible.
Operational Feasibility:- It is common knowledge that computer
installations have something to do with turnover, transfers, retraining and
changes in employee job status. People are inherently resistant to change,
and computers have been known to facilitate change. An estimate should
be made of how strong a reaction the user staff is likely to have toward
the development of a computerized system.
Page19
-
7/30/2019 library managemant
20/105
REQUIREMENT COLLECTION ANDANALYSIS
Interviewing Personnel:- The S/w is being developed basically for use
of personnel dept. So discussions were made with the persons of the dept.
To extract out the exact requirement.
Observing The Current System:- The current system is manual and is
worth observing the current system. It helped a lot in designing the
Computerized System.
Studying similar Project on Business Managing: -The developer went
to study development of various database management system. Theother software were studied.
Page20
-
7/30/2019 library managemant
21/105
SOFTWARE ENGINEERING PARADIGMAPPLIED
To solve actual problems in a industry setting, a software engineer (or theteam) must incorporate a development strategy that encompasses the
process, methods and tools. This strategy is often referred to as a processmodel, which is chosen based on the nature of the project and application,the methods and tools to be used, and the controls and deliverables thatare required.For Hospital Staff I have chosen an INCREMENTAL MODEL thatcombines elements of the linear sequential model with the iterative
philosophy of prototyping. In an incremental mode, the first increment isoften a core product. That is, basic requirements are addresses, but manysupplementary features(some known, others unknown) remainundelivered. The core product is used by the candidate (undergoesdetailed review). This review helps in the formation of a plant andaddresses the modification of core product to better meet the needs of customer and the delivery of additional features and functionality. The
process is repeated following delivery of each delivery of eachincrement, until the complete product is produced.
( i ) ER DIAGRAM
Entity Relationship diagram is a technique for analysis and logicalmodeling of a systems data requirement. It uses three basic units, their attributes and the relationships that exist between the entities. It uses agraphical notation for representing these.
PROPERTIES OF A GOOD ER DIAGRAM:-1. A good E-R- diagram has always 1:M relationship2. If some entities always have 1:1 relationship, then it is better to put
one entity as an attribute of other.3. break all the M:M relationship into two equivalent 1:M
relationships by intorducing an additional entity.
( ii ) AN OVERVIEW OF SYSTEM DESIGN
System design involves first the logical design and then the physicaldesign construction of the system. When a system analyst formulates thelogical design, s/he writes the detailed specification for the new system;
Page21
-
7/30/2019 library managemant
22/105
he describes its features, the outputs, the inputs, files and databases and procedure. The statements of these features are termed as the designspecification.Physical construction, the activities following the logical design,
produces program software design specification instructs programmer about what the system do. The programmers that accept data from theusers, process data, produce the reports and store data.One the basis of the system analysis, the system is designed to follow thetop down approach, function requirements, modular design, modular design, data dictionary and input/output format are carefully analyzed anddesigned so that it is easy to understand the whole system by goingthrough the design of the system.Modular approach is taken into consideration such that is minimum
coupling and maximum cohesion. If we want to change the module theremay be hardly any effect on the other module/modules are broken up toatomic level so that the program level becomes simple.
The system design involves the following three phases:-1. Design of input2. Design of output3. Design of database
( iii ) DESIGN OF INPUT
Input design if the process of converting user originated inputs to acomputer based format. The goal of designing the input data is to makethe data entry as easy, logical and free from errors as possible. Inaccurateinput data are the most common cause of errors in data processing.Errors entered by the data entry operator can be controlled by inputdesign. In entering data the operators need to know the following:
The allocated space for each quantity/item. Field sequence, which must match that in the source
document. The format in which the data field are entered for e.g. the
data may be of different formats but the user might berequired to enter it only in one format. So, it is essentialfor him to know the exact format in which he shouldenter data so that later on wrong results re not obtainedafter processing the data.
Page22
-
7/30/2019 library managemant
23/105
The LIBRARY MANAGEMENT SYSTEM has input screen designedduring VB 6.0. The forms and the reports are extremely user friendly andthe major features of the screen are listed below:
Appropriate hints are provided on the field level in each
form, which facilitates the data entry operator whenhe/she is using the form for data entry.
Lists of values are provided adequately as and whenrequired, for the convenience of the user.
For each of the options, data entry is facilitated through the use of singlescreen.These in turns make the data entry less cumbersome and lessconfusing for data entry operator.
( IV) DESIGN OF OUTPUT
Output is the most important and direct source of information to the user.Efficient, intelligible output design should improve the systemsrelationship with the user and helps in decision making. A form of outputis a hard copy from the printer and can also be displayed on the terminal.
(V) DESIGN OF DATABASE
Design of database may be considered as the backbone of the candidatesystem. How well and efficiently the system is able to retrieve data,
process it and put it back depends on how well the database has beenstructured and organized. This section and the following subsectionthrow light on how the database has been structured and organized andhow the database has been designed for the candidate system.
(VI) NORMALIZATION
Normalization is a process, which ensures that data in the database arenot unnecessarily duplicated. It also ensures that addition and deletion of entity rows (or tuples) or change of individual attribute values do not leadto accidental loss of data or error in database. It is performed by firstconverting a relation so that all entities are simple. These results in arelation said to be in First Normal Form (1NF). Successive normalizationsteps such as 2NF, 3NF, BCNF, 4NF, 5NF are carried out to meet theobjectives.
1. 1NF:- In 1nf composite attribute is converted to individual
attribute. After doing this the common attributes for a compositeattribute are duplicated as many times as there are lines in the composite
Page23
-
7/30/2019 library managemant
24/105
attribute. This form is also called a flat file. The tables here are free from1NF.
2. 2NF:- A relation is said to be in 2NF if it is in 1NF and non-key
attributes are functionally dependent on the key attribute(s). Further if the key has more than one attribute then no non key attributes should befunctionally dependant upon a part of the key attributes. The tables in thegiven system are in 2NF.
3. 3NF:- A third normal form normalization will be needed where allattributes in a relation tuple are not functionally dependent only on thekey attribute. If two non key attributes are functionally dependent oneach other then there will be unnecessary duplication of data.
BCNF(Boyce-codd normal form):- Assume that relation has morethan one possible key. Assume further that the composite keys have acommon attribute. If an attribute of a composite key is dependent on anattribute of the other composite key normalization called BCNF isneeded.
4NF & 5NF(Fourth and fifth normal form):- When attributes in arelation have multi valued dependency then 4Nf and 5NF normalizationare required.
Page24
-
7/30/2019 library managemant
25/105
INTRODUCTION TO VISUAL BASIC
Visual basic is an idle programming language for developingsophisticated professional application for Microsoft window. Itmakes us of graphical user interface (GUI) for creating robust and
powerful application. The graphical user interface as the namesuggest users us in text which enables users to interact with anapplication.
The feature makes it easier to come pre hand thinks in quicker and easier way.
Coding in GUI environment is quit transition form traditionallinear programming. Method where the user is guided throws a line pathof execution and it limited to a small set of operation. In GUIenvironment the no. option open to the user are much grater alien morefreedom to both the user an developer feature such as easier comprehension user friendliness , faster application development and
many other aspects such as introduction of internet feature make visual basic an interesting tool to work with.
Visual basic was developed from BASIC programming language in1970 my Microsoft.Got it starts by developing ROM based interpreted BASIC for the earlymicro processor based computer. In 1982 Microsoft quick basicrevolutionized basic a legit lionized as the serious development languagefor MS-DOS environment. Later On Microsoft Corporation create
The enhance version of basic called visual basic for window.The proposed automated payroll system is developed in visual basic 6.0version and for data base MS ACCESS is used as back end. The system isdesigned and developed to suit requirement of medium size of payrollsystem.
Page25
-
7/30/2019 library managemant
26/105
Standard EXE:-A standard EXE project is a typical application most of the application inthis language art standard EXE project.
Active X EXE, Active DLL:-Active X components are basic code-building components thats do nothave a visible interface and that can add special functionality to your application.
Active X Control:-Active X control such as a TextBox or command button control is a basicelement of the user interface .if the Active X control ,that come withvisual basic do not provide the functionality you need, you can build your
own custom controls .Active X Document EXE,Active X Document DLL That can run in theenvironmentsof a container that supports hyperlinking.
VB Application Wizard,VB Wizard Manager:-The application wizard takes you through the stenos of setting up theskelton of a new application.
Data Project:-It is identical to the Standard EXE project type ,but it automatically addsthe controls that are used in accessing databases to the toolbox.
DHTM Application:-VB6 allows you to build dunamic HTML page that can be displayed inthe browsers window on a client computer .Instead of showing you howto use VBs tool to automate the process of designing DHTML pages.HS Application:-VB6 allows you to build applications that run on the web server andinteract wuth client over the internet with the internet information server.
VB Enterprise Edition Controls:-It simply creates a new standard EXE project and load all the tools of theenterprise edition of VB.
Project Explorer:-The window totled project explorer ,which display the components of the
project .The project window is called project explorer causes it has the
look of the window explorer.
Page26
-
7/30/2019 library managemant
27/105
Properties Window:-The property window contains the property of setting for the selected
control properties are attributes of an object ,such as its size caption andcolor . you can adjust the appearance of the controls and the form with point and click operations.
Form Designer:-The form designer is the main window in the middle of the screen ,and in
it you design and edit the applications user interface .The samewindows display a test editor in which you can enter and edit theapplications code.
Form Layout:-You use the form layout window ,which is in the lower right corner of the VB IDL , to determine the initial positions of the forms in your application.you can move forms around and place them on too of eachother.
Immediate Window:-The immediate window ,the bottom of the IDE is a debugging while anapplication is running you can stop it and use the immediate window toexamine of change of value of the application variable and to execute VBcommands in immediate mode.
THE MENU BAR The menu bar contains the commands you need work with Visual Basic.The basics menu are------
File:-The contains the commands for opening and saving projects and creatingexecutable files and list of recent projects.
Edit:-Edit contains the editing commands (e.g.-Undo, Copy, Paste) plus anumber of commands for formatting and editing your code (e.g Find,Replace).
View:-View contains commands for showing of hinding components of the IDE.
Page27
-
7/30/2019 library managemant
28/105
Project:-Project contains commands thar add componenrs to current project,references to windows and new tools to the toolbax.
Format:-Format contains commands for aligning the control on the form.
Debug:-Debug contains the usual debugging commands.
Query:-Query contains commands that simplify the design of structures QueryLanguage(SQL).
Diagram:-Diagram contains commands for efiting database diagrams.
Run:-Run contains commands that start, break an execution of the current
application.
Tools:-Tools contains the tools you need in building Active X components andActive controls; contains the commands to start the Menu Editor and theotions commands, which lets the customize the environment.
Window:-Windows is the standard Windows menu of an application that containscommands ti arrange on the screen.
Help:-Help contains formation to help you as you work.
Page28
-
7/30/2019 library managemant
29/105
THE ELEMENT USE IN THE INFORMATION:-
The toolbax of the visual IDE and lets quickie run through controlsshown in the Toolbax.
Label:-The Label text appears to be placed directly on the form. You set thelabels text with the caption property.
TextBox:The Textbox control is a mini text editor, and its most important propertyis the text property, which can set the text on the control or read thetext that the user enters.
Frame:-This control is used to draw boxes on the form and to group other elements.
Command Button:-Command buttons representd an action that is carried out when the user click the button.
Option Button:-The Option Buttons main property is checked,a nd it is True if thecontrol is checked, and False otherwise.
Combo Box:-It contains an Edit fields. The user can choose an item from the listoriented a new string in the Edit field. The item selected from the list(or entered in the Edit field.)
List Box:-List box control can contains many lines and the user can scroll the list tolocate an item. The selected item in a list box control is given bythe text property.
Shape:-This control is used to draw graphical element such as boxes and circles,on the surface of a form.
MSFlex Grid Control:-The MSFlex Grid Control is an extremely used tool for displayinginformation in a tabular form, but not for data entry.
Page29
-
7/30/2019 library managemant
30/105
VISUAL BASIC PROGRAMMING
1. Work completely differently
The core of a visual basic programmed is a set of independent pieces of code (more maintainable) that are activated by, and respond to only the
events they have been told recognize.
2. Fundamental shift
Instead of designing a program to do what a programmer thinks shouldhappen, the user is in control (modeless programming).
3. Event procedures
Much of the programming code in visual basic that tells your programhow to respond to events like mouseClicks occur in what visual basic calls events procedures.Essentially, everything executable in visual basic program is either in event procedures.Or is used by event procedures to help the
procedures to carry out its job.
Page30
-
7/30/2019 library managemant
31/105
WHY WE CHOOSE VISUAL BASICAS AS A FRONTEND TOOL
Visual Basic is not just a language. Its an IDE in which you candevelop run, test and debug your application.
The working environment in Visual Basic is often referred to as theintegrated development environment or IDE because it integratedmany different functions such as design, editing, compiling anddebugging within a common environment.
Visual Basic provides a great deal of flexibility, allowing user of configure the working environment to best suit your application.
User can choose between a single or multiple document interfaceand user can adjust the size and positioning various integrateddevelopment environment element.
Data access features allows users to created database front endapplication and scalable server side component for most popular database formats, including Microsoft SQL server and other database.
Page31
-
7/30/2019 library managemant
32/105
INTRODUCTION TO MS-ACCESS
It is a coherent of data with some inherent meaning. Design cast and populated with data for a specific purpose. A data base stores data that isuseful to us. This data is only part of the entire data available in the worldaround us.
To be able to successfully design and maintain database we have to dothe following:-
Identify which part of the world data is of interest to us. Identify what specific objects in that part of world data are of
interests to us. Identify a relationship between the object.
Hence, the objects, their tributes and the relationship between them thatare to us are stored in database that is designed, build and populated datafor a specific purpose.
MS Access is developed by Microsoft according to above consideration.MS Access a powerful tool of MS Office which allow user to create
database and also have ability to maintain a database.
Page32
-
7/30/2019 library managemant
33/105
WHY WE CHOOSE MS-ACCESS AS A BACK ENDTOOL?
Microsoft access is a powerful relation data base management(RDBMS), because it can establish between two or more data base andtable very easily.
Microsoft access is a user friendly-program, Microsoft access can be used to store large amount of data for examples students records,employments records, and inventory records etc.
MS-Access helps to create database table, enter new records, deletedesired records, relation between its table and get the print very easily. InMS-Access we can create reports and mailing labels on based of data
base table.
Page33
-
7/30/2019 library managemant
34/105
Page34
-
7/30/2019 library managemant
35/105
STRUCTURE OF VB APPLICATION
.FRM
.FRX
.BAS
.CLS
.OCX
Project file Application.RES . VBP .EXE
Page35
FromModule
BinaryData
StandardModule
ClassModule
CustomModule
ResourceFile
From1.frmFrom2.frmMod1.basClass1.clsRes1.res
-
7/30/2019 library managemant
36/105
Package Structure1.
2.
Record
Book Detail
Delete Member
Member Detail
Add New Member
Issue Detail
Book Detail
Add Book Delete Book
Issue Detail
Page36
Report
Member Detail
-
7/30/2019 library managemant
37/105
SYSTEM FLOW
CHART
Page37
-
7/30/2019 library managemant
38/105
SYSTEM FLOW CHART
Page38
Login Form No EXIT
OK
LIBRARYMANAGEMENT SYSTEM
DISPLAY ALL FORMS
OUTPUT
EXIT
-
7/30/2019 library managemant
39/105
MEMBER MENUFLOWCHART
3 1
2
Page39
START
Click on member menu on main form.
DetailAddDelete
x
Display Member
Details
Back Displaysdeletemember form
Display Main
Form
y
-
7/30/2019 library managemant
40/105
yes
no
Page40
Want toadd?
X
INPUTDETAILSFOR MEMBER
Display mainform
Add
-
7/30/2019 library managemant
41/105
yes
no
Page41
Wantto
delete
y
Enter recordof
Member to be deleted
Display mainform
Delete
DisplayDelete
Member Form
-
7/30/2019 library managemant
42/105
ADD CADIDATEFLOWCHART
No
Yes
No
Yes
Page42
Start
Display Record
Accept Information
If Add
If
Save
Exit
Record File
-
7/30/2019 library managemant
43/105
DELETE CANDIDATEFLOWCHART
No
Yes
No
Yes
Page43
Start
Display Record
Accept record to be deleted
If Delete
If Save
Exit
Record File
-
7/30/2019 library managemant
44/105
SEARCHING FLOWCHART
No No
Yes Yes
Yes
Page44
Start
Display Recordby Member ID no.
DisplayRecord
by MemberName
If byMember ID
no.If By
MemberName
Exit
-
7/30/2019 library managemant
45/105
LIBRARY FLOWCHART
Page45
Start
Display MassageFor New Member
Accept New Member
Exit
Data Processing
Display All Memberlist
-
7/30/2019 library managemant
46/105
Page46
Start
Accept Code
ExitCall Application
If Valid
-
7/30/2019 library managemant
47/105
ENTITY RELATIONSHIPDIAGRAM
Page47
-
7/30/2019 library managemant
48/105
ENTITY RELATION DIAGRAM
Page48
BOOK ISSUE &RETURN
MEMBER
BOOK
STOCK PUBLISH
ER
CODE AUTHOR
BOOK NAME
RACK NO.
MEMBER CODE
MEMBER FEES
RENEWLDATE
MEMBER NAME
ADDRESS
-
7/30/2019 library managemant
49/105
DATA FLOWDIAGRAM
Page49
-
7/30/2019 library managemant
50/105
Data entryProgram
LibraryTransaction
Page50
LibraryProgram
Report
-
7/30/2019 library managemant
51/105
CollectData
Page51
LibraryProgram
REPORT
Report Add
Members
TRANSACTION
-
7/30/2019 library managemant
52/105
DATA FLOW DIAGRAM
Is book alreadyIssuedor not
request toissue book Yes/No
Book issuedY/N
Is book Available/ not
Y/N
Update
Page52
MEMBER ISSUE
DATABASE
BOOK ISSUEPROCESS
BOOK DATABASE
-
7/30/2019 library managemant
53/105
REPORT
Page53
MEMBER CODE
LIBRARY
MEMBER NAME
ADDRESS
MEMBER FEES
RENEWELDATE
BOOK CODE
BOOK NAME
AUTHER
PUBLISHER
RECK NO.
LIBRAR Y
-
7/30/2019 library managemant
54/105
Page54
-
7/30/2019 library managemant
55/105
Page55
-
7/30/2019 library managemant
56/105
ENTRANCE FORM
LOGIN FORM
Page56
-
7/30/2019 library managemant
57/105
WELCOME FORM
Page57
-
7/30/2019 library managemant
58/105
Page58
-
7/30/2019 library managemant
59/105
INTRODUCTORY FORM
USER PLATFORM
Page59
-
7/30/2019 library managemant
60/105
LIBRARAY MANAGEMENT
Page60
-
7/30/2019 library managemant
61/105
Page61
-
7/30/2019 library managemant
62/105
ABOUT PROGRAMER
Page62
-
7/30/2019 library managemant
63/105
BOOK DETAILS
MEMBER DETAILS
Page63
-
7/30/2019 library managemant
64/105
ADD MEMBER FORM
Page64
-
7/30/2019 library managemant
65/105
Page65
-
7/30/2019 library managemant
66/105
CONGRATULATIONS
Page66
-
7/30/2019 library managemant
67/105
DELETE MEMBER FORM
Page67
-
7/30/2019 library managemant
68/105
ADD BOOK FORM
Page68
-
7/30/2019 library managemant
69/105
BOOK DELETION FORM
Page69
-
7/30/2019 library managemant
70/105
ISSUE DETAIL FORM
ISSUE BOOK
Page70
-
7/30/2019 library managemant
71/105
Page71
-
7/30/2019 library managemant
72/105
FORM 1
Page72
-
7/30/2019 library managemant
73/105
Private Sub Command1_Click()
Form7.Hide
Form10.Show
End Sub
Private Sub Start_Click()
Login.Show
Form7.Hide
End Sub
FORM 2
Private Sub Command1_Click()
Form11.Show
Form8.Hide
End Sub
FORM 3
Private Sub Command1_Click()
Form10.Hide
Form11.Show
End Sub
Private Sub Command2_Click()
Form10.Hide
Form12.Show
Page73
-
7/30/2019 library managemant
74/105
End Sub
Private Sub Command3_Click()
Form10.Hide
Form7.Show
End Sub
FORM 4
Private Sub Command2_Click()Form11.Hide
frmSplash.Show
End Sub
FORM 5
Private Sub Command1_Click()
Form12.Hide
Form8.Show
End Sub
FORM 6
Private Sub Command1_Click()
Form1.Hide
Form2.Show
Form2.Text1.Text = ""
Form2.Text2.Text = ""
Page74
-
7/30/2019 library managemant
75/105
Form2.Text3.Text = ""
Form2.Text4.Text = ""
Form2.Text5.Text = ""
End Sub
Private Sub Command2_Click()
Form1.Hide
Form3.Show
Form3.Text1.Text = ""
Form3.Text2.Text = ""Form3.Text3.Text = ""
Form3.Text4.Text = ""
Form3.Text5.Text = ""
Form3.Text6.Text = ""
End Sub
Private Sub Command3_Click()
Form1.Hide
Form4.Show
Form4.Data1.RecordSource = "select * from Issue_mast"
Form4.Data1.Refresh
Form4.Text1.Text = ""Form4.Text2.Text = ""
Form4.Text3.Text = ""
Form4.Text5.Text = ""
Form4.Text6.Text = ""
Form4.Text7.Text = ""
Form4.Text8.Text = ""
Form4.Text1.SetFocus
Page75
-
7/30/2019 library managemant
76/105
End Sub
Private Sub Command4_Click()
d = InputBox("Enter the member code to delete the record",
"Delete")
Data3.RecordSource = "select * from issue_mast where
mem_code='" + d + "'"
Data3.Refresh
Do While Not Data3.Recordset.EOF
c = c + 1Data3.Recordset.MoveNext
Loop
If c 0 Then
MsgBox "The member has not returned the book", vbInformation,
"Library"
Data3.Recordset.CloseElse
Data1.RecordSource = "select * from mem_mast"
Data1.Refresh
Form1.Hide
Form5.Show
End If End Sub
Private Sub Command5_Click()
r = InputBox("Enter your member code", "Book Return")
Data3.RecordSource = "select * from issue_mast where
mem_code='" + r + "'"
Data3.Refresh
Page76
-
7/30/2019 library managemant
77/105
qty = Data3.Recordset.Fields(6)
Data3.Recordset.Delete
Data3.Recordset.Close
Data3.RecordSource = "select * from issue_mast"
Data3.Refresh
b = InputBox("Enter your book code", "Book Return")
Data2.RecordSource = "select * from book_mast where
book_code='" + b + "'"
Data2.Refresh
Data2.Recordset.Edits = Data2.Recordset.Fields(4)
cs = s + qty
Data2.Recordset.Fields(4) = cs
Data2.Recordset.Update
Data2.Recordset.Close
End Sub
Private Sub Command6_Click()
d = InputBox("Enter the book code to delete the book", "Delete")
Data3.RecordSource = "select * from issue_mast where
book_code='" + d + "'"
Data3.RefreshDo While Not Data3.Recordset.EOF
c = c + 1
Data3.Recordset.MoveNext
Loop
If c 0 Then
MsgBox "Don't Delete, we have issued this book", vbInformation,
"Library"
Page77
-
7/30/2019 library managemant
78/105
Data3.Recordset.Close
Else
Data2.RecordSource = "select * from book_mast"
Data2.Refresh
Form1.Hide
Form6.Show
End If
End Sub
Private Sub Command7_Click()Form7.Show
Form1.Hide
End Sub
Private Sub Command8_Click()
Form1.HideForm7.Show
End Sub
Private Sub Form_Load()
If SSTab1.Tab = 0 Then
Data1.RecordSource = "select * from mem_mast"Data1.Refresh
Command1.Visible = True
Command2.Visible = False
Command3.Visible = False
Command4.Visible = True
Command5.Visible = False
Command6.Visible = False
Page78
-
7/30/2019 library managemant
79/105
End If
If SSTab1.Tab = 1 Then
Data2.RecordSource = "select * from Book_mast"
Data2.Refresh
Command1.Visible = False
Command2.Visible = True
Command3.Visible = False
Command4.Visible = False
Command5.Visible = False
Command6.Visible = TrueEnd If
If SSTab1.Tab = 2 Then
Data3.RecordSource = "select * from Issue_mast"
Data3.Refresh
Command1.Visible = False
Command2.Visible = FalseCommand3.Visible = True
Command4.Visible = False
Command5.Visible = True
Command6.Visible = False
End If
End Sub
Private Sub SSTab1_Click(PreviousTab As Integer)
If SSTab1.Tab = 0 Then
Data1.RecordSource = "select * from Mem_mast"
Data1.Refresh
Command1.Visible = True
Command2.Visible = False
Page79
-
7/30/2019 library managemant
80/105
Command3.Visible = False
Command4.Visible = True
Command5.Visible = False
Command6.Visible = False
ElseIf SSTab1.Tab = 1 Then
Data2.RecordSource = "select * from Book_mast"
Data2.Refresh
Command1.Visible = False
Command2.Visible = True
Command3.Visible = FalseCommand4.Visible = False
Command5.Visible = False
Command6.Visible = True
ElseIf SSTab1.Tab = 2 Then
Data3.RecordSource = "select * from Issue_mast"
Data3.RefreshCommand1.Visible = False
Command2.Visible = False
Command3.Visible = True
Command4.Visible = False
Command5.Visible = True
Command6.Visible = FalseEnd If
End Sub
FORM 7
Page80
-
7/30/2019 library managemant
81/105
Private Sub Command1_Click()
Data1.RecordSource = "select * from mem_mast"
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset.Fields(0) = Text1.Text
Data1.Recordset.Fields(1) = Text2.Text
Data1.Recordset.Fields(2) = Text3.Text
Data1.Recordset.Fields(3) = CInt(Text4.Text)
Data1.Recordset.Fields(4) = CDate(Text5.Text)
Data1.Recordset.UpdateData1.Recordset.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""Form9.Show
Form2.Hide
End Sub
Private Sub Command2_Click()
Form1.Data1.RecordSource = "select * from mem_mast"Form1.Data1.Refresh
Form2.Hide
Form1.Show
End Sub
Private Sub Text1_LostFocus()
On Error GoTo errorhandle
Page81
-
7/30/2019 library managemant
82/105
Data1.RecordSource = "select * from mem_mast where
mem_code='" + Text1.Text + "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
c = c + 1
Data1.Recordset.MoveNext
Loop
If c 0 Then
MsgBox "Duplicate Code", vbExclamation, "Duplicate"
Text1.Text = " "Text1.SetFocus
Else
Text2.SetFocus
End If
Exit Sub
errorhandle:MsgBox "Error occurred!Wrong Member Code", vbInformation,
"Error"
End
End Sub
Private Sub Text4_GotFocus()Text4.Text = "500"
End Sub
FORM 8
Page82
-
7/30/2019 library managemant
83/105
Private Sub Command1_Click()
Data1.RecordSource = "select * from book_mast"
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset.Fields(0) = Text1.Text
Data1.Recordset.Fields(1) = Text2.Text
Data1.Recordset.Fields(2) = Text3.Text
Data1.Recordset.Fields(3) = Text4.Text
Data1.Recordset.Fields(4) = CInt(Text5.Text)
Data1.Recordset.Fields(5) = CInt(Text6.Text)Data1.Recordset.Update
Data1.Recordset.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""Text5.Text = ""
Text6.Text = ""
End Sub
Private Sub Command2_Click()
Form1.Data2.RecordSource = "select * from book_mast"Form1.Data2.Refresh
Form3.Hide
Form1.Show
End Sub
Private Sub Text1_LostFocus()
On Error GoTo errorhandle
Page83
-
7/30/2019 library managemant
84/105
Data1.RecordSource = "select * from book_mast where
book_code='" + Text1.Text + "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
c = c + 1
Data1.Recordset.MoveNext
Loop
If c 0 Then
MsgBox "Duplicate Code", vbExclamation, "Duplicate"
Text1.Text = " "Text1.SetFocus
Else
Text2.SetFocus
End If
Exit Sub
errorhandle:MsgBox "Error occurred!Wrong Book Code", vbInformation,
"Error"
End
End Sub
FORM 9
Page84
-
7/30/2019 library managemant
85/105
Private Sub Command1_Click()
Data1.RecordSource = "select * from issue_mast"
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset.Fields(0) = Text1.Text
Data1.Recordset.Fields(1) = Text2.Text
Data1.Recordset.Fields(2) = Text3.Text
Data1.Recordset.Fields(3) = Text4.Text
Data1.Recordset.Fields(4) = CDate(Text5.Text)
Data1.Recordset.Fields(5) = CDate(Text6.Text)Data1.Recordset.Fields(6) = CInt(Text7.Text)
Data1.Recordset.Update
Data1.Recordset.Close
Form1.Data2.RecordSource = "select * from book_mast where
book_code='" + Text3.Text + "'"
Form1.Data2.RefreshForm1.Data2.Recordset.Edit
Form4.Text8.Text = Form1.Data2.Recordset.Fields(4)
Text8.Text = Val(Text8.Text) - Val(Text7.Text)
Form1.Data2.Recordset.Fields(4) = Val(Text8.Text)
Form1.Data2.Recordset.Update
Form1.Data2.Recordset.CloseText1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Page85
-
7/30/2019 library managemant
86/105
End Sub
Private Sub Command2_Click()
Form1.Data3.RecordSource = "select * from issue_mast"
Form1.Data3.Refresh
Form4.Hide
Form1.Show
End Sub
Private Sub List1_Click()Text4.Text = List1.Text
Form1.Data2.RecordSource = "select * from book_mast where
book_name='" + List1.Text + "'"
Form1.Data2.Refresh
Do While Not Form1.Data2.Recordset.EOF
Form4.Text3.Text = Form1.Data2.Recordset.Fields(0)Form4.Text8.Text = Form1.Data2.Recordset.Fields(4)
Form1.Data2.Recordset.MoveNext
Loop
Form1.Data2.Recordset.Close
End Sub
Private Sub Text1_LostFocus()
On Error GoTo errorhandle
Data1.RecordSource = "select * from issue_mast where
mem_code='" + Text1.Text + "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
c = c + 1
Page86
-
7/30/2019 library managemant
87/105
Data1.Recordset.MoveNext
Loop
If c 0 Then
MsgBox "Please return the book first", vbInformation, "Book
Return"
Text1.Text = ""
Form4.Hide
Form1.Show
Else
Form1.Data1.RecordSource = "select * from mem_mast wheremem_code='" + Text1.Text + "'"
Form1.Data1.Refresh
Form1.Data1.Recordset.Edit
Text2.Text = Form1.Data1.Recordset.Fields(1)
Form1.Data1.Recordset.Update
Form1.Data1.Recordset.CloseList1.Clear
Form1.Data2.RecordSource = "select * from book_mast"
Form1.Data2.Refresh
Do While Not Form1.Data2.Recordset.EOF
Form4.List1.AddItem (Form1.Data2.Recordset.Fields(1))
Form1.Data2.Recordset.MoveNextLoop
Form1.Data2.Recordset.Close
End If
Exit Sub
errorhandle:
MsgBox "Error occured!Wrong Member Code", vbInformation,
"Error"
Page87
-
7/30/2019 library managemant
88/105
End
End Sub
Private Sub Text5_GotFocus()
Text5.Text = Date
End Sub
Private Sub Text7_LostFocus()
If Val(Text8.Text) > Val(Text7.Text) Then
Text8.Text = Val(Text8.Text) - Val(Text7.Text)Command1.SetFocus
Else
MsgBox ("Please check your stock")
Text7.Text = " "
End If
End Sub
FORM 10
Private Sub Command1_Click()
Data1.Recordset.MoveFirst
Command1.Enabled = False
Command4.Enabled = FalseCommand3.Enabled = True
Command2.Enabled = True
End Sub
Private Sub Command2_Click()
Data1.Recordset.MoveNext
Page88
-
7/30/2019 library managemant
89/105
s = Data1.Recordset.RecordCount
Command1.Enabled = True
Command4.Enabled = True
If Data1.Recordset.AbsolutePosition = s - 1 Then
Command2.Enabled = False
Command3.Enabled = False
End If
End Sub
Private Sub Command3_Click()Data1.Recordset.MoveLast
Command1.Enabled = True
Command4.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
End Sub
Private Sub Command4_Click()
Data1.Recordset.MovePrevious
s = Data1.Recordset.RecordCount
Command2.Enabled = True
Command3.Enabled = TrueIf Data1.Recordset.AbsolutePosition = s Then
Command1.Enabled = False
Command4.Enabled = False
End If
End Sub
Private Sub Command5_Click()
Page89
-
7/30/2019 library managemant
90/105
Data1.Recordset.Delete
If Data1.Recordset.EOF Then
Data1.Recordset.MoveFirst
Else
Data1.Recordset.MoveNext
End If
End Sub
Private Sub Command6_Click()
Form5.HideForm1.Show
Form1.Data1.RecordSource = "select * from mem_mast"
Form1.Data1.Refresh
End Sub
FORM 11
Private Sub Command1_Click()
Data1.Recordset.MoveFirst
Command1.Enabled = False
Command4.Enabled = False
Command3.Enabled = TrueCommand2.Enabled = True
End Sub
Private Sub Command2_Click()
Data1.Recordset.MoveNext
s = Data1.Recordset.RecordCount
Page90
-
7/30/2019 library managemant
91/105
Command1.Enabled = True
Command4.Enabled = True
If Data1.Recordset.AbsolutePosition = s - 1 Then
Command2.Enabled = False
Command3.Enabled = False
End If
End Sub
Private Sub Command3_Click()
Data1.Recordset.MoveLastCommand1.Enabled = True
Command4.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
End Sub
Private Sub Command4_Click()
Data1.Recordset.MovePrevious
s = Data1.Recordset.RecordCount
Command2.Enabled = True
Command3.Enabled = True
If Data1.Recordset.AbsolutePosition = s ThenCommand1.Enabled = False
Command4.Enabled = False
End If
End Sub
Private Sub Command5_Click()
Data1.Recordset.Delete
Page91
-
7/30/2019 library managemant
92/105
If Data1.Recordset.EOF Then
Data1.Recordset.MoveFirst
Else
Data1.Recordset.MoveNext
End If
End Sub
Private Sub Command6_Click()
Form6.Hide
Form1.ShowForm1.Data2.RecordSource = "select * from book_mast"
Form1.Data2.Refresh
End Sub
FORM 12
Private Sub Command1_Click()
Form2.Show
Form9.Hide
End Sub
FORM 13
Page92
-
7/30/2019 library managemant
93/105
Option Explicit
Private Sub Command1_Click()
frmSplash.Hide
Form10.Show
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Unload Me
End Sub
Private Sub Form_Load()
lblVersion.Caption = "Version " & App.Major & "." &
App.Minor & "." & App.Revision
lblProductName.Caption = App.Title
End Sub
Private Sub Frame1_Click()
Unload Me
End Sub
FORM 14
Dim x As String
Dim y As String
Private Sub Command1_Click()
x = LTrim(RTrim(Text1.Text))
Page93
-
7/30/2019 library managemant
94/105
y = LTrim(RTrim(Text2.Text))
If (x = "sandeep") And (y = "saraswati") Then
Unload Me
Form1.Show
Else
MsgBox "invalid user"
Text2.SetFocus
SendKeys "{home}+{end}"
End If
End Sub
Private Sub Command2_Click()
Form9.Hide
Form7.Show
End Sub
Page94
-
7/30/2019 library managemant
95/105
TABELS
Page95
-
7/30/2019 library managemant
96/105
ISSUE TABLE
BOOK TABLE
Page96
-
7/30/2019 library managemant
97/105
MEMBER TABLE
Page97
-
7/30/2019 library managemant
98/105
Page98
-
7/30/2019 library managemant
99/105
TESTING AND DEBUGGING
Testing is the major control neasure used during software
development. Its basic
function is to detect errors in the software. During requirements
analysis and design, the outut is a document that is usually textual
and non-executable. After the coding phase, computer programs
are available that can be executed for testing purposes. This
implies that testing not only has to uncover errors introduced of
testing is to uncover requirement, design and codinh errors in the
programs Consequently, different levels of testing are used.
Unit Testing:-
The stating point of testing.In this module is tested separately and is often performed by the coder himself simultaneously along with the coding of the module. The purpose is to exercise the different part module codeto detect coding errors.
Integration Testing:-
Integration Testing is performed to detect design errors by focusing on
testing the interconnection between modules.
System Testing:-
System is tested against the system, requirements to see if all therequirements are met and if the system performs as specified by therequirements.
Acceptance testing:-
Page99
-
7/30/2019 library managemant
100/105
Acceptance Testing is performed to demonstrate to the client, on the real-life data of the client the operation of the system.
Testing is an extremely critical and time-consuming activity. It
requires proper planning of the overall testing process, Frequently
the testing process starts with a test plan that indentifies all the
testing-related activities that must be performed and specifies the
schedule allocates the resources, and specifies guidelines for
testing. The test plan specifies conditions that should be tested,
different units to be tested, and the manner in which the modules
will be integrated together. Then for different test units, a test casespecification document is produced, which lists all the different test
cases, together with the experienced output. During the testing of
the unit, the specified test cases are executed and the actual result
compared and the error report or a set of such report(one for each
unit tested). Each test report contains the set of test cases and the
result of executing the code with these test cases. The error reportdescribes the errors encountered and the action taken to remove
the errors.
Page100
-
7/30/2019 library managemant
101/105
ADVANTAGES
Fast working Procedure
Computer are fast and usually do most of the work in second
this not only increase our speed increase but also helps users to get
theirs work done easily and also saves theirs time .
No paper work
As we know when we work on the computer we do not need
any paper. Computers have their own memory to store data and
information. Computers can stores information which at least occupy
thousands of paper if done manually. It saves money and space.
No such maintenance for a file is needed
As we know in manual file management system needs a lot of money
for maintenance but in computerized payroll system we dont
expense more for file management.
Error Free Calculation
As we knows in manual work there are chances of error every
time the task is done this is very to handle but in the computerized
system calculation is error free
Page101
-
7/30/2019 library managemant
102/105
LIMITATION
We have put our almost effort in this project but we found the
following limitation in it:
Due to shortage of time we were unable to incorporate all thefeature of library management system.
Less security levels.
Dose not support DOS mode
No on line facility.
Page102
-
7/30/2019 library managemant
103/105
CONCLUSION
Page103
-
7/30/2019 library managemant
104/105
CONCLUSION
We can not say our work is 100% complete. There is always space
for rectification and modification. So there fore, in this library
management system all the drawback of manual system have been
removed and the efficiency of the system has been improved up to the
maximum extent.
Generally manual system are very time consuming and so work or
inquiry can be performed instantly, but here by working on the
computer overall efficiency of the system increase a lot every task is
done instantly. In this system a large database can be maintained
easily. This system is very user friendly, so therefore it can be
handled easily just by carry training.
Page104
-
7/30/2019 library managemant
105/105
BIBLIOGRAPHY
1.Mastering In Visual Studio.Net Bpp Publication
2.Black Book Dreamtech Press
3.Visual Basic In 21 Days Bpp Publication
4.Analysis And Design Of Information System Phi V.Rajaraman
5.Software Engineering Pankaj Jalote
6.Become Pro In Vb, Wrox