.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 ConsoleApp2 { class Program { static void Main(string[] args) { int i; double x, y, z; double r_len, r_wid;//长方形的长宽 double cir, area; Console.WriteLine("---- - 输入三角形或者长方形边长,计算其周长和面积并输出---- - "); while (true) { Console.WriteLine("请选择:1.三角形 2.长方形 3.退出"); i = int.Parse(Console.ReadLine()); switch (i) {//计算三角形的周长和面积 case 1: Console.WriteLine("请输入第一条边长"); x = float.Parse(Console.ReadLine()); Console.WriteLine("请输入第二条边长"); y = float.Parse(Console.ReadLine()); Console.WriteLine("请输入第三条边长"); z = float.Parse(Console.ReadLine()); cir = x + y + z; area = Math.Sqrt(cir / 2 * (cir / 2 - x) * (cir / 2 - y) * (cir / 2 - z)); //无法将double隐式转换为float,之前用的float类型的边长等,sqrt函数返回为double Console.WriteLine("该三角形周长为:{0}", cir); Console.WriteLine("该三角形面积为:{0}", area); break; case 2: Console.WriteLine("请输入长方形的长"); r_len = float.Parse(Console.ReadLine()); Console.WriteLine("请输入长方形的宽"); r_wid = float.Parse(Console.ReadLine()); cir = 2 * (r_wid + r_len); area = r_len * r_wid; Console.WriteLine("长方形的周长为:{0}", cir); Console.WriteLine("长方形的面积为:{0}", area); break; case 3: Console.WriteLine("退出"); break; default: Console.WriteLine("输入错误"); break; } if (i == 3) break; } } } }
|
2. 编写一个控制台应用程序,可根据输入的月份判断所在季节。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Season_02 { class Program { static void Main(string[] args) { int month; Console.WriteLine("-----通过月份判断所在季节------"); while (true) { Console.WriteLine("*****************菜单******************"); Console.WriteLine("****************************菜单****************************"); Console.WriteLine("******1.1月 2.2月 3.3月 4.4月 5.5月 6.6月*****"); Console.WriteLine("****7.7月 8.8月 9.9月 10.10月 11.11月 12.12月*****"); Console.WriteLine("**************************13.退出***************************"); Console.WriteLine("请输入月份序号:"); month = int.Parse(Console.ReadLine()); switch (month) { 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; case 12: case 1: case 2: Console.WriteLine("冬季"); break; case 13: Console.WriteLine("退出成功"); break; default: Console.WriteLine("输入错误!"); break; }//switch 结束 if (month == 13) break; }//while 结束
} } }
|
3. 编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两
个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至
少有多少个。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace egg_03 { class Program { static void Main(string[] args) { int num = 2; bool check = false; while (num < int.MaxValue && check == false) { if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1) { Console.WriteLine("这篮鸡蛋里一共有{0}个", num); check = true; } else { num++; } } Console.ReadKey(); } } }
|
4. 编写程序,计算数组中奇数之和和偶数之和。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace sum { class Program { static void Main(string[] args) { int[] array; int j = 0, o = 0; Console.WriteLine("请输入数组的长度:"); int length = Convert.ToInt32(Console.ReadLine()); array = new int[length]; Console.WriteLine("请输入数组:"); for (int i = 0; i < length; i++) { //Console.Wr4ite("请输入第{0}个数组的值:", i); array[i] = Convert.ToInt32(Console.ReadLine()); } Array.Sort(array);//排序,从小到大
foreach (int i in array) { if (i % 2 == 0) { o += i; } else { j += i; } } Console.WriteLine("奇数之和为:{0}", j); Console.WriteLine("偶数之和为:{0}", o); Console.ReadKey(); } } }
|
5. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该
列上最小。有可能数组没有鞍点)。要求:
u 二维数组的大小、数组元素的值在运行时输入;
u 程序有友好的提示信息。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace _05_array { class Program { static void Main(string[] args) { Console.WriteLine("请选择:1.输入二维数组 0.退出"); int flag = int.Parse(Console.ReadLine()); while (flag == 1) { Console.WriteLine("请输入二维数组的行数:"); int row = int.Parse(Console.ReadLine()); Console.WriteLine("请输入二维数组的列数:"); int column = int.Parse(Console.ReadLine()); float[,] a = new float[row, column]; //创建该二维数组 Console.WriteLine("请输入二维数组元素:"); for (int i = 0; i < row; i++) //每行循环 { for (int j = 0; j < column; j++) //每列循环 { Console.WriteLine("请输入第{0}个数:", i * column + j + 1); a[i, j] = float.Parse(Console.ReadLine()); } } int count = 0; //计数器 for (int i = 0; i < row; i++) //行循环 { int maxj = 0; //初始化该行最大的值所在列 for (int j = 0; j < column; j++) //查找该行最大值的所在列 { if (a[i, j] > a[i, maxj]) { maxj = j; //把每行中最大的列号赋给maxj } }//找到该行最大数 int minx = 0; //初始化该行最大的值所在列中最小的值所在行 for (int j = 0; j < row; j++) //查找该行最大值的所在列中该列的最小值 { if (a[j, maxj] < a[minx, maxj]) minx = j; }//找到该行最大数所在列的最小值 if (a[i, maxj] == a[minx, maxj])//判断该行最大数所在列的最小值的行号是否为该行 { Console.Write("鞍点[{0},{1}]:{2}" + '\n', minx, maxj, a[minx, maxj]); count++; } }//行循环结束 if (count == 0) Console.WriteLine("没有鞍点数"); else { Console.WriteLine("鞍点总数为:" + count); } Console.WriteLine("请选择:1.输入二维数组,0.退出"); flag = int.Parse(Console.ReadLine()); if (flag == 0) Console.WriteLine("欢迎下次使用!!!"); }//while循环结束 } } }
|
四、实验总结
这是第一次实验,通过本次实验,熟悉了Visual studio .net的实验环境,掌握了c#的基本语法,学会了控制语句和数组的使用,对c#的简单使用有了更好的理解,发现了c#语言的灵活性。