انجمن های تخصصی علوم رایانه و هنرهای دیجیتال
  • صفحه اصلی
  • جستجو
  • لیست اعضا
  • تقویم
  • راهنما




سی جی آریا

رسانه تخصصی آموزش هنرهای دیجیتال



ورود به انجمن ثبت نام کنید
ورود
نام کاربری:
گذرواژه‌: گذرواژه‌تان را فراموش کرده‌اید؟
 

Home انجمن های تخصصی علوم رایانه و هنرهای دیجیتال رایانه برنامه نویسی | طراحی وب برنامه نویسی c# | سی‌شارپ تمرینهای مربوط به کنسول اپلیکیشن ConsoleApplication

صفحه‌ها (2): « قبلی 1 2
امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
حالت موضوعی
تمرینهای مربوط به کنسول اپلیکیشن ConsoleApplication
Mohsen Omidvar آفلاین
مدیر ارشد
*******
ارسال‌ها: 1,259

موضوع‌ها: 634
تاریخ عضویت: Apr 2012
اعتبار: 198
سپاس ها 400
سپاس شده 2999 بار در 869 ارسال
#13
07-06-2013، 12:18 PM
استفاده از توابع همنام کلاس پایه در کلاس فرزند :
اگر تابع همنام پدر باشد هنگام فراخوانی تابع فرزند فراخوانی می شود .
برای استفاده از تابع پدر قبل از نام تابع کلمه کلیدی base را قرار می دهیم .
برای ایجاد یک تابع همنام پدر قبل از نام تابع در فرزند از کلمه کلیدی new استفاده می شود.
 *شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.
ارسال‌ها
پاسخ
Mohsen Omidvar آفلاین
مدیر ارشد
*******
ارسال‌ها: 1,259

موضوع‌ها: 634
تاریخ عضویت: Apr 2012
اعتبار: 198
سپاس ها 400
سپاس شده 2999 بار در 869 ارسال
#14
07-06-2013، 01:10 PM (آخرین ویرایش: 27-07-2013، 03:56 PM، توسط Mohsen Omidvar.)
در چند ریختی یک یا چند تابع در کلاس پایه یا در کلاس انتزاعی به صورت انتزاعی تعریف می شوند سپس این توابع با شکلهای مختلف در کلاسهای فرزند مورد استفاده قرار می گیرند.
به عنوان مثال کلاس شی به صورت انتزاعی تعریف شده و وجود خارجی ندارد سپس تابع مساحت را در آن به صورت انتزاعی تعریف می کنیم و تابع مساخت را در هر فرزند با شکلهای مختلف مساحت هر شکل محاسبه می شود.

مثال) کلاسی به نام صف تعریف کنید که امکان اضافه و حذف به صف وجود داشته باشد؟
کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace array
{
    class Program
    {
        class array
        {
            private int [] a;
            private int len;
            public array(int n)
            {
                len=n;
                a=new int(n);
            }
            public void input()
            {
                for (int i=0;i<len;i++)
                    a[i]=Convert.ToInt32(Console.WriteLine());
            }
            public array eshterak(array other)
            {
                for(int i=0;i<len;i++)
                for(int j=0;j<other.len;j++)
               if(a[i]=other.a[j])
                {
                Console.WriteLine(a[i].ToString()+",");
                break;
               }

            }
            static void Main(string[] args)
            {
                array p, q;
                p = new array(19);
                q = new array(87);
                p.input();
                q.input();
                p.eshterak(q);
                Console.ReadKey();
            
        }
    }
}
 *شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.
ارسال‌ها
پاسخ
Mohsen Omidvar آفلاین
مدیر ارشد
*******
ارسال‌ها: 1,259

موضوع‌ها: 634
تاریخ عضویت: Apr 2012
اعتبار: 198
سپاس ها 400
سپاس شده 2999 بار در 869 ارسال
#15
07-06-2013، 01:57 PM
برای تمرین یک کلاس انتزاعی قبل از کلمه کلیدی class کلمه abstract را می نویسیم سپس برای تعریف هر تابع مجازی باید قبل از تعریف هر تابع از کلمه abstract استفاده کنیم .زمانی که در کلاسهای فرزند به ریختهای مختلف توابع مجازی را تعریف می کنیم باید قبل از تعریف تابع از کلمه override استفاده کنیم.
مثال)کلاسی به نام شکل تعریف کنید که الف )در این کلاس بتوان کلاسهای مستطیل،دایره و مربع را از آن ارث ببرد(توابع مساحت و محیط به صورت مجازی تعریف شود)
ب) مساحت و محیط هر شکل را به طور جداگانه محاسبه و نمایش دهد.
کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace shape
{
    class Program
    {
        abstract class shape
        {
            public abstract void mohit();
            public abstract void masahat();
            public abstract void input();
        };
        class rect : shape
        {
            private int x, y;
            public override void mohit()
            {
                int m = (x * y) * 2;
                Console.WriteLine("Mohit mostatil = "+m.ToString());
            }
            public override void masahat()
            {
                int s = x * y;
                Console.WriteLine("Masahat mostatil = "+s.ToString());
            }
            public override void input()
            {
                x = Convert.ToInt32(Console.ReadLine());
                y = Convert.ToInt32(Console.ReadLine());
            }

        };
        class circle:shape
        {
            private double r;
            public override void  masahat()
            {
                double s = r * r * 3.14;
                Console.WriteLine("Masahat daiere = "+s.ToString());
            }
            public override void  mohit()
            {
                double m=2*3.14*r;
                Console.WriteLine("Mohit daiere = "+m.ToString());
            }
            public override void  input()
            {
                r=Convert.ToDouble(Console.ReadLine());
            }
        }
        class moraba:shape
        {
            private int x;
            public override void  masahat()
            {
                int s=x*x;
                Console.WriteLine("Masahat Moraba = "+s.ToString());
            }
            public override void mohit()
            {
                int m=x*4;
                Console.WriteLine("Mohit Moraba = " + m.ToString());
                Console.WriteLine(m.ToString());
            }
            public override void  input()
            {
                x=Convert.ToInt32(Console.ReadLine());
            }
        }


        static void Main(string[] args)
        {
            shape s;
            rect r;
            r=new rect();
            s=r;
            s.input();
            s.masahat();
            s.mohit();
            circle c;
            c=new circle();
            s=c;
            s.input();
            s.masahat();
            s.mohit();
            moraba m;
            m=new moraba();
            s=m;
            s.input();
            s.masahat();
            s.mohit();
            Console.ReadKey();
        }
    }
}
 *شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.
ارسال‌ها
پاسخ
« قدیمی‌تر | جدیدتر »
صفحه‌ها (2): « قبلی 1 2


  • مشاهده‌ی نسخه‌ی قابل چاپ
پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 15 مهمان
مکان تبلیغ شما
تمامی حقوق این سایت مربوط به انجمن های تخصصی علوم رایانه و هنرهای دیجیتال میباشد