河北工业大学net程序设计c#实验报告实验三.docx

上传人:b****1 文档编号:20121133 上传时间:2023-04-25 格式:DOCX 页数:17 大小:175.53KB
下载 相关 举报
河北工业大学net程序设计c#实验报告实验三.docx_第1页
第1页 / 共17页
河北工业大学net程序设计c#实验报告实验三.docx_第2页
第2页 / 共17页
河北工业大学net程序设计c#实验报告实验三.docx_第3页
第3页 / 共17页
河北工业大学net程序设计c#实验报告实验三.docx_第4页
第4页 / 共17页
河北工业大学net程序设计c#实验报告实验三.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

河北工业大学net程序设计c#实验报告实验三.docx

《河北工业大学net程序设计c#实验报告实验三.docx》由会员分享,可在线阅读,更多相关《河北工业大学net程序设计c#实验报告实验三.docx(17页珍藏版)》请在冰豆网上搜索。

河北工业大学net程序设计c#实验报告实验三.docx

河北工业大学net程序设计c#实验报告实验三

 

《C#》

实验报告

 

姓名:

王璐

学号:

142871

日期:

2016/04/24

实验名称:

面向对象编程

成绩:

 

实验一类和对象编程

1、实验目的及要求

【实验目的】

1.如何创建类和对象。

2.如何为定义的类编写相应的方法。

3.如何通过属性访问对象中的数据

【实验要求】

1.写出程序,并调试程序,要给出测试数据和实验结果。

2.整理上机步骤,总结经验和体会。

3.完成实验日志和上交程序。

二、实验环境

Windows7操作系统,VisualStudio2005及以上版本

三、实验内容(题目、源代码、关键代码解释、运行结果、实验总结)

【实验1-1-1】

编写一个控制台应用程序,定义并使用一个时间类,该类包含时、分、秒字段与属性,具有将时间增加1秒、1分和1小时的方法,具有分别显示时、分、秒和同时显示时分秒的方法。

1、源代码:

usingSystem;

publicclassTime

{

.");

==刚刚发现前面的minute全写成minute了..英语不太..

=();

("现在加一秒功能:

");

();

();

("现在加一分功能:

");

();

();

("现在加一时功能:

");

();

();

("现在依次调用三个方法输出时分秒:

");

();

();

();

}

}

2、关键代码解释:

1)时钟循环需要取模运算,如第25时为25%24=1,即1时;另外还要注意秒的增加带给分、时的影响等。

2)加时功能直接使用time++,并注意判断对其他时间的影响

3)获取时间采用了DataTime里的函数,直接获取系统时间。

3、运行结果

4、实验总结

结合实践明白了属性的用法与含义,并且通过XX了解了怎么从系统中读取现在的时间。

【实验1-1-2】

编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有字段:

学号(字符串)、姓名(字符串)和性别(字符),具有三个属性:

学号(读写)、姓名(只读)、性别(读写),具有有参构造方法、具有同时显示学生个人信息的方法。

在Class1·中完成以下功能:

1)从键盘上输入一个学生的个人信息(学号、姓名、性别)。

2)修改该学生的学号和性别。

3)打印修改前后该学生的个人信息。

1、源代码

usingSystem;

publicclassStudent

{

解继承的含义,掌握派生类的定义方法和实现;

2.理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。

3.编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序;

4.编写体现类多态性(成员方法重载,构造方法重载)的程序。

【实验要求】

1.写出程序,并调试程序,要给出测试数据和实验结果。

2.整理上机步骤,总结经验和体会。

3.完成实验日志和上交程序。

二、实验环境

Windows7操作系统,VisualStudio2005及以上版本

三、实验内容(题目、源代码、关键代码解释、运行结果、实验总结)

【实验1-2-1】

创建一个描述图书信息的类并测试。

类中应保存有图书的书号、标题、作者、出版社、价格等信息。

1)定义图书类Book,Book类中包含isbn(书号)、title(标题)、author(作者)、press(出版社)、price(价格)等私有字段。

由于对一本书来说,书号是唯一的,因此,isbn字段应声明为只读的。

2)为Book类中的每个字段定义相应的属性,由于isbn字段只读的,其相应属性也应该是只读的。

3)为Book类定义两个构造函数,其中,一个构造函数将所有字段都初始化为用户指定的值,另一个构造函数只要求用户指定有关书号的信息,它将调用上一个构造函数初始化对象,初始化时,价格取0,除书号的其他信息取“未知”。

4)为Book类定义方法Show,Show方法用于显示图书的所有信息。

5)编写Main方法测试Book类,Main方法中分别使用上述两个构造函数创建Book对象。

1、源代码

usingSystem;

publicclassBook

{

tore();

}

();

("请选择按什么排序:

、书名2、作者3、存库量");

inta=());

switch(a)

{

case1:

{

("按书名从小到大排序");

for(i=0;i<2;i++)

{

for(intj=i;j<3;j++)

{

if(card[i].Name,card[j].Name)>0)

{

temp=card[i];

card[i]=card[i+1];

card[i+1]=temp;

}

}

}

for(i=0;i<3;i++)

{

card[i].Show();

}

}

break;

case2:

{

("按作者从小到大排序");

for(i=0;i<2;i++)

{

for(intj=i;j<3;j++)

{

if(card[i].Author,card[j].Author)>0)how();

}

}

break;

case3:

{

("按存库量从小到大排序");

for(i=0;i<2;i++)

{

for(intj=i;j<3;j++)

{

if(card[i].Num-card[j].Num>0)

{

temp=card[i];

card[i]=card[i+1];

card[i+1]=temp;

}

}

}

for(i=0;i<3;i++)

{

card[i].Show();

}

}

break;

default:

("输入错误。

");

break;

}

}

}

 

2、实验结果(实验结果检测时选择了用2号--按作者从小到大排序)

3、实验总结

学会了定义对象的数组,应该先创建数组,再依次对里面的所有成员进行创建。

经过查阅学会了比较函数的使用。

 

类的多态性练习

【实验1-2-4】

设计雇员系统。

1)定义雇员基类,共同的属性,姓名、地址和出生日期;

2)派生类:

程序员,秘书,高层管理,清洁工,他们有不同的工资算法,其中高级主管和程序员采用底薪加提成的方式,高级主管和程序员的底薪分别是5000元和2000元,秘书和清洁工采用工资的方式,工资分别是3000和1000,以多态的方式处理程序。

1、源代码

usingSystem;

publicclassEmployee

{

privatestringname;

了解什么是接口,接口和抽象类的异同,掌握接口的方法实现,接口方法的重定义。

【实验要求】

1.写出程序,并调试程序,要给出测试数据和实验结果。

2.整理上机步骤,总结经验和体会。

3.完成实验日志和上交程序。

【实验内容】

分析实现接口的程序文件

分析以下实现接口的程序文件并回答问题:

本程序中的接口包含方法的构成是哪些

CompareTo(IComparablecomp)

实现接口的类包含哪些元素

privateuinttotalSeconds;

publicTimeSpan()

publicTimeSpan(uintinitialSeconds)

publicuintSeconds

publicintCompareTo(IComparablecomp)

类实现接口方法的参数如何变换实现的

publicintCompareTo(IComparablecomp)

{

TimeSpancompareTime=(TimeSpan)comp;

if(totalSeconds>

return1;

elseif==totalSeconds)

return0;

else

return-1;

}

给出程序的输出结果

实验四委托编程

【实验目的】

1.了解委托的概念,掌握委托的使用;

【实验要求】

1.理解委托应用的程序;

2.写出委托应用程序;

3.调试程序,要给出测试数据和实验结果。

4.整理上机步骤,总结经验和体会。

5.完成实验日志和上交程序。

【实验内容】

委托及其方法的实现程序

程序功能:

定义一个含有两个整型参数名叫Calculation返回类型为double的委托,分别实现两个匹配的求和、求平均值的方法,并在主函数中测试它。

1、源代码

usingSystem;

publicdelegatedoubleCalculation(doublem,doublen);

调试程序,要给出测试数据和实验结果。

2.整理上机步骤,总结经验和体会。

3.完成实验日志和上交程序。

【实验内容】

异常处理

设计类,实现异常处理。

1)建立一个名字为Meteorologist的类,其中含有一个12个int类型元素的数组rainfall,通过构造函数给赋值;一个方法头为publicintGetRainfall(intindex),此方法返回rainfall元素中与给定的index对应的值,在GetRainfall添加处理任何从GetRainfall方法中抛出的越界异常所需要的代码。

2)为读取每月降雨从空中吸收并带到地面的污染物,在类中添加数组pollution,也包含12个元素,在构造方法中赋任意值;在类中编写另一个方法,头为:

publicintGetAveragePollution(intindex),来计算给定月份单位降雨量中的污染物,例如,计算4月份单位降雨量所含污染物用以下计算来实现:

averagePollution=pollutin[3]/rainfall[3];在此方法中实现处理异常的代码。

注意,此方法既可以抛出索引越界异常,也可以抛出被0除异常。

3)编写测试代码。

1、源代码

usingSystem;

publicclassMeteorologist

{

publicint[]rainfall;

publicint[]pollution=newint[12];

publicdoubleaveragePollution;

publicMeteorologist()//构造函数

{

rainfall=newint[]{20,0,24,19,20,25,17,18,15,30,20,20};

("请输入~月的污染物含量(单位ml)");

for(inti=0;i<12;i++)

{

pollution[i]=());

}

}

publicintGetRainfall(intindex)//返回rainfall元素中与给定得index对应的值

{

try

{

returnrainfall[index];

}

catch(IndexOutOfRangeException)

{

("数组下标越界异常");

return0;

}

catch(FormatException)

{

("数组下标非数字异常");

return0;

}

}

publicintGetAveragePollution(intindex)//计算给定月份单位降雨量中的污染物

{

try

{

averagePollution=pollution[index]/GetRainfall(index);

averagePollution=(double)pollution[index]/(double)GetRainfall(index);

}

catch(IndexOutOfRangeException)

{

("数组下标越界异常");

}

catch(DivideByZeroException)

{

("除数为零异常");

}

stringk="n";

("已打开Start文件,稍后请将其关闭!

");

();

lop2:

("Start文件仍在运行中,是否将其关闭(Y/N)");

k=();

if(k=="y"||k=="Y")

{

("ClosingWeatherXYZfile");

gotolop1;

}

else

gotolop2;

lop1:

("Start文件已经关闭,程序将继续运行");//输出

("{0}月份单位降雨量所含污染物百分比为:

{1}%",index,averagePollution*100);

return0;

}

}

publicclassText

{

publicstaticvoidMain()

{

intmon;

("单位降雨量所含污染物百分比计算");

MeteorologistMt=newMeteorologist();

("请输入您所要计算的月份");

mon=());

(mon-1);

}

}

2、实验结果

3、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1