版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验要求一、可读性编程高手都知道:一个好的程序要具备可读性,可方便自己也可方便别人。所以,要培 养一个良好的编程习惯,可注意以下几方面:1.代码的缩进;2.有效使用空格;3.简明的注释;4.意义明确的命名;5.着重表示的常暈。%1. 亲手编写源程序在编写c#程序过程中,还可以利用一些可视化的开发工具,它们可以综合使用c#的编 译器和调试器等,例如symantec公司的visual cafes kawas sun公司的c# worshop和c# studio、inprise公司的jbuildcr.微软的visual j+等,使用编程开发工具可以加快编程 的速度。但在初始学习时还是最好亲手编写源程
2、序,以便理解类和编程思想。三、立即运行程序编写的源程序要立即上机编译运行來检验程序中存衣的问题。通过运行的结杲验证程序 的功能是否实现。即时有一些系统类的方法、变量也需要上机实验去了解它们的含义。实验报告姓名: 学号:日期:实验名称: 成绩:一、实验目的及要求二、实验环境windows xp 操作系统,visual 2005三、实验源程序及关键代码解释四、实验调试过程及运行结果五、实验总结:对上机实践结果进行分析,问题回答,上机的心得体会及改进意 见。实验一 继承与多态编程练习【实验目的】1. 理解继承的含义,拿握派生类的定义方法和实现;2. 理解虚函数在类的继承层次中的作用,虚函数的引入对程
3、序运行时的影响,能够对 使用虚函数的简单程序写出程序结果。3. 编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序;4. 编写体现类多态性(成员方法重载,构造方法重载)的程序。【实验要求】1. 写出程序,并调试程序,要给出测试数据和实验结果。2. 整理上机步骤,总结经验和体会。3. 完成实验日志和上交程序。【实验内容】一、类的继承和构造函数的灵活应用1、编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师 数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成-个类person,并作 为学生数据操作类student和教师类数据操作类teacher的基类
4、。二、类的多态性练习雇员系统,定义雇员基类,共同的属性,姓名、地址和出牛h期,子类:程序员,秘书, 高层管理,淸洁工,他们有不同的工资算法,其中髙级主管和程序员采用底薪加提成的方式, 高级主管和程序员的底薪分别是500()元和2000元,秘书和清洁工采川工资的方式,工资 分别是3()(x)和1000,以多态的方式处理程序,要求主程序的多态变量部分川数组实现。实验二操作符重载编程练习【实验目的】1. 了解操作符重载的意义,掌握操作符重载的一般方法。2. 理解操作符对的重载实现,编写相应的程序。【实验要求】1. 写岀程序,并调试程序,要给出测试数据和实验结果。2. 整理上机步骤,总结经验和体会。3
5、. 完成实验日志和上交程序。【实验内容】1、定义一个complex类,在类中实现“ + ”运算符的重载,从键盘上输入两个复数,用“ + ” 实现两个复数的加法。实验三接口编程练习【实验目的】1. 了解什么是接口,接口和抽象类的异同,掌握接口的方法实现,接口方法的重定义。【实验要求】1. 写出程序,并调试程序,要给出测试数据和实验结果。2. 整理上机步骤,总结经验和体会。3. 完成实验日志和上交程序。【实验内容】一、分析实现接口的程序文件分析以下实现接口的程序文件并冋答问题: 本程序中的接口包含方法的构成是哪些; 实现接口的类包含哪些元素? 类实现接11方法的参数如何变换实现的? 给出程序的输出
6、结果。 代码如下:using system;public interface 1comparableint compareto(1comparable comp);public class timespan : tcomparableprivate uint lotalseconds;public timespan() totalseconds = 0;public timespan(uint initislseconds) totalseconds = initialseconds;public uint secondsgetreturn totalseconds;settotalsecon
7、ds = value;public int compareto(icomparable comp) timespan comparetime = (timespan) comp;if(totalseconds > comparetime. seconds) return 1;else if(comparetime.seconds = totalseconds) return 0;elsereturn t;class testerpublic static void main()timespan mytime = new timespan(3450);timespan worldrecor
8、d = new timespan(1239);if(mytimecompareto(worldrocord) < 0)console- writelinec'my time is below the world record'7);else if(mytime- compareto(worldrecord) = 0)console- writelinec'my time is the same as the world record''); elsecon sole. wri teline (,zt spe nt more time tha n t
9、he world record holder"); 实验四异常处理编程练习【实验目的】1. 理解什么是异常及异常可能产生的原因;2. 掌握杲常抛岀和捕获语句;3理解专有catch块的使用;【实验要求】1. 调试程序,要给出测试数据和实验结果。2. 整理上机步骤,总结经验和体会。3. 完成实验h志和上交程序。【实验内容】一、异常处理部分建立一个名字为meteorologist的类,其屮含有一个12个int类型元素的数组rainfall,通 过构造函数给赋值;一个方法头为public int getrainfall(int index),此方法返回rainfall元素 中与给定得inde
10、x对应的值。在getrainfall添加处理任何从getrainfall方法中抛出的越界异 常所需要的代码;读取每月降雨从空中吸收并带到地血得污染物,在类中添加数组pollution, 也包含12个元索,在构造方法中赋任意值;编写一个方法,头为:public intgetaveragcpollution(int index),来计算给定月份单位降雨量中的污染物,例如,计算4 m 份单位降雨量所含污染物用以下计算来实现: averagepollution=pollutin3/rainfall 3;实现处理异常的代码,注意,此方法既可以 抛出索引越界异常,也可以抛出被0除异常;假定getavera
11、gepollutin方法在执行中打开 了一个文件,此文件必须在方法退出前关闭。编写实现的代码,用下列语句关闭文件 console. writeline(<4closing weatherxyz file”);最好编写测试代码。实验五委托与事件编程练习【实验目的】1. 了解委托的概念,掌握委托的使用;2. 掌握多重委托应用;3. 理解事件的含义,掌握事件的使用;【实验要求】1. 理解委托和事件应用的程序;2. 写出委托和事件应用程序;3. 调试程序,要给出测试数据和实验结果。4. 整理上机步骤,总结经验和体会。5. 完成实验日志和上交程序。【实验内容】%1. 委托及其方法的实现程序程序功能
12、:定义一个含有两个整型参数名叫calculation返回类型为double的委托,分别 实现两个匹配的求和、求平均值的方法,并在主函数中测试它。二、一个事件驱动汽车游戏分析以下程序回答问题: 事件和多重委托的区别? 程序中类之i'可的功能关系? car类对事件的应用方式有哪些?car类如何实现对事件的预定使用?using system;enum moverequesttype fastforward, siowforward, reverse;class moverequesteventargs : eventargsprivate moverequesttype request;pu
13、blic moverequesteventargs (moverequesttype initrequest) : base ()request = initrequest;public moverequesttype requestgetreturn request;class gamecontrol1 erpublic delegate void moverequest(object sender, moverequesteventargs e);public event moverequest onmoverequest;car gamecars = new car10;string c
14、arname:int speedparam = 0;int carcounter = 0;int carnumber = 0;public void run()stri ng answer;consol e. wr it el,i ne ("please sei ect from the fol 1 owl ng menu: “);consolewriteline(a)dd new car");consolewriteline(c)ar. subscribe to events");con sole writel in e (unsubscribe from ev
15、e nts");console. writeline(z/l) ist cars in current game");console. writelineczf)ast forward7');console. writeline("s)low forwardz/);console writeline(r)everse);console writeline(,t)erminatez,);docon sol e< wri tel in e("select new option:,z); answer = console. readline().
16、 toupper ();switch(answer)case a :console. write(/zenter name of the new car: “); car name = console. readlineo ;console. write (''enter car speed parameter of the new car: “); speedparam = convert. totnt32(console. readline(); gamecarscarcounter = new car (speedparam, carname); carcounter+;
17、break;八case c :console .write("enter array index of car you want to subscribe to events: “);carnumber = convert. toint32(console.readli ne (); gamecarscarnumber. subscribe (this);break;case u :con sole wri te ("enter array in dex of car you wa nt to unsubscribe from events: “);carnumber =
18、convert. tolnt32 (c on sole- readlineo); gamecarscarnumber. unsubscribe(this);break;t case l :for(int i=0; i < carcounter; i+)console- writeline(gamecarsi);break;厂case 卜:if (onmoverequest != nul1) onmoverequest (this, newmoverequesteventargs(moverequesttype fastforward);break;case s :if (onmovere
19、quest != null) onmoverequest(this, newmoverequesteventargs(moverequesttype. slowforward);break;门case r :if (onmoverequest != null)onmoverequest(this, new moverequesteventargs(moverequesttype. reverse);break;fcase t :break;default:console.writeline("invalid choice please try again); break; while
20、(answer != "t");class carprivate int distance;private int speedparam;private string name;public car(int initspeedparam, string initname)speedparam = initspeedparam;distance = 0;name 二 initname;public voicl subscribe(gamecontroller controller)controller. onmovcrcqucst +二 new gamecontroller
21、moverequest (moverequesthandler);publi c voi d unsubscribe(gamecontrol1 er control 1 er)controller onmoverequest -二 new gamecontroller moverequest(moverequesthandler);public void moverequesthandler(object sender, moverequesteventargs e)swi tch (e. request)case moverequesttype slowforward:distance +二
22、 speedparam;console. writeline(,?car name: " + name + " moving slowly. distance: "+ distance);break;case moverequesttype. fastforward:distance +二 speedparam * 2;consolewriteline("car name: " + name + " moving fast distanee: "+ distance);break;case moverequesttype.r
23、everse:distance 一二 5;con sole. writ eline (z,car name: " + n ame + reversi ng. dis tance:" + distanee);break;publ ic override string tostringoreturn name;class testerpublic static void main()gamecontroller control 1 er = new gamecontroller(); controller. run();实验六数组编程练习【实验目的】1. 了解数组的概念,掌握数组的声明、初始化方式;2. 熟练拿握for each语句的川法,理解params关键字的使川;4. 掌握数组转换方法的使用;5. 理解索引器的概念,掌握在整数索引和在字符串上索引的应用;【实验要求】1. 调试程序,要给出测试数据和实验结果。2. 整理上机步骤,总结经验和体会。3. 完成实验日志和上交程序。【实验内容】数组和循环语句的结合应用程序功能要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上海政法学院招聘1人(第二批)建设考试参考题库及答案解析
- 2026湖北武汉市汉口学院航空与智能制造学院院长招聘1人建设考试参考试题及答案解析
- 2026河北雄安人才服务有限公司招聘投资审计专业技术人员3人建设考试参考题库及答案解析
- 中泰证券2026届春季校园招聘建设考试参考题库及答案解析
- 2026浙江宁波市文化馆招聘编外人员1人建设笔试备考试题及答案解析
- 2026江西丰城建工集团招聘安全员、材料员12人建设笔试参考题库及答案解析
- 2026福建三明市教育局华东师范大学附属三明中学招聘专业技术人员7人(福建师范大学专场)建设考试备考题库及答案解析
- 2026河南郑州高新区外国语实验小学意杨校区教师招聘建设考试参考试题及答案解析
- 2026云南安宁化工厂有限公司校园招聘5人建设笔试模拟试题及答案解析
- 2026年上海市吴泾中学度编外及实习教师招聘建设考试备考试题及答案解析
- 河南08定额及综合解释
- DB2201T49-2023站用储气瓶组定期检验规范
- 第2章 Spring Boot核心配置与注解
- 船舶能耗填写范本
- 乐理的基础知识
- 现当代诗歌发展脉络精讲课件
- 网络传播法规(自考14339)复习必备题库(含答案)
- 2023年考研考博-考博英语-中国海洋大学考试历年真题摘选含答案解析
- 中考语文名著阅读-艾青诗选及水浒传
- JJF 1793-2020海水营养盐测量仪校准规范
- GB/T 4851-2014胶粘带持粘性的试验方法
评论
0/150
提交评论