2016-教学大纲-《面向对象程序设计实验》_第1页
2016-教学大纲-《面向对象程序设计实验》_第2页
2016-教学大纲-《面向对象程序设计实验》_第3页
2016-教学大纲-《面向对象程序设计实验》_第4页
2016-教学大纲-《面向对象程序设计实验》_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计实验面向对象程序设计实验 课程教学大纲课程教学大纲 课程名称课程名称课程编号课程编号课程类别课程类别编制者编制者编制日期编制日期 面向对象程序设计实验1920085选修车建华2016 02 第一次实验 第一次实验 VisualVisual StudioStudio 6 06 0 和和 20082008 开发环境 开发环境 C C 程序结构熟悉程序结构熟悉 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 熟悉 Visual Studio 6 0 和 2008 两种开发环境 2 掌握 Visual Studio 6 0 和 2008 两种开发环境的基本操作命令 相应菜单项和快捷键 3 了解 C 程序的基本结构 4 掌握 C 程序的编辑 编译 调试和运行的方法 4 4 实验内容实验内容 实验题目实验题目 1 1 计算器程序开发 计算器程序开发 1 程序功能简介 实现计算器的功能 用户根据程序提示 输入数字 选择要进行的 运算 可以进行加 减 乘 除 平方 求模 求方根等运算 2 程序设计要求 完善计算器程序 可以对实数操作 完善计算器程序 可以对多个操作数进行基本四则运算 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 针对加 减 乘 除 平方 求模 求方根操作 每个设计一 个 函数实现相应功能 设计一个函数 实现四则混合运算 设计测试函数 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 八皇后问题 八皇后问题 1 程序功能简介 解决八皇后问题的程序 2 程序设计要求 增加函数 每输入一组解 暂停屏幕 显示 按任意键继续 完善程序 编程计算八皇后问题共有几种排列方案 增加输入 显示在第一个皇后确定后 共有几组排列 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 八皇后问题是一个古老而著名的问题 是回溯算法的典型例题 该问题是 19 世纪著名的数学家高斯 1850 年提出 在 8 8 格的 国际象棋上摆放 8 个皇后 使其不能相互共计 即任意两个皇 后 都不能处于同一行 同一列或同一斜线上 问有多少种摆法 当指示用户输入第一个皇后的位置时 行列数必须为 0 7 区间 内的整数 只要计算出第一个皇后放在任意相同列 0 7 行 8 种位置的排列 总数即为八皇后问题的全部排列方案数目 4 撰写实验报告 参考实验报告模板 附加实验题目 附加实验题目 1 输出 100 以内的所有素数 2 输入 5 个字符串 按英文字典排序 由小到大顺序输出 3 求 1 20 的阶乘之和 第二次实验 第二次实验 C C 新增特性的验证新增特性的验证 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 熟练 C 语言相对于 C 语言新增的主要特性 包括 C 语言的输入 输出 名字空间 作用域运算符 引用类型 const 修饰符和内联 函数以及带默认参数的函数等 2 了解上述新增特性的内部实现机理 3 掌握上述新增特性的编程技巧 4 4 实验内容实验内容 实验题目实验题目 1 1 newnew 与与 deletedelete 的应用练习的应用练习 1 程序功能简介 从堆内存中获取一个整型数组 赋值后打印出来 2 程序设计要求 用 new 来分配数组的内存空间 并有内存空间分配成功与否的 检查机制 用 delete 来释放数组的内存空间 数组的大小由用户动态输入 3 程序设计说明 先编写代码实现用户输入数组的大小 根据用户输入的数组大小去动态分配内存空间 并加以验证 打印输出数组内容 并释放数组内存空间 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 引用类型的使用 引用类型的使用 1 程序功能简介 编写程序 练习引用类型的各种使用方法 2 程序设计要求 应用类型变量的简单使用 包括引用类型变量的定义 初始化 和使用 引用类型变量地址的打印输出 引用类型变量作为函数参数进行述职交换 返回局部作用域内的变量 函数作为左值 3 程序设计说明 参考教材例 2 5 见 P23 参考教材例 2 6 见 P24 参考教材例 2 7 见 P25 参考教材例 2 9 见 P26 4 撰写实验报告 参考实验报告模板 实验题目实验题目 3 3 字符串类和内联函数的使用 字符串类和内联函数的使用 1 程序功能简介 编写程序 练习字符串类和内联函数的使用方法 2 程序设计要求 利用字符串类 string 创建对象并进行相关处理 完成一个函数的内联实现 并与外联实现方式进行对比 3 程序设计说明 参考教材例 2 10 见 P28 参考教材例 2 11 见 P30 4 撰写实验报告 参考实验报告模板 第三次实验 第三次实验 利用数组和单链表实现矩阵的处理利用数组和单链表实现矩阵的处理 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 复习数组 单链表等数据结构的基础知识 2 设计矩阵的数组和单链表数据结构 并编程实现 3 掌握利用数组 单链表实现 n n 矩阵的存储 转置 旋转反射 数乘等操作的方法 4 4 实验内容实验内容 实验题目实验题目 1 1 矩阵旋转反射和转置 矩阵旋转反射和转置 1 程序功能简介 根据矩阵处理的数据知识 编程实现矩阵旋转反射和转置程序 2 程序设计要求 实现 n n 矩阵的旋转反射和转置 其中 n 为用户输入的任意整 数 先采用数组来表示矩阵 再采用单链表来表示矩阵 分别实现 两种数据结构下的矩阵旋转反射和转置程序 并比较两种数据结构的程 序实现难易程度 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 矩阵旋转反射和转置的数据原理相对简单 主要是解决矩阵的 表示 可以采用数组和单链表两种方式 先采用数组来表示矩阵 实现相应旋转反射和转置程序 再采用单链表来表示矩阵 相应矩阵的旋转反射和转置操作变 得简单 只要按一定的算法改变链表中节点的次序即可 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 矩阵的数乘 矩阵的数乘 1 程序功能简介 根据矩阵处理的数据知识 编程实现矩阵的数乘程序 2 程序设计要求 实现 n n 矩阵的数乘 其中 n 为用户输入的任意整数 先采用数组来表示矩阵 再采用单链表来表示矩阵 分别实现 两种数据结构下的矩阵数乘 并比较两种数据结构的程序实现难易程度 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 矩阵数乘的数据原理相对简单 主要是解决矩阵的表示 可以 采用数组和单链表两种方式 先采用数组来表示矩阵 实现相应矩阵数乘程序 再采用单链表来表示矩阵 相应矩阵的数乘操作变得简单 4 撰写实验报告 参考实验报告模板 第四次实验 第四次实验 类 对象的创建及使用类 对象的创建及使用 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 熟悉类的声明 包括数据成员和成员函数的类型声明 2 熟悉类的定义 包括数据成员和成员函数的定义 初始化 3 掌握类的使用方法 对象的创建方式 4 4 实验内容实验内容 实验题目实验题目 1 1 类成员的声明和定义形式 类成员的声明和定义形式 1 程序功能简介 编程实现一个类的构造函数和析构函数的声明和定义 2 程序设计要求 注意类的数据成员和成员函数的声明和定义方式 注意类的数据成员和成员函数的访问权限问题 3 程序设计说明 在头文件中声明类 在程序文件中定义类的成员函数 参考教材例 3 1 见 P42 例 3 2 见 P45 例 3 3 见 P46 例 3 4 见 P48 例 3 5 见 P48 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 构造函数和析构函数的声明和定义 构造函数和析构函数的声明和定义 1 程序功能简介 编程实现一个类的构造函数和析构函数的声明和定义 2 程序设计要求 练习构造函数 带默认参数的构造函数 默认构造函数 重载 构造函数和拷贝构造函数的声明和定义 练习析构函数的声明和定义以及调用顺序 3 程序设计说明 参考教材例 3 6 见 P50 例 3 7 见 P51 例 3 8 见 P53 例 3 9 见 P53 例 3 12 见 P58 例 3 13 见 P60 例 3 14 见 P62 参考教材例 3 15 见 P50 例 3 16 见 P64 例 3 17 见 P65 4 撰写实验报告 参考实验报告模板 实验题目实验题目 3 3 指向类成员的指针 指向类成员的指针 1 程序功能简介 编程练习三种指向类成员的指针 2 程序设计要求 编程练习类外指向类内的指针变量 编程练习类外指向类内成员函数的指针数据 编程练习类外指向类内静态成员的指针 3 程序设计说明 参考教材例 3 22 见 P74 例 3 23 见 P75 4 撰写实验报告 参考实验报告模板 第五次实验 第五次实验 基于类 对象的程序设计基于类 对象的程序设计 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 练习类的声明和定义 包括数据成员 成员函数的声明和定义 2 练习类的使用方法 对象的创建方式 3 掌握基于类和对象进行程序设计的关键步骤 4 4 实验内容实验内容 实验题目实验题目 1 1 矩阵旋转反射和转置 矩阵旋转反射和转置 1 程序功能简介 根据矩阵处理的数据知识 编程实现矩阵旋转反射和转置程序 2 程序设计要求 实现 n n 矩阵的旋转反射和转置 其中 n 为用户输入的任意整 数 先采用数组来表示矩阵 再采用单链表来表示矩阵 分别实现 两种数据结构下的矩阵旋转反射和转置程序 并比较两种数据结构的程 序实现难易程度 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 矩阵旋转反射和转置的数据原理相对简单 主要是解决矩阵的 表示 可以采用数组和单链表两种方式 先采用数组来表示矩阵 实现相应旋转反射和转置程序 再采用单链表来表示矩阵 相应矩阵的旋转反射和转置操作变 得简单 只要按一定的算法改变链表中节点的次序即可 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 矩阵的数乘 矩阵的数乘 1 程序功能简介 根据矩阵处理的数据知识 编程实现矩阵的数乘程序 2 程序设计要求 实现 n n 矩阵的数乘 其中 n 为用户输入的任意整数 先采用数组来表示矩阵 再采用单链表来表示矩阵 分别实现 两种数据结构下的矩阵数乘 并比较两种数据结构的程序实现难易程度 生成相应可执行程序 并提交实验报告和可执行程序 3 程序设计说明 矩阵数乘的数据原理相对简单 主要是解决矩阵的表示 可以 采用数组和单链表两种方式 先采用数组来表示矩阵 实现相应矩阵数乘程序 再采用单链表来表示矩阵 相应矩阵的数乘操作变得简单 4 撰写实验报告 参考实验报告模板 第六次实验 第六次实验 友元机制的练习友元机制的练习 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 了解友元函数 友元成员以及友元类的主要作用 2 理解友元函数 友元成员以及友元类的机制原理 3 掌握友元函数 友元成员以及友元类的声明 定义和使用方法 4 4 实验内容实验内容 实验题目实验题目 1 1 友元函数的声明 定义和使用 友元函数的声明 定义和使用 1 程序功能简介 编程实现一个类的友元函数的声明 定义和使用代码 2 程序设计要求 采用声明和定义分开的方式实现一个类的友元函数 通过调用友元函数 实现对一个类内所有访问权限的成员进行 访问 验证友元机制 3 程序设计说明 参考教材例 4 2 见 P86 例 4 3 见 P86 例 4 4 见 P87 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 友元成员和友元类的声明 定义和使用 友元成员和友元类的声明 定义和使用 1 程序功能简介 编程实现一个类的友元成员和友元类的声明 定义和使用代码 2 程序设计要求 采用声明和定义分开的方式实现一个类的友元成员和友元类 通过调用友元成员以及友元类的对象 实现对一个类内所有访 问权限的成员进行访问 验证友元机制 3 程序设计说明 参考教材例 4 5 见 P91 例 4 6 见 P92 例 4 7 见 P93 4 撰写实验报告 参考实验报告模板 第七次实验 第七次实验 单继承与派生机制验证单继承与派生机制验证 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 熟悉单继承的基本机制 包括派生类的声明方式 基类成员的访问 权限 派生类的功能实现等 2 熟悉派生类的使用方法和对象的创建方式 包括派生类 对象成员 基类三者的对象初始化顺序及构造函数的编写要求 派生类对象的 应用等 4 4 实验内容实验内容 实验题目实验题目 1 1 类继承方式的验证 类继承方式的验证 1 程序功能简介 编程实现一个类的各种继承方式 包括公有继承 保护继承和私有 继承以及相应的声明 定义 使用和基类成员访问权限的区别 2 程序设计要求 编写两个类 一个类作为基类 另一个类作为子类 公有继承 私有继承和保护继承三种继承方式均验证到 3 程序设计说明 参考教材例 5 1 见 P101 例 5 2 见 P103 例 5 3 见 P104 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 派生类的构造函数和析构函数 派生类的构造函数和析构函数 1 程序功能简介 编程实现派生类和基类的构造函数和析构函数的调用 初始化顺序 以及成员覆盖的验证代码 2 程序设计要求 编写两个类 一个类作为基类 另一个类作为子类 对基类和派生类的构造函数和析构函数进行调用 初始化顺序 以及成员覆盖机制均需验证 3 程序设计说明 参考教材例 5 4 见 P106 例 5 5 见 P107 例 5 6 见 P108 例 5 7 见 P109 4 撰写实验报告 参考实验报告模板 第八次实验 第八次实验 单继承与派生程序设计单继承与派生程序设计 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 掌握单继承的基本机制 包括派生时的声明方式 基类成员的访问 权限 派生类的功能实现等 2 掌握派生类的使用方法和对象的创建方式 包括派生类 对象成员 基类三者的对象初始化顺序及构造函数的编写要求 派生类对象的 应用等 4 4 实验内容实验内容 实验实验 1 1 班级学生学期成绩管理系统 班级学生学期成绩管理系统 1 程序功能简介 灵活运用类的继承 对象成员等机制 设计一个能够实现班级学生 学期成绩管理的程序 2 程序设计说明 个人信息类 CPerson 的数据成员有姓名 年龄 性别 角色等 成员函数根据需要自行设计 课程类 CCourse 的数据成员有课程名 学分 成绩 成员函数 根据需要自行设计 学生类 CStudent 从 CPerson 派生 并增加数据成员学号 CCourse 对象成员数组 大小为 8 总成绩 总学分和平均成绩 班级类 CClass 的数据成员有 CStudent 对象成员数组 大小由 构造函数确定 班号 班级人数等 3 程序设计要求 本班级类 CClass 的对象成员数组需要在构造函数中用 new 动态 分配内存空间 在析构函数中释放 在 CClass 中田间成员函数 Seek 通过学号查找并输出该学生的全部信息 构造三个学生的数据 每个学生都有三门课程成绩 输出并显 示这些数据 根据类的需要添加适当的其它成员 编写完整的程序并测试 4 撰写实验报告 参考实验报告模板 第九次实验 第九次实验 多继承与虚基类机制验证多继承与虚基类机制验证 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 了解多继承和虚基类的基本概念以及产生二义性的原因 2 理解作用域规则 支配规则和赋值兼容规则的内涵 3 掌握多继承和派生类 初始化基类成员 定义虚基类的方法 4 4 实验内容实验内容 实验题目实验题目 1 1 多继承与虚基类的程序验证 多继承与虚基类的程序验证 1 程序功能简介 编程实现类的多继承 虚基类的机制验证 重现多继承所产生的两 种二义性情形及其解决方案 2 程序设计要求 至少编写四个类 一个类作为公共基类 两个类作为该公共基 类的子类 第四个类作为上述两个子类的共同派生类 在公共基类和中间两个子类中 添加同名的成员 并在子类中 进行访问 体现多继承所产生的二义性问题 3 程序设计说明 参考教材例 5 9 见 P116 例 5 10 见 P116 例 5 11 见 P117 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 函数模板和类模板的使用 函数模板和类模板的使用 1 程序功能简介 编程实现函数模板和类模板 使之能够体现函数模板和类模板的功 能机制 2 程序设计要求 编写出函数模板和类模板框架 包括声明和定义方式 根据所创建的函数模板和类模板 实例化出相应的模板函数和 模板类 编写测试函数进行验证 3 程序设计说明 参考教材例 5 12 见 P120 例 5 13 见 P121 4 撰写实验报告 参考实验报告模板 第十次实验 第十次实验 多继承与虚基类程序设计多继承与虚基类程序设计 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 掌握多重继承和派生类的方法 2 掌握初始化基类成员的方法 3 掌握定义虚基类的方法 4 4 实验内容与步骤实验内容与步骤 实验题目实验题目 1 1 1 程序功能简介 定义一个日期 年 月 日 的类和一个时间 时 分 秒 的类 并由这两个类派生出日期和时间类 主函数完成基类和派生类的测试工 作 2 程序设计说明 定义一个描述日期的类 构造函数完成年 月 日的初始化 包含一个重新设置日期的成员函数 一个获取日期的成员函数 该类可 定义为 class Date int Year Month Day 分别存放年 月 日 public Date int y 0 int m 0 int d 0 Year y Month m Day d void SetDate int int int void GetDate char 函数 SetDate 完成数据成员的赋初值 函数 GetDate 要将整数 年 月 日变换成字符串后 存放到参数所指向的字符串中 把一个整 数变换成字符串可通过库函数 char itoa int a char s int b 来实现 参数 a 为要变换的整数 b 为数制的基数 如 10 表示将 a 转 换为对应的十进制的字符串 转换的结果存放到 s 所指向的字符串中 函数返回变换后字符串的首指针 该成员函数可以是 void Date GetDate char s char t 20 itoa Year s 10 将年变换为字符串表示 strcat s 年 月 日之间用 隔开 itoa Month t 10 将月变换为字符串表示 strcat s t 将年 月字符串拼接 trcat s itoa Day t 10 strcat s t 将年 月 日拼接成一个字符串 定义描述时间的类与描述日期的类类同 然后用这二个类作为 基类 公有派生出描述日期和时间的类 3 程序设计要求 将类 DateTime 改为由基类 Date 和 Time 私有派生 程序能否正确 编译和执行 为什么 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 1 程序功能简介 设计一个描述儿童 成人和老人的类 儿童分为学龄前和学龄期儿 童 成人有工作 老人已退休 提取共性作为基类 并派生出满足要求 的各个类及每一个类上的操作 设计一个完整的程序 并完成测试程序 的正确性 2 程序设计说明 描述一个人的基本特性包括 姓名 出生日期 出生地 把这些基 本特性定义为一个基类 Base 不论学龄前还是学龄期儿童都要有监护 人 为此在类 Base 的基础上派生出类 AllChil 再把类 AllChil 作为 基类派出学龄前和学龄期儿童的类 把类 Base 作为基类 分别派生出 成人类和老人类 3 程序设计要求 完成程序的正确性测试工作 4 撰写实验报告 参考实验报告模板 附加实验题目 附加实验题目 设计程序从学生类中派生出硕士研究生和博士研究生类 第十一次实验 第十一次实验 多态与重载之运算符重载和虚函数实验验证多态与重载之运算符重载和虚函数实验验证 1 1 学时学时 2 课时 2 2 实验类型实验类型 验证性实验 3 3 实验目的实验目的 1 了解 C 类多态性的本质 2 理解 C 编译时多态性的实现方式 函数和运算符重载 3 理解 C 运行时多态性的实现方式 虚函数 4 掌握常见运算符重载和虚函数的实现方法 4 4 实验内容与步骤实验内容与步骤 实验题目实验题目 1 1 常见运算符的重载 常见运算符的重载 1 程序功能简介 编写程序 利用成员函数或友元函数实现常见运算符的重载 2 程序设计要求 选择成员函数或友元函数两种方式中合适的方法 实现 前缀 后缀 等运算符的重载 编写主函数代码测试所重载的运算符 3 程序设计说明 参考教材例 6 1 见 P136 例 6 2 见 P137 例 6 3 见 P141 例 6 4 见 P142 例 6 5 见 P144 例 6 6 见 P145 例 6 7 见 P147 例 6 8 见 P148 例 6 9 见 P149 例 6 10 见 P151 例 6 11 见 P151 例 6 12 见 P153 例 6 13 见 P154 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 虚函数 纯虚函数和抽象类的声明 定义和使用 虚函数 纯虚函数和抽象类的声明 定义和使用 1 程序功能简介 编写程序实现虚函数 纯虚函数和抽象类的声明 定义和使用 2 程序设计要求 实现虚函数 纯虚函数和抽象类的声明和定义 编写主函数代码测试所实现的虚函数 纯虚函数和抽象类 3 程序设计说明 参考教材例 6 14 见 P155 例 6 15 见 P158 例 6 16 见 P159 例 6 18 见 P165 例 6 19 见 P166 6 14 见 P155 例 6 15 见 P158 例 6 16 见 P159 例 6 18 见 P165 例 6 19 见 P166 例 6 20 见 P168 4 撰写实验报告 参考实验报告模板 实验题目实验题目 3 3 虚析构函数的使用 虚析构函数的使用 1 程序功能简介 编写程序实现虚析构函数的声明 定义和使用 2 程序设计要求 实现虚析构函数的声明和定义 编写主函数代码测试所实现的虚析构函数 3 程序设计说明 参考教材例 6 21 见 P170 4 撰写实验报告 参考实验报告模板 第十二次实验 第十二次实验 多态与重载之运算符重载程序设计多态与重载之运算符重载程序设计 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 理解 C 类多态性的本质 2 掌握运算符重载的实现方法 3 积累复杂程序设计 编写 调试和测试的经验 4 4 实验内容与步骤实验内容与步骤 实验题目实验题目 1 1 时间和日期 时间和日期 1 程序功能简介 定义一个日期 年 月 日 的类和一个时间 时 分 秒 的类 并由这两个类派生出日期时间类 可以设置时间和日期并得到是星期几 可以比较日期 时间的大小 可以进行两个日期 或天数 时间 小 时或分钟 的相加和相减 主函数完成基类和派生类的测试工作 2 程序设计要求 在日期类 CDate 中添加成员函数重载运算符 如得到新日期 应考虑闰年处理 在日期类 CDate 中添加成员函数重载运算符 如得到新日期 应考虑闰年处理 在时间类 CTime 中添加成员函数重载运算符 应考虑时间对象 加上分钟后可能得到新日期 在时间类 CTime 中添加成员函数重载运算符 应考虑时间对象 加上分钟后可能得到新日期 时间类和日期类的多种格式输入和输出 比如 12 24 小时制等 测试所有类的成员函数 时间类和日期类的初始化 具体值的 设置 比较大小等功能 3 程序设计说明 定义一个描述日期的类 构造函数完成年 月 日的初始化 包含重新设置日期 获取日期 比较日期大小和进行日期加减的成员函 数 该类定义形式可以参考 class CDate int Year Month Day 分别存放年 月 日 static int format 用于确定采用哪种格式显示日期 enum WeekName Monday Tuesday Wensday Thursday Friday Saturday Sunday enum January February Mars April May June July August September October November December public CDate CDate const CDate Month m Day d void SetDate int int int void GetDate char inline void SetYear int y inline void SetMonth int m inline void SetDay int d inline void GetYear int y inline void GetMonth int m inline void GetDay int d void ShowDate char GetWeekNameofDate const CDate char GetMonthNameofDate const CDate bool IsLeapYear int year bool operator const CDate bool operator const CDate bool operator const CDate bool operator const CDate bool operator const CDate const CDate operator const CDate const CDate operator const CDate void operator void operator friend ostream 定义一个描述时间的类 构造函数完成小时 分钟的初始化 包含重新设置时间 获取时间 比较时间大小和进行时间加减的成员函 数 该类定义形式可以参考 class CTime int Hour Minute Second 分别存放时 分 秒 static int format 用于确定采用哪种制式显示时间 public CTime CTime const CDate Minute m Second s void SetTime int int int void GetTime char inline void SetHour int h inline void SetMinute int m inline void SetSecond int s inline void GetHour int h inline void GetMinute int m inline void GetSecond int s void ShowTime bool operator const CTime bool operator const CTime bool operator const CTime bool operator const CTime bool operator const CTime const CTime operator const CTime const CTime operator const CTime void operator void operator friend ostream 观察上述两个类的设计结构 对于一些相同的功能函数 能否 利用第三个类实现两个类共同功能代码的复用 即设计一个管理类 CManager 将 CDate 和 CTime 两个类的相关代码提取到 CManager 类中 4 撰写实验报告 参考实验报告模板 第十三次实验 第十三次实验 多态与重载之虚函数与纯虚函数程序设计多态与重载之虚函数与纯虚函数程序设计 1 1 学时学时 2 课时 2 2 实验类型实验类型 设计性实验 3 3 实验目的实验目的 1 理解 C 类多态性的本质 2 掌握虚函数和纯虚函数的使用方法 3 积累复杂程序设计 编写 调试和测试的经验 4 4 实验内容与步骤实验内容与步骤 实验题目实验题目 1 1 虚函数的使用 虚函数的使用 1 程序功能简介 利用异质链表实现不同类的存储和操作 可应用于学生 教师和员 工等教学工作的处理 2 程序设计要求 定义学生 教师和员工以及链表四个类 用链表存放前三个不 同类的对象 链表类可以访问这些类的私有成员 以能对三个类进行处理 主函数完成基类和派生类的测试工作 注意纯虚函数 抽象类 和具体类的声明 定义和使用细节 3 程序设计说明 定义 CStudent CTeacher 和 CStaff 三个类 以及一个 CList 类 CList 类用来存放三个不同类的对象 将 CList 类声明为所有这些类的友元 使其可以访问这些类的 私有成员 主函数完成基类和派生类的测试工作 4 撰写实验报告 参考实验报告模板 实验题目实验题目 2 2 纯虚函数的使用 纯虚函数的使用 1 程序功能简介 定义一个形状类 抽象类 以及一个普通成员函数 用来重设形状 大小 两个纯虚成员函数 周长计算和面积计算函数 利用该类及其 派生类实现圆形 三角形 矩形和梯形等图形的周长和面积的计算 主 函数完成基类和派生类的测试工作 2 程序设计要求 定义一个形状类 CShape 抽象类 并添加一个普通成员函数 用来重设形状大小 重载成员 SetData 两个纯虚成员函数 周 长计算 Perimeter 和面积计算函数 Area 仔细考虑数据成员有哪些 分别放到哪些类 包括基类 子类 等 中 注意 纯虚函数 抽象类和具体类的声明 定义和使用细节 3 程序设计说明 定义一个形状类 CShape 抽象类 并添加一个普通成员函数 用来重设形状大小 重载成员函数 SetData 两个纯虚成员函 数 周长计算函数 Perimeter 和面积计算函数 Area 由 CShape 派生出一个圆形类 CCircle 类 进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论