C#.NET程序設計實驗一實驗報告


實驗一  語言基礎

一、實驗目的

1. 熟悉Visual Stido.NET 實驗環境;

2. 掌握控制台程序的編寫方法;

3. 掌握C#程序設計語言的語法基礎;

4. 掌握控制語句和數組的使用。

二、實驗要求

  根據題目要求,編寫 C#程序,並將程序代碼和運行結果寫入實驗報告。

三、實驗內容

1. 編寫一個控制台應用程序,輸入三角形或者長方形邊長,計算其周長和面積並輸出。

源碼:

主函數部分

static void Main1_1(string[] aa)

        {

            //定義三角形邊長,矩形長和寬,以及周長和面積

            int i;

            double tri1, tri2, tri3;

            double rec1, rec2;

            double cir, area;

 

            //系統編寫

            Console.WriteLine("--------------------幾何圖形周長、面積計算-----------------");

            while (true)

            {

                Console.WriteLine("請選擇圖形樣式:");

                Console.WriteLine("   1.三角形    2.矩形   3.退出    ");

                Console.WriteLine("請輸入對應序號:");

                //這里不知道什么原因。需要回車兩次才能繼續。

                i = int.Parse(Console.ReadLine());

                switch (i)

                {

                    //三角形算法

                    case 1:

                        Console.WriteLine("請輸入所求三角形的第一條邊的長度:");

                        tri1 = float.Parse(Console.ReadLine());

                        Console.WriteLine("請輸入所求三角形的第二條邊的長度:");

                        tri2 = float.Parse(Console.ReadLine());

                        Console.WriteLine("請輸入所求三角形的第三條邊的長度:");

                        tri3 = float.Parse(Console.ReadLine());

 

                        cir = tri1 + tri2 + tri3;//周長

                        area = Math.Sqrt(cir / 2 * (cir / 2 - tri1) * (cir / 2 - tri2) * (cir / 2 - tri3));

                        //無法將double隱式轉換為float,之前用的float類型的邊長等,sqrt函數返回為double

                        Console.WriteLine("該三角形的周長為:{0}", cir);

                        Console.WriteLine("該三角形的面積為:{0}", area);

                        break;

 

                    case 2:

                        Console.WriteLine("請輸入所求矩形的一條邊的長度:");//用戶依次輸入三個邊長

                        rec1 = float.Parse(Console.ReadLine());

                        Console.WriteLine("請輸入所求矩形的另一條邊的長度:");

                        rec2 = float.Parse(Console.ReadLine());

                        cir = 2 * (rec1 + rec2);        //長方形周長及面積

                        area = rec1 * rec2;

                        Console.WriteLine("該矩形的周長為:{0}", cir);

                        Console.WriteLine("該矩形的面積為:{0}", area);

                        break;

 

                    case 3:

                        Console.WriteLine("正在退出.....");

                        Console.WriteLine("退出成功!");

                        break;

 

                    default:

                        Console.WriteLine("輸入有誤,請輸入1或2或3!!!");

                        break;

                }

               

                //判斷是否退出系統

                if (i == 3)

                    break;

            }

        }

 

 

程序運行截圖

 

 

 

 

 

2. 編寫一個控制台應用程序,可根據輸入的月份判斷所在季節。

 

主函數代碼

static void Main1_2(string[] ab)

        {

            //定義輸入的月份

            int i;

 

            //系統編寫

            Console.WriteLine("---------季節判斷系統----------");

           

            while(true)

            {

                Console.WriteLine("請輸入要查詢的月份:(輸入0,退出系統)");

                i = int.Parse(Console.ReadLine());

 

                switch(i)

                {

                    case 3:

                    case 4:

                    case 5:

                        Console.WriteLine("{0}月在春季。 ", i);

                        break;

                    case 6:

                    case 7:

                    case 8:

                        Console.WriteLine("{0}月在夏季。", i);

                        break;

                    case 9:

                    case 10:

                    case 11:

                        Console.WriteLine("{0}月在秋季。", i);

                        break;

                    case 12:

                    case 1:

                    case 2:

                        Console.WriteLine("{0}月在冬季。", i);

                        break;

                    case 0:

                        Console.WriteLine("正在退出.....");

                        Console.WriteLine("退出成功!");

                        break;

                    default:

                        Console.WriteLine("您的輸入有誤,請核實后輸入!!!");

                        break;

                }

                if (i == 0)

                    break;

 

            }

        }

程序運行截圖

 

 

3. 編寫程序,用 while 循環語句實現下列功能:有一籃雞蛋,不止一個,有人兩個兩

個數,多余一個,三個三個數,多余一個,再四個四個地數,也多余一個,請問這籃雞蛋至

少有多少個。

 

主函數代碼

 

static void Main1_3(string[] ac)

        {

            int sum = 2;

            bool flag = false;

            while (sum < int.MaxValue && flag == false)

            {

                if (sum % 2 == 1 && sum % 3 == 1 && sum % 4 == 1)

                {

                    Console.WriteLine("這筐雞蛋至少有{0}個.", sum);

                    flag = true;

                }

                else

                    sum++;

            }

        }

程序運行截圖

 

 

4. 編寫程序,計算數組中奇數之和和偶數之和。

 

主函數代碼

static void Main1_4(string[] ad)

        {

            //定義數組,及奇數偶數之和

            List<string> str = new List<string>();

            int lenth = 0;

            int jssum = 0;

            int ossum = 0;

 

            //輸入數組

            Console.WriteLine("輸出數組元素,回車按q結束錄入(最后一個數字后不要加空格)");

            while(true)

            {

                string input = Console.ReadLine();

                if (input.Equals("q") == false)

                    str.Insert(lenth++, input);

                else

                    break;

            }

 

            //交叉數組,

            string[][] every = new string[lenth][];

            for(int i = 0; i < lenth; i++)

            {

                every[i] = str[i].Split();//C#對空格的分割方式之一

            }

 

            for (int i = 0; i < lenth; i++)

            {

                for(int j=0;j<every[i].Length;j++)

                {

                    int aa;

                    aa = int.Parse(every[i][j]);

                    if((aa%2)==1)

                    {

                        jssum += aa;

                    }

                    else

                    {

                        ossum += aa;

                    }

                }

            }

            Console.WriteLine("該數組中奇數之和為:{0}", jssum);

            Console.WriteLine("該數組中偶數之和為:{0}", ossum);

            Console.ReadKey();

        }

 

程序運行截圖

 

 

5. 編寫程序,找一找一個二維數組中的鞍點(即該位置上的元素值在行中最大,在該

列上最小。有可能數組沒有鞍點)。要求:

u   二維數組的大小、數組元素的值在運行時輸入;

u   程序有友好的提示信息。

 

 

主函數代碼

static void Main1_5(string[] ae)

        {

            int[,] nos = new int[3, 4];

            int xMaxIndex = 0;

            bool isFind = false;

            for (int i = 0; i < nos.Rank; i++)

            {

                for (int j = 1; j < nos.Length / (nos.Rank + 1); j++)

                {

                    if (nos[i, j] > nos[i, j - 1])

                        xMaxIndex = j;

                }

                bool isMin = true;

                for (int k = 0; k < nos.Rank; k++)

                {

                    if (k == i)

                        continue;

                    if (nos[k, xMaxIndex] < nos[i, xMaxIndex])

                        isMin = false;

                }

                if (isMin)

                {

                    Console.Write("[{0},{1}]={2} 是鞍點!", i, xMaxIndex,nos[i,xMaxIndex]);

                    isFind = true;

                }

            }

            if (!isFind)

                Console.Write("Not Find(沒有找到鞍點)!");

        }

 

程序運行截圖

 

 

四、實驗總結

通過本次實驗報告,以及對應實驗代碼的編寫以及運行工作,我初步認識到C#語言控制台應用的編寫技巧,C#與C++,C以及JAVA都有類似的地方,語法方面有相互印證的地方,有了C/C++,Java的編程經歷,對C#的開發比較順利,這幾個習題練習了C#,對於整型,雙精度型數據的定義,賦值,以及while,for,if循環結構,還有終端的輸入輸出,以及二維數組的定義等方面,都有涉及,很好的培養了C#的開發習慣。而且C#在VS里的開發過程異常順利,幾乎沒有遇到什么問題。對於題目中的一些瑕疵,我沒有做深入的研究,通過注釋將相關注意事項記下。最后一題感覺和題目有所出入。希望指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM