ayyue

编程小白菜

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里的开发过程异常顺利,几乎没有遇到什么问题。对于题目中的一些瑕疵,我没有做深入的研究,通过注释将相关注意事项记下。最后一题感觉和题目有所出入。希望指正。

 

posted on 2020-12-01 23:31  ayyue  阅读(2860)  评论(0编辑  收藏  举报

导航