实验2 C#语言编程基础.doc
实验二 C#语言编程基础 实验目的l 掌握C#语法的流程控制结构 l 掌握方法的应用l 了解变量的类型 实验内容l 编写闰年判断程序l 编写求1到n的和的程序,要求for、while、dowhile,以及递归方法实现。l 建立一个二维数组,并将数组中的值遍历输出。l 定义一个实现两个数交换的方法。实验步骤为了实现代码的重用,将上述的各个实验内容,定义成不同的方法。判断闰年的方法定义为:IsLeapYear();将求和的方法分别定义为:for_Sum()、while_Sum、do_Sum()、recursion_Sum()。1编写闰年判断程序步骤1:启动Visual Studio 2010。步骤2:创建项目一个控制台项目,命名为“Experiment2”。步骤3:编写IsLeapYear()方法。在static void Main(string args)方法后面输入以下代码:public bool IsLeapYear(int y) if (y % 4 = 0) if (y % 100 != 0) if (y % 400 = 0) return true; else return false; else return true; else return false;步骤4:编辑Main方法调用该函数。在Main方法中输入以下代码:Console.WriteLine("请输入年份:");int year = Convert.ToInt32(Console.ReadLine();while (year != -1) if (IsLeapYear(year) Console.WriteLine("0年是闰年", year); else Console.WriteLine("0年不是闰年", year); Console.WriteLine("请输入年份:"); year = Convert.ToInt32(Console.ReadLine();步骤5:生成程序。步骤6:运行程序,依次输入20,200,2000,程序显示如图2.1所示。图2.1 程序运行结果说明:在方法IsLeapYear代码编写过程中,实现多个分支语句的嵌套,else和if的对应关系容易写错,并且else的语句比较简单,因此可以改变代码的编写顺序来提高编写代码的效率,例如对于本例可以按照注释的顺序编写。public bool IsLeapYear(int y) if (y % 4 = 0)/1 if (y % 100 != 0) /4 if (y % 400 = 0)/7 return true;/8 else/9 return false;/10 else /5 return true;/6 else/2 return false; /32求1到n之和程序程序的编写过程与判断闰年的程序类似,因此不再赘述。本处只给出相应方法的代码。/for循环求1到n之和public static int for_Sum(int n) int sum = 0; for (int i = 0; i <= n; i+) sum += i; return sum;/while循环求1到n之和public static int while_Sum(int n) int sum = 0; int i = 0; while( i <= n) sum += i; i+; return sum;/dowhile循环求1到n之和public static int do_Sum(int n) int sum = 0; int i = 0; do sum += i; i+; while(i<=n); return sum;/递归求1到n之和public static int recursion_Sum(int n) if (n <= 0) return 0; else return n + recursion_Sum(n - 1);3. 数组遍历步骤1:创建一个项目。步骤2:修改Main方法,在Main方法中添加如下代码:double, values = 1.2, 2.3, 3.4, 4.5,5.6, 6.7, 7.8, 8.9;foreach (double elementValue in values)Console.Write("0 ", elementValue);Console.WriteLine();步骤3:执行程序,程序运行结果如图2.2 所示。图2.2运行结果4. 数值交换定义一个实现对两个数交换的方法。然后调用该方法查看执行结果,验证方法调用时传值和引用的区别。步骤1:创建项目步骤2:编写实现交换的方法。为了验证不同参数实现的功能不同,定义两个实现代码完全相同的方法,不同之处在于Swap1参数声明为ref的,而Swap2参数声明为传值的。public static void Swap1 (ref int a, ref int b) int temp; temp = a; a = b; b = temp;public static void Swap1 ( int a, int b) int temp; temp = a; a = b; b = temp;步骤3:编写Main方法,在Main方法中添加如下代码: int a = 1, b = 2;Console.WriteLine("Swap1调用前:a=0tb=1", a, b);Swap1(ref a, ref b);Console.WriteLine("Swap1调用后:a=0tb=1", a, b);a = 1;b = 2;Console.WriteLine("Swap2调用前:a=0tb=1", a, b);Swap2(ref a, ref b);Console.WriteLine("Swap2调用后:a=0tb=1", a, b);步骤4:运行程序。程序的运行结果如图2.3所示。图2.3 数据交换方法运行结果5. 多分支应用让用户输入学位缩写,然后输出用户缩写所代表的全部内容。例如输入B程序输出:您输入的是学士学位。如果输入错误给出正确输入的提示。步骤1:创建项目步骤2:编写Main方法。实现代码如下:static void Main(string args) string de ; do Console.WriteLine("请输入学位缩写:"); de = Console.ReadLine(); switch (de) case "B": Console.WriteLine("您输入的是学士学位的缩写"); break; case "M": Console.WriteLine("您输入的是硕士学位的缩写"); break; case "D": Console.WriteLine("您输入的是博士学位的缩写"); break; default: Console.WriteLine("您输入的学位缩写错误,请重新输入。"); Console.WriteLine("B:学士学位。"); Console.WriteLine("M:硕士学位。"); Console.WriteLine("D:博士学位。"); Console.WriteLine("X:退出程序。"); break; while(de!="X");步骤4:运行程序。程序的运行结果如图2.4所示。图2.4 多分枝运行结果