Skip to main content

GRADE XII - BINARY BASIC PROJECT - 29 JULY

 

BINARY BASIC PROJECT

"""

Created on Mon Jul 28 11:34:41 2025


@author: Kirti Hora

"""

import pickle

from os import remove, rename

# OS is a built-in Python module that allows you to interact with the operating system

# remove and rename: These functions help in deleting and renaming files.


def createfile():

    file = open("item.dat","wb")

    ans = "y"

    while ans == "y":

        ino = int(input("\nitem no -"))

        name = input("\nName- ")

        price = float(input("\nPrice -"))

        qty = int(input("\nQuantity -"))

        itdets = [ino,name,price,qty]

        pickle.dump(itdets,file)

        ans = input("add more ?(y/n) - ")

    file.close()


def display_count():

    totrec = 0

    try:

        with open("item.dat", "rb") as fin:

            while True:

                try:

                    itrec = pickle.load(fin)

                    print(itrec)

                    totrec += 1      

                except EOFError:

                    break

                    

    except FileNotFoundError:

        print("File not found.")

    

    print("No. of records in the file:", totrec)


def srchino():

    sino = int(input("Enter item no -"))

    try:

        with open("item.dat","rb") as fin:

            while True:

                itrec = pickle.load(fin)

                if itrec[0] == sino:

                    print("item name - ",itrec[1])

                    print("Price - ",itrec[2])

                    print("Stock - ",itrec[3])

                    break

                else:

                    print("Record not found")

    except EOFError:

        pass 


def srchinm():

    sinm = input("Enter item name -")

    found="n"

    try:

        with open("item.dat","rb") as fin:

            while True:

                itrec = pickle.load(fin)

                if itrec[1] == sinm:

                    print("item no - ",itrec[0])

                    print("Price - ",itrec[2])

                    print("Stock - ",itrec[3])

                    found = "y"

                    if found == "n":

                        print("Record not found")

    except EOFError:

        pass


def sumitemvalues():

    totsum = 0

    try:

        with open("item.dat", "rb") as fin:

            while True:

                itrec = pickle.load(fin)

                totsum += itrec[2] * itrec[3]  # price * quantity

    except EOFError:

        pass

    print("Total value of all items -", totsum)


   def delnth():

    file = open("item.dat", "rb")

    temp = open("temp.dat", "wb")     # Creates a temporary file temp.dat in write binary mode ("wb"),                                                                 which will store all records except the one to delete.

     recno = int(input("Enter record number to delete: "))

    ctr = 0

        try:

        while True:

            itrec = pickle.load(file)

            ctr += 1

            if ctr == recno:

                print("Record to be deleted:")

                print(itrec)

            else:

                pickle.dump(itrec, temp) #If the record is not the one to delete, it is copied into the temp.dat 

    except EOFError:

        file.close()

        temp.close()

        remove("item.dat")

        rename("temp.dat", "item.dat")

        print("Record deleted successfully.")

      #Closes both files.

#Deletes the original item.dat.

#Renames temp.dat to item.dat — so it now becomes the updated file with the selected record removed.

#Prints success message.


def insertatnth():

    file = open("item.dat", "rb")

    temp = open("temp.dat", "wb")

    recno = int(input("Enter record no position - "))

    ctr = 0

    ino = int(input("\nEnter item no - "))

    name = input("Enter name - ")

    price = float(input("Enter Price - "))

    qty = int(input("Enter Stock Quantity - "))

    newrec = [ino, name, price, qty]  # Record to be inserted

    try:

        while True:

            itrec = pickle.load(file)

            ctr += 1

            if ctr == recno:

                pickle.dump(newrec, temp)  # new record written

            pickle.dump(itrec, temp)

    except EOFError:

        file.close()

        temp.close()

        remove('item.dat')

        rename('temp.dat', 'item.dat')


 def editonino():

    file = open("item.dat", "rb")

    temp = open("temp.dat", "wb")

    sino = int(input("Enter Item no to edit - "))

    found = "n"

    cnt = 0

    try:

        while True:

            itrec = pickle.load(file)

            cnt += 1

            temprec = itrec

            if itrec[0] == sino:

print("Editing record " + str(cnt) + ": " + str(itrec))               

 temprec[1] = input("Enter edited name - ")

                temprec[2] = float(input("Enter edited Price - "))

                temprec[3] = int(input("Enter edited quantity in stock - "))

                found = "y"

            pickle.dump(temprec, temp)

    except EOFError:

        file.close()

        temp.close()

        if found == "n":

            print("No such record")

            remove('temp.dat')

        else:

            remove('item.dat')

            rename('temp.dat', 'item.dat')

            print("Record updated successfully.")


def editname():

    file = open("item.dat", "rb")

    temp = open("temp.dat", "wb")

    sinm = input("Enter Item name to edit - ")

    found = "n"

    try:

        while True:

            itrec = pickle.load(file)

            temprec = itrec

            if itrec[1] == sinm:

                temprec[2] = float(input("Enter edited Price - "))

                temprec[3] = int(input("Enter edited Quantity - "))

                found = "y"

            pickle.dump(temprec, temp)

    except EOFError:

        file.close()

        temp.close()

        if found == "n":

            print("No such record")

            remove("temp.dat")

        else:

            remove("item.dat")

            rename("temp.dat", "item.dat")


 def delitno():

file = open("item.dat", "rb")

temp = open("temp.dat", "wb")

sino = int(input("Enter Item no to delete - "))

found = "n"

try:

    while True:

        itrec = pickle.load(file)

        if itrec[0] == sino:

            print("Record to be deleted:")

            print(itrec)

            found = "y"

        else:

            pickle.dump(itrec, temp)

except EOFError:

    file.close()

    temp.close()

    if found == "y":

        remove('item.dat')

        rename('temp.dat', 'item.dat')

        print("Record deleted successfully.")

    else:

        remove('temp.dat')

        print("No such record found.")


while True:

        print("\n1. Create Item details File")

        print("2. Show and count all records")

        print("3. Search on item number")

        print("4. Search on item name")

        print("5. Display total values")   #sumitemvalues():

        print("6. Edit on item number")    #editonino():

        print("7. Edit on item name")        # editname()

        print("8. Insert at nth position")    # insertatnth()

        print("9. Delete nth record")        #delnth()

        print("10. Delete on item number") #  delitno():

    

        ch = int(input("\nEnter your choice: "))

        if ch == 1:

            createfile()

        elif ch == 2:

            display_count()

        elif ch==3:

            srchino()

        elif ch==4:

            srchinm()

        else:

            print("Wrong choice")

    

        ans = input("\nWant to continue (y/n)? ")

        if ans in "nN":

            break


Comments

Popular posts from this blog

GRADE XII - Python Connectivity with MySQL

  Python Connectivity with MySQL In real-life applications, the data inputted by the user and processed by the application needs to be saved permanently, so that it can be used for future manipulation. Usually, input and output data is displayed during execution but not stored, as it resides in main memory , which is temporary — i.e., it gets erased once the application is closed. This limitation can be overcome by sending the data to be stored in a database , which is made accessible to the user through a Front-End interface . Key Concepts Database A database is an organized collection of data that is stored and accessed electronically from a computer system. DBMS (Database Management System) A DBMS is software that interacts with end-users, applications, and the database to capture and analyze data. Front-End The Front-End is the user interface of the application, responsible for input/output interaction with the user. Back-End The Back-End refe...

GRADE XI | DESIGN THINKING & INNOVATION (848) | INTRO | CH-1

  DESIGN THINKING &  INNOVATION (848)  INTRODUCTION LINK : INTRODUCTION PPT PPT LINK Notes: Design Thinking and Innovation Grade XI Introduction Section   I. What is Design? (0.1.1) Definitions from Experts: John Maeda: "Design is solution to a problem". Saul Bass: "Design is thinking made visual". Charles Eames:   “Design is a plan for arranging elements in such a way as best to accomplish a particular purpose.” Steve Jobs:  "Design is not just what it looks like and feels like. Design is how it works". Prof. Sudhakar Nadkarni:  "Essentials of design are— purity, precision, details". Design is a way of understanding needs, identifying problems, and creating appropriate and innovative solutions. It is not only about appearance, but also about usefulness and sustainability. Design is explained as something that helps solve problems and make a positive difference. Key ...