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

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice