نمایش نتایج 1 تا 40 از 320

نام تاپیک: مجموعه برنامه های نوشته شده به زبان C و ++C

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    هه‌ورامان
    پست
    220

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    اینم یه برنامه نسبتا خوب در مورد کار با اصول شئ گرایی در ++C هست.
    این برنامه مربوط به پیاده سازی نظریه مجموعه ها به زبان ++C هست که امروز با همکاری دوست خوبم mortezamsp تکمیلش کردیم.
    در این برنامه از سازنده،سازنده کپی،سرباگذاری عملگرهای << و >> و + و - و =+ و = و ^ ،تعریف توابع خارج از کلاس و بعضی موارد دیگر استفاده شده.
    تنها مشکلی که این برنامه می تونه داشته باشه اینه که با حافظه پویا پیاده سازی نشده،من چون فعلا وقت ندارم از دوستان می خوام که این کار رو انجام بدن و اگه کسی انجام نداد خودم یه چند روزه دیگه انجامش میدم.
    امیدوارم مفید واقع بشه.



    #include<iostream.h>
    #include<conio.h>
    #define maxsize 20
    //=================================================
    class Intset
    {
    private:
    int ma[maxsize],topindex;
    public:
    Intset();
    void insert(int);
    Intset operator+=(Intset);
    Intset operator-=(Intset);
    int found(int);
    void print(ostream & o);
    Intset operator+(Intset);
    Intset operator^(Intset);
    Intset operator-(Intset);
    int get(int);
    int card();
    void makeempty();
    friend ostream & operator << (ostream & ,Intset);
    };
    //=================================================
    Intset :: Intset()
    {
    topindex=-1;
    }
    void Intset :: insert(int x)
    {
    if(topindex==maxsize-1)
    cout<<"\n=======\ninsert error : stack is full !\n=======\n";
    else{
    if(!found(x))
    ma[++topindex]=x;

    }
    }

    ostream & operator <<(ostream & o ,Intset a)
    {
    a.print(o);
    return o;
    }
    Intset Intset :: operator+=(Intset b)
    {
    for(int i=0;i<=b.card()-1;i++)
    insert(b.get(i));
    return *this ;
    }
    Intset Intset :: operator-=(Intset b)
    {
    Intset rezualt ;
    for( int i=0 ; i<=topindex ;i++ )
    rezualt.insert( get(i) ) ;
    makeempty() ;
    for( i=0 ;i<=rezualt.topindex ;i++ )
    if( !b.found( rezualt.get(i) ) )
    insert( rezualt.get(i) ) ;
    return rezualt ;
    }

    void Intset :: print(ostream & o)
    {
    if(topindex==-1)
    o<<"Empty";
    else
    {
    o<<"{";
    for(int i=0;i<=topindex;i++)
    o<<ma[i]<<",";
    o<<"}";
    }
    }
    Intset Intset :: operator+(Intset b)
    {
    Intset c;
    for(int i=0;i<=card()-1;i++)
    c.insert(get(i));
    for(i=0;i<=b.card()-1;i++)
    c.insert(b.get(i));
    return c;
    }
    Intset Intset :: operator^(Intset b)
    {
    Intset c;
    for(int i=0;i<=card()-1;i++)
    for(int j=0;j<=b.card()-1;j++)
    if(found(get(i)&&b.found(get(i)) ) )
    c.insert(get(i));
    return c;
    }
    Intset Intset :: operator-(Intset b)
    {
    Intset c;
    for(int i=0;i<=card()-1;i++)
    if(!b.found(get(i)) )
    c.insert(get(i));
    return c;
    }
    int Intset :: get(int i)
    {
    return ma[i];
    }
    int Intset :: card()
    {
    return topindex+1;
    }
    void Intset :: makeempty()
    {
    topindex=-1;
    }
    int Intset :: found(int x)
    {
    int i=( i<topindex? i : topindex );
    for( i=0 ; i<=topindex ;i++ )
    if(ma[i]==x)
    return 1 ;
    return 0 ;
    }


    //=================================================
    int main()
    {
    clrscr();
    Intset a,b1;

    int b;
    cout<<"\n=======Get a{} ";
    for(int i=1;i<=5;i++)
    {
    cout<<"\nEnter number a{"<<i<<"} :";
    cin>>b;
    a.insert(b);
    }
    cout<<"\na{} :"<<a<<endl;

    cout<<"\n=======Get b1{} :";
    for( i=1;i<=3;i++)
    {
    cout<<"\nEnter number b1{"<<i<<"} :";
    cin>>b;
    b1.insert(b);
    }
    cout<<"\nb1{} :"<<b1<<endl;
    Intset c;
    cout<<"\n=======\nnew intset c :"<<c<<endl<<"press any key";
    getch();
    c=b1;
    cout<<"\n=======\nc=b1 ==>c :"<<c<<endl<<"press any key";
    getch();
    c+=a;
    cout<<"\n=======\nc+=a ==>c :"<<c<<endl<<"press any key";
    getch();
    c-=a;
    cout<<"\n=======\nc-=a ==>c :"<<c<<endl<<"press any key";
    getch();
    c=a+b1;
    cout<<"\n=======\nc=a+b1 ==>c :"<<c<<endl<<"press any key";
    getch();

    c=a-b1;
    cout<<"\n=======\nc=a-b1 ==>c :"<<c<<endl<<"press any key";
    getch();

    c=a^b1;
    cout<<"\n=======\nc=a^b1 ==>c :"<<c<<endl<<"press any key";
    getch();


    return 0 ;
    }
    آخرین ویرایش به وسیله qanewaisi : سه شنبه 08 دی 1388 در 22:46 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •