C++实验教案
实验一熟悉实验环境
一、实验目的
1)了解和使用VC++集成开发环境;
2)熟悉VC++环境的基本命令和功能键;
3)学习完整的C++程序开发过程;
4)理解简单的C++程序结构;
5)学习C++程序基本的输入输出操作。
二、实验内容及要求
1)控制台应用程序:在终端上输出“Hello”(printf);
2)Windows应用程序:在窗口上输出“Hello”(pDC->TextOut(50,50,“Hello”))。
三、实验重点
1)C、C++、VC++三者之间的关系;
2)项目与源文件的区别;
3)控制台应用程序与Windows应用程序的区别。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
在一个项目中可有几个main()函数?如何调试多个源程序?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验二基本I/O程序设计
一、实验目的
1)掌握C++中预定义数据类型的输入/输出;
2)掌握const关键字的常用使用方法。
二、实验内容及要求
1)编写程序,从键盘上输入三个十进制整数,然后在屏幕上输出其相对应的十六进制和八进制表示;
2)编写程序,在屏幕上输出如下九九乘法表。
9*1=1 9*2=18 ... ... 9*9=81
8*1=8 8*2=16 …… 8*8=64
7*1=7 7*2=14 ……. 7*7=49
……
1*1=1
三、实验重点
1)C++中输入多个数的分隔控制;
2)C++中输出换行语法表示。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
九九乘法表的其他样式表示输出?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验三函数
一、实验目的
学习C++中内置函数、默认参数的定义与调用方法;
学习C++中函数重载的使用方法。
二、实验内容及要求
编写一个sum内联函数,能返回二个整数的和,其二个参数都为默认参数,然后由主函数进行调用;
编写二个add函数,分别可对int与char类型进行加法操作,其中针对char类型的加法操作可视为连接操作,如add(‘x’,’y’)的返回值为”xy”。。
三、实验重点
函数的重载;
默认参数的定义次序。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
函数重载调用时的判断依据是什么?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验四动态内存分配
一、实验目的
1)学习内存的动态分配与释放方法;
2)学习作用域运算符的功能与基本使用方法
3)学习引用的使用方法。
二、实验内容及要求
1)编写程序,声明同名变量,利用作用域运算符在不同代码处分别对其进行操作,并在屏幕输出结果;
2)编写程序,利用new和delete操作符为数组分配空间,从键盘上接收十个整数,然后输出在屏幕上,最后释放数组空间;
3)编写函数swap,其参数为引用类型,对二个整数进行交换。
三、实验重点
1)引用与指针的关系;
2)C++中的内存操作方式。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
利用new操作符进行内存操作时,需要注意什么?引用在作为函数参数和返回值时的作用。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验五类与对象
一、实验目的
1)学习类与对象的定义和声明;
2)掌握类与对象的使用方法;
3)学习数据成员与成员函数的访问方式。
二、实验内容及要求
1)编程实现一个student类,管理一个学生的基本信息,包括学生姓名、学号、语文成绩、数学成绩、英语成绩、平均成绩等数据成员,然后在main函数中,从键盘输入得到一个学生的基本信息,最后输出所有数据成员值到屏幕上;
2)要求使用成员函数的方式实现对姓名、学号的读写操作、语数英三科成绩的写操作、平均成绩的读操作。
三、实验重点
1)类与实例的关系;
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
为什么要采用成员函数对数据成员进行读写操作,而不是直接操作?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验六构造函数与析构函数
一、实验目的
1)理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。
二、实验内容及要求
1)在实验五的student类基础上实现二个构造函数,一个可根据姓名、学号、语、数、英成绩来构造一个学生对象,另一个则可根据姓名、学号来构造一个学生对象,并同时设置语、数、英成绩为零;
2)在构造函数与析构函数中要加入体现对象构造和析构过程的屏幕输出代码。
三、实验重点
2)构造函数的重载,默认构造函数的使用;
3)构造函数与析构函数的执行过程,以及类定义与类使用的次序。
四、实验步骤
2)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
构造函数与默认构造函数的关系。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验七对象数组与对象指针
一、实验目的
1)掌握数组与指针的定义与使用方法;
2)理解数组与指针的存储分配与表示;
3)学习向函数传递数组的方法;
4)学习用指针和引用向函数传递参数。
二、实验内容及要求
1)在实验五的student类基础上,实现一个Sum函数,可将一个student类数组作为参数传送到函数中,计算出语、数、英的总分,并输出在屏幕上;
2)要求Sum函数中的参数传送分别用普通、指针和引用三种方式实现。
三、实验重点
1)直接传送、引用传送、指针传送三种方式的区别,分别对参数值的影响;
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
对象数组和对象指针与普通对象和普通指针的关系。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验八静态成员与友元
一、实验目的
1)学习友元的使用;
2)学习静态数据成员和静态成员函数的使用。
二、实验内容及要求
1)在实验五的student类基础上,加一个静态数据成员Count,用于保存当前所有student对象的数量,然后在类中实现一个count成员函数,可计算出学生的总数,并输出在屏幕上;
2)为student声明一个友元类com,该类包含一个sum函数,计算出所有学生的语、数、英的总分,并输出在屏幕上。
三、实验重点
友元的访问特性;
静态数据成员的特点。
四、实验步骤
2)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
静态成员函数与静态数据成员相比,有什么特点?友元函数、友元成员函数、友元类的关系。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验九派生类与继承
一、实验目的
1)学习类的的继承,能够定义和使用类的继承关系;
2)学习派生类的声明与定义方法;
3)熟悉公有派生和私有派生的访问特性。
二、实验内容及要求
在实验五的student类基础上,定义小学生、中学生、大学生三个继承类;
小学生类增加“年级”数据成员及读写函数,实现全部信息的屏幕输出;
中学生类增加“文理科”数据成员及读写函数,实现全部信息的屏幕输出;
大学生类增加“专业”数据成员及读写函数,实现全部信息的屏幕输出。
三、实验重点
Private和public派生方式对基类数据成员的可见性。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
为什么要派生类?类继承的好处是什么?派生类的构造/析构函数执行次序。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十虚基类
一、实验目的
1)学习虚函数的定义与使用方法。
二、实验内容及要求
1)定义base1、base2、base3、derived四个类,其中base2和base3继承自base1,derived 类继承自base2和base3二个类;
2)使用虚基类和作用域运算符二种方法来访问base1类中的数据成员。
三、实验重点
1)C++解决二义性中虚基类的使用。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
什么叫二义性?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十一函数和运算符重载
一、实验目的
1)掌握运算符重载的基本方法。
二、实验内容及要求
在实验五student类的基础上重载“= =”运算符,判断二个student对象是否相等;
在实验五student类的基础上重载“>”运算符,判断二个student对象的成绩关系。
三、实验重点
1)运算符重载的语法规则。
四、实验步骤
2)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
函数与运算符的关系。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十二虚函数
一、实验目的
1)学习虚函数的定义与使用方法;
2)掌握使用虚函数和继承实现动态多态性的方法。
二、实验内容及要求
1)定义一个类BaseDraw,该类中有一个Draw函数;
2)定义一个类Rect,继承自BaseDraw,重载Draw函数;
3)定义一个类Cir,继承自BaseDraw,重载Draw函数;
4)用各类对象指针调用各类对象的Draw函数,体会继承中的多态性。
三、实验重点
1)继承中的多态性与虚函数多态性。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
继承中的多态性与虚函数多态性的区别是什么?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十三函数模板
一、实验目的
1)理解模板的作用;
2)学习函数模板及其声明和生成方法;
3)学习函数模板的异常情形处理方法。
二、实验内容及要求
1)定义函数模板实现对int型数组和double型数组的累加。
三、实验重点
1)函数模板的语法规则;。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
函数模板的应用场景是什么?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十四类模板
一、实验目的
1)理解模板的作用;
2)学习类模板的声明与使用方法。
二、实验内容及要求
1)定义类模板实现对student类的操作,在main函数中实现对int年级(例:1)和char年级(例:大一)的屏幕输出功能。
三、实验重点
1)类模板的语法规则。
四、实验步骤
2)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
类模板的应用场景是什么?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十五自定义类型I/O
一、实验目的
1)熟悉流及流类库的作用;
2)掌握流类库中常用的类及其成员函数的使用方法。
二、实验内容及要求
1)在实验五student类的基础上,重载“>>”和“<<”运算符。
三、实验重点
1)自定义类型的I/O运算符重载。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
在自定义类型上重载“>>”和“<<”运算符的用途。
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社
实验十六文件I/O
一、实验目的
1)学习I/O基本方法及其格式控制;
2)学习文本文件和二进制文件的输入输出方法。
二、实验内容及要求
1)在实验五student类的基础上,加入将信息保存到硬盘中的student.txt文本文件的功能;
2)以后每次运行时,都先读取该文件中的学生信息并显示给用户,然后由用户从键盘输入新学生的基本信息。
三、实验重点
1)文本文件的读写方法。
四、实验步骤
1)进入VC+;2)编写程序;3)调试程序;4)分析结果。
五、实验环境
Windows 2000、VC++ 6.0
六、思考题
如何实现文本文件的定位读写?
七、实验报告要求
1)实验名称、日期;2)姓名、班级、学号;3)源代码需有注释;4)实验结果;5)心得体会。
八、参考书籍
《C++面向对象程序设计习题解析与上机指导》,陈维兴等,清华大学出版社