C#面向对象的程序设计实习报告班级:08测绘一班学号:0810050104姓名:黄林嵩实验一C#概述一、实验目的1.熟悉VisualC#.NET集成开发环境。2.掌握控制台应用程序的开发方法。3.掌握Windows应用程序的开发方法。二、实验要求1.整理上机步骤,总结经验和体会。2.完成实验日志和上交程序。三、实验内容题目一:最简单C#程序的开发(1)选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。仔细观察对话框的内容。在“项目类型”列表框中选中VisualC#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。仔细观察并分析这些代码。(2)在代码编辑窗口内的Main()方法中添加如下代码:usingSystem;namespacehello{classHelloWorld{publicstaticvoidMain(){Console.WriteLine(Helloworld!);}}}(1)选择“调试”“启动调试”命令,或按【F5】键,或单击工具栏上的按钮,运行程序,查看运行结果。(2)在项目的保存位置处查看项目中过的所有文件。题目二:创建控制台应用程序(1)选择“开始”“程序”“MicrosoftVisualStudio2005”“MicrosoftVisualStudio2005”命令,启动VisualStudio2005,并仔细观察起始页的内容。(2)选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。仔细观察对话框的内容。在“项目类型”列表框中选中VisualC#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。仔细观察并分析这些代码。(3)在代码编辑窗口内的Main()方法中添加如下代码:Console.Write(当前系统的日期为:);//将系统的日期转换为长日期字符串表示形式进行输出Console.WriteLine(DateTime.Now.ToLongDateString());Console.Read();(4)选择“文件”“全部保存”命令,保存项目。(5)选择“调试”“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。(6)在项目的保存位置处查看项目中过的所有文件。实验二C#数据类型一、实验目的1.了解C#中的各种数据类型及其相互转换方法。2.了解C#中的常量和变量。3.掌握C#中的常用的操作符与表达式。4.进一步熟悉C#程序的开发过程。5.掌握C#中选择结构语句的使用。6.掌握C#中循环结构语句的使用。7.掌握C#中的跳转结构语句。二、实验要求1.分析程序,上机验证结果。2.写出程序,并调试程序,要给出测试数据和实验结果。3.整理上机步骤,总结经验和体会。4.完成实验日志和上交程序。三、实验设备计算机,VisualStudio2005四、实验内容题目一:程序分析(1)分析程序,写出程序的运行结果,并上机进行验证。usingSystem;publicclassBoolTest{publicstaticvoidMain(){Console.Write(请输入一个字符:);charc=(char)Console.Read();if(Char.IsLetter(c))if(Char.IsLower(c))Console.WriteLine(字符是小写的。);elseConsole.WriteLine(字符是大写的。);elseConsole.WriteLine(字符不是字母。);}}程序分析过程:如果输入的是小写,运行Console.WriteLine(字符是小写的。);输出结果:字符是小写的。如果输入的是大写,运行Console.WriteLine(字符是大写的。);输出结果:字符是大写的。如果输入的不是字母,运行Console.WriteLine(字符不是字母。);输出结果:字符不是字母。(2)分析程序,写出程序的运行结果,并上机进行验证。usingSystem;classtest{publicstaticvoidMain(){stringa=\u0068ello;stringb=world;Console.WriteLine(a+b);Console.WriteLine(a+b==helloworld);}}程序分析过程:‘\u0068’在Unicode码中代表‘h’,故a+b输出结果为“helloworld”。a+b==helloworld是判断语句,其结果为True。输出结果:helloworldTrue(3)分析程序,写出程序的运行结果,并上机进行验证。程序分析过程:本题分析当定义一个整型数未对其进行赋值时,系统自动将其值赋为0。Console.WriteLine(int:{0}~~{1},int.MinValue,int.MaxValue);是输出整型数据所能表示的最小值和最大值。输出结果:a=101:b=02:b=10c=101:d=02:d=10int:-2147483648~~2147483647(4)分析程序,写出程序的运行结果,并上机进行验证。usingSystem;namespace_1{classProgram{staticvoidMain(){charc1='a';charc2='\x0062';charc3='\u0063';Console.WriteLine(c1:{0}\nc2:{1}\nc3:{2}\n,c1,c2,c3);Console.Read();}}}程序分析过程:本题主要分析'\x0062'、'\u0063'代表的含义。'\x0062'是十六进制,代表字母b。'\u0063'是Unicode码,代表字母c。输出结果:C1:aC2:bC3:c(5)分析程序,写出程序的运行结果,并上机进行验证。usingSystem;namespace_1{classProgram{enumWeekDay{sun,mon,tue,wed,thu,fri,sat}staticvoidMain(){WeekDaya=WeekDay.sun;Console.WriteLine(a);WeekDayb=(WeekDay)4;Console.WriteLine(b);Console.Read();}}}程序分析过程:题中定义了一个表示星期的枚举类型,WeekDaya=WeekDay.sun;用于将sun赋值给a。WeekDayb=(WeekDay)4;表示将枚举类型中的第5个数thu赋值给b。输出结果:Sunthu(6)程序过程分析:本题定义了一个不规则的二维数组,并定义了二维数组中第一个数组为5个元素,第二个数组为3个元素。通过for循环计算数组中每个元素的值,最后输出这个二维数组。输出结果:jagArray[0]:01234jagArray[1]:123(7)程序过程分析:本题通过定义一个object类型数据x,改变x的值,来分析x的数据类型。当x=1时,x为整型;当x=10.01时,x为双精度型;当x='\u0061'时,x为字符型;当x=Hello!时,x为字符串型。输出结果:1:x=1,typeissystem.INT32;2:x=10,typeissystem.double;3:x=a,typeissystem.char;4:x=hello!,typeisstring;(8)程序过程分析:本题通过switch语句实现月份的输出,当输入一个1-12之间的数时(如5),即可输出这个月份(如May)。输出结果:请输入一个1-12之间的数:5May(9)程序过程分析:本题先将数组矩阵的第一列和对角线上的元素赋值为1。循环运行a[i,j]=a[i-1,j-1]+a[i-1,j];得到第aij的值为a(i-1)(j-1)与a(i-1)j之和。最后以矩阵的形式输出。输出结果:111121133114641(10)输出结果:4个奇数,7个偶数(11)输出结果:01234(12)输出结果:---break---iis0iis1iis2iis3iis4---continue---iis0iis1iis2iis3iis4iis6iis7iis8题目二:程序编写(1)编写程序,定义一个包括学生基本资料的结构类型数据(要求包括学号、姓名、性别、年龄、家庭住址等),并对其进行测试。程序代码:usingSystem;namespaceTest2{classStudents{staticvoidMain(string[]args){stringstrid;stringstrname;stringstrsex;stringstrage;stringstraddress;Console.WriteLine(请依次输入您的学号,姓名,性别,年龄,家庭住址,并以Enter结束);strid=Console.ReadLine();strname=Console.ReadLine();strsex=Console.ReadLine();strage=Console.ReadLine();straddress=Console.ReadLine();Console.WriteLine(\n您输入的信息为:);Console.WriteLine(学号:{0},strid);Console.WriteLine(姓名:{0},strname);Console.WriteLine(性别:{0},strsex);Console.WriteLine(年龄:{0},strage);Console.WriteLine(家庭住址:{0},straddress);Console.ReadLine();}}}(2)编写程序,将一年中的12个月建立一个枚举类型,并对其进行测试。程序代码:usingSystem;namespaceTest2{classEnum{enumMonth{一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月}staticvoidMain(string[]args){inti;Console.WriteLine(请输入1-12之间的任意一个整数(分别代表一月到十二月):);i=Convert.ToInt32(Console.ReadLine());Console.WriteLine((Month)(i-1));Console.Read();}}}(3)编写程序,使用int类型数据进行装箱与拆箱转换。程序代码:usingSystem;namespaceObject{classProgram{staticvoidMain(string[]args){inta=10,b;objectobj=a;a=a+10;Console.WriteLine(a={0},obj={1},a,obj);b=(int)obj;Console.WriteLine(a={0},b={1},a,b);Console.Read();}}}(4)编写程序,分别用for、while、do…while语句实现求前n个自然数之和。程序代码:usingSystem;namespaceTest{classSum{staticvoidMain(string[]args){inti,n,sum=0;Console.WriteLine(请输入n,球1-n的和:);n=Convert.ToInt32(Console.ReadLine());Console.WriteLine(-----用for循环求解-----);for(i=1;i=n;i++)sum+=i;Console.WriteLine(1到{0}的和为:{1},n,sum);Console.WriteLine(