资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
第 4 章 面向对象的编程基础实验 1 题目:创建一个描述图书信息的类并测试。类中应保存有图书的书号、标题、作者、出版社、价格等信息。 实验目的:1) 熟悉类的定义和使用。2) 掌握创建对象的方法。3) 掌握只读字段的声明及使用。4) 学习定义和使用带参数构造函数。5) 熟悉访问权限控制符。6) 掌握属性的定义和使用。7) 掌握关键字 this。实验步骤:1) 定义图书类 Book,Book 类中包含 isbn(书号)、title(标题) 、author(作者)、press(出版社) 、price(价格)等私有字段。由于对一本书来说,书号是唯一的,因此,isbn 字段应声明为只读的。2) 为 Book 类中的每个字段定义相应的属性,由于 isbn 字段只读的,其相应属性也应该是只读的。3) 为 Book 类定义两个构造函数,其中,一个构造函数将所有字段都初始化为用户指定的值,另一个构造函数只要求用户指定有关书号的信息,它将调用上一个构造函数初始化对象,初始化时,价格取 0,除书号的其他信息取“未知” 。4) 为 Book 类定义方法 Show,Show 方法用于显示图书的所有信息。5) 编写 Main 方法测试 Book 类,Main 方法中分别使用上述两个构造函数创建 Book 对象。参考答案:using System;class Bookprivate readonly string isbn; /书号private string title; /标题private string author; /作者private string press; /出版社private int price; /价格public Book(string isbn) : this(isbn, 未知, 未知, 未知, 0) public Book(string isbn, string title, string author, string press, int price)this.isbn = isbn;this.title = title; this.author = author;this.press = press;this.price = price;public string ISBNget return isbn; public string Titleget return title; set title = value; public string Authorget return author; set author = value; public string Pressget return press; set press = value; public int Priceget return price; set price = value; public void Show()Console.WriteLine(书号: 0, isbn);Console.WriteLine(标题: 0, title);Console.WriteLine(作者: 0, author);Console.WriteLine(出版社:0, press);Console.WriteLine(价格: 0, price);class Programstatic void Main()Book book1 = new Book(978-7-111-23423-4);book1.Show();Console.WriteLine(); book1.Title = C#程序设计(C#2.0版);book1.Author = 刘慧宁;book1.Press = 机械工业出版社;book1.Price = 32;book1.Show();Console.WriteLine();book1 = new Book(978-7-302-15800-4, Java程序设计, 温秀梅, 清华大学出版社, 29);book1.Show();Console.ReadLine();运行结果如下:实验 2 DLL 文件实验题目:在特定的命名空间中定义一个类,类中仅包含一个非 Main 方法,在该方法被调用时,打印出信息表明其被调用;在另一个命名空间中定义一个类,并在该类的 Main 方法中调用前一个命名空间中类的方法。实验目的:1) 理解命名空间和程序集的概念。2) 掌握 DLL 文件的创建过程。3) 掌握命名空间的创建和使用。4) 熟悉访问权限控制符。实验方法 1:A 类和 B 类不在同一个项目中实验步骤:1) 创建类库,并在命名空间 Test1 中定义类 A,A 类中包含一个方法 Mehtod,该方法中有一条语句打印字符串“调用 A 类的 Method 方法” ,为了保证 A 类及 Method 方法可以在其他程序集中使用,它们都应该声明为公共的。将该类库生成 DLL 动态链接库文件2) 创建控制台应用程序,在命名空间 Test2 中定义类 B,并在 B 类的 Main 方法中调用前面定义的 A 类的 Method 方法。3) 项目中添加对已有类库项目的引用4) 同时使用 using 类库名;实验方法 2:A 类和 B 类在同一个项目中1) 建立两个独立的源文件,分别将 A 类定义在命名空间 Test1 中,Main 方法定义在 B 类中并包含在命名空间 Test2 中2) 直接在 B 类使用 A 类前包含对 A 类所在的命名空间的引用 using Test1;参考答案:/Test1.csusing System;namespace Test1public class Apublic void Method()Console.WriteLine(调用A类的Method方法);/Test2.csusing System;using Test1; /注意要包含引用namespace Test2class Bstatic void Main()A a = new A();a.Method();Console.ReadLine(); 运行结果如下图:实验 3: 求两个整数集合的并集和交集实验要求:整数集合是由多个不同的整数构成的。两个集合的并集是由属于两个集合的全体元素构成的(但集合中不能有重复元素) ,两个集合的交集是由两个集合中都存在的所有元素构成的。请定义类 Set,求两个整数集合的并集和交集并验证。编程时,集合的元素保存在一个一维数组中。实验目的:1) 学会声明和创建数组。2) 掌握数组的初始化方法。3) 理解数组的传递过程。4) 理解数组中元素的存储方式。5) 熟悉 System.Array 类。6) 掌握 foreach 语句的使用。7) 掌握类的定义和使用方法实验步骤:1) 定义 Set 类,类 Set 中包含两个私有 int 型数组字段 a、b,用于保存两个待求并集和交集的整数集合。2) 在类 Set 中定义构造函数,用于初始化字段 a、b,用于初始化的值由构造函数的两个数组参数传入。3) 在类 Set 中定义公共方法 SetAndSet,求字段 a、b 的并集,计算结果由返回值返回。该返回值的类型是一个 int 型数组。由于一个集合中不能有重复元素,因此,不妨在类 Set 中定义一个私有方法 InA,判断数组 a 中是否存在某个元素,在需要时可以直接调用该方法。4) 在类 Set 中定义公共方法 SetIntersection,求字段 a、b 的交集,计算结果由返回值返回,该返回值的类型进一个 int 型数组。5) 定义一个 Test 类,在类 Test 中定义 Main 方法测试 Set 类的功能。参考答案:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 集合class Programstatic void Main(string args)/定义数组并对它们静态初始化。int a = 1, 2, 4, 6, 8, 10 ;int b = 1, 2, 4, 8, 16, 32 ;Set set = new Set(a, b);int c1 = set.SetAndSet(); /通过方法调用分别求得两数组的并集int c2 = set.SetIntersection(); /通过方法分别求得两数组的与交集.Console.WriteLine(集合A:); PrintArray(a);Console.WriteLine(集合B: ); PrintArray(b);Console.WriteLine(集合A与B的并集: ); PrintArray(c1);Console.WriteLine(集合A与B的交集: ); PrintArray(c2);Console.ReadLine(); /为了方便起见在下面进行数组遍历的时候定义一个遍历的方法。public static void PrintArray(Array myArr)foreach (Object i in myArr) Console.Write( 0, i);Console.WriteLine(); /回车换行。class Setprivate int a, b;public Set(int a, int b) this.a = a; this.b = b; private bool InA(int element)/判断element元素是否在集合a中/利用foreach来遍历数组foreach (int e in a) if (e = element) return true;return false;/求两集合的并集的方法public int SetAndSet()/定义一个新数组array用来存放数组b与数组a中存在不相同的元素int array = new intb.Length;int index = -1;foreach (int e in b)if (!InA(e)index+;arrayindex = e;/定义一个新数组用来存放数组a与数组b的并集int c = new inta.Length + index + 1;/把数组a的元素全部拷贝到新数组c中。Array.Copy(a, c, a.Length);/把数组a与数组b相同的元素拷贝到新数组c
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号