NET程序设计实验指导书Word格式文档下载.docx
《NET程序设计实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《NET程序设计实验指导书Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
要求:
使用成员函数实现对数据的输出;
使用构造函数实现对数据的输入。
2.定义一个圆类,计算圆的面积和周长
3.编写一个程序计算出球、圆柱、圆锥的表面积和体积。
定义一个基类圆,至少含有一个数据成员半径;
定义基类的派生类球、圆柱、圆锥,都含有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。
定义主函数,求球、圆柱、圆锥的和体积。
(二)实验目标
要求同学们掌握类的定义,并实现相关的属性与方法,通过实验加深对面向对象概念的理解。
(三)实验要求
1.编写一个包含类和类方法的程序;
2.编写一个创建对象和适用对象的方法程序;
3.编写不同成员变量、方法修饰方法的程序;
4.编写含有构造方法的类的程序;
5.编写重载构造方法的程序;
6.编写类含有静态变量的程序;
7.编写通过ref、out修饰符传递参数的类程序;
8.编写含有属性的类程序。
二、实验准备
(一)运行环境说明
VS2005开发环境
三、实验基本操作流程及说明
可以使用控制动态台程序或窗体程序进行输入并验证程序的正确性。
四、实验评测与考核
要求提供程序源代码并提供程序运行截图
实验三类和对象编程练习
实验内容:
1.类定义
2.方法的重载
3.使用类的访问控制符实现类的封装
实验三继承与多态编程练习
1.派生类的定义方法和实现
2.使用虚方法和抽象方法实现多态
实验一用C#创建简单的.NET应用程序
一、实验目的
1.熟悉VisualC#.NET集成开发环境。
2.掌握控制台应用程序的开发方法。
3.掌握Windows应用程序的开发方法。
二、实验要求
1.整理上机步骤,总结经验和体会。
2.完成实验日志和上交程序。
三、实验内容
题目一:
用最原始的方法开发C#程序
(1)打开记事本,输入下面内容:
usingSystem;
namespacesum
{
publicclassHello
{
publicstaticvoidMain()
inta,b;
Console.Write("
请输入第一个整数:
"
);
a=Convert.ToInt32(Console.ReadLine());
//将输入的字符串转化为整数
请输入第二个整数:
b=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("
a={0},b={1}"
a,b);
a+b={0}"
a+b);
Console.Read();
}
}
(2)将文件命名为sum.cs,保存在…\MicrosoftVisualStudio8\VC目录下。
(3)选择“开始”
“程序”
“MicrosoftVisualStudio2005”
“VisualStudioTools”
“VisualStudio2005命令提示”命令,在命令提示行中输入如下命令:
cscd:
\sum.cs
然后按【Enter】键执行,并观察命令的执行情况。
(4)查看…\MicrosoftVisualStudio8\VC目录下是否存在名为“sum.exe”的可执行文件。
若存在,则双击打开该文件,按照提示输入数据并运行,同时观察运行情况;
若不存在,思考出错原因。
题目二:
创建控制台应用程序
(1)选择“开始”
“MicrosoftVisualStudio2005”命令,启动VisualStudio2005,并仔细观察起始页的内容。
(2)选择“文件”
“新建”
“项目”命令,弹出“新建项目”对话框。
仔细观察对话框的内容。
在“项目类型”列表框中选中VisualC#选项;
在“模板”列表框中选中“控制台应用程序”选项;
在“名称”文本框中输入项目名称;
在“位置”文本框中输入或选择项目的保存位置。
单击“确定”按钮,将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。
仔细观察并分析这些代码。
(3)在代码编辑窗口内的Main()方法中添加如下代码:
Console.Write("
当前系统的日期为:
//将系统的日期转换为长日期字符串表示形式进行输出
Console.WriteLine(DateTime.Now.ToLongDateString());
Console.Read();
(4)选择“文件”
“全部保存”命令,保存项目。
(5)选择“调试”
“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。
(6)在项目的保存位置处查看项目中过的所有文件。
题目三:
创建Windows应用程序
(1)从开始菜单启动VisualStudio2005。
在“模板”列表框中选中“Windows应用程序”选项;
单击“确定”按钮,将显示窗口设计器窗口。
(3)切换到“属性”窗口、“解决方案资源管理器”窗口和“类视图”窗口,查看窗体的属性、项目的组成结构以及项目所设计的所有类。
(4)双击打开“解决方案资源管理器”窗口中的各个文件,在代码编辑器窗口内查看系统自动生成的与该项目有关的代码。
“启动调试”命令,运行程序,查看运行结果,然后关闭窗体。
(6)在窗体上添加一个PictureBox控件和两个Button控件。
设置窗体和各控件的属性,如表1-1所示。
表1-1窗体及各控件的主要属性
控件
属性
属性值
Form1窗体
Text(标题)
Windows应用程序测试
PictureBox1
BorderStyle(边框类型)
Fixed3D
Button1按钮
画图
Button2按钮
退出
(1)调整窗体大小以及各个控件的位置,如图1-1所示。
图1-1调整控件位置后的界面
(2)双击Button1按钮,在其Click事件内添加代码:
Graphicsg=this.pictureBox1.CreateGraphics();
Penp1=newPen(Color.Red,5);
g.DrawRectangle(p1,80,50,100,50);
(3)双击Button1按钮,在其Click事件内添加代码:
if(MessageBox.Show("
你确定要退出吗?
"
请确认..."
MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
Application.Exit();
//退出应用程序
(4)选择“调试”
“启动调试”命令,或按【F5】键,或单击工具栏上的
按钮,运行程序,查看运行结果。
在项目的保存位置处查看项目中过的所有文件。
实验二C#面向对象程序设计
(一)
1.理解C#语言是如何体现面向对象编程基本思想。
2.掌握类对象的定义。
3.了解类的封装方法,以及如何创建类和对象。
4.了解成员变量和成员方法的特性。
5.掌握静态成员的用法。
1.分析程序,上机验证结果。
2.写出程序,并调试程序,要给出测试数据和实验结果。
3.整理上机步骤,总结经验和体会。
4.完成实验日志和上交程序。
程序分析
(1)分析下面两个程序,确定那个程序好,说明理由。
程序要求:
定义一个圆类,计算圆的面积和周长。
程序1:
publicclasscircle
publicstaticvoidMain()
doubleradium,delimeter,square;
constdoublepai=3.1415926;
radium=Convert.ToInt32(Console.ReadLine());
delimeter=2*pai*radium;
square=pai*pai*radium;
Console.WriteLine("
delimeter={0},square={1}"
delimeter,square);
Console.ReadLine();
程序2:
doubledelimeter,square;
publicvoidcalculate(doublerad)
delimeter=2*pai*rad;
square=pai*pai*rad;
delimeter,square);
doubleradium;
circlecir=newcircle();
cir.calculate(radium);
(2)分析程序,写出程序的运行结果,并上机进行验证。
实现一个学生类
UsingSystem;
publicclassstudents
stringid,name;
intage;
publicstudents(stringid,stringname,intage)
this.id=id;
this.name=name;
this.age=age;
publicvoidDisplay()
id={0},name={1},age={2}"
id,name,age);
//stringid,name;
//intage;
studentsstu=newstudents("
0001"
"
zhangsan"
16);
stu.Display();
(3)分析程序,写出程序的运行结果,并上机进行验证。
publicclassDate
privateintYear,Month,Day;
publicDate(intYear,intMonth,intDay)
this.Year=Year;
this.Month=Month;
this.Day=Day;
publicDate(System.DateTimedt)
Year=dt.Year;
Month=dt.Month;
Day=dt.Day;
publicvoidDisplayDate()
{0}年{1}月{2}日"
Year,Month,Day);
publicclassTester
System.DateTimecurrentTime=System.DateTime.Now;
Datedt=newDate(2008,7,18);
dt.DisplayDate();
Datedt2=newDate(currentTime);
dt2.DisplayDate();
程序编写
(1)实现一个包含类属性方法的简单加法程序,并能显示结果。
(2)实现一个Person类,要求:
属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。
实验三C#面向对象程序设计
(二)
1.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数。
2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别。
3.掌握参数传递的用法。
4.掌握属性的作用和使用。
(1)分析程序,写出程序的运行结果,并上机进行验证,然后回答后面问题。
publicclassBankAccount
staticinttotalAccountNumber=0;
stringBankAccountId;
doubleinitialDepositAmount=0.00;
publicBankAccount(stringmyId)
this.BankAccountId=myId;
this.initialDepositAmount=0.00;
totalAccountNumber++;
publicvoiddisplayid()
mbaid={0},initialDepositAmount={1}"
this.BankAccountId,this.initialDepositAmount);
publicstaticvoiddisplay()
totalAccountNumber={0}"
totalAccountNumber);
BankAccountmba=newBankAccount("
37000001"
BankAccountmba2=newBankAccount("
3700002"
BankAccountmba3=newBankAccount("
BankAccountmba4=newBankAccount("
3700004"
//Console.WriteLine("
mba2ID={0}"
mba2.BankAccountId);
mba2.displayid();
BankAccount.display();
请回答问题:
(1)按你自己的算法修改以上程序,比如可只输出生成的账户数。
(2)把注释去掉后会怎样,为什么?
(3)为什么display用类名直接引用,可以用对象来引用么?
尝试输出结果。
(4)类的静态变量和非静态变量的引用区别。
判断一下语句的正确性:
静态方法只能使用静态变量,不能使用实例变量。
因为对象实例化之前,实例变量不可用。
这个观点真确么?
()
类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。
对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。
1.编写一个传值调用的程序。
程序功能要求:
程序首先给整型变量x和y赋初值3,5,然后使用传值调用方式调用方法对x和y做乘方并及输出x和y的乘方值,最后输出x和y得值。
再将此方法给为对象调用加ref修饰查看输出结果差异。
【思考题】
1.方法的参数传递有哪些方式?
区别时什么?
2.什么是构造方法。
实验三面向对象的程序设计II
实验目的
掌握this的使用
掌握静态成员和静态方法的应用
掌握构造方法的使用
第一部分练习
1、个人银行业务主要由存款、取款、查询余额、转帐组成,一般银行为我们办理个人业务时,需要我们实现存入一部分钱方可为我们开户,创建一个PersonalAccount类,实现以上功能。
1)创建一个名为Bank的控制台应用程序
2)对于一个软件系统,我们需要显示其版本号,软件名称,注册码等信息,这些信息可以用静态成员变量保存。
因此首先我们可以建一个GlobalSettings类存储这些一般信息,类的创建方法和实验四相同,注意不要忘记类名前加public,GlobalSettings类的代码如下:
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceBank
publicclassGlobalSettings
privatestaticstringsoftwareName="
创新银行个人业务管理系统"
;
publicstaticstringSoftwareName
get{returnGlobalSettings.softwareName;
set{GlobalSettings.softwareName=value;
privatestaticstringsoftwareVersion="
1.0版"
publicstaticstringSoftwareVersion
get{returnGlobalSettings.softwareVersion;
set{GlobalSettings.softwareVersion=value;
privatestaticstringsoftwareCompany="
淮安信息职业技术学院计算机系创新实验室--宋桂岭"
publicstaticstringSoftwareCompany
get{returnGlobalSettings.softwareCompany;
set{GlobalSettings.softwareCompany=value;
privatestaticstringsoftwareDescribe="
本系统的创意、著作权均归作者本人所有,任何单位和个人如果引用本系统的任何内容,\n作者保留追究其法律责任的权利,特此声明。
publicstaticstringSoftwareDescribe
get{returnGlobalSettings.softwareDescribe;
set{GlobalSettings.softwareDescribe=value;
3)创建PersonalAccount类,利用构造方法实现开户,利用成员方法实现余额查询、存入、提取、转帐等功能,完整代码如下:
publicclassPersonalAccount
privatedoubleaccountRemainValue;
//余额
privatestringaccountName;
//姓名
publicdoubleAccountRemainValue
get{returnaccountRemainValue;
set{accountRemainValue=value;
publicstringAccountName
get{returnaccountName;
set{ac