Webglibrary: A Minor Project-Ii Report Submitted in Partial Fulfillment of The Requirement For The Degree of

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 48

WebGLibrary

A Minor Project-II Report


Submitted in partial fulfillment of the requirement
for the degree of
Bachelor of Technology
In
Computer Science and Engineering
Jan-Jun 2022

Guided By Submitted by
Prof. Abhishek Raghuvanshi Abhijeet Shastri
[0704CS191002]
Abhirang Sharma
[0704CS191005]
Bhupendra Singh Sheskhawat
[0704CS191032]

Department of Computer Science and Engineering


Mahakal Institute of Technology, Ujjain
Affiliated to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal
PROJECT APPROVAL SHEET

The project entitled “WebGLibrary” submitted by Abhijeet Shastri, Abhirang Sharma and
Bhupendra Shekhawat as partial fulfillment for the award of Bachelor of Technology in
Computer Science and Engineering by Rajiv Gandhi Prodyogiki Vishwavidyalaya, Bhopal.

Project Coordinator

Date:
RECOMMENDATION

The project entitled “WebGLibrary” submitted by Abhijeet Shastri, Abhirang Sharma and
Bhupendra Singh Shekhawat as partial is a satisfactory account of the Bonafede work done under
our guidance is recommended towards partial fulfillment for the award of the Bachelor of
Technology in Computer Science and Engineering from Mahakal Institute of Technology,
Ujjain by Rajiv Gandhi Prodyogiki Vishwavidyalaya, Bhopal.

Project Guide Project Coordinator

Prof. Abhishek Raghuvanshi Prof. Sharad Morolia

Date: Date:

Endorsed By

Head

Department of Computer Science & Engineering

Mahakal Institute of Technology, Ujjain


ACKNOWLEDGEMENT
It is with great reverence that we express our gratitude to our guide “Prof. Abhishek
Raghuvanshi” Department of Computer Science and Engineering, Mahakal Institute of
Technology, Ujjain, (M.P.) for his/her precious guidance and help in this project work. The
credit for the successful completion of this project goes to his/her keen interest timing guidance
and valuable suggestion otherwise our endeavor would have been futile.
We sincerely thank “Prof. Abhishek Raghuvanshi” for his guidance and encouragement in
carrying out this project work.
We owe to regard to “Prof. Abhishek Raghuvanshi” Head of Department, Computer Science
and Engineering for his persistent encouragement and blessing which were bestowed upon us.
We owe our sincere thanks to honorable Director “Dr. Vivek Bansod” for his kind support
which he rendered us in the envisagement for great success of our project.
.

Abhijeet Shastri
[0704CS191002]
Abhirang Sharma
[0704CS191005]

Bhupendra Singh Shekhawat


[0704CS191032]

IV
TABLE OF CONTENTS

Page No.
Project Approval Sheet I
Recommendation II
Recommendation Letter from responsible authority(In case of Live Project) III
Acknowledgement IV
Table of Contents V
Abstract VI
Figure Index VII
Table Index VIII
List of Abbreviations IX
Chapter 1 Introduction (1-3)
1.1 Introduction 01
1.2 Identification of Problem Domain 03
Chapter 2 Literature Review (4-11)
2.1 Literature Review 4
2.1.1 Study of …………………………… 4
2.1.2 Study of …………………………… 4-10
2.2 Limitation of existing system 11
Chapter 3 Rationale and Process (12-15)
3.1 Objective 12
3.2 Software Model Adapted 13-15
Chapter 4 System Analysis Overview (16-29)
4.1Requirement Analysis 16
4.1.1 Hardware Requirement 17
4.1.2 Software Requirement 17
4.1.3 Functional & Non functional Requirements 18-19
4.2 Use -Case diagram & Use -Case description 20-22
4.3 Sequence Diagram 23-28
4.4 System Flow Diagram 29
Chapter 5 System Design Overview (30-35)
5.1 Data Dictionary 30-31
5.2 Class Diagram 32
5.3 Data Flow Diagram 33-34
Chapter 6 Work Plan and System Database Structure (36-40)
6.1 Time Frame Work 36
6.2 Design Database Table 37-40
Chapter 7 Implementation & Testing (41-55)
7.1 Testing Strategy Adapted 41-44
7.2 System Testing 45-48
7.3 Test Cases 49-55
Chapter 8 Conclusion and Future Extension (56)
8.1 Conclusion 56
8.2 Future Scope 56

REFERENCES (57-59)

APPENDIX A Screenshots 60-70


ABSTRACT
Every programmer needs to be able to create generic libraries, but many times creating them
over and over can be tedious and time consuming. That is why we decided to create a website
where we will upload them for the benefit of the users of our website to directly use them in their
projects or learn to create it themselves if they are beginner programmers. Our website will also
give beginner programmers a brief explanation of the libraries they will get access to beforehand
while veteran ones can directly use them for their projects. Our website will help beginner
programmers in understanding the libraries and promote self-learning while also giving
flexibility all types of programmers in writing their code and help in saving time too.
FIGURE INDEX

Figure No. Title of Figure Page No.

Figure 1.1 ………………………………………………… 02

Figure 1.2 ……………………………………………….. 04

Figure 1.3 ……………………………………………….. 06

Figure 2.1 ………………………………………………… 18

Figure 3.1 ……………………………………………….. 20

Figure 3.2 ………………………………………………… 23

Figure 3.3 ……………………………………………….. 27

Figure 3.4 ……………………………………………….. 30

Figure 3.5 ………………………………………………… 41

Figure 4.1 ……………………………………………….. 62

Figure 4.2 ……………………………………………….. 63

Figure 4.3 ………………………………………………… 64

Figure 4.4 ……………………………………………….. 64

Figure 4.5 ……………………………………………….. 65

VII
TABLE INDEX
Table No. Title of Table Page No.

Table 3.1 …………………………………………………….. 25

Table 3.2 …………………………………………………….. 28

Table 3.3 …………………………………………………….. 29

Table 3.4 …………………………………………………….. 32

Table 3.5 …………………………………………………….. 32

Table 3.6 …………………………………………………….. 33

Table 3.7 …………………………………………………….. 33

Table 3.8 …………………………………………………….. 38

Table 3.9 …………………………………………………….. 38

Table 3.10 …………………………………………………….. 39

Table 3.11 …………………………………………………….. 40

Table 3.12 …………………………………………………….. 40

Table 3.13 …………………………………………………….. 44

Table 4.1 …………………………………………………….. 60

Table 4.2 …………………………………………………….. 60

Table 4.3 …………………………………………………….. 61

Table 4.7 …………………………………………………….. 64

Table 4.8 …………………………………………………….. 65

VIII
CHAPTER 1
INTRODUCTION

1.1 INTRODUCTION
Generic programming is a style of computer programming in which algorithms are written in
terms of types to-be-specified-later that are then instantiated when needed for specific types
provided as parameters.

Every skilled programmer needs to be able to create libraries pertaining to this topic, but many
times creating these libraries over and over again can be tedious. For example: Stack, queue,
Singly Linked List etc. (different types of data structures) in generic forms.

With that in mind we will upload these libraries to a website/server created for the benefit of
veteran programmers who will find these libraries helpful to use them directly in their code as
well as beginner programmers who will be able to get access to use these in their own code
directly thereby making it easier for them to learn(Although beginner programmers will be given
proper warning beforehand that these libraries are for them to learn through and not a shortcut
for them to use considering they need to be able to create/replicate the libraries on their own and
not depend on ours to do the necessary work for them).

Now, there are two ways of achieving this:

a) Use your own compiler on a local network (this method allows you to store the libraries
on your own personal computer).
b) Use an online compiler to store and use the libraries from the compiler’s website you got
the compiler from.
Our library results from the idea to create a generic library of reusable algorithms. For our
website we will focus on providing generic libraries for C, C++ and python.
1.2. Problem Domain

As we all know even the simplest of programs (that are created for testing or commercial
purposes) that require handling lists, queues, stacks etc. types of data require us to write multiple
lines of code. Many a times the code for handling these types of data tends to be tedious to write
and even takes too much time to write it up. Time that could be better spent thinking, managing
and writing the code for the more important parts of the code of the program.

Not to mention a beginner programmer might not even be that familiar with these concepts or in
some situations not even know about them. In such situations they wouldn’t be able to do
anything to further their projects. Basically, progress on the project/program would be at a
standstill unless they are replaced by a better programmer OR until they learn how to handle this
type of data themselves.

1.2.1. Solution Domain

To overcome the issues written about earlier, a good solution would be to write up the code in
advance, but then the problem that arises is who would write up the code, even for example if the
code is found online, it would still be found in parts/fragments only and the programmer would
have to go on multiple websites to get what they want.

That’s where our website ‘WebGLibrary’ comes in. This website created by us will provide the
different fragments/parts of the code that are necessary to create the projects of other
programmers. On the front page of the website, programmers will be given two options: one for
veteran programmers and the other for beginner programmers.

The option for veteran programmers will directly send the user to the list of libraries from where
they can choose and see the code and its output.

While the option for beginner programmers will give the user ample amount of warning that
though they are getting to see the code and its output, they should still be able to produce both on
their own and that in their case the website is there to help them to learn the code as a self-
learning tool, and not a substitute for them to use if and when they need these libraries to create
their own projects. After that they would be sent to the same page the veteran programmers are
sent to see the list of libraries. Although in their case, the website would even give a brief
explanation as to what the library they are getting access to is and how it works as an extra page
before they get to see and try out the code.

Finally, both types of users will be sent to the same page where their chosen library will be
shown.
CHAPTER 2
LITERATURE REVIEW

2.1 Literature Review


2.1.1 Study of C:
C is a general-purpose, procedural computer programming language supporting structured
programming, lexical variable scope, and recursion, with a static type system. By design, C
provides constructs that map efficiently to typical machine instructions.

Libraries:

The C programming language uses libraries as its primary method of extension. In C, a library is
a set of functions contained within a single "archive" file. Each library typically has a header file,
which contains the prototypes of the functions contained within the library that may be used by a
program, and declarations of special data types and macro symbols used with these functions. In
order for a program to use a library, it must include the library's header file, and the library must
be linked with the program, which in many cases requires compiler flags (e.g., -lm, shorthand for
"link the math library").

The most common C library is the C standard library, which is specified by the ISO and ANSI C
standards and comes with every C implementation (implementations which target limited
environments such as embedded systems may provide only a subset of the standard library). This
library supports stream input and output, memory allocation, mathematics, character strings, and
time values. Several separate standard headers (for example, stdio.h) specify the interfaces for
these and other standard library facilities.

Another common set of C library functions are those used by applications specifically targeted
for Unix and Unix-like systems, especially functions which provide an interface to the kernel.
These functions are detailed in various standards such as POSIX and the Single UNIX
specification.

Since many programs have been written in C, there are a wide variety of other libraries available.
Libraries are often written in C because C compilers generate efficient object code; programmers
then create interfaces to the library so that the routines can be used from higher-level languages
like Java, Perl, and Python.
2.1.2 Study of C++:
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of
the C programming language, or "C with Classes".

Compatibility:

With C:

The C and C++ programming languages are closely related but have many significant
differences. C++ began as a fork of an early, pre-standardized C, and was designed to be mostly
source-and-link compatible with C compilers of the time. Due to this, development tools for the
two languages (such as IDEs and compilers) are often integrated into a single product, with the
programmer able to specify C or C++ as their source language.

However, C is not a subset of C++, and nontrivial C programs will not compile as C++ code
without modification. Likewise, C++ introduces many features that are not available in C and in
practice almost all code written in C++ is not conforming C code. This article, however, focuses
on differences that cause conforming C code to be ill-formed C++ code, or to be
conforming/well-formed in both languages but to behave differently in C and C++.

C++ is often considered to be a superset of C but this is not strictly true. Most C code can easily
be made to compile correctly in C++ but there are a few differences that cause some valid C code
to be invalid or behave differently in C++. For example, C allows implicit conversion from void*
to other pointer types but C++ does not (for type safety reasons). Also, C++ defines many new
keywords, such as new and class, which may be used as identifiers (for example, variable
names) in a C program.

Some incompatibilities have been removed by the 1999 revision of the C standard (C99), which
now supports C++ features such as line comments (//) and declarations mixed with code. On the
other hand, C99 introduced a number of new features that C++ did not support that were
incompatible or redundant in C++, such as variable-length arrays, native complex-number types
(however, the std::complex class in the C++ standard library provides similar functionality,
although not code-compatible), designated initializers, compound literals, and the restrict
keyword. Some of the C99-introduced features were included in the subsequent version of the
C++ standard, C++11 (out of those which were not redundant). However, the C++11 standard
introduces new incompatibilities, such as disallowing assignment of a string literal to a character
pointer, which remains valid C.

To intermix C and C++ code, any function declaration or definition that is to be called from/used
both in C and C++ must be declared with C linkage by placing it within an extern "C"
{/*...*/} block. Such a function may not rely on features depending on name mangling (i.e.,
function overloading).
2.1.3 Study of Python:
Python is a high-level, general-purpose programming language. Its design philosophy
emphasizes code readability with the use of significant indentation. Its language constructs and
object-oriented approach aim to help programmers write clear, logical code for small- and large-
scale projects.

Python is dynamically-typed and garbage-collected. It supports multiple programming


paradigms, including structured (particularly procedural), object-oriented and functional
programming. It is often described as a "batteries included" language due to its comprehensive
standard library.

Guido van Rossum began working on Python in the late 1980s as a successor to the ABC
programming language and first released it in 1991 as Python 0.9.0. Python 2.0 was released in
2000 and introduced new features such as list comprehensions, cycle-detecting garbage
collection, reference counting, and Unicode support. Python 3.0, released in 2008, was a major
revision that is not completely backward-compatible with earlier versions. Python 2 was
discontinued with version 2.7.18 in 2020.

Python consistently ranks as one of the most popular programming languages.

1.2 Limitation of existing system

Even with all the existing libraries in C and C++, we still have to create data structures for parts
of code that handle the data from its managing it through sorting, to creating a stack/queue etc. to
properly index it, to searching for specific kind of data from the heaps of data we store in our
programs to anything in-between.

While creating these is crucial, creating multiple iterations of it to handle all our different
programs and the data associated with it is tedious and time consuming.
Not only is it annoying to create the same library for handling data over and over again, it also
happens to be a waste of valuable time, which could have been better used to work on the parts
of the of the program that are important and need care and time to fix all the bugs in it.

To fix this problem, a generic template for these would go a long way.
Not to mention beginner programmers can use it to learn and create their own versions of it
themselves to use just like the veterans.

That’s where our website would come in. It will help by giving them the necessary libraries they
need for their projects/programs. They can then use it in anyway they want by either
implementing it directly in their code or learn from it and create their own version for their
specific use.
CHAPTER 3
RATIONALE AND PROCESS

3.1. Objective

The Objective of this Project is to aid programmers both veterans and beginners, to help them in
creating their own projects/programs/small time code by giving them generic data structures’
code so that they can use it/them to reduce the hassle of programming repetitive code thereby
saving time to focus on the more important parts of their code/program/project. For beginners it
even helps them in learning how to create these data structures like list, stack , etc. on their
considering that even though we can get these data structures as predefined but still learning
them helps in creating custom functions for them. These data structures are known as ‘Generic
Data Structures’.

Generic Data Structure: In codes of previous data structure, the node can only store a number,
but we need a way so that it can store any type of data, making them reusable.
3.2. Software Model Adapted

RAD Model
What is RAD Model?

RAD Model or Rapid Application Development model is a software development process based
on prototyping without any specific planning. In RAD model, there is less attention paid to the
planning and more priority is given to the development tasks. It targets at developing software in
a short span of time.

SDLC RAD modeling has following phases

 Business Modeling
 Data Modeling
 Process Modeling
 Application Generation
 Testing and Turnover

It focuses on input-output source and destination of the information. It emphasizes on delivering


projects in small pieces; the larger projects are divided into a series of smaller projects. The main
features of RAD modeling are that it focuses on the reuse of templates, tools, processes, and
code.

Different Phases of RAD Model

There are following five major phases of Rapid Application Development Model

RAD Model
Activities performed in RAD Modeling
Phases

Business  On basis of the flow of information and distribution between various


Modeling business channels, the product is designed

 The information collected from business modeling is refined into a set


Data Modeling of data objects that are significant for the business

 The data object that is declared in the data modeling phase is


Process transformed to achieve the information flow necessary to implement a
Modeling business function

Application  Automated tools are used for the construction of the software, to
convert process and data models into prototypes
Generation

Testing and  As prototypes are individually tested during every iteration, the overall
testing time is reduced in RAD.
Turnover
When to use RAD Methodology?

 When a system needs to be produced in a short span of time (2-3 months)


 When the requirements are known
 When the user will be involved all through the life cycle
 When technical risk is less
 When there is a necessity to create a system that can be modularized in 2-3 months of
time
 When a budget is high enough to afford designers for modeling along with the cost of
automated tools for code generation

Why did we use RAD Methodology?


In our project RAD model was adapted because RAD model gives the freedom to develop and
update the project while also removing bugs, if any, even though it has been deployed, thereby
giving us the leeway so that we can keep on working on it while other users can gain access and
use it.

Summary

 RAD full form or RAD stands for: Rapid Application Development


 Rapid Application Development definition: Rapid Application Development model is a
software development process based on prototyping without any specific planning.
CHAPTER 4

System Analysis Overview

4.1 Requirements Analysis

Requirement analysis is significant and essential activity after elicitation. We analyze, refine, and
scrutinize the gathered requirements to make consistent and unambiguous requirements. This
activity reviews all requirements and may provide a graphical view of the entire system. After
the completion of the analysis, it is expected that the understandability of the project may
improve significantly. Here, we may also use the interaction with the customer to clarify points
of confusion and to understand which requirements are more important than others.

The various steps of requirement analysis are shown in fig:

(i) Draw the context diagram: The context diagram is a simple model that defines the
boundaries and interfaces of the proposed systems with the external world. It identifies the
entities outside the proposed system that interact with the system. The context diagram of student
result management system is given below:
(ii) Development of a Prototype (optional): One effective way to find out what the customer
wants is to construct a prototype, something that looks and preferably acts as part of the system
they say they want.

We can use their feedback to modify the prototype until the customer is satisfied continuously.
Hence, the prototype helps the client to visualize the proposed system and increase the
understanding of the requirements. When developers and users are not sure about some of the
elements, a prototype may help both the parties to take a final decision.

Some projects are developed for the general market. In such cases, the prototype should be
shown to some representative sample of the population of potential purchasers. Even though a
person who tries out a prototype may not buy the final system, but their feedback may allow us
to make the product more attractive to others.

The prototype should be built quickly and at a relatively low cost. Hence it will always have
limitations and would not be acceptable in the final system. This is an optional activity.

(iii) Model the requirements: This process usually consists of various graphical representations
of the functions, data entities, external entities, and the relationships between them. The
graphical view may help to find incorrect, inconsistent, missing, and superfluous requirements.
Such models include the Data Flow diagram, Entity-Relationship diagram, Data Dictionaries,
State-transition diagrams, etc.

(iv) Finalise the requirements: After modeling the requirements, we will have a better
understanding of the system behavior. The inconsistencies and ambiguities have been identified
and corrected. The flow of data amongst various modules has been analyzed. Elicitation and
analyze activities have provided better insight into the system. Now we finalize the analyzed
requirements, and the next step is to document these requirements in a prescribed format.
4.1.1 Hardware Requirements

 Processor: Minimum 1 GHz


 RAM: 512MB
 HDD: 100 MB
 Internet Connectivity

4.1.2 Software Requirement

 Front End – HTML CSS


 Back End – C/C++
 OS – Windows XP 32-bit
 Browser – Chrome, FireFox

4.1.3 Functional and Non-functional Requirements

Functional Requirements: These are the requirements that the end user specifically demands as
basic facilities that the system should offer. All these functionalities need to be necessarily
incorporated into the system as a part of the contract. These are represented or stated in the form
of input to be given to the system, the operation performed and the output expected. They are
basically the requirements stated by the user which one can see directly in the final product,
unlike the non-functional requirements.

Following are some functional requirements of our website –

 Buttons (for linking the web pages)

 Options for Beginner and Veteran programmers


 Table of contains (Data Structures)

 Run Button

Non-functional requirements: These are basically the quality constraints that the system must
satisfy according to the project contract. The priority or extent to which these factors are
implemented varies from one project to other. They are also called non-behavioral requirements.
They basically deal with issues like:
 Portability
 Security
 Maintainability
 Reliability
 Scalability
 Performance
 Reusability
 Flexibility

Following are some functional requirements of our website –

 Capacity
 Accuracy
 Performance
 Navigation
4.2 Use -Case diagram & Use -Case description
A use case diagram is used to represent the dynamic behavior of a system. It encapsulates the
system's functionality by incorporating use cases, actors, and their relationships. It models the
tasks, services, and functions required by a system/subsystem of an application. It depicts the
high-level functionality of a system and also tells how the user handles a system.

The main purpose of a use case diagram is to portray the dynamic aspect of a system. It
accumulates the system's requirement, which includes both internal as well as external
influences. It invokes persons, use cases, and several things that invoke the actors and elements
accountable for the implementation of use case diagrams. It represents how an entity from the
external environment can interact with a part of the system.

Following are the purposes of a use case diagram given below:

1. It gathers the system's needs.


2. It depicts the external view of the system.
3. It recognizes the internal as well as external factors that influence the system.
4. It represents the interaction between the actors.
4.3 System Flow Diagram
A system flow diagram is a way to show relationships between a business and its components,
such as customers (according to IT Toolbox). System Flow Diagram is also known as Process
Flow Diagram or Data Flow Diagram (DFD), are cousins to common flow charts. In a System
Flow Diagram, the goal is to present a visual representation of some components of the business
model.
CHAPTER 5
System Design Overview

5.1 Data flow diagram


CHAPTER 6

Work Plan and System Database

Structure

6.1 Time Frame Work

S. No. Approx. Time Duration Description


in weeks

1. Project and Synopsis

2. Synopsis making and


submission

3. Information gathering

4. Design Work

5. Coding Work

6. Create ppt, System Flow


Diagram, Use Case
Diagram, ER Diagram,
Data Flow Diagram and
Class Diagram

7. Create Sequence Diagram


and Remaining Work

8. Project Showcase
CHAPTER 7

Implementation & Testing

7.1 Testing Strategy Adapted

A testing Strategy is an outline that describes the testing approach of the software
development cycle. The purpose of a test strategy is to provide a rational deduction
from organizational, high-level objectives to actual test activities to meet those
objective from a quality assurance perspective.

7.2 System Testing

If the proposed application completed the debugging task during the testing phase,
then it should enter deployment phase. However, since the number of users are
limited so far and the proposed application is not in the final public version, there
are still many modules that need to be improved and updated. Therefore, it will be
uploaded to the relevant platform to promote to the users after the final public
version is released. In addition it can execute the app in non-network state, but the
download module requires internet connection to open the relevant web page to
download the Libraries.
Below are the steps to describe how a new user will access the data structures on
the website:

1. The user will first go to the website home page, he/she needs to
navigate the website as per their experience as to whether they are a
beginner or a veteran programmer.

i) If the user is a beginner programmer, they will first get to a


warning page that will warn them that the provided data
structures are only for reference purpose, they are not to
depend on it to use it in their own code every time they
require it when they don’t even know how to create it on
their own.

2. Both types of programmers will get to the Table of contents page to


choose their desired data structure to see how it works/get the code to
use it in their own code.

3. On the desired data structure, the user can see the wall of code and get
it to use it in their own projects/programs etc., with the added bonus
of getting the option to run the code to see how it works.
7.3 Test Cases

Unit Testing 1: List-type Structure

Test Objective: To ensure that the function selected by the user is giving output as
accepted

Input Expected Output Actual Output

Create a list named list 1 List 1 created List created successfully

Create a list named list 2 List 2 created List created successfully

Add an ‘int’ to list 1 ‘int’ added to the list 1 Added successfully to list
1

Add a ‘char’ to list 1 ‘char’ added to the list 1 Added successfully to list
1

Add a ‘string’ to list 2 ‘string’ added to the list 2 Added successfully to list
2

Add a ‘struct’ to list 2 ‘struct’ added to the list 2 Added successfully to list
2

Display contents of list 1 Contents of list 1 get Printed successfully


printed

Display contents of list 2 Contents of list 2 get List 2 get printed


printed successfully

Insert an element into list Element inserted into list Inserted successfully to
1 1 list 1

Insert an element into list Element inserted into list Inserted successfully to
2 2 list 2

Remove an element from Element removed from Removed successfully


list 1 list 1 from list 1

Remove an element from Element removed from Removed successfully


list 2 list 2 from list 2

Concatenate list 2 with List 2 concatenated with Concatenation successful


list 1 list 1

Clear Elements of list 1 Elements cleared from Cleared successfully


list 1

Delete list 1 List 1 deleted Deleted successfully

Table 7.3.1 Test of List-type structure


Unit Testing 2: Stack Structure

Test Objective : To ensure that the function selected by the user is giving output as
accepted

Input Expected Output Actual Output

Create a stack Stack created Stack created


successfully

Push an ‘int’ to the stack ‘int’ pushed to stack Pushed on stack


successfully

Push an ‘char’ to the ‘char’ pushed to stack Pushed on stack


stack successfully

Push a ‘string’ to the ‘string’ pushed to stack Pushed on stack


stack successfully

Push a ‘struct’ to the ‘struct’ pushed to stack Pushed on stack


stack successfully

Pop an element from Element popped from Popped from stack


stack stack successfully

Clear stack elements Element of stack cleared Cleared successfully

Delete the stack Stack deleted Stack deleted


successfully

Table 7.3.2 Test of stack structure


Unit Testing 3: Queue Structure

Test Objective : To ensure that the function selected by the user is giving output as
accepted

Input Expected Output Actual Output

Create Queue Queue created Queue created


successfully

Add an ‘int’ to queue ‘int’ added to queue Added to queue


successfully

Add a ‘char’ to queue ‘char’ added to queue Added to queue


successfully

Add a ‘string’ to queue ‘string’ added to queue Added to queue


successfully

Add a ‘struct’ to queue ‘struct’ added to queue Added to queue


successfully

Remove an element from Element removed from Removed from queue


queue queue successfully

Clear elements of queue Elements cleared from Queue cleared


queue successfully

Delete the queue Queue deleted Queue deleted


successfully

Table 7.3.3 Testing of queue structure


CHAPTER 8

8.1 Conclusion

From a commercial viewpoint WebGLibrary is a website that provides generic data


structures in the form of a library to a user so that they can use them in their own
code and create programs that they wanted to create by accommodating the data
structures in their code.

While from the viewpoint of a student or someone who would still be learning
programming it is more like a tool for them that they can use to learn to create
some generic data structures on their own.
8.2 Future Scope

• Will be available in more languages like python etc.

• More data structures like Tree, Graphs etc. will be added.

• Function for creating ordered list according to parameters set by user will be
included for use.

• Even More user friendly website than it is now.


References:

• https://rextester.com/l/c_online_compiler_gcc

• https://www.w3schools.com/

• https://www.geeksforgeeks.org/

• https://www.wikipedia.org/

• John Ducket, Web Design with HTML, CSS, JavaScript and jQuery
Appendix
Home Page
Choose your Level
Warning Page
Content List
Singly Linked List and Output
Doubly Linked List
Doubly Linked List continuation
Stack and its Output
Queue and its Output

You might also like