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

PYTHON - MYSQL CONNECTIVITY CODE

  #INSERTION OF DATA import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="root", database="school" ) print("Successfully Connected") #print(mydb) mycursor=mydb.cursor()   v1=int(input("enter ID:")) v2=input("enter name:") v3=input("enter Gender:") v4=int(input("enter age:")) sql='insert into TEACH values("%d","%s","%s","%s")'%(v1,v2,v3,v4) print(sql) mycursor.execute(sql) mydb.commit() print("record added") #MYSQL Connection code – Deletion on database SOURCE CODE: s=int(input("enter id of TEACHER to be deleted:")) r=(s,) v="delete from TEACH where id=%s" mycursor.execute(v,r) mydb.commit() print("record deleted") MYSQL Connection code – Updation on database SOURCE CODE: import mysql.connector mydb = mysql.connector.c...

REVISION IF CONSTRUCT | CLASS TEST

                                                                                     CLASS TEST 1. Write a Python program that asks the user for their age, gender, and current fitness level (beginner, intermediate, or advanced). Based on this information, suggest a suitable fitness plan using if-else statements. Requirements: Inputs : Age (integer) Gender (male/female) Fitness level (beginner/intermediate/advanced) Outputs : Recommend a fitness plan that includes: Suggested workout duration. Type of exercises (e.g., cardio, strength, flexibility). Rest days. Logic : Use if-else to determine the plan based on conditions such as: Age group (e.g., <18, 18–40, >40). Fitness leve...