




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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 Book private 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 ISBN get return isbn; public string Title get return title; set title = value; public string Author get return author; set author = value; public string Press get return press; set press = value; public int Price get 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 Program static 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 Test1 public class A public void Method() Console.WriteLine(调用A类的Method方法); /Test2.csusing System;using Test1; /注意要包含引用namespace Test2 class B static 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 Program static 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 Set private 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中。注意: Array.Copy(array, 0, c, a.Length, index + 1); return c; /定义求两数组的交集的方法 public int SetIntersection() /定义一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南省社会科学院(湖南省人民政府发展研究中心)招聘高层次人才14人模拟试卷及1套参考答案详解
- 2025河北科技工程职业技术大学选聘52人考前自测高频考点模拟试题及完整答案详解1套
- 2025年商标许可使用合同5篇
- 2025广西来宾市忻城县政府投资审计中心招聘见习生2人考前自测高频考点模拟试题(含答案详解)
- 2025年上海大学公开招聘岗位(第二批)模拟试卷及参考答案详解一套
- 2025昆明市盘龙区汇承中学招聘教师(12人)模拟试卷及答案详解(易错题)
- 2025贵州天柱县第二季度(第一次)招聘8个全日制城镇公益性岗位模拟试卷含答案详解
- 2025广东省农业科学院设施农业研究所招聘劳动合同制人员1人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025届特发集团春季校园招聘模拟试卷及1套完整答案详解
- 2025年威海市水产学校公开招聘教师(7人)模拟试卷及答案详解(全优)
- 2025年初级药师资格考试试题(附答案)
- 2025广东云浮市检察机关招聘劳动合同制司法辅助人员17人备考考试题库附答案解析
- 人工智能与建筑产业体系智能化升级研究报告
- 包覆拉拔法制备铜包铝、铜包钢双金属导线的多维度探究与展望
- 大气的受热过程教学课件
- 茶叶农药知识培训课件
- 【2025秋季新修订教材】统编语文三上第六单元《19 香港璀璨的明珠》公开课一等奖创新教学设计
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 人教版数学二年级上册第一单元 分类与整 理 综合素养测评A卷(含答案)
- 2025版煤矿安全生产标准化管理体系考试题及答案(采煤部分)
- 油田冬季八防安全经验分享
评论
0/150
提交评论