1、面向对象程序设计实验教学大纲课程总学时:64 学分:4 实验学时:16 实验个数: 6 个 实验学分:1 分课程性质:专业必修课 适用专业:计算机类专业教材及参考书:C+语言程序设计(第四版) ,郑莉、董渊编著,北京:清华大学出版社,2011大纲执笔人: 大纲审定人:一、实验课的性质与任务本课程实验大纲是面向计算机专业学生开设的C+程序设计实验课计划指导大纲,是依据面向对象程序设计课程教学计划指导大纲编制。本课程主要讲述了利用 C+进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本实验大纲力求结合该课程教学计划大纲的相应内容,由浅入深的指导
2、学生了解和掌握如何利用 C+程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。二、实验目的与要求1实验目的通过本课程的学习,使学生掌握面向过程的程序设计思想和编程思路,初步掌握面向对象的程序设计思想,学会调试程序,能独立编写实用的小型程序。2实验要求(1) 学生应该自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯;(2) 应独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序,学生应事先设计好程序。三、实验项目及内容提要面向对象程序设计实验课程 (071016)实验
3、类型序号实验编号实验名称 学时 必做 选做学分数基本操作验证综合设计内容提要1 1 类与对象 4 函数重载,类的设计与使用2 2C+程序的结构 2 作用域与生存期,静态成员3 3数组、指针与字符串 4 三种常见编程元素的使用4 4 继承与派生 2 派生类的设计与使用5 5 多态性 2 运算符重载、动态多态6 6 模板和文件 2 模板,异常处理机制的设计四、实验内容安排:实验一 类与对象( 设计性实验 4 学时)1. 目的要求:1) 掌握类的定义和使用;掌握类对象的声明;练习具有不同访问属性的成员的访问方式;观察构造函数和析构函数的执行过程;2) 学习类组合使用方法;3) 使用 VC+的 deb
4、ug 调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。2. 实验内容:1) 编写重载函数 Max1 可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。#include using namespace std;int Max1(int a,int b)/两个整形求最大值int c;c=(ab)?a:b;coutb)?a:b;coutb)?(ac)?a:c):(bc)?b:c);coutb)?(ac)?a:c):(bc)?b:c);coutusing namespace std;swap(int void main()int a;coutusing nam
5、espace std;class CPUpublic:int run();int stop();CPU(int frequency1,float voltage1)coutusing namespace std;class CPUpublic:int run();int stop();CPU( int frequency1,float voltage1):frequency(frequency1),voltage(voltage1)coutfrequency;coutvoltage;CPU a(frequency,voltage);4) 定义一个简单的 Computer 类,有数据成员芯片(c
6、pu)、内存(ram) 、光驱(cdrom) 等等,有两个公有成员函数 run、stop。cpu 为 CPU 类的一个对象,ram 为 RAM 类的一个对象,cdrom 为 CDROM 类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,观察组合类和内嵌类的构造函数和析构函数的调用顺序。#includeusing namespace std;class CPUpublic:CPU()coutusing namespace std;class Aint a;public:A(int a1=0)a=a1;A(A int getA()return a;A:A(A void main()A
7、a(2);coutusing namespace std;class CLIENTpublic:static void ChangeServerName()/静态函数 ChangeServerName()改变服务器名称coutServerName;cout“n“endl;cout“now the ServerName:ServerName=“ServerNameendl;private:static char ServerName;/字符型静态数据成员 ServerName,保存其服务器名称static int ClientNum;/整型静态数据成员 ClientNum,记录已定义的客户数量;char CLIENT:ServerName=t;int CLIENT:ClientNum=0;void main()CLIENT A;CLIENT:ChangeServerName();