Tuesday 12 February 2013

Mini project supermarket billing system in c++ source code download


//program for creating bill in a supermarket

#include<iostream>

#include<windows.h>

#include<conio.h>

#include<fstream>

#include<cstring>

#include<cstdio>

#include<cstdlib>

#include<iomanip>

using namespace std;

//global variable declaration

int k=7,r=0,flag=0;

COORD coord = {0, 0};



void gotoxy(int x, int y)

{

 COORD coord;

 coord.X = x;

 coord.Y = y;

 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

struct date

{int mm,dd,yy;};



ofstream fout;

ifstream fin;



class item

{

int itemno;

char name[25];

date d;

public:

void add()

{

cout<<"\n\n\tItem No: ";

cin>>itemno;

cout<<"\n\n\tName of the item: ";

cin>>name;

//gets(name);

cout<<"\n\n\tManufacturing Date(dd-mm-yy): ";

cin>>d.mm>>d.dd>>d.yy;

}

void show()

{

cout<<"\n\tItem No: ";

cout<<itemno;

cout<<"\n\n\tName of the item: ";

cout<<name;

cout<<"\n\n\tDate : ";

cout<<d.mm<<"-"<<d.dd<<"-"<<d.yy;

}

void report()

{

gotoxy(3,k);

cout<<itemno;

gotoxy(13,k);

puts(name);

}

int retno()

{

    return(itemno);



}



};



class amount: public item

{

float price,qty,tax,gross,dis,netamt;

public:

void add();

void show();

void report();

void calculate();

void pay();

float retnetamt()

{

    return(netamt);

}

}amt;



void amount::add()

{

item::add();

cout<<"\n\n\tPrice: ";

cin>>price;

cout<<"\n\n\tQuantity: ";

cin>>qty;

cout<<"\n\n\tTax percent: ";

cin>>tax;

cout<<"\n\n\tDiscount percent: ";

cin>>dis;

calculate();

fout.write((char *)&amt,sizeof(amt));

fout.close();

}

void amount::calculate()

{gross=price+(price*(tax/100));

netamt=qty*(gross-(gross*(dis/100)));

}

void amount::show()

{fin.open("itemstore.dat",ios::binary);

fin.read((char*)&amt,sizeof(amt));

item::show();

cout<<"\n\n\tNet amount: ";

cout<<netamt;

fin.close();

}



void amount::report()

{item::report();

gotoxy(23,k);

cout<<price;

gotoxy(33,k);

cout<<qty;

gotoxy(44,k);

cout<<tax;

gotoxy(52,k);

cout<<dis;

gotoxy(64,k);

cout<<netamt;

k=k+1;

if(k==50)

{gotoxy(25,50);

cout<<"PRESS ANY KEY TO CONTINUE...";

getch();

k=7;

system("cls");

gotoxy(30,3);

cout<<" ITEM DETAILS ";

gotoxy(3,5);

cout<<"NUMBER";

gotoxy(13,5);

cout<<"NAME";

gotoxy(23,5);

cout<<"PRICE";

gotoxy(33,5);

cout<<"QUANTITY";

gotoxy(44,5);

cout<<"TAX";

gotoxy(52,5);

cout<<"DEDUCTION";

gotoxy(64,5);

cout<<"NET AMOUNT";

}

}



void amount::pay()

{show();

cout<<"\n\n\n\t\t*********************************************";

cout<<"\n\t\t                 DETAILS                  ";

cout<<"\n\t\t*********************************************";

cout<<"\n\n\t\tPRICE                     :"<<price;

cout<<"\n\n\t\tQUANTITY                  :"<<qty;

cout<<"\n\t\tTAX PERCENTAGE              :"<<tax;

cout<<"\n\t\tDISCOUNT PERCENTAGE         :"<<dis;

cout<<"\n\n\n\t\tNET AMOUNT              :Rs."<<netamt;

cout<<"\n\t\t*********************************************";

}



int main()

{

cout.setf(ios::fixed);

cout.setf(ios::showpoint);

cout<<setprecision(2);

fstream tmp("temp.dat",ios::binary|ios::out);

menu:

system("cls");

gotoxy(25,2);

cout<<"Super Market Billing ";

gotoxy(25,3);

cout<<"===========================\n\n";

cout<<"\n\t\t1.Bill Report\n\n";

cout<<"\t\t2.Add/Remove/Edit Item\n\n";

cout<<"\t\t3.Show Item Details\n\n";

cout<<"\t\t4.Exit\n\n";

cout<<"\t\tPlease Enter Required Option: ";

int ch,ff;

float gtotal;

cin>>ch;

switch(ch)

{case 1:ss:

system("cls");

gotoxy(25,2);

cout<<"Bill Details";

gotoxy(25,3);

cout<<"================\n\n";

cout<<"\n\t\t1.All Items\n\n";

cout<<"\t\t2.Back to Main menu\n\n";

cout<<"\t\tPlease Enter Required Option: ";

int cho;

cin>>cho;

if(cho==1)

{system("cls");

gotoxy(30,3);

cout<<" BILL DETAILS ";

gotoxy(3,5);

cout<<"ITEM NO";

gotoxy(13,5);

cout<<"NAME";

gotoxy(23,5);

cout<<"PRICE";

gotoxy(33,5);

cout<<"QUANTITY";

gotoxy(44,5);

cout<<"TAX %";

gotoxy(52,5);

cout<<"DISCOUNT %";

gotoxy(64,5);

cout<<"NET AMOUNT";

fin.open("itemstore.dat",ios::binary);

if(!fin)

{cout<<"\n\nFile Not Found...";

goto menu;}

fin.seekg(0);

gtotal=0;

while(!fin.eof())

{fin.read((char*)&amt,sizeof(amt));

if(!fin.eof())

{amt.report();

gtotal+=amt.retnetamt();

ff=0;}

if(ff!=0) gtotal=0;

}gotoxy(17,k);

cout<<"\n\n\n\t\t\tGrand Total="<<gtotal;

getch();

fin.close();

}

if(cho==2)

{goto menu;}

goto ss;

case 2:

db:

system("cls");

gotoxy(25,2);

cout<<"Bill Editor";

gotoxy(25,3);

cout<<"=================\n\n";

cout<<"\n\t\t1.Add Item Details\n\n";

cout<<"\t\t2.Edit Item Details\n\n";

cout<<"\t\t3.Delete Item Details\n\n";

cout<<"\t\t4.Back to Main Menu ";

int apc;

cin>>apc;

switch(apc)

{

case 1:fout.open("itemstore.dat",ios::binary|ios::app);

amt.add();

cout<<"\n\t\tItem Added Successfully!";

getch();

goto db;



case 2:

int ino;

flag=0;

cout<<"\n\n\tEnter Item Number to be Edited :";

cin>>ino;

fin.open("itemstore.dat",ios::binary);

fout.open("itemstore.dat",ios::binary|ios::app);

if(!fin)

{cout<<"\n\nFile Not Found...";

goto menu;

}

fin.seekg(0);

r=0;

while(!fin.eof())

{fin.read((char*)&amt,sizeof(amt));

if(!fin.eof())

{int x=amt.item::retno();

if(x==ino)

{flag=1;

fout.seekp(r*sizeof(amt));

system("cls");

cout<<"\n\t\tCurrent Details are\n";

amt.show();

cout<<"\n\n\t\tEnter New Details\n";

amt.add();

cout<<"\n\t\tItem Details editted";

}

}r++;

}

if(flag==0)

{cout<<"\n\t\tItem No does not exist...Please Retry!";

getch();

goto db;

}

fin.close();

getch();

goto db;



case 3:flag=0;

cout<<"\n\n\tEnter Item Number to be deleted :";

cin>>ino;

fin.open("itemstore.dat",ios::binary);

if(!fin)

{cout<<"\n\nFile Not Found...";

goto menu;

}

//fstream tmp("temp.dat",ios::binary|ios::out);

fin.seekg(0);

while(fin.read((char*)&amt, sizeof(amt)))

{int x=amt.item::retno();

if(x!=ino)

tmp.write((char*)&amt,sizeof(amt));

else

{flag=1;}

}

fin.close();

tmp.close();

fout.open("itemstore.dat",ios::trunc|ios::binary);

fout.seekp(0);

tmp.open("temp.dat",ios::binary|ios::in);

if(!tmp)

{cout<<"Error in File";

goto db;

}

while(tmp.read((char*)&amt,sizeof(amt)))

fout.write((char*)&amt,sizeof(amt));

tmp.close();

fout.close();

if(flag==1)

cout<<"\n\t\tItem Succesfully Deleted";

else if (flag==0)

cout<<"\n\t\tItem does not Exist! Please Retry";

getch();

goto db;

case 4:

goto menu;

default: cout<<"\n\n\t\tWrong Choice!!! Retry";

getch();

goto db;

}

case 3:system("cls");

flag=0;

int ino;

cout<<"\n\n\t\tEnter Item Number :";

cin>>ino;

fin.open("itemstore.dat",ios::binary);

if(!fin)

{cout<<"\n\nFile Not Found...\nProgram Terminated!";

goto menu;

}

fin.seekg(0);

while(fin.read((char*)&amt,sizeof(amt)))

{int x=amt.item::retno();

if(x==ino)

{amt.pay();

flag=1;

break;

}

}

if(flag==0)

cout<<"\n\t\tItem does not exist....Please Retry!";

getch();

fin.close();

goto menu;

case 4:system("cls");

gotoxy(20,20);

cout<<"ARE YOU SURE, YOU WANT TO EXIT (Y/N)?";

char yn;

cin>>yn;

if((yn=='Y')||(yn=='y'))

{gotoxy(12,20);

system("cls");

cout<<"************************** THANKS **************************************";

getch();

exit(0);

}

else if((yn=='N')||(yn=='n'))

goto menu;

else{goto menu;}

default:cout<<"\n\n\t\tWrong Choice....Please Retry!";

getch();

goto menu;

}

return 0;

}

1 comment:

Comment