C程序设计总实习报告Word文件下载.doc

上传人:wj 文档编号:3630290 上传时间:2023-05-02 格式:DOC 页数:62 大小:880.96KB
下载 相关 举报
C程序设计总实习报告Word文件下载.doc_第1页
第1页 / 共62页
C程序设计总实习报告Word文件下载.doc_第2页
第2页 / 共62页
C程序设计总实习报告Word文件下载.doc_第3页
第3页 / 共62页
C程序设计总实习报告Word文件下载.doc_第4页
第4页 / 共62页
C程序设计总实习报告Word文件下载.doc_第5页
第5页 / 共62页
C程序设计总实习报告Word文件下载.doc_第6页
第6页 / 共62页
C程序设计总实习报告Word文件下载.doc_第7页
第7页 / 共62页
C程序设计总实习报告Word文件下载.doc_第8页
第8页 / 共62页
C程序设计总实习报告Word文件下载.doc_第9页
第9页 / 共62页
C程序设计总实习报告Word文件下载.doc_第10页
第10页 / 共62页
C程序设计总实习报告Word文件下载.doc_第11页
第11页 / 共62页
C程序设计总实习报告Word文件下载.doc_第12页
第12页 / 共62页
C程序设计总实习报告Word文件下载.doc_第13页
第13页 / 共62页
C程序设计总实习报告Word文件下载.doc_第14页
第14页 / 共62页
C程序设计总实习报告Word文件下载.doc_第15页
第15页 / 共62页
C程序设计总实习报告Word文件下载.doc_第16页
第16页 / 共62页
C程序设计总实习报告Word文件下载.doc_第17页
第17页 / 共62页
C程序设计总实习报告Word文件下载.doc_第18页
第18页 / 共62页
C程序设计总实习报告Word文件下载.doc_第19页
第19页 / 共62页
C程序设计总实习报告Word文件下载.doc_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序设计总实习报告Word文件下载.doc

《C程序设计总实习报告Word文件下载.doc》由会员分享,可在线阅读,更多相关《C程序设计总实习报告Word文件下载.doc(62页珍藏版)》请在冰点文库上搜索。

C程序设计总实习报告Word文件下载.doc

派生类Teacher除了包含基类的name和age字段,还包括自己的TeacherID字段,并使用关键字override来重写方法GetInfo()显示教师信息(显示name、age和TeacherID的值)。

运行效果如图所示。

3.创建抽象类基类Shape和派生类Rectangle、Circle、Square。

利用多态性实现Area(计算面积)和Show(显示图形名称和面积)抽象方法。

具体要求如下:

l抽象类Shape中有字段name(名称)及两个抽象方法Show(显示名称及面积)、Area(面积)。

l派生类Rectangle(矩形)中有字段weigh(宽度)、height(高度)及两个覆盖方法Show(显示名称及面积)、Area(计算矩形的面积)。

l派生类Circle(圆)中有字段radius(半径)及两个覆盖方法Show(显示名称及面积)、Area(计算圆的面积)。

l派生类Square(正方形)中有字段weigh(边长)及两个覆盖方法Show(显示名称及面积)、Area(计算正方形的面积)。

实验数据记录及分析(或程序及运行结果)

1

namespaceConsoleApplication1

{

classProgram

{

publicclassParent

{publicParent(){}

publicvoidMethodA()

{

Console.WriteLine("

调用MethodA()"

);

}

}

publicclassChild:

Parent

{publicChild(){}

publicvoidMethodB()

{Console.WriteLine("

调用MethodB()"

}

classTest

{

staticvoidMain()

{ParentoParent=newParent();

oParent.MethodA();

ChildoChild=newChild();

oChild.MethodB();

oChild.MethodA();

ParentoParent1=(Parent)oChild;

Console.ReadLine();

ChildoChild1=(Child)oParent1;

oChild1.MethodB();

oChild1.MethodA();

Console.ReadKey();

}

}}

2

namespaceConsoleApplication2

publicclassPerson

publicstringname;

publicuintage;

publicPerson(stringname,uintage)

{

this.name=name;

this.age=age;

publicvirtualvoidGetInfo()

Console.WriteLine("

Name:

{0}"

name);

Age:

age);

publicclassTeacher:

Person

publicstringteacherID;

publicTeacher(stringname,uintage,stringid)

:

base(name,age)

this.teacherID=id;

;

publicoverridevoidGetInfo()

base.GetInfo();

TeacherID:

teacherID);

publicclassTestPersonTeacher

staticvoidMain(string[]args)

Teacherobjteacher=newTeacher("

Mr.Yu"

40,"

1990108001"

objteacher.GetInfo();

Console.ReadKey();

}

3

publicabstractclassShape

publicstringname;

publicShape(stringname)

this.name=name;

publicabstractdoubleArea();

publicabstractvoidShow();

publicclassRectangle:

Shape

publicintweight,height;

publicRectangle(intweight1,intheight1,stringname):

base(name)

weight=weight1;

height=height1;

publicoverridevoidShow()

Console.WriteLine("

Rectangle:

{0},Area:

{1}"

name,weight*height);

publicoverridedoubleArea()

returnweight*height;

publicclassCircle:

publicintradius;

publicCircle(intr,stringid)

:

base(id)

radius=r;

name,radius*radius*System.Math.PI);

returnradius*radius*System.Math.PI;

publicclassSquare:

publicintweight;

publicSquare(intweight1,stringid)

name,weight*weight);

returnweight*weight;

classTest

staticvoidMain()

Shapeshapes1=newRectangle(2,1,"

小矩形"

Shapeshapes2=newCircle(5,"

大圆"

Shapeshapes3=newSquare(2,"

中正方形"

shapes1.Show();

shapes2.Show();

shapes3.Show();

Console.ReadKey();

评语:

日期:

年月日

实验二:

抽象类、抽象方法、密封类、密封方法

1.掌握抽象类的定义方法。

2.掌握抽象方法的调用方法。

3.了解密封类、密封方法的使用。

1.运行课本例8.6,仔细理解抽象方法的定义及调用方法。

注:

此题不必给出程序代码,只需给出运行结果,并写出抽象方法的定义要点。

2.定义一个车辆(Vehicle)基类;

然后以该类为基类,派生出bicycle、car等类,并编程对该派生类的功能进行验证。

l类Vehicle有三个字段:

Speed、MaxSpeed、Weight。

类Vehicle有一个构造函数,其功能是通过参数设置字段Speed、MaxSpeed、Weight的值。

l为派生类bicycle添加一个新字段Price,并设计构造函数,在构造函数中通过参数设置字段Speed、MaxSpeed、Weight、Price的值。

并在验证时调用这些该构造函数,测试用例:

Speed=10、MaxSpeed=30、Weight=20000、Price=1000。

l为派生类car添加一个新字段Price,并设计构造函数,在构造函数中通过参数设置字段Speed、MaxSpeed、Weight、Price的值。

Speed=60、MaxSpeed=150、Weight=3000000、Price=100000。

lVehicle有两个虚方法Run和Stop。

Run方法显示“一辆车在马路上奔驰。

”,Stop方法显示“一辆车在马路上停了下来。

”。

l派生类bicycle的Run方法显示“一辆自行车在马路上奔驰。

”,Stop方法显示“一辆自行车在马路上停了下来。

l派生类car的Run方法显示“一辆汽车在马路上奔驰。

”,Stop方法显示“一辆汽车在马路上停了下来。

l对派生类的功能进行验证。

提示:

验证bicycle类的代码可如下所示:

验证结果类似下图:

3.现要将第2题中Vehicle的虚方法Run和Stop改为抽象方法,应该怎样修改?

请写出修改后的类Vehicle的定义。

4.写出下面程序的运行结果并分析其原因。

抽象类中通过将关键字abstract添加到实例方法的返回类型的前面可以定义抽象方法。

抽象方法声明引入一个新的虚方法,但不提供该方法的任何实际实现,所以抽象方法的方法体只由一个分好组成,而不是常规的方法块。

非抽象类的派生类必须重写抽象方法以提供它们自己的实现。

虽然抽象方法同时隐含为虚方法,但是它不能有virtual修饰符。

只允许在抽象类中使用抽象方法声明

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

publicclassVehicle

publicdoublespeed;

publicdoublemaxspeed;

publicdoubleweight;

publicVehicle(doublespeed,doublemaxspeed,doubleweight)

this.speed=speed;

this.maxspeed=maxspeed;

this.weight=weight;

publicvirtualstringrun()

return"

一辆车在马路上奔驰"

publicvirtualstringstop()

一辆车在马路上停了下来"

publicclassBicycle:

Vehicle

publicdoublebicycleprice;

publicBicycle(doublespeed,doublemaxspeed,doubleweight,doubleprice)

base(speed,maxspeed,weight)

this.bicycleprice=price;

publicoverridestringrun()

一辆自行车在马路上奔驰"

publicoverridestringstop()

一辆自行车在马路上停了下来"

publicabstractclassVehicle

publicabstractvoidrun()

{}

publicabstractvoidstop()

4

a.F()A.F父类A的F方法

b.F()B.F子类B的F方法

a.G()B.G子类B把父类A的G方法覆盖了所以用B的G方法

b.G()B.G子类B的G方法

实验三:

接口

掌握接口的声明、实现方法,能够通过接口实现简单系统功能的组织。

1.运行课本例8.8,仔细理解接口的定义及实现方法。

此题不必给出程序代码,只需给出运行结果,并写出①接口的定义与实现要点;

②什么是显式接口实现,在何种情况下使用显式接口实现。

2.声明一个接口ICDPlayer,包含4个接口方法:

Play()、Stop()、NextTrack()和PreviousTrack(),以及一个只读属性CurrentTrack。

创建类CDPlayer实现该接口,模拟CD的播放、停止、下一音轨、上一音轨的操作。

3.接口的实现

(1)定义接口IShow,其中含有Show方法;

(2)定义类Voice,含有voice_method方法;

(3)定义PC和TV两个类,同时继承Voice类和IShow接口,并分别重写Show

(4)在主程序中调用所实现的方法,对该派生类的功能进行验证。

一个接口定义一个。

接口本身不提供它所定义的成员的实现,只指定实现该的类或结构必须提供的成员,继承接口的任何非抽象类型都必须实现接口的所有成员。

接口类似于抽象基类,不能不能实例化。

接口中声明的成员隐式地为public何abstract。

接口可以包含事件,索引器,方法和属性,但不包含字段。

虽然C#类不支持基类的多重继承,但类和结构可以多个接口继承,接口自身可以从多个接口继承。

②在某种情况下,实现类实现两个以上的接口,且这些接口具有相同成员名称。

为了区分具体实现哪个接口的哪个成员,可以采用显式接口实现,即在实现的成员前面加上接口的限定符,为每个接口成员提供一个实现。

classProgram

publicinterfaceICDPlayer

voidPlay();

voidStop();

voidNextTrack();

voidPreviousTrack();

intCurrentTrack

get;

publicclassCDPlayer:

ICDPlayer

privateintcurrentTrack=0;

publicvoidPlay()

启动CD"

publicvoidStop()

停止CD"

publicvoidPreviousTrack()

前一个音轨ì

..."

if(currentTrack>

=1)

currentTrack--;

publicvoidNextTrack()

后一个音轨..."

currentTrack++;

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2