實驗6 方法和屬性

iamzxf發表於2015-04-25

實驗要求:

1. 掌握類的定義及類中的各個成員的使用

2. 掌握方法各種引數型別的區別及使用

3. 掌握方法過載的定義及使用

4. 掌握例項屬性的定義使用,自動屬性的使用

實驗內容:

 

1、試編寫控制檯應用程式,完成下列要求:

(1)在Program類中定義一個求任意個整數值最大最小值的方法,同時在方法體內將整數序列按降序排列後輸出。

(2)在Main方法中,定義相關的資料,呼叫該方法,並顯示找到的最大最小值;

 參考程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class MinMax
    {
        public void compute(out int maxNum, out int minNum, params int[] myArray)
        {
            for (int i = 0; i < myArray.Length; i++)
            {
                int k = i;
                for (int j = i + 1; j < myArray.Length; j++)
                {
                    if (myArray[j] < myArray[k])
                        k = j;
                }

                if (k != i)
                {
                    int temp = myArray[k];
                    myArray[k] = myArray[i];
                    myArray[i] = temp;
                }
            }
            maxNum = myArray[myArray.Length - 1];
            minNum = myArray[0];
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int n = 10;
            
            int []myArray=new int[n];

            for (int i = 0; i < n; i++)
                myArray[i] = rnd.Next(100);

            MinMax mm = new MinMax();
            int maxNumber, minNumber;
            mm.compute(out maxNumber, out minNumber, myArray);

            Console.WriteLine("{0},{1}",maxNumber, minNumber);

            for (int i = 0; i < n; i++)
                Console.Write("{0,5}",myArray[i]);

            Console.ReadLine();
        }
    }
}


2、試編寫控制檯應用程式,在Program類中提供一個包含2種過載形式Sub方法。

(1)第一種過載形式:包含int型的兩個引數inta和intb,返回兩值的差(inta-intb);

(2)第二種過載形式:包含string型的兩個引數str和substr,返回從str中移除substr的結果(只移除第一個子串即可);

提示:使用string類的例項方法

public intIndexOf(string value);

public stringRemove(int startIndex, int count);

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class MinMax
    {
        public void compute(out int maxNum, out int minNum, params int[] myArray)
        {
            for (int i = 0; i < myArray.Length; i++)
            {
                int k = i;
                for (int j = i + 1; j < myArray.Length; j++)
                {
                    if (myArray[j] < myArray[k])
                        k = j;
                }

                if (k != i)
                {
                    int temp = myArray[k];
                    myArray[k] = myArray[i];
                    myArray[i] = temp;
                }
            }
            maxNum = myArray[myArray.Length - 1];
            minNum = myArray[0];
        }
    }

    class Program
    {
        public static int sub(int a, int b)
        {
            return a - b;
        }

        public static string sub(string a, string b)
        {
            string c = null;
            if(b.Contains(a))
            {
                int index=b.IndexOf(a);
                c=b.Remove(index, a.Length);
            }
            return c;
        }

        static void Main(string[] args)
        {
            int a, b;
            a = 100; b = 200;
            Console.WriteLine(sub(a, b));

            string str1 = "ng";
            string str2="ludongUniversity-=ing";
            Console.WriteLine(sub(str1,str2));

            Console.ReadLine();
        }
    }
}

3、試編寫控制檯應用程式,使用屬性完成下列要求:

為某旅行社編寫一個程式,用於接收使用者輸入的旅遊地點,使用者可以根據自己輸入的旅遊地點查詢所需費用,但不能修改費用。

(1)一個引數的建構函式接收使用者輸入的旅遊地點。

(2)三個欄位,分別用於儲存註冊的姓名、旅遊地點和相應的套餐費用。

(3)通過屬性封裝欄位,並驗證旅行社是否能滿足使用者對地點的請求,驗證之後顯示相應訊息,給出該旅遊套餐的費用。

(4)在main()方法中,定義相關資料,並輸出你的旅遊線路和所需費用。

例如,如果旅行社只提供到歐洲和北京的旅遊服務,其中北京的費用1000,歐洲的費用20000。

參考程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Travel
    {
        private string place;
        private string name;
        private int fee;

        public string Place
        {
            get { return this.place; }
            set{this.place=value;}
        }

        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }

        public int Fee
        {
            get {
                if (this.Place == "北京")
                    return 1000;
                else if (this.Place == "歐洲")
                    return 20000;
                else
                    return -1;
            }
        }

        public Travel(string place)
        {
            this.place = place;
        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Travel travel1 = new Travel("北京");
            Console.WriteLine(travel1.Fee);


            Travel travel2 = new Travel("歐洲");
            Console.WriteLine(travel2.Fee);

            Console.ReadLine();

        }
    }
}



相關文章