Net实验1

实验一  语言基础

一、实验目的 

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(string[] args)

        {

            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("**************************   实验一结束   **************************");

        }

    }

}

运行截图如下:

 

  • 编写一个控制台应用程序,可根据输入的月份判断所在季节。 
  • 源码如下:
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • namespace experiment1
  • {
  •     class sy2
  •     {
  •         public static void Main(string[] args)
  •         {
  •             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(string[] args)

        {

            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(string[] args)
  •         {
  •             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. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该

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

  • 二维数组的大小、数组元素的值在运行时输入; 
  • 程序有友好的提示信息。 
  • 源码如下:
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • namespace experiment1
  • {
  •     class sy5
  •     {
  •         public static void Main(string[] args)
  •         {
  •             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("**************************   实验五结束   **************************");
  •         }
  •     }
  • }
  • 运行截图如下:

 

 

 

 

 

 

 

posted @ 2022-11-14 14:04  Lindseyyip  阅读(33)  评论(0编辑  收藏  举报