.NET程序设计实验一

实验一  语言基础

一、实验目的

1. 熟悉Visual Stido.NET 实验环境;

2. 掌握控制台程序的编写方法;

3. 掌握C#程序设计语言的语法基础;

4. 掌握控制语句和数组的使用。

二、实验要求

  根据题目要求,编写 C#程序,并将程序代码和运行结果写入实验报告。

三、实验内容

1. 编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace experiment1

{

    class sy1

    {

         public static void main()

        {

            Console.WriteLine("**************************   实验一开始   **************************");

            //1. 编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出。

 

            //计算三角形

 

            bool flag1 = false;//控制三角形循环

            bool flag2 = false;//控制长方形循环

            bool flag = true;//控制选择循环

 

            while (flag)

            {

                Console.WriteLine("输入1计算三角形,输入2计算长方形,输入0跳过,输入其他视为错误");

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

                if (n == 1)//打开三角形循环,关闭选择循环

                {

                    flag1 = true;

                    flag = false;

                }

                else if (n == 2)//打开长方形循环,关闭选择循环

                {

                    flag2 = true;

                    flag = false;

                }

                else if (n == 0)//关闭选择循环

                {

                    flag = false;

                }

                else

                {

                    Console.WriteLine("输入错误请重新输入");

                }

 

            }

 

 

 

            while (flag1)

            {

                Console.WriteLine("请输入三角形的第一条边的边长");

                double rec_a = double.Parse(Console.ReadLine());

                Console.WriteLine("请输入三角形的第二条边的边长");

                double rec_b = double.Parse(Console.ReadLine());

                Console.WriteLine("请输入三角形的第三条边的边长");

                double rec_c = double.Parse(Console.ReadLine());

 

                if (rec_a <= 0 || rec_b <= 0 || rec_c <= 0 || (rec_a + rec_b) <= rec_c || (rec_a + rec_c) <= rec_b || (rec_c + rec_b) <= rec_a)

                {

                    Console.WriteLine("输入的边长不符合要求,不能组成三角形");

                }

                else

                {

                    Console.WriteLine("三角形的周长为" + (rec_a + rec_b + rec_c));

                    double p = rec_a + rec_b + rec_c;

                    double h = p / 2;

                    double area = Math.Sqrt(h * (h - rec_a) * (h - rec_b) * (h - rec_c));

                    Console.WriteLine("三角形的面积为" + area);

                    flag1 = false;

                }

            }

 

            while (flag2)

            {

                Console.WriteLine("请输入长方形的第一条边的边长");

                double d = double.Parse(Console.ReadLine());

                Console.WriteLine("请输入长方形的第二条边的边长");

                double e = double.Parse(Console.ReadLine());

                if (d > 0 && e > 0)

                {

                    Console.WriteLine("长方形的周长为" + (2 * d + 2 * e));

                    Console.WriteLine("长方形的面积为" + (e * d));

                    flag2 = false;

                }

                else

                {

                    Console.WriteLine("输入的边长不符合要求,不能组成长方形");

                }

            }

 

            Console.WriteLine("**************************   实验一结束   **************************");

        }

    }

}

 

 

 

2. 编写一个控制台应用程序,可根据输入的月份判断所在季节。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace experiment1

{

    class sy2

    {

        public static void main()

        {

            Console.WriteLine("**************************   实验二开始   **************************");

            //2. 编写一个控制台应用程序,可根据输入的月份判断所在季节。

 

            bool flag = true;

 

            while (flag)

            {

                Console.WriteLine("输入1~12,判断月份对应的季节,输入0返回,输入其他认为错误");

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

 

                if (m >= 1 && m <= 12)

                {

                    switch (m)

                    {

                        case 1:

                        case 2:

                        case 12:

                            Console.WriteLine("大约在冬季...");

                            break;

                        case 3:

                        case 4:

                        case 5:

                            Console.WriteLine("大约在春季...");

                            break;

                        case 6:

                        case 7:

                        case 8:

                            Console.WriteLine("大约在夏季...");

                            break;

                        case 9:

                        case 10:

                        case 11:

                            Console.WriteLine("大约在秋季...");

                            break;

                    }

                    flag = false;

                }

                else if (m == 0)

                {

                    flag = false;

                }

                else

                {

                    Console.WriteLine("输入错误!");

                }

            }

 

 

 

            Console.WriteLine("**************************   实验二结束   **************************");

        }

 

    }

}

 

 

3. 编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两

个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至

少有多少个。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace experiment1

{

    class sy3

    {

        public static void main()

        {

            Console.WriteLine("**************************   实验三开始   **************************");

            //3. 编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两

            //个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至

            //少有多少个。

 

            Console.WriteLine("要开始数鸡蛋了!");

            int i = 2;

 

            while (true)

            {

                if (i % 2 == 1)

                {

                    if (i % 3 == 1)

                    {

                        if (i % 4 == 1)

                        {

                            Console.WriteLine("这篮子鸡蛋至少有" + i + "个");

                            break;

                        }

                    }

                }

                i++;

            }

 

            Console.WriteLine("**************************   实验三结束   **************************");

        }

    }

}

 

 

4. 编写程序,计算数组中奇数之和和偶数之和。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace experiment1

{

    class sy4

    {

        public static void main()

        {

            Console.WriteLine("**************************   实验四开始   **************************");

            //4. 编写程序,计算数组中奇数之和和偶数之和。

 

            //定义数组

            int[] arg;

            int jsh = 0;//奇数和

            int osh = 0;//偶数和

            int num = 0;

            Console.WriteLine("请输入一个正整数,代表接下来数组的长度");

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

 

            //设置数组长度

            arg = new int[n];

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

            {

                Console.WriteLine("请输入第" + (i + 1) + "个数字");

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

                arg[i] = num;

                if (num % 2 == 0)

                {

                    osh += num;

                }

                else

                {

                    jsh += num;

                }

 

            }

 

            Console.WriteLine("该数组的奇数之和为" + jsh);

            Console.WriteLine("该数组的偶数之和为" + osh);

 

            Console.WriteLine("**************************   实验四结束   **************************");

        }

    }

}

 

 

5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该

列上最小。有可能数组没有鞍点)。要求:

u   二维数组的大小、数组元素的值在运行时输入;

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

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace experiment1

{

    class sy5

    {

        public static void main()

        {

            Console.WriteLine("**************************   实验五开始   **************************");

            //5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该

            //  列上最小。有可能数组没有鞍点)。

            //  要求:

            //  1.二维数组的大小、数组元素的值在运行时输入;

            //  2.程序有友好的提示信息;

 

            int[,] arg;//定义二维数组

            int count = 0;//记录鞍点个数

            Console.WriteLine("请按要求一次输入二维数组的行和列,系统将自动找到鞍点,默认每一行出现的第一个相等的值为最大值");

            Console.Write("\n\n");

            Console.WriteLine("请输入二维数组的行的个数");

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

            Console.WriteLine("请输入二维数组的列的个数");

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

 

            arg = new int[r, c];//设置二维数组的行列

 

            //录入

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

            {

                for (int j = 0; j < c; j++)

                {

                    Console.WriteLine("请输入第" + (i + 1) + "行,第" + (j + 1) + "列的数");

                    arg[i, j] = int.Parse(Console.ReadLine());

                }

            }

 

            int index = 0;//记录行最大

                          //寻找鞍点

 

            //遍历行

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

            {

                //遍历列

                for (int j = 0; j < c; j++)

                {

                    if (arg[i, index] < arg[i, j])

                    {

                        index = j;

                    }

                }

 

                //判断是否是列最小

                bool flag = true;

                for (int j = 0; j < r; j++)

                {

 

                    if (arg[i, index] >= arg[j, index] && j != i)

                    {

                        flag = false;

                    }

                }

 

                //输出鞍点

                if (flag)

                {

                    count++;

                    Console.WriteLine("存在鞍点,在第" + (i + 1) + "行,第" + (index + 1) + "列,值为" + arg[i, index]);

                }

 

                index = 0;

            }

 

            //没有鞍点

            if (count == 0)

            {

                Console.WriteLine("该数组没有鞍点");

            }

 

            Console.WriteLine("**************************   实验五结束   **************************");

        }

    }

}

 

 

四、实验总结

注:本部分写本次实验过程中出现的问题、如何解决、注意事项、以及自己的经 验体会。 

这是第一次实验,刚刚开始使用C# 写的时候连怎么输出都不会,甚至连创建什么样子的文件都摸索了半天,然后再网上看了看相关的语法,很快的就上手了,学过其他语言就感觉到C#非常容易上手,另外和C语言相比C#更加的易操作,尤其是让我感觉很舒服的就是数组的使用。二维数组用“,”来区分行列,看起来更加的清晰不容易混乱。

中间也遇到了一些问题,比如在接受键盘输入的数据的时候只能接到String类型或者是Char类型,在网上查看了相关资料之后学会了用Parse来转换,和Java里用integer内部的Parse方法类似。

 

 

posted @ 2021-10-19 13:01  我试试这个昵称好使不  阅读(132)  评论(0)    收藏  举报