Final Fs Project
Final Fs Project
SANGAM, BELAGAVI-590018
A
MINI PROJECT REPORT ON
VI SEMESTER
Submitted By
Prof. SNEHA K
Assistant Professor
Accredited by NAAC
HKBK COLLEGE OF ENGINEERING
22/1, Nagawara, Bengaluru – 5600 045.
E-mail: [email protected], URL: www.hkbk.edu.in
HKBK COLLEGE OF ENGINEERING
DEPARTMENT OF INFORMATION SCIENCE AND ENGINEERING
⮚ PEO 4: To Inculcate in Students Professional and Ethical attitude with a strong character
with effective communication skills, teamwork skills, multidisciplinary approach, and an
ability to relate Engineering issues to broader social context.
Professional Skills:
An ability to identify and analyse requirements, and in designing and implementing well-
tested technology solutions for rapidly changing computing problems and information
system environments.
Problem-Solving Skills:
An ability to Design, develop and optimize solutions for information systems
employing fundamentals of system hardware & software, graph theory, finite
automata, data storage and communication networks.
Collaborative Skills:
An ability to communicate and develop leadership skills and work effectively in team
environments. They are capable of collaborating to design and implement well tested
solutions for rapidly changing computing problems and information system environments.
2022-23
SUBMITTED BY:
CERTIFICATE
This is to certify that the content of this mini project entitled “Text Editor
Implementation” is a bonafide work carried out by ROHIT KATTIMANI
(1HK20IS038) , MOHAMMED SAIFUDDIN RABBANI (1HK20IS050) in partial fulfilment for
the award of Degree of Bachelor of Engineering in Information Science and Engineering of
the Visvesvaraya Technological University, Belagavi during the year 2022-23. It is certified
that all corrections / suggestions indicated for the Internal Assessment have been incorporated
in the mini project report deposited in the departmental library. The Mini Project report has
been approved as it satisfies the academic requirements in respect of File Structures Laboratory
with Mini Project (18ISl67)prescribed for the Bachelor of Engineering Degree.
We here by declare that the entire work embodied in this Project work “Text Editor
Implementation” has been carried out by us during the sixth semester of Bachelor of
Engineering in Information Science and Engineering at HKBK College of Engineering,
Bengaluru affiliated to Visvesvaraya Technological University, Belagavi, under the guidance
of Prof. Sneha K, HKBK College of Engineering, Bengaluru. The work embodied in this
project work is original and it has not been submitted in part time or full-time completion for
any other degree in any other university.
I
ACKNOWLEDGEMENT
I would like to place our regards and acknowledgement to all who helped in making this
project possible. There are many people who worked behind the screen to help make it
possible the below listed are a few of them.
I would take this opportunity to express our heartfelt gratitude to Mr.C M Ibrahim,
Chairman, Mr.C M Faiz Mohammed, Director and Prof. Tabassum ara, Principal for
the entire infrastructure provided to complete the project in time.
I am deeply indebted to Dr.A Syed Mustafa, HOD, Information Science and Engineering
for the ineffable encouragement he provided in successful completion of the project.
I am sincerely thank our mini project co-ordinator , Prof. Sneha K for their constantly guiding
and assisting for the project.
I am extremely thankful to the teaching and non-teaching staff of the Department of
Information Science and Engineering for their valuable guidance and cooperation
throughout our dissertation.
II
ABSTRACT
The customization options in the text editor will enable users to personalize their editing
environment according to their preferences. Users will be able to choose from a range of
themes, color schemes, and layout options, ensuring a visually appealing and comfortable
working environment.
By implementing this text editor, users can expect a reliable and versatile tool for their
writing and editing needs. Whether it's creating professional documents, composing
essays, drafting blog posts, or editing code, this text editor will provide a feature-rich and
intuitive interface that caters to a wide array of use cases.
TABLE OF
CONTENT
4 SYSTEM IMPLEMENTATION 5
4.1 Resources Required 5
4.2 Requirement 5
4.3 ER diagram 7
4.4 Use case diagram 8
5 MODULE DESCRIPTION 9
6 SYSTEM DEVELOPMENT 10
7 PROJECT DESCRIPTION 13
7.1 System maintenance 13
7.2 Source code 13
8 SYSTEM TESTING 27
9
RESULT 31
CONCLUSION 34
BIBLIOGRAPHY 35
File Structures Laboratory Mini Project-18ISL67 Text Editor Implementation
CHAPTER-1
INTRODUCTION
A file structure allows applications to read, write and modify data. It might
also support finding the data that matches some search criteria or reading
through the data in some particular order.
Primary Indexing is defined on an ordered data file. The data file is ordered on
a key field.
Early Work: -
Early Work assumed that files were on tape. Access was sequential – the cost of
access grew in direct proportion to the size of the file.
pointers in a small file that could be searched very quickly. With the key and
pointer, the user had direct access to the large, primary file.
Balanced Trees: -
In 1963, researchers came up with the idea of AVL trees for data in memory.
However, AVL trees did not apply to files. Because they work well when tree
nodes are composed of single records rather than dozens or hundreds of them
in the 1970’s came the idea of B-Trees which require an O (log N) access time.
Where N is the number of entries in the file and k is the number of entries
indexed in a single block of the B-Tree structure. B-Trees can guarantee that we
can find an entry among millions of others with only 3 or 4 trips to the disk.
Hash Tables: -
Retrieving entries in 3 or 4 accesses is good. but it does not reach the goal of
accessing data with a single request. Hashing was a good way to reach this goal
with files that do not change size greatly over time. Recently, Extendible
Dynamic Hashing guarantees one or at most two disk accesses no matter how big
a file becomes.
Variable length refers to anything whose length can vary. For example, in
databases, a variable-length field is a field that does not have a fixed length.
Instead, the field length varies depending on what data is stored in it.
Variable-length fields are useful because they save space. Suppose, for
example, that you want to define a NAME field. The length of each NAME
field will vary according to the data placed in it. For example, John Smith is
10 characters long, but Thomas Horatio Jefferson is 24 characters long. With
fixed-length fields, you would need to define each field to be long enough to
hold the longest name.
This would be a waste of space for records that had short names. With
variable-length fields, the NAME field in each record would be just long
enough to hold its data. If our application generates many short records with
occasional long ones, using fixed-length records wastes a lot of disk space.
INDEXING:
We know that data is stored in the form of records. Every record has a key field,
which helps it to be recognized uniquely.
Primary Index − Primary index is defined on an ordered data file. The data file
is ordered on a key field. The key field is generally the primary key of the relation.
Clustering Index − Clustering index is defined on an ordered data file. The data
file is ordered on a non-key field.
5
Evaluating Different Index Structures:-
No one technique is the best. Each has to be evaluated w.r.t. the following
criteria:-
Access Type: - Finding records with a particular search key, or with the search
key falling in a given range
Access Time: - The time it takes to find item(s) using the index in question.
Insertion Time: - The time to insert an item in the data file, as well as the
Time to update the index.
Deletion Time: - The time to delete the item from the data file (which include
the time to find the item), and the time to update the index.
The scope of the "Text Editor Implementation" mini project includes designing
and implementing a text editing application with a user-friendly interface. The
project will focus on incorporating essential features such as document creation,
editing, formatting, and saving. Additionally, functionalities like spell-checking,
word count, and find-and-replace may be included to improve productivity and
accuracy. The project's scope is to deliver a functional text editor that meets the
needs of users, enabling them to perform various text editing tasks effectively
Existing System: -
Proposed System: -
The proposed text editor system aims to provide an intuitive user interface,
enhanced features, and efficient document editing capabilities, offering users a
seamless and productive writing and editing experience.
Exit: -
The user can exit from the action.
CHAPTER -2
SYSTEM REQUIREMENT SPECIFICATION (SRS)
INTRODUCTION:s
Mouse: Touchpad
Hard Disc: 40 GB
CHAPTER -3
ANALYSIS
FEASIBILITY STUDY
The feasibility study for the "Text Editor Implementation" project examines
its technical, operational, and economi viability. The project's technical
feasibility relies on the availability of suitable technologies and resources.
Operationally, the project aims to meet the user requirements for efficient
text editing. The economic feasibility involves evaluating the cost of
development and potential benefits, ensuring a favorable return on
investment. Overall, the study concludes that the text editor implementation
project is feasible and holds the potential for successful implementation
This study is carried out to check the economic impact will have on the system
will have on the organization. The amount of fund that the company can pour into
the research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand
on the available resources present in the technical feasibility study
CHAPTER- 4
SYSTEM DESIGN
CHAPTER – 5 IMPLEMENTATION
Implementation is the stage of the project when the theoretical design is turned
out into a working system. Thus it can be considered to be the most critical stage
in achieving a successful new system and in giving the user, confidence that the
new system will work and be effective. The implementation stage involves
careful planning, investigation of the existing system and it’s constraints on
implementation, designing of methods to achieve changeover and evaluation of
changeover methods.
class TextEditor:
self.filemenu.add_command(label="Save",accelerator="Ctrl+S",command=self.sa
vefile)
self.filemenu.add_command(label="Save
As",accelerator="Ctrl+A",command=self.saveasfile)
self.filemenu.add_separator()
self.filemenu.add_command(label="Exit",accelerator="Ctrl+E",command=self.e
xit)
self.menubar.add_cascade(label="File", menu=self.filemenu)
self.shortcuts()
def settitle(self):
if self.filename:
self.title.set(self.filename)
else:
self.title.set("Untitled")
def newfile(self,*args):
self.txtarea.delete("1.0",END)
self.filename = None
self.settitle()
def openfile(self,*args):
try:
infile = open(self.filename,"r")
self.txtarea.delete("1.0",END)
self.txtarea.insert(END,line)
infile.close()
self.settitle()
self.status.set("Opened Successfully")
except Exception as e:
messagebox.showerror("Exception",e)
self.status.set("Saved Successfully")
else:
self.saveasfile()
except Exception as e:
messagebox.showerror("Exception",e)
def saveasfile(self,*args):
try:
def exit(self,*args):
op = messagebox.askyesno("WARNING","Your Unsaved Data May be Lost!!")
if op>0:
self.root.destroy()
else:
return
def cut(self,*args):
self.txtarea.event_generate("<<Cut>>")
def copy(self,*args):
self.txtarea.event_generate("<<Copy>>")
def paste(self,*args):
self.txtarea.event_generate("<<Paste>>")
def undo(self,*args):
try:
if self.filename:
self.txtarea.delete("1.0",END)
infile = open(self.filename,"r")
for line in infile:
self.txtarea.insert(END,line)
infile.close()
self.settitle()
self.status.set("Undone Successfully")
else:
self.txtarea.delete("1.0",END)
self.filename = None
self.settitle()
self.status.set("Undone Successfully")
except Exception as e:
messagebox.showerror("Exception",e)
def infoabout(self):
messagebox.showinfo("About Text Editor","A Simple Text Editor\nCreated using
Python.")
def shortcuts(self):
self.txtarea.bind("<Control-n>",self.newfile)
self.txtarea.bind("<Control-o>",self.openfile)
self.txtarea.bind("<Control-s>",self.savefile)
self.txtarea.bind("<Control-a>",self.saveasfile)
self.txtarea.bind("<Control-e>",self.exit)
self.txtarea.bind("<Control-x>",self.cut)
self.txtarea.bind("<Control-c>",self.copy)
self.txtarea.bind("<Control-v>",self.paste)
self.txtarea.bind("<Control-u>",self.undo)
root = Tk()
TextEditor(root)
root.mainloop()
CHAPTER- 6 SNAPSHOTS
DISPLAY PAGE
Fig : 1
CONCLUSION
In conclusion, the text editor is an essential tool for various writing and editing
tasks. It offers a user-friendly interface and a range of features that enhance
productivity and efficiency. With its ability to create, edit, and format text-based
documents, the text editor provides a versatile platform for individuals and
professionals alike.
Through its intuitive design and functionality, the text editor streamlines the
process of document creation, allowing users to focus on their ideas and content
rather than technical complexities. Its ease of use makes it accessible to users of
all skill levels, enabling them to produce high-quality written material.
Additionally, the text editor's compatibility with various file formats ensures
seamless integration with other software and systems. Users can easily import
and export files, making it a versatile tool in today's interconnected digital
landscape.
Overall, the text editor has become an indispensable tool in academia, business,
journalism, and many other fields. Its ability to simplify the writing and editing
process, improve accuracy, and enhance collaboration makes it an essential
component of modern productivity and communication.
References
□ PO 4: Conduct investigations of complex problems: use research based knowledge and research
methods including design of Experiments, analysis & interpretation of data, and synthesis of
the information to provide valid conclusions.
□ PO 5: Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern
engineering and IT tools, including prediction and understanding of the limitations.
□ PO 6: The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice.
□ PO 8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
□ PO 11: Project management and finance: engineering and management principles and apply
these to one’s own work, as a member and leader in a team, to manage projects and in
multidisciplinary environments
□ PO 12: Life-long learning: Recognize the need for, and have the preparation and ability to engage
in independent and life-long learning in the broadest context of technological change