Read in your tongue here..

Sunday, December 8, 2013

Ambiguity in Multiple Inheritance

#include<iostream.h>
#include<conio.h>
class first{
    protected:
        int num;    //same data member name
    public:
        void func(int x)    //same member function name
        {
            num=x;
            cout<<"\nFirst Num= "<<num;
        }
};
class second{
    protected:
        int num;    //same data member name
    public:
        void func(int y)    //same member function name
        {
            num=y;
            cout<<"\nSecond Num= "<<num;
        }
};
class third: public first, public second{
    int num;    //same data member name
    public:
    void func(void)        //same member function name
    {

        num=first::num+second::num;
        cout<<"\nSum of both Num= "<<num;
    }
};
void main()
{
    third ob;        //creating object for class third
    ob.first::func(3);    //calling func of class first for ob
    ob.second::func(45);    //calling func of class second for ob
    ob.func();        //calling func of class third for ob
    getch();
    clrscr();
}

Saturday, December 7, 2013

Multiple Inheritance

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
class item{
    protected:
        char iname[45];
        int icode,stock,re_order;
        float price;
    public:
        void getitem(char in[], int ic, int s, int re, float p)
        {
            strcpy(iname,in);
            icode=ic;
            stock=s;
            re_order=re;
            price=p;
        }
};
class order{
    protected:
        int quan,inum,custid;
        char custname[45],date[11];
    public:
           void getorder(int q, int ino, int cid, char cn[], char d[])
        {
            quan=q;
            inum=ino;
            custid=cid;
            strcpy(custname,cn);
            strcpy(date,d);
        }
};
class sales:public item, public order{
    protected:
        char dos[11];
    public:
        void salesmade(char ds[])
        {
            strcpy(dos,ds);
            if(stock<=re_order||stock<quan)
                cout<<"Insufficient Stock!!!";
            else
            {
                cout<<"\n\t*****BILL*****\n\nItem's Details:";
                cout<<"\nItem Name:"<<iname;
                cout<<"\tItem Code: "<<icode;
                cout<<"\nCurrent Stock= "<<stock;
                cout<<"\tRe-order value= "<<re_order;
                cout<<"\nCost of item=Rs."<<price<<"/unit\n";
                cout<<"\nCustomer's Details:\n";
                cout<<"Customer's Name: "<<custname;
                cout<<"\tCustomer's ID: "<<custid;
                cout<<"\nItem Number: "<<inum;
                cout<<"\nNumber of item bought: "<<quan;
                cout<<"\tOrder Date: "<<date;
                cout<<"\nAmount Payable=Rs."<<quan*price;
                cout<<"\t\tBilling Date: "<<dos<<endl;
            }
        }
};
void main()
{
    char in[10],cn[45],d[11],ds[11];
    int ic,s,re,cid,q,ino;
    float p;
    cout<<"\n\tEnter item's details:\nName:";
    gets(in);
    cout<<"Code:";
    cin>>ic;
    cout<<"Current Stock:";
    cin>>s;
    cout<<"Re-order value:";
    cin>>re;
    cout<<"Price per unit:";
    cin>>p;
    cout<<"\nEnter Customer's Details:\nName:";
    gets(cn);
    cout<<"Id:";
    cin>>cid;
    cout<<"Enter item number:";
    cin>>ino;
    cout<<"Enter number of item(s) bought:";
    cin>>q;
    cout<<"Enter order date (dd/mm/yyyy):";
    gets(d);
    cout<<"Enter billing date (dd/mm/yyyy):";
    gets(ds);
    sales ob;
    ob.getitem(in,ic,s,re,p);
    ob.getorder(q,ino,cid,cn,d);
    ob.salesmade(ds);
    getch();
    clrscr();
}

Function Overriding

#include<stdlib.h>
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
class account{
    protected:
        char name[45],add[100],city[45],state[45],phone[11];
    public:
        account(char n[], char a[], char c[], char s[], char p[])
        {
            strcpy(name,n);
            strcpy(add,a);
            strcpy(city,c);
            strcpy(state,s);
            strcpy(phone,p);
        }
        void display(void)
        {
            cout<<"\n\tCustomer Details:\n";
            cout<<"\nName: "<<name<<"\nAddress: "<<add;
            cout<<"\nCity: "<<city<<"\nState: "<<state<<"\nContact Number: "<<phone<<endl;
        }
};
class current:public account
{
    protected:
        float crlim;
        char acno_c[11];
    public:
        current(char n[], char a[], char c[], char s[], char p[], float crl, char acnc[]):account(n,a,c,s,p)
        {
            crlim=crl;
            strcpy(acno_c,acnc);
        }
        void display(void)
        {
            cout<<"\n\n\tCurrent Account Details:";
            cout<<"\n\nAccount Number: "<<acno_c;
            cout<<"\nCredit Limit= "<<crlim<<endl;
        }
};
class savings:public current{
    protected:
        float bal;
        char acno_s[11];
    public:
        savings(char n[], char a[], char c[], char s[], char p[], float crl, char acnc[], float b, char acns[]):current(n,a,c,s,p,crl,acnc)
        {
            bal=b;
            strcpy(acno_s,acns);
        }
    void display(void)
    {
        cout<<"\n\n\tSavings Account details:";
        cout<<"\n\nAccount Number: "<<acno_s<<"\nBalance= "<<bal<<endl;
    }
};
class credit:public savings{
    protected:
        float amtcr;
    public:
        char cho;
        credit(char n[], char a[], char c[], char s[], char p[], float crl, char acnc[], float b, char acns[], float cr):savings(n,a,c,s,p,crl,acnc,b,acns)
        {
            if(cr==0);
            else
            {
                amtcr=cr;
                cout<<"\nEnter C for Current account or S for Savings account:";
                cho=getche();
                if(cho=='C'||cho=='c')
                {
                    if(crlim<amtcr)
                        cout<<"\nInsufficient Balance!!!\n";
                    else
                    {
                        cout<<"\nPrevious Limit=Rs."<<crlim;
                        crlim-=amtcr;
                        cout<<"\nAmount Credited=Rs."<<amtcr;
                        cout<<"\nNet Credit Limit=Rs."<<crlim<<endl;
                    }
                }
                else if(cho=='S'||cho=='s')
                {
                    if(bal<amtcr)
                        cout<<"\nInsufficient Balance!!!"<<endl;
                    else
                    {
                        cout<<"\nPrevious Balance=Rs."<<bal;
                        bal-=amtcr;
                        cout<<"\nAmount Credited=Rs."<<amtcr;
                        cout<<"\nNet Balance=Rs."<<bal<<endl;
                    }
                }
                else
                    cout<<"\nWrong Input!!!\n";
            }
        }
};
class debit:public credit{
    protected:
        float amtdr;
    public:
        char cho;
        debit(char n[], char a[], char c[], char s[], char p[], float crl, char acnc[], float b, char acns[], float cr, float dr):credit(n,a,c,s,p,crl,acnc,b,acns,cr)
        {
            amtdr=dr;
            cout<<"\nEnter C for Current account or S for Savings account:";
            cho=getche();
            if(cho=='C'||cho=='c')
            {
                cout<<"\nPrevious Limit=Rs."<<crlim;
                crlim+=amtdr;
                cout<<"\nAmount Debited=Rs."<<amtdr;
                cout<<"\nNet Credit Limti=Rs."<<crlim<<endl;
            }
            else if(cho=='S'||cho=='s')
            {
                cout<<"\nPrevious Balance=Rs."<<bal;
                bal+=amtdr;
                cout<<"\nAmount Debited=Rs."<<amtdr;
                cout<<"\nNet Balance=Rs."<<bal<<endl;
            }
            else
                cout<<"\nWrong Input!!!\n";
        }
};
void main()
{
    char n[45],a[45],c[45],s[45],p[45],acnc[11],acns[11];
    float crl,b,cr,dr;
    int cho;
    cout<<"\nEnter customer's details:\nName:";
    gets(n);
    cout<<"Address:";
    gets(a);
    cout<<"City:";
    gets(c);
    cout<<"State:";
    gets(s);
    cout<<"Contact Number:";
    gets(p);
    cout<<"Enter Current Account Details:\nCredit Limit:";
    cin>>crl;
    cout<<"Account Number:";
    gets(acnc);
    cout<<"Enter Savings Account Details:\nBalance:";
    cin>>b;
    cout<<"Account Number:";
    cin>>acns;
    while(1)
    {
        cout<<"\n1.Display Customer's Details\n2.Display Current Account Details\n3.Display Savings Account Details\n4.Credit\n5.Debit\n6.Exit\nEnter Choice:";
        cin>>cho;
        if(cho==1)
        {
            account cust(n,a,c,s,p);
            cust.display();
        }
        else if(cho==2)
        {
            current cust(n,a,c,s,p,crl,acnc);
            cust.display();
        }
        else if(cho==3)
        {
            savings cust(n,a,c,s,p,crl,acnc,b,acns);
            cust.display();
        }
        else if(cho==4)
        {
            cout<<"Enter amount to be credited:";
            cin>>cr;
            credit cust(n,a,c,s,p,crl,acnc,b,acns,cr);
        }
        else if(cho==5)
        {
            cout<<"Enter amount to be debited:";
            cin>>dr;
            debit cust(n,a,c,s,p,crl,acnc,b,acns,0,dr);
        }
        else if(cho==6)
        {
            clrscr();
            exit(0);
        }
        else
            cout<<"\nWrong Input!!!\n";
    }
}

Sunday, December 1, 2013

Multilevel Inheritance

#include<iostream.h>
#include<conio.h>
#include<string.h>
class stu{
    protected:
        int roll;
        char name[45],course[10];
    public:
        stu(int r, char n[], char c[])
        {
            roll=r;
            strcpy(course,c);
            strcpy(name,n);
        }
};
class exam:public stu
{
    protected:
        int marks[3];
    public:
        exam(int r, char n[], char c[], int *m):stu(r,c,n)
        {
            marks[0]=*m;
            marks[1]=*(m+1);
            marks[2]=*(m+2);
        }
};
class result:public exam
{
    protected:
        int total; float avg;
    public:
        result(int r, char n[], char c[], int *m):exam(r,c,n,m)
        {
            total=marks[0]+marks[1]+marks[2];
            avg=total/3;
        }
        void display(void)
        {
            cout<<"\nName: "<<name<<"\nRoll: "<<roll<<"\nCourse: "<<course<<"\nMarks: "<<marks[0]<<' '<<marks[1]<<' '<<marks[2]<<"\nTotal= "<<total<<"\nAverage= "<<avg;
        }
};
void main()
{
    int m[]={100,98,99};
    result ob1(03,"Rahul Kumar","B.C.A",m);
    ob1.display();
    getch();
    clrscr();
}