Length;i++){
Console.WriteLine(”Num{0}:
{1}-—{2}",i+1,Sco[i],Grade[i]);
}
Console.ReadLine();
}
}
}
3.运行并测试
运行程序,结果如图1-1所示。
图1—1学生成绩排序图
4.写出实验报告
实验2继承与多态
实验目的:
(1)初步掌握面向对象程序设计封装的概念;
(2)掌握类的设计、属性和运算符重载;
(3)了解属性和运算符重载的作用.
实验要求:
设计并编程实现一个复数类,要求:
(1)封装类中的实部和虚部,通过属性提供对外访问接口;
(2)重载加、减、乘、除四则运算;
(3)设计一个类测试复数类;
实验准备和说明:
(1)具备知识:
C#封装、属性、重载.
(2)准备本次上机所需要的程序。
(3)创建本次实验项目文件夹“…\VisualStudio2010\Projects\实验2”
实验内容和步骤:
1.启动VisualStudio2010
打开计算机,启动MicrosoftVisualStudio2010系统。
2.创建工程并添加代码
①选择“文件"→“新建→项目”菜单命令,显示出“新建项目"对话框。
单击“已安装的模版"选项,在左边的列表框中选择VisualC#语言,在右边的列表框中选择“控制台应用程序"在项目名称框中输入ConsoleComplex。
单击浏览按钮。
。
。
将项目定位到文件夹“…\VisualStudio2010\Projects\实验2”。
usingSystem;
usingSystem.Collections.Generic;
usingSystem。
Linq;
usingSystem.Text;
namespaceConsoleComplex
{
classComplex{
privatedoublereal,image;//声明私有域real,image
publicdoubleReal//定义公有属性Real封装类中的实部
{
set{real=value;}
get{returnreal;}
}
publicdoubleImage//定义公有属性Image封装类中的虚部
{
set{image=value;}
get{returnimage;}
}
publicstaticComplexoperator+(Complexc1,Complexc2)//加号运算符重载
{
Complexc=newComplex();
c.Real=c1。
Real+c2.Real;
c。
Image=c1。
Image+c2。
Image;
returnc;
}
publicstaticComplexoperator—(Complexc1,Complexc2)//减号运算符重载
{
Complexc=newComplex();
c。
Real=c1.Real—c2.Real;
c。
Image=c1。
Image—c2.Image;
returnc;
}
publicstaticComplexoperator*(Complexc1,Complexc2)//乘号运算符重载
{
Complexc=newComplex();
c。
Real=c1。
Real*c2。
Real—c1.Image*c2。
Image;
c.Image=c1。
Real*c2。
Image+c1.Image*c2.Real;
returnc;
}
publicstaticComplexoperator/(Complexc1,Complexc2)//除号运算符重载
{
Complexc=newComplex();
doubler,a;
r=Math。
Sqrt((c1。
Real*c1.Real+c1。
Image*c1.Image)/(c2.Real*c2.Real+c2。
Image*c2。
Image));
a=Math。
Atan(c1。
Image/c1.Real)—Math.Atan(c2.Image/c2.Real);
c。
Real=r*Math.Cos(a);
c。
Image=r*Math。
Sin(a);
returnc;
}
}
classProgram
{
staticvoidMain(string[]args)
{
Complexc=newComplex(),c1=newComplex(),c2=newComplex();
c1.Real=1;c1.Image=2;
c2.Real=3;c2。
Image=4;
Console。
WriteLine(”c1="+c1。
Real.ToString()+"+"+c1。
Image。
ToString()+"i");Console。
WriteLine("c2=”+c2.Real.ToString()+”+"+c2.Image。
ToString()+”i”);
Console。
WriteLine(">>〉〉>>〉〉〈<〈<〈〈〈<〈");
c=c1+c2;
Console.WriteLine(c。
Real。
ToString()+"+"+c。
Image.ToString()+”i");
c=c1-c2;
Console.WriteLine(c。
Real。
ToString()+"+”+c。
Image。
ToString()+"i”);
c=c1*c2;
Console。
WriteLine(c.Real。
ToString()+”+”+c。
Image.ToString()+”i”);
c=c1/c2;
Console.WriteLine(c。
Real.ToString()+”+”+c.Image.ToString()+”i”);
Console.ReadLine();
}
}
}
3.运行并测试
运行程序,结果如图2—1所示。
图2—1复数的加减乘除示例图
实验3继承与多态
实验目的:
(1)初步掌握面向对象程序设计继承和多态的概念;
(2)掌握继承和多态的C#实现方法;
(3)了解继承和多态的作用。
实验要求:
设计基本几何图形的继承层次结构,并编程实现其中的类,封装类中的所有字段,通过属性提供对外的接口;使用继承实现几何图形的层次结构(3层);计算各种图形的面积和周长;
实验准备和说明:
(1)具备知识:
C#继承、接口、抽象方法、虚方法、多态。
(2)准备本次上机所需要的程序。
(3)创建本次实验项目文件夹“…\VisualStudio2010\Projects\实验3”
实验内容和步骤:
1.启动VisualStudio2010
打开计算机,启动MicrosoftVisualStudio2010系统。
2.创建工程并添加代码
①选择“文件"→“新建→项目”菜单命令,显示出“新建项目"对话框。
单击“已安装的模版”选项,在左边的列表框中选择VisualC#语言,在右边的列表框中选择“控制台应用程序"在项目名称框中输入Ji_cheng。
单击浏览按钮。
。
。
将项目定位到文件夹“…\VisualStudio2010\Projects\实验3”。
在打开的文档窗口中输入下面的代码:
usingSystem;
usingSystem。
Collections.Generic;
usingSystem。
Linq;
usingSystem。
Text;
namespaceJi_cheng
{
classProgram
{
publicabstractclassShape//抽象类
{
publicabstractdoublearea();
publicabstractdoublelength();
}
publicclasscircle:
Shape//圆继承Shape类
{
publicdoubler;//半径
publicdoubleR//属性R
{
get{returnr;}
set{r=value;}
}
publicoverridedoublearea()//面积
{
returnMath。
PI*Math.Pow(r,2);
}
publicoverridedoublelength()//周长
{
returnMath。
PI*2*r;
}
publiccircle(doubler)
{
this.r=r;
}
publicclassSquare:
Shape//正方形继承Shape类
{
publicdoubleedge;//边长
publicdoubleEdge//属性Edge
{
get{returnedge;}
set{edge=value;}
}
publicoverridedoublearea()//重载area方法
{
returnMath.Pow(edge,2);
}
publicoverridedoublelength()//重载length方法
{
return4*edge;
}
publicSquare(doubleedge)
{
this.edge=edge;
}
classTest
{
staticvoidMain(string[]args)
{
Console.WriteLine(”请输入圆的半径:
");
doubler=double.Parse(Console。
ReadLine());
Shapep=newcircle(r);
Console。
WriteLine("圆的周长:
{0}\n圆的面积:
{1}",p。
length(),p.area());
Console。
WriteLine(”请输入正方形的边长:
”);
doubleedge=double。
Parse(Console。
ReadLine());
Shapee=newSquare(edge);
Console.WriteLine("正方形的周长:
{0}\n正方形的面积:
{1}”,e.length(),e.area());
Console。
ReadLine();
}
}
}
}
}
}
3.运行并测试
编译并运行程序,在提示命令符下输入圆的半径为5,按Enter键,输入正方形的边长为4,按Enter键,结果如图3—1所示。
图3-1圆和正方形的周长及面积示例图
4.写出实验报告
实验4事件编程
实验目的:
(1)掌握事件的声明;
(2)掌握事件处理程序的原理及应用;
(3)定义事件处理函数.
实验要求:
设计一个账户类,包括账号,姓名,余额及密码等变量;定义成员变量的读写访问函数;定义一个事件,当余额发生改变时触发事件;设计一个类测试账户类中的事件。
实验准备和说明:
(1)具备知识:
方法的重载、事件的声明与订阅。
(2)准备本次上机所需要的程序。
(3)创建本次实验项目文件夹“…\VisualStudio2010\Projects\实验4”
实验内容和步骤:
1.启动VisualStudio2010
打开计算机,启动MicrosoftVisualStudio2010系统。
2.创建工程并添加代码
①选择“文件”→“新建→项目”菜单命令,显示出“新建项目"对话框。
在左边的列表框中选择VisualC#语言,在右边的列表框中选择“控制台应用程序"在项目名称框中输入Changed。
单击浏览按钮...将项目定位到文件夹“…\VisualStudio2010\Projects\实验4”。
在打开的文档窗口中输入下面的代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem。
Linq;
usingSystem.Text;
namespaceChanged
{
classAccount
{
privatestringNumber;//定义成员变量域
privatestringName;
privatedoubleBalanced;
privatestringPassword;
publicdelegatevoidChangedEventHander(objectsender,EventArgse);//定义委托代表类型
publiceventChangedEventHanderChanged;//声明事件
protectedvirtualvoidOnChanged(EventArgse)//用以触发事件
{
if(this。
Changed!
=null)
this.Changed(this,e);
}
publicdoubleBalance//定义Balance属性
{
get{returnthis。
Balanced;}
set
{
this。
Balanced=value;
//当Balance属性被修改时,触发Changed事件
this。
OnChanged(newEventArgs());
}
}
publicvoidAccount1(stringnumber,stringname,doublebalanced,stringpassword)//存款
{
this.Number=number;
this.Name=name;
this。
Balanced+=balanced;
this.Password=password;
}
publicvoidAccount2(stringnumber,doublebalanced,stringpassword)//取款
{
this。
Number=number;
this。
Balanced—=balanced;
this。
Password=password;
}
publicvoidOutb()
{
Console.WriteLine(”帳號:
{0}",Number);
Console.WriteLine(”姓名:
{0}”,Name);
Console.WriteLine(”密碼:
{0}",Password);
Console.WriteLine("餘額:
{0}",Balanced);
}
}
classTest
{
publicstaticvoidMain(string[]args)
{
Accountd=newAccount();
//将事件处理程序添加到事件的调用列表中即订阅事件
d。
Changed+=newAccount.ChangedEventHander(d_Changed);
d.Account1(”12345678567887112”,"陈好",2000.0,"543221");
d。
Outb();
d.Account2(”12345678567887112”,300.0,”543221”);
d.Outb();
stringstr="";
while(str!
=”0”)
{
Console。
WriteLine(”Pleaseenterastring:
”);
str=Console.ReadLine();
d。
Balance=System.Convert.ToDouble(str);
d。
Outb();
}
}
//事件处理函数
privatestaticvoidd_Changed(objectsender,EventArgse)
{
Console.WriteLine(”此人的余额已改变为:
{0}\n”,((Account)sender).Balance);
}
}
}
3.运行并测试
编译并运行程序,在提示命令符中输入5000,显示结果如图4—1所示。
图4—1账户信息变动图
实验5文本编辑器的设计与实现
实验目的要求
目的:
掌握面向对象程序设计方法以及WinForm开发技术。
要求:
设计并实现一个文本编辑器
(1)实现新建文件、打开文件、保存文件、选择字体、设置颜色功能;
(2)添加下拉菜单和弹出菜单,用于选择不同复制、粘贴、查找等文本编辑功能;
(3)添加工具栏,工具栏设置若干按钮,用于选择不同的文本编辑功能;
(4)添加状态栏,显示状态提示信息。
实验准备和说明
(1)具备知识:
WinForm的应用、菜单、工具栏、状态栏。
(2)准备本次上机所需要的程序。
(3)创建本次实验项目文件夹“…\VisualStudio2010\Projects\实验5"
实验内容和步骤
1.启动VisualStudio2010
打开计算机,启动MicrosoftVisualStudio2010系统。
2.创建一个默认的对话框用用程序Form1
选择“文件”→“新建→项目"菜单命令,显示出“新建项目”对话框.在左边的列表框中选择VisualC#语言,在右边的列表框中选择“Windows窗体应用程序”,在项目名称框中输入Wen_ben.单击浏览按钮.。
.将项目定位到文件夹“…\VisualStudio2010\Projects\实验5".
3.添加菜单
在左边