《2023年实验二面向对象程序设计.doc》由会员分享,可在线阅读,更多相关《2023年实验二面向对象程序设计.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验二、面向对象程序设计 2.1 C#面向对象程序设计(一)一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。2.掌握类对象的定义。3.了解类的封装方法,以及如何创建类和对象。4.了解成员变量和成员方法的特性。5.掌握静态成员的用法。二、实验规定1. 分析程序,上机验证结果。2. 写出程序,并调试程序,要给出测试数据和实验结果。3. 整理上机环节,总结经验和体会。4. 完毕实验日记和上交程序。三、实验内容题目一:程序分析(1)分析下面两个程序,拟定那个程序好,说明理由。程序规定:定义一个圆类,计算圆的面积和周长。程序1:public class circlepublic static
2、 void Main()double radium, delimeter, square;const double pai = 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:public class circledouble delimeter, square
3、;const double pai = 3.1415926;public void calculate(double rad)delimeter = 2 * pai * rad;square = pai * pai * rad;Console.WriteLine(delimeter=0,square=1,delimeter,square);public static void Main()double radium;circle cir = new circle();radium = Convert.ToInt32(Console.ReadLine();cir.calculate(radium
4、);Console.ReadLine();(2)分析程序,写出程序的运营结果,并上机进行验证。Using System;public class studentsstring id,name;int age;public students(string id,string name,int age )this.id = id;this.name = name;this.age = age;public void Display()Console.WriteLine(id=0,name=1,age=2,id,name,age);public static void Main()/string i
5、d, name;/int age;students stu = new students(0001,zhangsan,16);stu.Display();Console.ReadLine();(3)分析程序,写出程序的运营结果,并上机进行验证。public class Dateprivate int Year, Month, Day;public Date(int Year, int Month,int Day)this.Year=Year;this.Month=Month;this.Day=Day;public Date(System.DateTime dt)Year = dt.Year;M
6、onth = dt.Month;Day = dt.Day;public void DisplayDate()Console.WriteLine(0年1月2日,Year,Month,Day);public class Testerpublic static void Main()System.DateTime currentTime=System.DateTime.Now;Date dt=new Date(2023,7,18);dt.DisplayDate();Date dt2 = new Date(currentTime);dt2.DisplayDate();Console.ReadLine(
7、);题目二:程序编写(1) 实现一个包含类属性方法的简朴加法程序,并能显示结果。(2) 实现一个Person类,规定:属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。2.2 C#面向对象程序设计(二)一、实验目的1. 掌握构造函数和析构函数的含义与作用、定义方式和实现,可以根据规定对的定义和重载构造函数。可以根据给定的规定定义类并实现类的成员函数。2. 理解类的成员的访问控制的含义,公有、私有和保护成员的区别。3. 掌握参数传递的用法。4. 掌握属性的作用和使用。二、实验规定1. 分析程序,上机验证结果。2. 写出程序,并调试程序,要给出测试数据和实验结果。3. 整理上机环节,总
8、结经验和体会。4. 完毕实验日记和上交程序。三、实验内容题目一:程序分析(1) 分析程序,写出程序的运营结果,并上机进行验证,然后回答后面问题。public class BankAccountstatic int totalAccountNumber=0;string BankAccountId;double initialDepositAmount = 0.00;public BankAccount(string myId)this.BankAccountId = myId;this.initialDepositAmount = 0.00;totalAccountNumber+;public
9、 void displayid()Console.WriteLine(mbaid=0,initialDepositAmount=1,this.BankAccountId,this.initialDepositAmount);public static void display()Console.WriteLine(totalAccountNumber=0, totalAccountNumber);public class Testerpublic static void Main()BankAccount mba = new BankAccount(37000001);BankAccount
10、mba2 = new BankAccount(3700002);BankAccount mba3 = new BankAccount();BankAccount mba4 = new BankAccount(3700004);/ Console.WriteLine(mba2ID=0, mba2.BankAccountId);mba2.displayid();BankAccount.display();Console.ReadLine();请回答问题:(1)按你自己的算法修改以上程序,比如可只输出生成的账户数。(2)把注释去掉后会如何,为什么?(3)为什么display 用类名直接引用,可以用对
11、象来引用么?尝试输出结果。(4)类的静态变量和非静态变量的引用区别。判断一下语句的对的性:静态方法只能使用静态变量,不能使用实例变量。由于对象实例化之前,实例变量不可用。这个观点真确么?()类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。()对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。()题目二:程序编写1. 编写一个传值调用的程序。程序功能规定:程序一方面给整型变量x 和y 赋初值3,5,然后使用传值调用方式调用方法对x 和y 做乘方并及输出x 和y 的乘方值,最后输出x和y得值。再将此方法给为对象调用加ref修饰查看输出结果差异。【思考题】1 方法的参数传递
12、有哪些方式?区别时什么?2. 什么是构造方法。2.3 2.1 C#面向对象程序设计(三)一、实验目的1.掌握继承的工作机制和意义。2.掌握派生类的定义方法和实现。3.掌握base关键字的使用。4. 编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序。二、实验规定1. 写出程序,并调试程序,要给出测试数据和实验结果。2. 整理上机环节,总结经验和体会。3. 完毕实验日记和上交程序。三、实验内容1.进一步理解继承的含义新类可从现有的类中产生,并保存现有类的成员变量和方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。当建立一个新类时,不必写出所有成员变量和
13、成员方法。只要简朴地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的所有成员。被继承的类称为父类或超类(superclass),这个新类称为子类。2. 进一步理解继承的意义C# 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能解决实际问题的类,假如你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。题目一:类的继承和基类构造方法的应用程序功能规定如下:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。规定将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。题目二:类的继承和构造函数的灵活应用编写一个程序计算出球、圆柱和圆锥的表面积和体积。规定:定义一个基类圆,至少具有一个数据成员半径;定义基类的派生类球、圆柱、圆锥,都具有求体积函数,可以都在构造函数中实现,也可以将求体积和输出写在一个函数中,或者写在两个函数中,请比较使用。定义主函数,求球、圆柱、圆锥的和体积。
限制150内