首页 河北工业大学.NET程序设计 C# 实验报告实验三

河北工业大学.NET程序设计 C# 实验报告实验三

举报
开通vip

河北工业大学.NET程序设计 C# 实验报告实验三《C#.net》实验报告姓名:王璐学号:142871日期:2016/04/24实验名称:面向对象编程成绩:实验一类和对象编程1、实验目的及要求【实验目的】1.如何创建类和对象。2.如何为定义的类编写相应的方法。3.如何通过属性访问对象中的数据【实验要求】1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验日志和上交程序。二、实验环境Windows7操作系统,VisualStudio2005及以上版本三、实验内容(题目、源代码、关键代码解释、运行结果、实验总结)【实验1-...

河北工业大学.NET程序设计 C# 实验报告实验三
《C#.net》实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 姓名:王璐学号:142871日期:2016/04/24实验名称:面向对象编程成绩:实验一类和对象编程1、实验目的及要求【实验目的】1.如何创建类和对象。2.如何为定义的类编写相应的方法。3.如何通过属性访问对象中的数据【实验要求】1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验日志和上交程序。二、实验环境Windows7操作系统,VisualStudio2005及以上版本三、实验内容( 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目、源代码、关键代码解释、运行结果、实验总结)【实验1-1-1】编写一个控制台应用程序,定义并使用一个时间类,该类包含时、分、秒字段与属性,具有将时间增加1秒、1分和1小时的方法,具有分别显示时、分、秒和同时显示时分秒的方法。1、源代码:usingSystem;publicclassTime{//字段privateinthour;privateintminite;privateintsecond;//属性publicintHour{get{returnhour;}set{hour=value;}}publicintMinite{get{returnminite;}set{minite=value;}}publicintSecond{get{returnsecond;}set{second=value;}}//方法//加时方法publicvoidSAdd(){second++;if(second>60){minite++;second=second%60;}if(minite>60){hour++;minite=minite%60;}if(hour>24){hour=hour%24;}}publicvoidMAdd(){minite++;if(minite>60){hour++;minite=minite%60;}if(hour>24){hour=hour%24;}}publicvoidHAdd(){hour++;if(hour>24){hour=hour%24;}}//输出方法publicvoidHPrint(){Console.WriteLine("现在时为:{0}",hour);}publicvoidMPrint(){Console.WriteLine("现在分为:{0}",minite);}publicvoidSPrint(){Console.WriteLine("现在秒为:{0}",second);}publicvoidTimePrint(){Console.WriteLine("得出准确时间为:{0}时{1}分{2}秒",hour,minite,second);}}//主函数publicclassText{publicstaticvoidMain(){Timetime=newTime();Console.WriteLine("获取系统时间中...");time.Hour=DateTime.Now.Hour;time.Minite=DateTime.Now.Minute;//刚刚发现前面的minute全写成minute了..英语不太..time.Second=DateTime.Now.Second;time.TimePrint();Console.WriteLine("现在加一秒功能:");time.SAdd();time.TimePrint();Console.WriteLine("现在加一分功能:");time.MAdd();time.TimePrint();Console.WriteLine("现在加一时功能:");time.HAdd();time.TimePrint();Console.WriteLine("现在依次调用三个方法输出时分秒:");time.HPrint();time.MPrint();time.SPrint();}}2、关键代码解释:1)时钟循环需要取模运算,如第25时为25%24=1,即1时;另外还要注意秒的增加带给分、时的影响等。2)加时功能直接使用time++,并注意判断对其他时间的影响3)获取时间采用了DataTime里的函数,直接获取系统时间。3、运行结果4、实验总结结合实践明白了属性的用法与含义,并且通过百度了解了怎么从系统中读取现在的时间。【实验1-1-2】编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有字段:学号(字符串)、姓名(字符串)和性别(字符),具有三个属性:学号(读写)、姓名(只读)、性别(读写),具有有参构造方法、具有同时显示学生个人信息的方法。在Class1·中完成以下功能:1)从键盘上输入一个学生的个人信息(学号、姓名、性别)。2)修改该学生的学号和性别。3)打印修改前后该学生的个人信息。1、源代码usingSystem;publicclassStudent{//字段privatestringnum;privatestringname;privatecharsex;privatestringoldnum;privatecharoldsex;//属性publicstringNum{get{returnnum;}set{num=value;}}publicstringName{get{returnname;}set{name=value;}}publiccharSex{get{returnsex;}set{sex=value;}}//方法publicStudent(stringc,stringn,chars){num=c;name=n;sex=s;}publicvoidPrintIn(){Console.WriteLine("学号");num=Console.ReadLine();Console.WriteLine("姓名");name=Console.ReadLine();Console.WriteLine("性别");sex=Convert.ToChar(Console.ReadLine());}publicvoidRevise(){Console.WriteLine("请对输入的学号重新进行编辑:");oldnum=num;num=Console.ReadLine();Console.WriteLine("请对输入的性别重新进行编辑:");oldsex=sex;sex=Convert.ToChar(Console.ReadLine());}publicvoidPrintOut(){Console.WriteLine("修改前的信息为:学号:{0},姓名:{1},性别:{2}",oldnum,name,oldsex);Console.WriteLine("修改后的信息为:学号:{0},姓名:{1},性别:{2}",num,name,sex);}}publicclassclass1{publicstaticvoidMain(){Console.WriteLine("在本信息中男为Q女为N");Studentstudent1=newStudent("123","王兰",'N');student1.PrintIn();student1.Revise();student1.PrintOut();}}2、关键代码解释1)为了能同时输出修改前修改后的名称,引入了字段oldnum,oldsex,将修改前的传给这两个值,并将新值覆盖原字段num和sex。3、实验结果:4、实验分析:虽然设置了属性,但没用实际用到,感觉可能没有编好。。。另外为了满足第3个实验条件,同时输出,所以引入了新字段,不知道是否符合要求。【实验1-1-3】编写一个控制台应用程序,程序中有两个类定义,一个是创建程序时系统自动创建的类Class1,一个是用户自定义的Student类,要求该类包含私有实例字段:学号(字符串)、姓名(字符串)、成绩(double)以及私有静态字段:学生人数、学生总成绩、学生平均成绩,具有有参构造方法、显示学生个人信息的公有实例方法和显示学生人数、总成绩及平均成绩的公有静态方法。在Class1类的Main方法中完成以下功能:1)从键盘上依次输入三个学生的个人信息(学号、姓名、成绩)。2)统计全部学生的人数、总成绩和平均成绩。3)打印学生们的个人信息及全部学生的人数、总成绩和平均成绩。1、源代码usingSystem;publicclassStudent{//字段privatestringnum;privatestringname;privatedoublescore;publicstaticintcount;publicstaticdoubleaddscore;publicstaticdoubleaverage;//方法publicStudent(){count++;}publicvoidPrintIn(){Console.WriteLine("请输入一位同学的信息:");Console.WriteLine("学号:");num=Console.ReadLine();Console.WriteLine("姓名:");name=Console.ReadLine();Console.WriteLine("成绩:");score=Convert.ToDouble(Console.ReadLine());addscore+=score;}publicstaticvoidAverage(){average=addscore/count;}publicvoidPrint1(){Console.WriteLine("学号:{0},姓名{1},成绩{2}",num,name,score);}publicstaticvoidPrint2(){Console.WriteLine("输入的学生总人数为:{0}",count);Console.WriteLine("同学们的总成绩为:{0}",addscore);Console.WriteLine("同学们的平均成绩为:{0}",average);}}publicclassclass1{publicstaticvoidMain(){Console.WriteLine("在本信息记录中,性别男为Q,女为N");Studentstudent1=newStudent();student1.PrintIn();Studentstudent2=newStudent();student2.PrintIn();Studentstudent3=newStudent();student3.PrintIn();Student.Average();Console.WriteLine("同学们的信息为:");student1.Print1();student2.Print1();student3.Print1();Student.Print2();//是否可以建立类数组?}}2、关键代码解释有关关键代码的解释后面的实验都直接写在代码的//备注里了。3、实验结果4、实验总结:学会了在readline里面使用类型转换。认为也许可以使用类的数组来定义这三个学生,但没有实现。实验二继承与多态编程一、实验目的及要求【实验目的】1.理解继承的含义,掌握派生类的定义方法和实现;2.理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。3.编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序;4.编写体现类多态性(成员方法重载,构造方法重载)的程序。【实验要求】1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验日志和上交程序。二、实验环境Windows7操作系统,VisualStudio2005及以上版本三、实验内容(题目、源代码、关键代码解释、运行结果、实验总结)【实验1-2-1】创建一个描述图 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 信息的类并测试。类中应保存有图书的书号、标题、作者、出版社、价格等信息。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{//定义私有字段privatereadonlystringisbn;privatestringtitle;privatestringauthor;privatestringpress;privatedoubleprice;//定义属性publicstringIsbn{get{returnisbn;}}publicstringTitle{get{returntitle;}set{Title=value;}}publicstringAuthor{get{returnauthor;}set{Author=value;}}publicstringPress{get{returnpress;}set{Press=value;}}publicdoublePrice{get{returnprice;}set{Price=value;}}//定义构造函数publicBook(stringisbn,stringtitle,stringauthor,stringpress,doubleprice){this.isbn=isbn;this.title=title;this.author=author;this.press=press;this.price=price;}//继承第一个构造函数publicBook(stringisbn):this(isbn,"未知","未知","未知",0){}publicvoidShow(){Console.WriteLine("这本书的信息如下:");Console.WriteLine("书号:{0}",isbn);Console.WriteLine("标题:{0}",title);Console.WriteLine("作者:{0}",author);Console.WriteLine("出版社:{0}",press);Console.WriteLine("价格:{0}",price);}}classBookTest{publicstaticvoidMain(){Console.WriteLine("请按<行>依次输入第一个书本信息,依次为书号,标题,作者,出版社,价格");Bookbook1=newBook(Convert.ToString(Console.ReadLine()),Convert.ToString(Console.ReadLine()),Convert.ToString(Console.ReadLine()),Convert.ToString(Console.ReadLine()),Convert.ToDouble(Console.ReadLine()));book1.Show();Console.WriteLine("请输入第二个书本的书号");Bookbook2=newBook(Convert.ToString(Console.ReadLine()));book2.Show();}}2、实验结果3、实验总结:学会了用构造函数继承构造函数,另外经过查阅还明白了this指针可以代替对象来调用对象的字段。还实践了可以在构造函数调用时调用输入函数。【实验1-2-2】编写一个程序计算出球、圆柱和圆锥的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 面积和体积。1)定义一个基类圆,至少含有一个数据成员:半径;2)定义基类的派生类:球、圆柱、圆锥,都含有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。3)定义主函数,求球、圆柱、圆锥的和体积。3、设计一个图书卡片类Card,用来保存图书馆卡片分类记录。1)这个类的成员包括书名、作者、馆藏数量。2)至少提供两个方法,store书的入库处理,show显示图书信息。3)程序运行时,可以从控制台上输入需要入库图书的总量,根据这个总数创建Card对象数组,然后输入数据。4)可以选择按书名、作者、入库量进行排序。1、源代码usingSystem;publicclassCircle//定义基类圆{protecteddoubleR;publicconstdoublePI=3.14;}//定义继承类球,继承圆publicclassBall:Circle{//定义表面积、体积字段protecteddoubleVol;protecteddoubleArea;//构造函数publicBall(doubler){R=r;}//求表面积和体积的方法。采用先求表面积和体积再输出publicdoubleGetArea(){Area=4*PI*R*R;returnArea;}publicdoubleGetVol(){Vol=(4.0/3.0)*PI*R*R*R;returnVol;}publicvoidPrint(){Console.WriteLine("球的表面积为:{0}",Area);Console.WriteLine("球的体积为:{0}",Vol);}}//定义继承类圆柱,继承圆,比较两种输出体积的方法(圆锥采用不继承圆,直接继承圆柱的做法)publicclassCyl:Circle{//定义表面积、体积字段protecteddoubleVol;protecteddoubleArea;protecteddoubleh;//构造函数publicCyl(){}publicCyl(doubler,doubleh){R=r;this.h=h;}//采用直接输出体积和表面积publicvirtualvoidGetArea(){Area=h*2*PI*R+2*PI*R*R;Console.WriteLine("圆柱的表面积为:{0}",Area);}publicvirtualvoidGetVol(){Vol=h*PI*R*R;Console.WriteLine("圆柱的体积为:{0}",Vol);}}publicclassCone:Cyl{//字段已经定义,构造函数不继承publicCone(doubler,doubleh){R=r;this.h=h;}//重写基类中的表面积、体积函数publicoverridevoidGetArea(){Area=PI*R*R+0.5*2*PI*R*System.Math.Sqrt(R*R+h*h);Console.WriteLine("圆锥的表面积为:{0}",Area);}publicoverridevoidGetVol(){Vol=(1.0/3.0)*h*PI*R*R;Console.WriteLine("圆锥的体积为:{0}",Vol);}}classText{publicstaticvoidMain(){Console.WriteLine("请输入球的半径:");doublecount=Convert.ToDouble(Console.ReadLine());Ballball=newBall(count);doubleA=ball.GetArea();doubleV=ball.GetVol();ball.Print();Console.WriteLine("请按'行'依次输入圆柱的半径、高");Cylcyl=newCyl(Convert.ToDouble(Console.ReadLine()),Convert.ToDouble(Console.ReadLine()));cyl.GetArea();cyl.GetVol();//相比较两种输出方法,直接输出法更简单。Console.WriteLine("请按'行'依次输入圆锥的半径、高");Conecone=newCone(Convert.ToDouble(Console.ReadLine()),Convert.ToDouble(Console.ReadLine()));cone.GetArea();cone.GetVol();}}2、实验结果3、实验总结在计算圆锥表面积时学会了System.Math.Sqrt()的使用方法没有采用"0"个参数的重载:说明参数不能为空,错误出在把Convert.ToDouble(Console.ReadLine())括号里和括号外的内容写反了另外很粗心在WriteLine里{}里面忘记加0,编译没出错但抛出了异常,又找了半天才修改好。。【实验1-2-3】设计一个图书卡片类Card,用来保存图书馆卡片分类记录。1)这个类的成员包括书名、作者、馆藏数量。2)至少提供两个方法,store书的入库处理,show显示图书信息。3)程序运行时,可以从控制台上输入需要入库图书的总量,根据这个总数创建Card对象数组,然后输入数据。4)可以选择按书名、作者、入库量进行排序。1、源程序usingSystem;publicclassLibrary{publicstaticintNum=0;publicstaticvoidShow(){Console.WriteLine("图书馆共入库了{0}本书",Num);}}publicclassCard{privatestringname;publicstringName{get{returnname;}}privatestringauthor;publicstringAuthor{get{returnauthor;}}privateintnum=0;publicintNum{get{returnnum;}}publicvoidStore(){Console.WriteLine("输入要入库的书信息,包括书名、作者、入库量");this.name=Convert.ToString(Console.ReadLine());this.author=Convert.ToString(Console.ReadLine());this.num=Convert.ToInt32(Console.ReadLine());Library.Num+=num;}publicvoidShow(){Console.WriteLine("图书信息如下:");Console.WriteLine("书名:{0},作者:{1},馆藏数量{2}",name,author,num);}}publicclassText{publicstaticvoidMain(){inti;Cardtemp;Card[]card=newCard[3];for(i=0;i<3;i++){card[i]=newCard();//学会了定义对象的数组,应该先创建数组,再依次对里面的所有成员进行创建。card[i].Store();}Library.Show();Console.WriteLine("请选择按什么排序:、书名2、作者3、存库量");inta=Convert.ToInt32(Console.ReadLine());switch(a){case1:{Console.WriteLine("按书名从小到大排序");for(i=0;i<2;i++){for(intj=i;j<3;j++){if(string.Compare(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:{Console.WriteLine("按作者从小到大排序");for(i=0;i<2;i++){for(intj=i;j<3;j++){if(string.Compare(card[i].Author,card[j].Author)>0)//学会了比较函数的使用{temp=card[i];card[i]=card[i+1];card[i+1]=temp;}}}for(i=0;i<3;i++){card[i].Show();}}break;case3:{Console.WriteLine("按存库量从小到大排序");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:Console.WriteLine("输入错误。");break;}}}2、实验结果(实验结果检测时选择了用2号--按作者从小到大排序)3、实验总结学会了定义对象的数组,应该先创建数组,再依次对里面的所有成员进行创建。经过查阅学会了比较函数的使用。类的多态性练习【实验1-2-4】设计雇员系统。1)定义雇员基类,共同的属性,姓名、地址和出生日期;2)派生类:程序员,秘书,高层管理,清洁工,他们有不同的工资算法,其中高级主管和程序员采用底薪加提成的方式,高级主管和程序员的底薪分别是5000元和2000元,秘书和清洁工采用工资的方式,工资分别是3000和1000,以多态的方式处理程序。1、源代码usingSystem;publicclassEmployee{privatestringname;//定义雇员基类的姓名、地址、出生日期、底薪、提成以及其属性。//属性为可读可写,实验结果中为了简练没有调用姓名地址出生日期等,不过调用了底薪、提成及其属性以体现多态。publicstringName{get{returnname;}set{name=value;}}stringaddress;publicstringAddress{get{returnaddress;}set{address=value;}}stringbirth;publicstringBirth{get{returnbirth;}set{birth=value;}}doublesalary;//底薪publicvirtualdoubleSalary{get{returnsalary;}set{salary=value;}}doubleticheng;//提成publicvirtualdoubleTicheng{get{returnticheng;}set{ticheng=value;}}publicvirtualvoidSumSalary(){}//工资算法不同,所以定义虚函数工资计算方法publicvirtualvoidShow(){}//工资输出名称不同,所以定义了可重写的打印方法}publicclassProgrammer:Employee//程序员,继承雇员基类{publicProgrammer(){Salary=2000;Console.WriteLine("请输入程序员提成");Ticheng=Convert.ToDouble(Console.ReadLine());}publicoverridevoidSumSalary()//重写工资计算方法,下面几个类同{Salary+=Ticheng;}publicoverridevoidShow()//重写打印方法{Console.WriteLine("程序员的总工资是{0}",Salary);}}publicclassManager:Employee//主管高层,继承雇员基类{publicManager(){Salary=5000;Console.WriteLine("请输入主管高层提成");Ticheng=Convert.ToDouble(Console.ReadLine());}publicoverridevoidSumSalary(){Salary+=Ticheng;}publicoverridevoidShow(){Console.WriteLine("主管高层总工资是{0}",Salary);}}publicclassSec:Employee//秘书,继承雇员基类{publicSec(){Salary=3000;}publicoverridevoidShow(){Console.WriteLine("秘书总工资是{0}",this.Salary);}}publicclassCleaner:Employee//清洁工,继承雇员基类{publicCleaner(){Salary=1000;}publicoverridevoidShow(){Console.WriteLine("清洁工总工资是{0}",this.Salary);}}classText{publicstaticvoidMain(){Programmerpro=newProgrammer();//输入提成等,进行总工资输出,PS:为了简单就没有输出姓名等pro.SumSalary();pro.Show();Managerman=newManager();man.SumSalary();man.Show();Secsec=newSec();sec.Show();Cleanercle=newCleaner();cle.Show();}}2、实验结果3、实验总结使用virtual时下面实现多态要再次使用override才能重写,这里做实验时出了一些问题。另外在其他类中调用了基类的属性,想到属性也可以重写,以后有空再拓展一下。实验三接口编程【实验目的】1.了解什么是接口,接口和抽象类的异同,掌握接口的方法实现,接口方法的重定义。【实验要求】1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验日志和上交程序。【实验内容】分析实现接口的程序文件分析以下实现接口的程序文件并回答问题:本程序中的接口包含方法的构成是哪些?CompareTo(IComparablecomp)实现接口的类包含哪些元素?privateuinttotalSeconds;publicTimeSpan()publicTimeSpan(uintinitialSeconds)publicuintSecondspublicintCompareTo(IComparablecomp)类实现接口方法的参数如何变换实现的?publicintCompareTo(IComparablecomp){TimeSpancompareTime=(TimeSpan)comp;if(totalSeconds>compareTime.Seconds)return1;elseif(compareTime.Seconds==totalSeconds)return0;elsereturn-1;}给出程序的输出结果实验四委托编程【实验目的】1.了解委托的概念,掌握委托的使用;【实验要求】1.理解委托应用的程序;2.写出委托应用程序;3.调试程序,要给出测试数据和实验结果。4.整理上机步骤,总结经验和体会。5.完成实验日志和上交程序。【实验内容】委托及其方法的实现程序程序功能:定义一个含有两个整型参数名叫Calculation返回类型为double的委托,分别实现两个匹配的求和、求平均值的方法,并在主函数中测试它。1、源代码usingSystem;publicdelegatedoubleCalculation(doublem,doublen);//定义一个委托类型//分别实现两个匹配的求和、求平均值的方法,并在主函数中测试它。classTest{publicdoubleplus(doublem,doublen){doubleval=m+n;returnval;}publicdoubleaver(doublem,doublen){doublea=((m+n)/2);returna;}}classTester{publicstaticvoidMain(){Testt=newTest();Calculationcal1=newCalculation(t.plus);Console.WriteLine("两数之和为:"+cal1(5.0,6.0));Calculationcal2=newCalculation(t.aver);Console.WriteLine("两数的平均值为:"+cal2(5.0,6.0));Console.ReadKey(true);}}2、实验结果实验五异常处理编程【实验目的】1、理解什么是异常及异常可能产生的原因;2、掌握异常抛出和捕获语句;3、理解专有catch块的使用;【实验要求】1.调试程序,要给出测试数据和实验结果。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};Console.WriteLine("请输入~月的污染物含量(单位ml)");for(inti=0;i<12;i++){pollution[i]=Convert.ToInt32(Console.ReadLine());}}publicintGetRainfall(intindex)//返回rainfall元素中与给定得index对应的值{try{returnrainfall[index];}catch(IndexOutOfRangeException){Console.WriteLine("数组下标越界异常");return0;}catch(FormatException){Console.WriteLine("数组下标非数字异常");return0;}}publicintGetAveragePollution(intindex)//计算给定月份单位降雨量中的污染物{try{averagePollution=pollution[index]/GetRainfall(index);averagePollution=(double)pollution[index]/(double)GetRainfall(index);}catch(IndexOutOfRangeException){Console.WriteLine("数组下标越界异常");}catch(DivideByZeroException){Console.WriteLine("除数为零异常");}stringk="n";Console.WriteLine("已打开Start文件,稍后请将其关闭!");Console.ReadKey();lop2:Console.WriteLine("Start文件仍在运行中,是否将其关闭(Y/N)?");k=Console.ReadLine();if(k=="y"||k=="Y"){Console.WriteLine("ClosingWeatherXYZfile");gotolop1;}elsegotolop2;lop1:Console.WriteLine("Start文件已经关闭,程序将继续运行");//输出Console.WriteLine("{0}月份单位降雨量所含污染物百分比为:{1}%",index,averagePollution*100);return0;}}publicclassText{publicstaticvoidMain(){intmon;Console.WriteLine("单位降雨量所含污染物百分比计算");MeteorologistMt=newMeteorologist();Console.WriteLine("请输入您所要计算的月份");mon=Convert.ToInt32(Console.ReadLine());Mt.GetAveragePollution(mon-1);}}2、实验结果3、4、5、6、友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览!7、8、9、10、11、12、整理为word格式整理为word格式整理为word格式
本文档为【河北工业大学.NET程序设计 C# 实验报告实验三】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:515KB
软件:Word
页数:0
分类:工学
上传时间:2021-03-25
浏览量:33