Professional Documents
Culture Documents
Vocational Project Report
Vocational Project Report
Vocational Project Report
BACHELOR OF TECHNOLOGY
(COMPUTER SCIENCE AND ENGINEERING)
Submitted To:
Submitted by:
Ajay Thakur(11ucs005)
(H.O.D-MCA)
Ashish Thakur(11ucs020)
Litesh Thakur (11ucs035)
Prannoy Singh (11ucs053)
Vibhuti Chambyal(11ucs082)
CANDIDATES DECLARATION
We hereby certify that the work which is being presented in the report entitled
LEMPEL-ZIV-WELCH in the fulfillment of the requirement for the award of Degree of
Bachelor of Technology with specialization in Computer Science and Engineering, submitted in
the Department of Computer Science and Engineering of School of Engineering and Emerging
Technologies, Baddi University of Emerging Science & Technologies, Baddi(H.P) is an
authentic record of our original work carried out under the guidance and supervision of Er.
Saurabh Sharma(Assitant Professor-C.S.E) Baddi.
Ajay Thakur(11ucs005)
Ashish Thakur(11ucs020)
Litesh Thakur(11ucs035)
Prannoy Singh(11ucs053)
Vibhuti Chambyal(11ucs082)
ACKNOWLEDMENT
On every step there is need of proper guidance, support & motivation . The encouragement
enables the person to give his best performance & thus to achieve his goal.
A special word of thanks for persons who have been of great help during the development of
this project LEMPEL-ZIV-WELCH.
We feel honored to express our sincere gratitude to Er. Rohit Handa Project Guide at School
Of Engineering and Emerging Technologies, Baddi whose guidance and keen interest gave the
manuscript its present shape.
We extend our regards to entire faculty of the C.S.E at SCHOOL OF ENGINEERING AND
EMERGING TECHNOLOGIES from where we have learnt the basics of C.S.E and whose
informal discussions and able guidance was the light for us in the entire duration of this work.
We express our deep sense of gratitude to our parents and thank all our friends for their constant
help during our study.
CHAPTER 1
INTRODUCTION
C++
C++ is a programming language that is a general purpose, statically typed, free-form, multiparadigm and compiled. It is regarded as intermediate/middle-level language, as it comprises
both high-level and low level language features.
C++ is one of the most popular programming languages and is implemented on a wide variety of
hardware and operating system platforms. As an efficient compiler to native code, its application
domains include systems software, application software, device drivers, embedded software,
high-performance server and client applications, and entertainment software such as video
games.
Classes
Inheritance
Data abstraction and Encapsulation
Polymorphism
Dynamic Binding
Message Passing
4
1. Classes: By using classes we can create user defined data types. In other words the class
is the collection of set of data and code. The class allows us to do some things which are
polymorphism, inheritance, abstraction, encapsulation which are our next features. The
objects are the instances of classes.
2. Data Abstraction and Encapsulation: Encapsulation means hiding of data from the data
structures or in other words wrapping up of data in single entity is known as
Encapsulation. In this the data is not accessible to outside world and only the functions
are allowed to access it. When we want to write the class in which we dont have the
knowledge about the arguments used to instantiate it then we can use templates in C++.
Abstraction can be defined as the act of representing essential features without including
background details.
3. Polymorphism: it means that the one interface can be used for many implementation so
that object can behave differently for each implementation. The different types of
polymorphism are static (Compile time) and dynamic (Run time).
4. Dynamic Binding: It means that the linking of a procedure call to code to be executed in
response to the call. A function call associated with a polymorphic reference depends on
5
6.
Inheritance: Inheritance allows one data type to acquire properties of other data types.
Inheritance from a base class may be declared as public, protected, or private. If the
access specifier is omitted, a class inherits privately, while a struct inherits publicly.
This provides the idea of reusability that means we can add the new features to an
existing class without modifying it.
What is 'compression'?
Data compression is the removal of redundant data this therefore, reduces the number of binary
bits necessary to represent the information contained with in that data. to achieve the best
possible compression requires not only an understanding of the nature of data in its binary
representation but also how we as humans interpret the information that the data represents.
So why is it necessary?
"Compression is the key to the future expansion of the web; it's certainly the key to emerging
multimedia and 3-d technology."( brown, Honeycutt,etal 1998) although we currently exist in a
world of rapidly expanding computing and communication capabilities, with the increase in
computer awareness and, in particular, multimedia, the demand for computer systems and their
application to meet people's needs is also rising. Since every bit incurs a cost when being
transmitted or stored, any technology that can be introduced into our existing systems that can be
introduced into our existing systems that can reduce these costs is essential. When considering
6
INTRODUCTION TO ENCRYPTION
In cryptography, encryption is the process of encoding messages (or information) in such a way that
third parties cannot read it, but only authorized parties can. Encryption doesn't prevent hacking but it
prevents the hacker from reading the data that is encrypted. In an encryption scheme, the message or
information (referred to as plaintext) is encrypted using an encryption algorithm, turning it into an
unreadable cipher text (ibid.). This is usually done with the use of an encryption key, which specifies how
the message is to be encoded. Any adversary that can see the cipher text should not be able to
determine anything about the original message. An authorized party, however, is able to decode the
cipher text using a decryption algorithm that usually requires a secret decryption key that adversaries do
not have access to. For technical reasons, an encryption scheme usually needs a key-generation
algorithm to randomly produce keys.
with
primary
applications
being
graphics
and
sound
files.
As Data Compression seeks to reduce the number of bits used to store or transmit information. It
encompasses a wide variety of software and hardware compression techniques. Data
compression consists of taking a stream of symbols and transforming them into codes. For
effective compression, the resultant stream of codes will be smaller than than the original
symbol. Data compression is often referred to as coding, where coding is general term showing
any special representation of data which satisfies a given need. Information theory is defined as
the study of efficient coding. Data compression may be viewed as a branch of information theory
in which the primary objective is to minimize the amount of data to be transmitted. Data
compression has an important role in the area of transmission and storage. It plays a key role in
information technology. The reduction of redundancies in data representation in order to
decrease data storage requirement is defined as data compression. It used less usage of resources
such as memory space or transmission capacity. Data compression is classified as lossless and
loss compression. Lossless compression is used for text and loss compression for image.
Here the problem is that it uses an integral number of bits & also, one must have the prior
information of probabilities. The problem of statistical model is solved by using adaptive dictionary.
1.2 OBJECTIVES
Making A user-Friendly System: The proposed system aims at providing a userfriendly system which helps the user to easily browse the website. The new software
provides easy to use windows graphical user interface with various options providing the
options for compression and decompression.
More reliability: The proposal system, it aims at providing more reliability of data. It is
somewhat time consuming process. User can get the entire output file in the specified
location.
Reduce The Cost of Maintaining The System: The proposed system aims at reducing
the cost of maintenance of the system as information related to various aspects is stored
on just one system.
2. Technical Feasibility
Technical Feasibility centers on the existing system and to what extent it can
support the proposed system. In this part of feasibility analysis we determined the
technical possibilities for the implementation of the system. Two major benefits
are:
Improving the performance
Minimizing the cost of processing
3. Behavioral Feasibility:
Behavioral feasibility estimates the reaction of the User staff towards the
development of the computerized system. For the successful implementation of
any system, the users must be impressed that the new system is for his benefit.
So, the behavioral feasibility plays a very important role in the development of
new system It reveals that whether the system is acceptable by user or not. If
10
Overall Description
Product Perspective
Product Functions
User Characteristics
Constraints, Assumptions and Dependencies
Specific Requirements
11
Elaboration delivers a working architecture that mitigates the top risks and
fulfills the non-functional requirements.
13
Functional Requirement:
a) Compression and Encryption:
Description: To take an input texts file and then compress it
Input: An text file.
Output: Compressed & encrypted file and dictionary file.
15
Chapter 3
System Design
After maintaining the SRS document Design phase begins.
The activities carried out during design phase transform the SRS document into the design
document.
Fig4.1 The design process transform the SRS document into a design document
There are two approaches in software design named- Function oriented software Design and
Object oriented software design approaches.
We followed Function oriented software design.
Function Oriented Software Design:
It is further broken down into smaller functions. In this approach the problem is considered as
function
The term top-down decomposition is often used to denote the successive decomposition of a set
of high level functions into more detailed functions.
16
18
OPEN A FILE
Compare
words
Flag=1
Increment int value
Flag=0
Take initial index
Show Output
19
Chapter 4
4.1. TESTING
Software testing
Software testing is the process used to measure the quality of developed computer
software. Usually, quality is constrained to such topics as correctness,
completeness, security, but can also include more technical requirements as
described under the ISO standard ISO 9126, such as capability, reliability,
efficiency, portability, maintainability, compatibility, and usability. Testing is a
process of technical investigation, performed on behalf of stakeholders, that is
intended to reveal quality-related information about the product with respect to the
context in which it is intended to operate.
21
Fig:-4.1.1
Verification and validation
Software testing is used in association with verification and validation (V&V).
Verification is the checking of or testing of items, including software, for
conformance and consistency with an associated specification. Software testing is
just one kind of verification, which also uses techniques such as reviews,
inspections, and walkthroughs. Validation is the process of checking what has been
specified is what the user actually wanted.
Verification: Have we built the software right? (i.e. does it match the
specification).
Validation: Have we built the right software? (i.e. Is this what the customer
wants?)
In plumbing, a smoke test forces actual smoke through newly plumbed pipes
to find leaks, before water is allowed to flow through the pipes.
Chapter 4
Implementation
This chapter provides the detail of resources used during the development of the
program/software.
:
:
:
:
:
Pentium IV
128 MB
512 MB
1366x768
Coloured.
:
:
Documentation
MS Word 2013
Screenshots
PicPick Editor
Video Tutorials
Project Schedule
Gantt Project
Online Documentation
YouTube Channel
Utility Software
Communication
Google groups
25
Chapter 5
Coding
This phase consist of all the coding part of the software. This section is therefore consists of the
screenshots of all the forms in the project and their coding. This section can make the project to
be understood easily by any programmer all the connection are made , opened and closed and
many more things. This section provides the necessary coding for the development of the
application needed and maintains all the required code needed for it.
This phase is difficult only in starting, but when we start working this phase, with time its
becomes easy to do coding as it is easy to understand it due to its English like wordings. There
are different types of header files for different purposes.
This phase is one of the important phases because any mistakes done in this phase can lead to the
improper working of the software.
All screenshots are being discussed from next page:- CODE:26
}
else
{
flag=0;
fout.write((char*)&q,sizeof(int));
break;
}
}
//int a;
//a=count;
if(flag==1)
{
count++;
//cout<<count<<endl;
cout<<(char*)&count;
fout.write((char*)&count,sizeof(int));
}
/*if(flag==0)
{
fout.write(a,sizeof(int));
}*/
j++;
28
29
30
31
Chapter 6
CONCLUSION AND FUTURE SCOPE
6.1 Conclusion
Increase security of data files: - the compressed file through LZW data compression is
totally in abscured form so there are no chances of data in the file to be read by an
unauthorized person.
Increased speed:- the compression speed of our software is faster then other software
as the code is small in no complex code is return as a result. The compression and
decompression is result at faster rate.
Compressing saved screen and display will generally show very good result.
REFERENCE
http://w3schools.com/
http://in3.C++.net/
Blackstock, Steve, LZW and GIF Explained, manuscript in the public domain, 1987
32
33