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...

GRADE XII CS - VIVA QUESTIONS

  VIVA QUESTIONS GRADE XII CS Dear All Be thorough with your project and practical files, as the viva can be asked from anywhere. Stay calm, don’t get nervous, and be confident in front of the examiner. 1. Tell me about your project. 2. Which concepts you have used for your project? 3. What do you mean by front end and back end? How they are important in developing any such projects? 4  Mention the modules and built-in functions you have used in your project. 5. Which real world problems are solved by your project? 6. Explain the most important feature of your project. 7. Name a few mutable data types of python. Lists, Sets, and Dictionaries 8. Name a few immutable data types of python. Strings, Tuples, Numeric 9. Name ordered and unordered data type of python. Ordered – String, List, Tuples Unordred – Set, Dictionaries 10. What is the significance of a pass statement in python? pass is no operation python statement. This is used where python requires syntax but logic requires...