C#程序设计:面向对象进阶与Coursescore类实现

需积分: 9 2 下载量 7 浏览量 更新于2024-09-17 收藏 144KB DOC 举报
本资源是关于C#编程基础的学习材料,重点关注面向对象编程中的类定义、数据成员管理和索引操作。实验内容涉及使用Hashtable数据结构,创建名为Coursescore的类来存储学生姓名、课程编号及对应分数,并创建一个CoursescoreIndex类作为索引来存取和查询这些数据。此外,还要求学习者理解ArrayList的工作原理,并实现一个通用的排序方法。 在C#编程中,类是面向对象编程的基础,它定义了对象的结构和行为。在本实验中,`Coursescore` 类被声明用来表示学生课程成绩,包含三个数据成员:学生的姓名(Name)、课程的编号(CourseID)以及该门课程的分数(Score)。这样的设计允许我们创建多个`Coursescore` 对象来存储不同学生在不同课程的成绩。 `CoursescoreIndex` 类是为了解决存取和查询`Coursescore` 对象而设计的。它使用ArrayList作为内部数据结构,通过索引来快速访问数据。`CoursescoreIndex` 类实现了索引器(indexer),使得可以通过键值对(学生的姓名和课程编号)直接访问和设置分数。例如,`csi["张三", 1] = 90;` 将为学生"张三"的课程编号为1的课程设置分数为90。索引器的`get` 方法用于查询,遍历ArrayList直到找到匹配的`Coursescore` 对象并返回其分数;`set` 方法则用于添加新的`Coursescore` 对象或更新已存在的分数。 实验还涉及对ArrayList的理解,它是一个动态数组,可以容纳任意类型的对象。在`CoursescoreIndex` 类中,ArrayList用于存储`Coursescore` 对象实例。 另外,实验要求将三个不同的排序方法(按标题、作者和总价值)改写成一个通用方法`sort(Card[] book, int[] index, int method)`,通过新增的`method` 参数来指示按哪个字段进行排序。这展示了方法重载和参数化编程的概念,提高了代码的复用性。 这个实验旨在深化对C#中类的使用、面向对象编程概念的理解,以及如何利用数据结构如ArrayList和Hashtable进行数据管理。同时,也强调了代码的可读性和效率,通过重构代码实现更灵活的排序功能。