实验二面向对象程序设计.docx

上传人:b****5 文档编号:10164050 上传时间:2023-02-09 格式:DOCX 页数:8 大小:17.29KB
下载 相关 举报
实验二面向对象程序设计.docx_第1页
第1页 / 共8页
实验二面向对象程序设计.docx_第2页
第2页 / 共8页
实验二面向对象程序设计.docx_第3页
第3页 / 共8页
实验二面向对象程序设计.docx_第4页
第4页 / 共8页
实验二面向对象程序设计.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

实验二面向对象程序设计.docx

《实验二面向对象程序设计.docx》由会员分享,可在线阅读,更多相关《实验二面向对象程序设计.docx(8页珍藏版)》请在冰豆网上搜索。

实验二面向对象程序设计.docx

实验二面向对象程序设计

实验二、面向对象程序设计

2.1C#面向对象程序设计

(一)

一、实验目的

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:

publicclasscircle

{

doubledelimeter,square;

constdoublepai=3.1415926;

publicvoidcalculate(doublerad)

{

delimeter=2*pai*rad;

square=pai*pai*rad;

Console.WriteLine("delimeter={0},square={1}",delimeter,square);

}

publicstaticvoidMain()

{

doubleradium;

circlecir=newcircle();

radium=Convert.ToInt32(Console.ReadLine());

cir.calculate(radium);

Console.ReadLine();

}

}

(2)分析程序,写出程序的运行结果,并上机进行验证。

UsingSystem;

publicclassstudents

{

stringid,name;

intage;

publicstudents(stringid,stringname,intage)

{

this.id=id;

this.name=name;

this.age=age;

}

publicvoidDisplay()

{

Console.WriteLine("id={0},name={1},age={2}",id,name,age);

}

publicstaticvoidMain()

{

//stringid,name;

//intage;

studentsstu=newstudents("0001","zhangsan",16);

stu.Display();

Console.ReadLine();

}

}

(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()

{

Console.WriteLine("{0}年{1}月{2}日",Year,Month,Day);

}

}

publicclassTester

{

publicstaticvoidMain()

{

System.DateTimecurrentTime=System.DateTime.Now;

Datedt=newDate(,7,18);

dt.DisplayDate();

Datedt2=newDate(currentTime);

dt2.DisplayDate();

Console.ReadLine();

}

}

题目二:

程序编写

(1)实现一个包含类属性方法的简单加法程序,并能显示结果。

(2)实现一个Person类,要求:

属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。

 

2.2C#面向对象程序设计

(二)

一、实验目的

1.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数。

2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别。

3.掌握参数传递的用法。

4.掌握属性的作用和使用。

二、实验要求

1.分析程序,上机验证结果。

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

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

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

三、实验内容

题目一:

程序分析

(1)分析程序,写出程序的运行结果,并上机进行验证,然后回答后面问题。

publicclassBankAccount

{

staticinttotalAccountNumber=0;

stringBankAccountId;

doubleinitialDepositAmount=0.00;

publicBankAccount(stringmyId)

{

this.BankAccountId=myId;

this.initialDepositAmount=0.00;

totalAccountNumber++;

}

publicvoiddisplayid()

{

Console.WriteLine("mbaid={0},initialDepositAmount={1}",this.BankAccountId,this.initialDepositAmount);

}

publicstaticvoiddisplay()

{

Console.WriteLine("totalAccountNumber={0}",totalAccountNumber);

}

}

publicclassTester

{

publicstaticvoidMain()

{

BankAccountmba=newBankAccount("37000001");

BankAccountmba2=newBankAccount("3700002");

BankAccountmba3=newBankAccount("");

BankAccountmba4=newBankAccount("3700004");

//Console.WriteLine("mba2ID={0}",mba2.BankAccountId);

mba2.displayid();

BankAccount.display();

Console.ReadLine();

}

}

请回答问题:

(1)按你自己的算法修改以上程序,比如可只输出生成的账户数。

(2)把注释去掉后会怎样,为什么?

(3)为什么display用类名直接引用,能够用对象来引用么?

尝试输出结果。

(4)类的静态变量和非静态变量的引用区别。

判断一下语句的正确性:

静态方法只能使用静态变量,不能使用实例变量。

因为对象实例化之前,实例变量不可用。

这个观点真确么?

()

类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。

()

对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。

()

题目二:

程序编写

1.编写一个传值调用的程序。

程序功能要求:

程序首先给整型变量x和y赋初值3,5,然后使用传值调用方式调用方法对x和y做乘方并及输出x和y的乘方值,最后输出x和y得值。

再将此方法给为对象调用加ref修饰查看输出结果差异。

【思考题】

1.方法的参数传递有哪些方式?

区别时什么?

2.什么是构造方法。

2.32.1C#面向对象程序设计(三)

一、实验目的

1.掌握继承的工作机制和意义。

2.掌握派生类的定义方法和实现。

3.掌握base关键字的使用。

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

二、实验要求

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

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

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

三、实验内容

1.进一步理解继承的含义

新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。

新类还可添加新的变量和方法。

这种现象就称为类的继承。

当建立一个新类时,不必写出全部成员变量和成员方法。

只要简单地声明这个类是从一个已定义的类继承下来的,就能够引用被继承类的全部成员。

被继承的类称为父类或超类(superclass),这个新类称为子类。

2.进一步理解继承的意义

C#提供了一个庞大的类库让开发人员继承和使用。

设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。

你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。

因此,一般要对子类进行扩展,即添加新的属性和方法。

这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。

继承的意义就在于此。

题目一:

类的继承和基类构造方法的应用

程序功能要求如下:

编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。

要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。

题目二:

类的继承和构造函数的灵活应用

编写一个程序计算出球、圆柱和圆锥的表面积和体积。

要求:

定义一个基类圆,至少含有一个数据成员半径;定义基类的派生类球、圆柱、圆锥,都含有求体积函数,能够都在构造函数中实现,也能够将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。

定义主函数,求球、圆柱、圆锥的和体积。

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

当前位置:首页 > 农林牧渔 > 林学

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

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