1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

urgent help in shopping program

Discussion in 'C++' started by raptor85, May 24, 2011.

  1. raptor85

    raptor85 New Member

    Joined:
    May 24, 2011
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Code:
    #include <iostream>
    
    using namespace std;
    
    int validity(string ,string );
    
    class item
    {
    public:
        
        string name;
        int cost;
        int sku;
        
        void displayDetails();
        
    };
    
    int ch;                              
    string id;
    string pass;
    int matchedAccount;
    
    
    void item::displayDetails()
    {
        cout<<name<<endl;
        cout<<"cost:"<<cost<<endl;
        cout<<"sku:"<<sku<<endl;
    }
    
    
    class customerDetails
    {
    public: 
            
        item itemDetailsObject[50];
        int itemDetailsCount;
        
    
        string customerName;
        string userID;
        string password;
        void viewCart();
        
    }customerDetailsObject[2];                             
                 
    void input()
    {
        cout<<"\nLogin ID :"<<endl;
        cin>>id;
        
        cout<<"\nLogin Password :"<<endl;
        cin>>pass;
    
    }
    int validity(string id,string pass)
    {   
        int correctMatch;
        
        for (int i=0; i<=1; i++)     
        {
            if (id==customerDetailsObject[i].userID && pass==customerDetailsObject[i].password)
            {
                correctMatch=i;
                return correctMatch;
            }
            else
            {
                correctMatch=-1;                                        
            }
        }
        return correctMatch;
    }
    
    
    void login()
    {
        input();
                                                                        
        matchedAccount=validity(id, pass);                        
        if (matchedAccount == -1) 
        {
            login();
        }
    }
    
    
    class category
    {
    public:
    
        item music[50];
        item electronic[50];
        
        int musicCount;
        int electronicsCount;
        
        void chooseCategory();
        void chooseMusicItem();
        void chooseElectronicItem();
        void displayMusicItemDetails();
        void displayElectronicItemDetails();
        
    }categoryDetailsObject;                                                               
    
    void musicAddToCart()
    {
            int newPosition = customerDetailsObject[matchedAccount].itemDetailsCount;
        
            customerDetailsObject[matchedAccount].itemDetailsObject[newPosition]=categoryDetailsObject.music[ch-1];           
            customerDetailsObject[matchedAccount].itemDetailsCount++;
            
            cout<<"Item Details Count incrementer\n"<<customerDetailsObject[matchedAccount].itemDetailsCount<<endl;
    }
    
    void electronicAddToCart()
    {
        int newPosition = customerDetailsObject[matchedAccount].itemDetailsCount;
        
        customerDetailsObject[matchedAccount].itemDetailsObject[newPosition]=categoryDetailsObject.electronic[ch-1];           
        customerDetailsObject[matchedAccount].itemDetailsCount++;
        
        cout<<"Item Details Count incrementer\n"<<customerDetailsObject[matchedAccount].itemDetailsCount<<endl;
    }
    
    void customerDetails::viewCart()
    {
        for (int i=0; i<itemDetailsCount; i++)
        {
            cout<<"\nName - "<<customerDetailsObject[0].itemDetailsObject[i].name<<endl;
            cout<<"Rs - "<<customerDetailsObject[0].itemDetailsObject[i].cost<<endl;
            cout<<"Sku No - "<<customerDetailsObject[0].itemDetailsObject[i].sku<<endl;
        }
        
        
        int totalCost = 0;
        for (int i = 0; i < itemDetailsCount; i++)
        {
            totalCost += itemDetailsObject[i].cost;
        }
        cout<<"\nTotal Cost "<<totalCost<<endl;
        
        
        int selection;
        
        cout<<"\n1.Checkout"<<endl;
        
        cin>>selection;
        switch (selection) 
        {
            case 1:
                for (int i=0; i<itemDetailsCount; i++)
                {
                    itemDetailsObject[i].name=" ";
                    itemDetailsObject[i].sku=0;
                    itemDetailsObject[i].cost=0;
                    itemDetailsCount=0;
                }
                categoryDetailsObject.chooseCategory();
                break;
           
                
            default:viewCart();
                break;
        }  
    }
    
    
    
    void category::chooseCategory()
    {
        int select;
        
        cout<<"\nWelcome"<<" "<<customerDetailsObject[matchedAccount].customerName<<endl;
    
        cout<<"\nChoose a category\n"<<endl;
        
        cout<<"1.Music"<<endl;
        cout<<"2.Electronic"<<endl;
        cout<<"3.Viewcart"<<endl;
        cout<<"4.Logout\n"<<endl;
        
        cout<<"Enter the choice"<<endl;
        
        cin>>select;
        
        switch (select) 
        {
            case 1:
                cout<<"Music"<<endl;
                this->chooseMusicItem();
                break;
                
            case 2:
                cout<<"Electronic"<<endl;
                this->chooseElectronicItem();
                break;
                
            case 3:
                cout<<"View Cart"<<endl;
                customerDetailsObject->viewCart();
                
            case 4:
                input();
                break;
                
            default:
                chooseCategory();
                break;
        }
    }
    
    
    void category::chooseMusicItem()
    {
        cout<<"Music Items Details\n"<<endl;
        
        for (int i=0; i<musicCount; i++)
        { 
            cout<<i+1<<"."<<music[i].name<<"  Rs."<<music[i].cost<<endl;
        }
        cout<<musicCount+1<<"."<<"Back"<<endl;
            
        
        cout<<"\nEnter Choice"<<endl;
        cin>>ch;
        
        if (ch<1)
        {
            chooseMusicItem();
        }
        else if (ch<=musicCount)
        {
            displayMusicItemDetails();
        }
        else if (ch==musicCount+1)
        {
            chooseCategory();        
        }
        else 
        {
            chooseMusicItem();
        }
    }
    
    
    void category::displayMusicItemDetails()
    {
        
        music[ch-1].displayDetails();
        
        int options;
        cout<<"\n1.Add to Cart"<<endl;
        cout<<"\n2.Back"<<endl;
        cout<<"\n3.MainPage"<<endl;
        
        cout<<"\nEnter Choice"<<endl;
        cin>>options;
        
        switch (options) 
        {
            case 1:
                musicAddToCart();
                this->displayMusicItemDetails();
                break;
                
            case 2:
                this->chooseMusicItem();
                break;
                
            case 3:
                this->chooseCategory();
                break;
                
            default:displayMusicItemDetails();
                break;
        }
    }
    
    
    void category::chooseElectronicItem()
    {
        
        cout<<"\nElectronic Items Details\n"<<endl;
        
        for (int i=0; i<electronicsCount; i++)
        {
            cout<<i+1<<"."<<electronic[i].name<<"  Rs."<<electronic[i].cost<<endl;
        }
        
        cout<<electronicsCount+1<<"."<<"Back"<<endl;
        
        cout<<"\nEnter Choice"<<endl;
        cin>>ch;
        
        if (ch<1)
        {
            chooseElectronicItem();
        }
        else if (ch<=electronicsCount)
        {
            displayElectronicItemDetails();
        }
        else if(ch==electronicsCount+1)
        {
            chooseCategory();
        }
        else
        {
            chooseElectronicItem();
        }
    }
    
    
    void category::displayElectronicItemDetails()
    {
        
        electronic[ch-1].displayDetails();
        
        int options;
        cout<<"\n1.Add to Cart"<<endl;
        cout<<"\n2.Back"<<endl;
        cout<<"\n3.MainPage"<<endl;
        
        cout<<"\nEnter Choice"<<endl;
        cin>>options;
        
        switch (options) 
        {
            case 1:
                electronicAddToCart();
                this->displayElectronicItemDetails();
                break;
                
            case 2:
                this->chooseElectronicItem();
                break;
                
            case 3:
                this->chooseCategory();
                break;
                
            default:
                displayElectronicItemDetails();
                break;
        }
    }
    
    int main (int argc, const char * argv[])
    {
    
        customerDetailsObject[0].customerName="David";
        customerDetailsObject[0].userID="dav2";
        customerDetailsObject[0].password="abc12";
        customerDetailsObject[0].itemDetailsCount=0;
        
        customerDetailsObject[1].customerName="Rahul";
        customerDetailsObject[1].userID="rah45";
        customerDetailsObject[1].password="1awe";
        customerDetailsObject[1].itemDetailsCount=0;
        
    
        categoryDetailsObject.musicCount = 3;
        categoryDetailsObject.electronicsCount = 4;
        
        
        categoryDetailsObject.music[0].name="The Dark Knight OST";
        categoryDetailsObject.music[0].cost=200;
        categoryDetailsObject.music[0].sku=10246;
        
       
      
    /// Like this i have declared for electronics items as well // 
        
        login();
        
        categoryDetailsObject.chooseCategory();


    this is my code i when i execute the program and select the items for customer david the total items selected in add to cart menu and total costs will be calculates ,, but when i select the customer rahul the total items and costs would appear as 0

    i could declare the number of users similarly like i have declared number of music items (categoryDetailsObject.musicCount = 3) i have declared musicCount in category class

    i have used the musicCount variable in for loop in chooseMusicItemDetails .

    similarly i can use customerCount variable in input function but i dont know how to do it .

    how to do it for customerDetailsObject since it has 2 objects
    i cant do it like customerDetailsObject[0].customerCount = 2 ;
     

Share This Page