TABLE OF CONTENTS
1. INTRODUCTION
2. OBJECTIVE & SCOPE OF THE PROJECT
3. THEORETICAL BACKGROUND
4. SYSTEM IMPLEMENTATION
4.1 THE HARDWARE USED:
4.2 THE SOFTWARES USED:
5. SYSTEM DESIGN & DEVELOPMENT
5.1 SYSTEM DESIGN:
5.2 I/O FORMS DESIGN & EVENT CODING:
5.3 Conclusion: -------------------------------------------------------------------
6. USER MANUAL
6.1 HOW TO INSTALL:
6.2 WORKING WITH SOFTWARE:
7. REFERENCES
1. INTRODUCTION
Introduction :
Python is a high-level scripting language which can be used for a wide variety
of text processing, system administration and internet-related tasks. Unlike
many similar languages, it’s core language is very small and easy to master,
while allowing the addition of modules to perform a virtually limitless variety
of tasks. Python is a true object-oriented language, and is available on a wide
variety of platforms. There’s even a python interpreter written entirely in Java,
further enhancing python’s position as an excellent solution for internet-based
problems.
With musical instruments gaining popularity, this Instrument Catalog program
offers an efficient solution for managing instrument records. Users can easily
add, update, search, delete, and select instrument details from the comfort of
their own devices. The Instrument Catalog helps in maintaining records of
various instruments, including their name, genre, origin, timbre, material, and
associated artists. It also allows users to keep their profiles updated.
Additionally, the program ensures that all changes and updates are accurately
reflected in the catalog, making it a reliable tool for both musicians and music
enthusiasts.
2. OBJECTIVES & SCOPE OF THE PROJECT
The objective of the Instrument Catalog program is to provide a comprehensive
and efficient solution for managing musical instrument records.It aims to
facilitate the detailed instrument information in a user-friendly manner.By
maintaining organized records of various instruments the program ensures that
users can easily manage and access important data. Additionally, it allows users
to update their profiles, enhancing the overall user experience and ensuring that
the catalog remains accurate and up-to-date. This program is designed to cater
to musicians, music enthusiasts, and anyone in need of an organized system to
manage their musical instrument collection.
The proposed software system is expected to do the following functionality-
1. To provide a user friendly, Graphical User Interface (GUI) based
integrated and centralized environment for MIS activities.
2. The proposed system should maintain all the records, and should generate
the required reports and information when required.
3. To provide a graphical and user-friendly interface to interact with a
centralized database based on client-server architecture.
4. To identify the critical operation procedure and possibilities of
simplification using modern IT tools and practices.
In its current scope, the software enables user to retrieve and update the
information. Designed in Python. This software does not require much training
time for the users as it has a very easy and simple interface.
Despite the best effort of the developer, the following limitations and
functional boundaries are visible, which limits the scope of this application
software.
1. This software can store records and produce reports in pre-designed
format in soft copy. There is no facility yet to produce customized
reports. Only specified reports are covered.
2. Some application areas like importing/exporting of student list ,roll.no
etc. are not implemented in the project. It facilitates teachers to record
and student marks and roll.no
So far as future scope of the project is concerned, firstly it is open to any
modular expansion i.e. other modules or functions can be designed and
embedded to handle the user need in future. Any part of the software and
reports can be modified independently without much effort.
3. THEORETICAL BACKGROUND
Introduction
Python is a high-level scripting language which can be used for a wide variety
of text processing, system administration and internet-related tasks. Unlike
many similar languages, it’s core language is very small and easy to master,
while allowing the addition of modules to perform a virtually limitless variety
of tasks. Python is a true object-oriented language, and is available on a wide
variety of platforms. There’s even a python interpreter written entirely in Java,
further enhancing python’s position as an excellent solution for internet-based
problems.
Basics of Python
There are a few features of python which are different than other programming
languages, and which should be mentioned early on so that subsequent
examples don’t seem confusing. Further information on all of these features will
be provided later, when the topics are covered in depth. Python statements do
not need to end with a special character – the python interpreter knows that you
are done with an individual statement by the presence of a newline, which will
be generated when you press the “Return” key of your keyboard. If a statement
spans more than one line, the safest course of action is to use a backslash (\) at
the end of the line to let python know that you are going to continue the
statement on the next line;
you can continue using backslashes on additional continuation lines. (There
are situations where the backslashes are not needed which will be discussed
later.)
Python provides you with a certain level of freedom when composing a
program, but there are some rules which must always be obeyed. One of these
rules, which some people find very surprising, is that python uses indentation
(that is, the amount of white space before the statement itself) to indicate the
presence of loops, instead of using delimiters like curly braces ({}) or keywords
(like “begin” and “end”) as in many other languages. The amount of indentation
you use is not important, but it must be consistent within a given depth of a
loop, and statements which are not indented must begin in the first column.
Most python programmers prefer to use an editor like emacs, which
automatically provides consistent indentation; you will probably find it easier to
maintain your programs if you use consistent indentation in every loop, at all
depths, and an intelligent editor is very useful in achieving this.
4. SYSTEM IMPLEMENTATION
5.1 The Hardware used:
While developing the system, the used hardware are:
➢ Processor: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
➢ RAM: 8GB
5.2 The Software used:
⮚ Microsoft Windows 11 as Operating System.
⮚ Python 3.8
⮚ MS-Word 2021 for documentation.
5. SYSTEM DESIGN & DEVELOPMENT
5.1 System Design:
The record accessing method in the Instrument Catalog program is based
on CSV (Comma Separated Values) files, which are widely supported and easy
to use. The file extension is .csv, allowing users to open and edit the data in
various software applications like Excel, Google Sheets, and other spreadsheet
tools. This ensures flexibility and accessibility across different platforms.
5.2 Input Output CODING:
The software project for student mark manager contains various forms along
with programming codes. Forms and their event coding are given below.
COMMANDS USED TO IMPORT DIFFERENT LIBRARIES IN THE
PROGRAM
import csv
Code:
import csv
#Add
def Add_records():
with open("Instrument_Catalogs.csv", "w", newline='') as f:
writer = csv.writer(f)
writer.writerow(["I_Name", "I_Genre", "I_Origin", "I_Timbre",
"I_Material", "I_Size", "I_Weight", "I_Price", "Famous_Artist",
"A_Genre", "A_Song"])
writer.writerow(["Violin", "Classical, Baroque", "Italy", "Bright, Warm",
"Wood (maple and spruce)", "Medium", "1.5 kg", "$500 - $10,000", "Itzhak
Perlman", "Classical", "Praeludium and Allegro"])
writer.writerow(["Electric Guitar", "Rock, Blues, Metal", "United States",
"Bright, Sharp", "Wood (usually maple or alder), metal", "Medium to Large",
"3.5 kg", "$200 - $3,000", "Jimi Hendrix", "Rock, Psychedelic", "Purple
Haze"])
writer.writerow(["Snare Drum", "Rock, Jazz, Marching", "Germany",
"Sharp, Crisp", "Wood (shell), Steel (hoop)", "Medium", "5 kg", "$100 -
$1,000", "Travis Barker", "Punk Rock, Alternative", "All the Small Things"])
writer.writerow(["Piano", "Classical, Jazz, Pop", "Italy", "Rich, Full,
Resonant", "Wood (typically spruce or maple), ivory (historically), steel",
"Large", "300 kg", "$1,000 - $100,000", "Ludwig van Beethoven", "Classical",
"Moonlight Sonata"])
writer.writerow(["Cello", "Classical, Pop, Jazz", "USA", "Warm,
Resonant, Deep", "Wood (spruce and maple)", "Large", "3.5 kg", "$2,000 -
$50,000", "Yo-Yo Ma", "Classical, World Music", "The Swan"])
Add_records()
print("The CSV File Instruments_Catalogs has been successfully created!!")
#append
def append_row():
with open("Instrument_Catalogs.csv", "a", newline='') as fa:
writer = csv.writer(fa)
while True:
I_Name = input("Enter Instrument Name: ")
I_Genre = input("Enter Instrument Genre: ")
I_Origin = input("Enter Instrument Origin: ")
I_Timbre = input("Enter Instrument Timbre: ")
I_Material = input("Enter Instrument Material: ")
I_Size = input("Enter Instrument Size: ")
I_Weight = input("Enter Instrument Weight: ")
I_Price = input("Enter Instrument Price: ")
Famous_Artist = input("Enter Famous Artist: ")
A_Genre = input("Enter Artist Genre: ")
A_Song = input("Enter Artist Song: ")
writer.writerow([I_Name, I_Genre, I_Origin, I_Timbre, I_Material,
I_Size, I_Weight, I_Price, Famous_Artist, A_Genre, A_Song])
ch = input("Do you want to continue adding records (y/n)?: ")
if ch.lower() == "n":
break
print("Records added successfully!!")
#search
def search_row():
valid_fields = ["I_Name", "I_Genre", "I_Origin", "I_Timbre", "I_Material",
"I_Size", "I_Weight", "I_Price", "Famous_Artist", "A_Genre", "A_Song"]
while True:
search_column = input("Enter the column to be searched from {',
'.join(valid_fields)}: ")
if search_column not in valid_fields:
print("Input Invalid (Column not found)")
return
search_input = input("Enter the value to be searched in column
'{search_column}': ")
found = False
with open("Instrument_Catalogs.csv", "r") as fr:
reader = csv.DictReader(fr)
for row in reader:
if row[search_column] == search_input:
print("Row found:", row)
found = True
break
if not found:
print("No rows found with that value.")
ch = input("Do you want to search again?(y/n): ")
if ch.lower() == 'n':
print("Exiting search.")
break
#delete
def delete_row():
while True:
with open("Instrument_Catalogs.csv", "r", newline='') as fr:
reader = list(csv.reader(fr))
row_to_delete = int(input("Enter the row number you want to delete
(starting from 0):
"))
if 0 <= row_to_delete < len(reader):
del reader[row_to_delete]
with open("Instrument_Catalogs.csv", "w", newline='') as fw:
writer = csv.writer(fw)
writer.writerows(reader)
print("Row deleted successfully!")
else:
print("Invalid row number.")
ch=input("Do you want to continue deleting records??(y/n):")
if ch in 'Nn':
break
else:
continue
#update
import csv
def update_record():
while True:
col = input("Enter the name of the column: ")
val = input(f"Enter the value of the {col} to identify row: ")
rows = []
with open("Instrument_Catalogs.csv", "r", newline='') as fr:
reader = csv.DictReader(fr)
fieldnames = reader.fieldnames
recs = list(reader)
found = False
for rec in recs:
if rec.get(col) == val:
print("Current row:", rec)
for row in rec:
if row != col:
new = input(f"Enter new value for '{row}' (or press Enter to
keep current value): ")
if new:
rec[row] = new
found = True
break
if not found:
print("No such row is available!!")
return
with open("Instrument_Catalogs.csv", "w", newline='') as fw:
writer = csv.DictWriter(fw, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(recs)
print("The row updated successfully")
ch = input("Do you want to continue updating records (y/n)?: ")
if ch in 'Nn':
break
else:
pass
#select
import csv
def select_row(filename):
while True:
with open(filename, "r", newline='') as fr:
reader = list(csv.reader(fr))
row_to_select = int(input("Enter the row number you want to view
(starting from 0): "))
if 0 <= row_to_select < len(reader):
print(f"Selected Row: {reader[row_to_select]}")
else:
print("Invalid row number.")
ch = input("Do you want to continue selecting rows? (y/n): ")
if ch in 'Nn':
break
else:
pass
#main
def main_function():
while True:
print("_"*110)
print("\n!!!WELCOME!!!")
print("_"*110)
print("1.Append Records ")
print("2.Search a row ")
print("3.Delete a row ")
print("4.Update Records ")
print("5.Select a Row ")
print("6.Exit Program")
choice = input("Choose an Option (1-6): ")
if choice == '1':
append_row()
elif choice == '2':
search_row()
elif choice == '3':
delete_row()
elif choice == '4':
update_record()
elif choice == '5':
select_row("Instrument_Catalogs.csv")
elif choice == '6':
print("Exiting Program!!. Thank You for participating!!!")
print("=============================================
================================THANKYOU!!!
=========================================================
=============")
break
else:
print("Invalid Choice.\nPlease try again (if required)!!")
print(":("*80)
main_function()
Output:
1.APPEND
Create your account menu
2.SEARCH
3.DELETE
4.UPDATE:
5.SELECT:
6.EXIT PROGRAM :
5.3 Conclusion
The Instrument Catalog program is an indispensable tool for anyone looking to
manage a comprehensive collection of musical instruments efficiently. This
program offers a suite of features designed to streamline the process of
maintaining detailed and accurate records. Users can easily add, update, search,
delete, and view information about various instruments, making it an invaluable
resource for musicians, music enthusiasts, and inventory managers alike.
One of the key strengths of this program is its use of the CSV file format, which
ensures that data is easily accessible and compatible with a wide range of
applications. This flexibility allows users to manage their instrument data in the
software they are most comfortable with, be it Excel, Google Sheets, or other
spreadsheet tools.
As we navigate an era where technology continually shapes our daily lives, the
Instrument Catalog program stands out as a robust solution for managing
musical instrument records. It embodies the essence of efficiency and
convenience, providing users with a reliable tool to keep their catalogs
organized and accurate.
In the words of Johann Sebastian Bach, "Music is an agreeable harmony for the
honor of God and the permissible delights of the soul." With the Instrument
Catalog program, managing your musical instruments becomes as harmonious
and delightful as the music they produce.
6.USER MANUAL
6.1 How to install the Software:
Hardware Requirement-
♦ Intel Pentium/Celeron or similar processor based PC at Client/Server end.
♦ 512 MB RAM and 4GB HDD space (for Database) is desirable.
♦ Standard I/O devices like Keyboard and Mouse etc.
♦ Printer is required for hard-copy reports.
♦ Local Area Network(LAN) is required for Client-Server Installation
Software Requirement-
♦ Windows XP/Vista/7/8/8.1/10/11
♦ Python IDLE higher than version 3.5
♦ Pycharm Community edition 2018.3.1 or higher
Python installation
Step 1: Download Python
To start, go to python.org/downloads and then click on the button to download
the latest version of Python.
Step 2: Run the .exe file
Next, run the .exe file that you just downloaded, and then follow the installation
instructions.
Note that depending on your needs, you may also check the box to add Python
to the Path:
Add Python to PATH
7. References
In order to work on this project titled – Students Mark Manager , the
following books and literature are referred to by me during the various phases
of development of the project.
(3) Computer Science for class XII -by Sumita Arora
(4) CBSE Computer Science Class 12
(5) www.mycbseguide.com
Other than the above-mentioned books, the suggestions and supervision of my
teacher and my class experience also helped me to develop this software
project.