《C#语言程序设计》实验报告学院:信息学院专业:计算机科学与技术指导教师:报告人:学号:班级:实验一简单编程练习一、目的与要求1、熟悉Visual 集成开发环境(IDE)2、熟悉C#源程序语言的编辑、编译和运行过程3、能够创建、编译和执行一个简单的C#程序二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。
三、实验内容1.开发一个简单的控制台应用程序,该程序完成一段字符的输入,然后输出该字符串。
2.开发一个简单的Windows应用程序,该程序通过鼠标单击按钮在文本框中显示一行字符串。
四、实验过程及结果1.控制台应用程序(1)启动.NET 2010。
(2)在“文件”菜单上找到“新建”->“项目”,打开“新建项目”对话框。
(3)在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。
(4)位置一栏内指定的是项目存放的目录,可以更改为自己定制的目录,也可以使用系统提供的默认路径。
(5)按确定以后用下面的代码替换Program.cs已有的所有代码:using System;namespace TestConsole{class Program{static void Main(){string str;System.Console.WriteLine("Please input a string !");str = System.Console.ReadLine();System.Console.WriteLine(str);}}}(6)运行应用程序(ctrl + F5)。
2.Windows应用程序(1)新建项目,选择Windows应用程序,输入名称为:TestWindows。
(2)在主窗体上放置一个TextBox和一个Button。
(3)选中TextBox,展开它的属性面板(单击鼠标右键,选择属性),将它的Name属性设置为txtContent,Text属性设置为空。
(4)选中Button,展开它的属性面板,将它的Name属性设置为btnType,Text属性设置为“显示”。
(5)在窗体上鼠标双击按钮,在生成的事件处理方法内添加如下的代码:txtContent.Text = "hello!";(6)运行应用程序(ctrl + F5)。
五、实验总结C#较其他语言比如Java,在可视化界面方面更方便。
采用拖拽式的界面设计操作,对新手来说更好入门。
除了界面其他方面和其他语言还有一定区别。
1、必须借助.NET Framework类库实现2、必须定义类3、类的代码主要由方法组成4、C#程序中的方法的结构由头部和方法体构成5、C#程序的输入与输出操做:需要借助Console的类方法(ReadLine、WriteLine)实验二控制结构编程练习一、目的与要求1、掌握分支结构语句的语法书写格式2、掌握循环结构语句的语法书写格式3、综合利用各种结构语句完成特定的任务二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。
三、实验内容1. 开发一个简单的控制台应用程序,求1!+2!+3!+……+10!。
2. 开发一个简单的控制台应用程序,该程序完成一个一维数组排序编程,然后输出该数组。
四、实验过程及结果1. 1!+2!+3!+ (10)(1)启动.NET 2010。
(2)在“文件”菜单上找到“新建”->“项目”,打开“新建项目”对话框。
(3)在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。
(4)按确定以后用下面的代码替换Program.cs已有的所有代码:using System;class Ex2{public static void Main(){int i,k,m=1,sum=0;for (i=1;i<=10;i++){for(k=1;k<=i;k++)m=m*k;sum=sum+m;m=1;}Console.WriteLine("1!+2!+3!+……+10!={0}",sum);}}(5)运行应用程序(ctrl + F5)。
2. 一维数组排序编程(1)启动.NET 2010。
(2)在“文件”菜单上找到“新建”->“项目”,打开“新建项目”对话框。
(3)在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。
(4)按确定以后用下面的代码替换Program.cs已有的所有代码:using System;namespace shuzu{class maopo{public static void Main(){int[] a=new int[10];Console.WriteLine("请输入10个整数");for(int i=0;i<10;i++){Console.Write("第[{0}]个数:",i+1);a[i]=Int32.Parse(Console.ReadLine());}Console.WriteLine("排序前的十个数是:");for(int i=0;i<10;i++){Console.Write("{0}\t",a[i]);}Console.WriteLine();int temp;//临时变量for(int j=0;j< 9;j++){for(int i=0;i<9-j;i++){if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}}for (int i=0;i<10;i++){Console.WriteLine("排序后的结果是:");Console.Write("{0}\t",a[i]);}Console.WriteLine();}}}(5)运行应用程序(ctrl + F5)。
五、实验总结循环就是重复执行一些语句。
这个技术使用起来非常方便,因为可以对操作重复任意多次,而无需每次都编写相同的代码。
while循环非常类似于do循环,但有一个重要的区别:while语句中的布尔测试是在循环开始时进行,而不是最后。
如果测试结果为false,循环代码将不会被执行,而直接执行循环后面的代码。
分支是控制下一步要执行哪些代码的过程。
要跳转的代码是由某个条件语句来控制的,这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较。
C#中的分支结构有以下三种:1、三元运算其语法如下:<条件运算>?<运算真的结果>:<运算假的结果> 2、if语句其最简单语法:if(<条件运算>) <运算真的结果>; 当然也可以将else语句和if语句合并使用,指定其他的代码。
如果<条件运算>的结果为false时就执行else语句。
其语法结构如下: if(<条件运算>) { <运算真的结果> } else { <运算假的结果> }3、我们知道当进行的比较少的情况下用if与else语句是很方便的,但是如果我们进行很多的比较时,就应该考虑使用另一种分支结构:switch语句。
实验三类设计练习一、目的与要求1、掌握C#语言定义类的方法。
2、掌握派生类的设计方法。
3、理解运行时多态的含义。
二、实验仪器Windows操作系统,Microsoft Visual Studio .NET 2010。
三、实验内容1. 依次定义Rectangle,Circle,Cylinder三个类,Circle类继承于Rectangular,Cylinder 继承于Circle。
在Rectangle类中需要定义属性,虚拟的Area()方法,虚拟的Name属性,重写ToString()方法;在Circle类中需要定义属性,重写Area()方法,重写Name属性,重写ToString()方法,定义周长方法。
在Cylinder类中要定义Volume方法,重写Area,ToString 方法,Name属性。
定义一个Test类,加入主方法,在主方法中分别定义三个类的对象和实例;定义Rectangle 类的对象数组,将数组元素分别引用到刚定义的三个实例上,然后通过基类对象调用重写的方法。
四、实验过程及结果(1)启动.NET 2010。
(2)在“文件”菜单上找到“新建”->“项目”,打开“新建项目”对话框。
(3)在模板一栏选择“控制台应用程序”,在名称一栏输入项目的名称。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{public class Rectangle{public const double pi = Math.PI;private int x, y;private double width, height;public Rectangle(int x, int y, double width, double height){this.x = x;this.y = y;this.width = width;this.height = height;}public int Y{get { return y; }set { y = value; }}public int X{get { return x; }set { x = value; }}public double Height{get { return height; }set { height = value; }}public double Width{get { return width; }set { width = value; }}public virtual double Area()//定义虚拟方法{return height * width;}public virtual string Name //虚拟属性{get{return "矩形";}}public override string ToString(){return ("左上角坐标" + "(" + X + "," + Y + ")" + " 宽 " + width + " 高 " + height);}}}using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{public class Circle : Rectangle{private int xValue, yValue;private double radius;public Circle(int x, int y, double r) : base(x - (int)r, y - (int)r, 2 * r, 2 * r) {this.xValue=x;this.yValue=y;this.radius=r;}public int YValue//圆心坐标{get { return yValue; }set { yValue = value; }}public int XValue{get { return xValue; }set { xValue = value; }}public double Radius{get { return radius; }set { radius = value; }}public double Diameter//直径{get{return Width;}}public double Circumference(){return 2*pi*radius;}public override double Area() //重写虚拟方法{return pi * radius * radius;}public override string Name//重写虚拟属性{get { return "圆"; }}public override string ToString(){return ("圆心:" + "(" + xValue + "," + yValue + ")" + " 半径 " + Radius); }}}using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{class Cylinder : Circle{private double h;public Cylinder(int x, int y, double r, double h) : base(x, y, r) {H = h;}public double H{get { return h; }set { h = value; }}public override double Area(){return pi * Radius * Radius;}public double Volume(){return base.Area() * H;}public override string Name{get{return "圆柱";}}public override string ToString(){return base.ToString() + " 高 " + H;}}}using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{public class Test{public static string ShowArea(Rectangle[] Items){string output = "";foreach (Rectangle Item in Items)output += "\n" + + ":" + Item.ToString() + " 面积 " + Item.Area();return output;}public static void Main(){Rectangle rectangle1 = new Rectangle(0, 0, 35.2, 100);Circle circle1 = new Circle(10, 8, 10);Cylinder Cylinder1 = new Cylinder(12, 6, 10.35, 25.6);Rectangle[] shape = new Rectangle[3];shape[0] = rectangle1;shape[1] = circle1;shape[2] = Cylinder1;string output = ShowArea(shape);output += " 体积 " + Cylinder1.Volume();Console.WriteLine(output, "运行结果");}}}(4)运行应用程序(ctrl + F5)。