Web Design and Web Development Forum

  1. #1
    Join Date
    Apr 2010
    Posts
    29
    Rep Power
    0
  2. chetanbhasin is on a distinguished road
  3. Exclamation Problem with code for software for billing in a shop. Urgent help needed!

    Pleas have a look at the following code and let me know what is wrong and how to correct it.

    P.S. - I am using Turbo C++ 3.0 IDE


    Code:
    //program for creating bill in a supermarket.
    //Created by Chetan Bhasin
    //BILL.CPP
    
    //*****************************************************************************************************
    //                                           HEADER FILES INCLUDED
    //*****************************************************************************************************
    #include<iostream.h>
    #include<conio.h>
    #include<fstream.h>
    #include<string.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<iomanip.h>
    
    //Declaration of global variables for further use in the program.
    int k=7,r=0,flag=0;
    
    //Declaration of objects for performing file input and output operations.
    ofstream fout;
    ifstream fin;
    struct date
    {
    	int dd,mm,yy;
    }
    
    //*****************************************************************************************************
    //                  DECLARATION OF CLASS FOR STORING ITEM DETAILS
    //*****************************************************************************************************
    
    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: ";
    		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;
    		clrscr();
    		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*********************************************";
    }
    
    void main()
    {
    	cout.setf(ios::fixed);
    	cout.setf(ios::showpoint);
    	cout<<setprecision(2);
    	menu:
    	clrscr();
    	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:
    		clrscr();
    		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)
    		{
    			clrscr();
    			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:
    			clrscr();
    			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));
    							clrscr();
    							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:
    				  clrscr();
    				  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:
    					clrscr();
    					gotoxy(20,20);
    					cout<<"ARE YOU SURE, YOU WANT TO EXIT (Y/N)?";
    					char yn;
    					cin>>yn;
    					if((yn=='Y')||(yn=='y'))
    					{
    						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;
    		}
    }
    Last edited by chetanbhasin; 01-30-2012 at 10:46 AM. Reason: Needed to add additional details about the use of the compiler.
    Reply With Quote Reply With Quote

Similar Threads

  1. billing software
    By tanzania in forum Web Hosting Help
    Replies: 9
    Last Post: 12-10-2007, 09:53 AM
  2. [C#] URGENT!!! Folder security code needed
    By aravinda777 in forum General Programming
    Replies: 1
    Last Post: 08-12-2007, 05:33 AM
  3. Help needed urgent..
    By sms2net in forum PHP Scripting
    Replies: 2
    Last Post: 03-24-2006, 01:51 PM
  4. Web Hosting Billing Software
    By vangraan in forum Web Hosting Help
    Replies: 7
    Last Post: 01-14-2006, 07:26 AM
  5. !!! Urgent Help needed !!!
    By Intrusion in forum Visual Basic Programming
    Replies: 1
    Last Post: 11-04-2005, 07:19 AM