C#NET程序设计实验报告Word文件下载.docx
《C#NET程序设计实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#NET程序设计实验报告Word文件下载.docx(67页珍藏版)》请在冰豆网上搜索。
实验项目名称
成绩
指导教师
1
实验一、数组、类、接口与结构(验证性2学时)
林松
2
实验二、委托与事件(验证性2学时)
3
实验三、文件与Windows窗体程序设计(验证性2学时)
4
实验四、数据库操作1(综合性2学时)
5
实验五、数据库操作2(综合性,2学时)
福建农林大学金山学院实验报告
信息与机电工程专业:
计算机科学与技术年级:
2008级
姓名:
洪绵绵学号:
082231029实验室号_608计算机号B3
实验时间:
2010.11.26上午一二节指导教师签字:
成绩:
实验一数组、类、接口与结构
一、实验目的和要求
1、了解数组、类、接口和结构的定义、概念。
2、了解结构和类的区别。
3、掌握数组的声明、实例化、初始化和访问。
4、掌握类、接口的声明和使用,结构的声明和调用。
二、实验内容和原理
1、屏幕打印10行杨辉三角,逐行输出,用到Console.Write("
{0,5}"
A[i,j]);
和Console.WriteLine();
语句。
2、创建抽象基类Shape和派生类Rectangle,Circle利用多态性实现Area(计算面积)和Show(在屏幕上显示图形名称和面积)抽象方法
3、声明一个接口ICDPlayer,包含4个接口方法:
Play(),Stop(),NextTrack()和PreviousTrack(),以及一个只读属性CurrentTrack创建类CDPlayer实现该接口,模拟CD的播放、停止、下一音轨、上一音轨的操作。
4、声明一个表示平面坐标系中的点的结构体CoOrds,包含字段x,y,以及带2个参数的构造函数。
分别利用三种不同的方法(默认构造函数、有2个参数的构造函数、先声明结构体变量再对其x,y字段赋值),创建3个平面坐标点变量。
求这3个点所构成的三角形面积。
注意判断3个坐标点是否可以构成三角形。
三、实验环境
1、硬件:
PC机
2、软件:
windowsXP、VS2008
四、算法描述及实验步骤
1、
(1)打开记事本,编写代码。
(2)定义一个二维数组,杨辉三角只需处理(赋值和输出)下三角各元素即可。
所有下三角各元素初始化为1。
(3)杨辉三角下三角各元素满足如下条件:
第一列及对角线上的元素均为1;
其余每
个元素等于它上一行同一列元素与上一行前一列元素之和,即:
A[i,j]=A[i-l,j]+A[j-1]。
(4)屏幕打印数组中的三角中各元素,可逐行输出(Console.Write("
Console.WriteLine();
)
(5)保存记事本文件为exp1_1.cs
(6)在命令行界面(桌面开始程序vs2008vstoolsvs2008命令提示)编译源文件(csc…\exp1_1.cs)、运行(exp1_1.exe)并查看结果。
2、
(1)打开vs2008,创建新项目(控制台应用程序),并命名为exp1_2。
(2)定义基类Shape,其中含有:
一个保护的string类型字段name;
带一个参数的构造方法为name字段赋值;
两个抽象方法:
Area()(返回一个双精度的值)和Show()(无返回值)。
(3)定义派生类Rectangle,其中含有:
两个私有的双精度类型的字段width,heigh;
带三个参数的构造方法为name,width和heigh赋值,其中为name赋值调用父类的构造方法;
实现方法Area()(返回举行的面积)和Show()(无返回值,在屏幕上显示图形名称(矩形)和面积)。
(4)定义派生类Circle,其中含有:
一个私有双精度类型的字段radius;
带两个参数的构造方法为name,radius赋值,其中为name赋值调用父类的构造方法;
实现方法Area()(返回举行的面积)和Show()(无返回值,在屏幕上显示图形名称(圆)和面积)。
(5)在program类(默认)中Main方法中:
创建一个Shape类型的数组s,其中两个元素分别为newRectangle(“小矩形”,1.0,2.0)和newCircle(“大圆”,3.5);
使用foreach遍历s,调用每个元素的Show方法。
(6)编译和测试程序,并查看运行结果。
3、
(1)打开vs2008,创建新项目(控制台应用程序),并命名为exp1_3。
(2)声明一个接口ICDPlayer,包含:
4个无返回值的方法:
Play(),Stop(),NextTrack()和PreviousTrack();
一个整型的只读属性CurrentTrack。
(3)定义类CDPlayer实现该接口ICDPlayer,包含:
一个初始值为0的私有整型字段currentTrack;
实现Play方法,功能是在屏幕上输出字符串“启动CD…”;
实现Stop方法,功能是在屏幕上输出字符串“停止CD…”;
实现NextTrack方法,功能是在屏幕上输出字符串“下一个音轨…”,并让currentTrack的值加1;
实现PreviousTrack方法,功能是在屏幕上输出字符串“前一个音轨…”,并让currentTrack的值减1;
实现只读属性CurrentTrack,读取时返回字段currentTrack的值。
(4)在program类(默认)中Main方法中:
创建一个CDPlayer类型的实例myCD;
调用Play方法后在屏幕上输出当前音轨的值(CurrentTrack属性值);
调用两次NextTrack方法后在屏幕上输出当前音轨的值;
调用一次PreviousTrack方法后在屏幕上输出当前音轨的值;
调用Stop方法。
(5)编译和测试程序,并查看运行结果。
4、
(1)打开vs2008,创建新项目(控制台应用程序),并命名为exp1_4。
(2)声明一个表示平面坐标系中的点的结构体CoOrds,包含字段x,y,以及带2个参数的构造函数。
(3)分别利用三种不同的方法(默认构造函数、有2个参数的构造函数、先声明结构体变量再对其x,y字段赋值),创建3个平面坐标点变量。
(4)编译和测试程序,并查看运行结果。
五、调试过程
六、实验结果
1、屏幕打印10行杨辉三角,如下图:
2、
3、
4、
七、总结
通过这个实验,我了解到了数组、类、接口和结构的定义,基本认识了结构和类的区别。
在一定程度上掌握了数组的声明、实例化、初始化和访问。
对于类、接口的声明和使用,结构的声明和调用有了进一步的认识。
附录:
(1)exp1_1.cs
usingSystem;
namespaceexp1_1
{
classprogram
staticvoidMain()
{int[,]A=newint[10,10];
inti,j;
for(i=0;
i<
10;
i++)//下三角初始化为0
for(j=0;
j<
=i;
j++)
A[i,j]=1;
for(i=2;
i++)//计算杨辉三角
for(j=1;
i;
A[i,j]=A[i-1,j]+A[i-1,j-1];
i++)//显示输出
{for(j=0;
Console.Write("
A[i,j]);
Console.WriteLine();
}
(2)exp1_2.cs
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceexp1_2
publicabstractclassShape
{
privatestringname;
publicShape(strings)
Id=s;
}
publicstringId
get
returnname;
set
name=value;
publicabstractdoubleArea
get;
publicoverridestringToString()
returnId+"
Area="
+string.Format("
{0:
F2}"
Area);
//publicabstractvoidShow(Area);
//{
//Console.WriteLine("
{0}"
Area);
//}
publicclassRectangle:
Shape
privatedoublewidth;
privatedoubleheigh;
publicRectangle(stringname,doublewidth1,doubleheigth1):
base(name)
width=width1;
heigh=heigth1;
publicoverridedoubleArea
get
{
returnwidth*heigh;
//publicoverridevoidShow();
//{
//Console.WriteLine("
//}
publicclassCircle:
privatedoubleradius;
publicCircle(stringname,doubleradius1):
base(name)
radius=radius1;
returnradius*radius*System.Math.PI;
//publicoverridevoidShow();
classProgram
staticvoidMain(string[]args)
Shape[]S=
newRectangle("
小矩形"
1.0,2.0),
newCircle("
大圆"
3.5)
};
foreach(ShapesinS)
Console.WriteLine(s);
Console.ReadKey();
(3)exp1_3.cs
namespaceexp1_3
publicinterfaceICDPlayer
v