}
private:
};
2、声明一个基类Currency,其中含有protected类型的数据成员Japan和Europe,分别代表日元、欧元对美元的汇率。
成员函数set()用来设置两个数据成员的初始值,定义print_exchang()为纯虚函数。
声明类Ja和Eur分别为Currency的派生类,其成员函数print_exchange()分别用来计算10000日元和100欧元兑换多少美元。
按照惯例,汇率的表示方式是:
1美元兑换日元116.30,1欧元兑换美元1.1634(116.30和1.1634要在set()中存入Japan和Europe中)。
3、给定如下抽象类:
classshape{
protected:
doubler;
public:
shape(doublex){r=x;}
virtualvoidarea()=0;
virtualvoidperimeter()=0;
};
(1)以shape类为基类,派生一个circle圆形类、一个in_square圆的内接正方形类、一个ex_square圆的外接正方形类,在派生类中对shape类中求面积和周长的纯虚函数进行重载。
(2)对类进行实例化,输出运算结果
4、给定单向链表类List,要求以List类为基类建立两种类型的表:
队列(先进先出)与堆栈(先进后出),请编写程序实现队列与堆栈的存储和读取操作,编写一个测试程序,演示类的功能。
classList{
public:
List()
{
head=NULL;
tail=NULL;
next=NULL;
}
virtualvoidstore(inti)=0;//存储数据
virtualintretrieve()=0;//读取数据
List*next;//指向表的下一项
intnum;//用于存储节点数据
protected:
List*head;//指向表头
List*tail;//指向表尾
};
六、思考与练习
1、编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。
2、编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1)定义一个基类圆,至少含有一个数据成员半径;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。
(3)定义主函数,求球、圆柱、圆锥的和体积。
实验4:
I/O流与文件操作
一、实验目的
1、掌握文件和流的概念
2、学会使用FILE结构和使用文件流进行文件的打开、建立、读、写和关闭操作
二、实验类型验证
三、实验学时2学时
四、实验原理及知识点
1、文件和流的概念
2、使用FILE结构操作文件
3、使用文件流操作文件
五、实验环境(硬件环境、软件环境)
1、软件:
Windows操作系统,VisualC++6.0
2、硬件:
CPU奔腾Ⅲ;内存64兆以上(最好128兆以上);
六、实验内容及步骤
1、假设有一个文件“one.dat”已经存在,编写程序创建文件“two.txt”,并将文件“one.dat”中的内容复制到文件“two.txt”中。
2、下面是一个三角形类Triangle的定义:
classTriangle{
public:
Triangle(doublea,doubleb,doublec){
x=a;
y=b;
z=c;
}
intsaveToFile(ostream&outFile);
intloadFromFile(istream*inFile);
private:
doublex,y,z;
};
(1)实现成员函数saveToFile,将对象自身保存到文件中;
(2)实现成员函数loadFromFile,从文件中恢复对象;
(3)编写程序使用类Triangle,并实现如下功能:
(1)将类Triangle的多个对象保存到一个指定文件中;
(2)能一次从指定文件中恢复多个对象。
七、思考与练习
1、输入三角形的三边a,b,c,计算三角形的面积的公式:
Area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2
形成三角形的条件是:
a>b+c,b>a+c,c>a+b;
编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息。
2、建立两个磁盘文件f1.dat和f2.dat,编写程序实现以下工作:
(1)从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件放10个);
(2)从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面;
(3)从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。
3、设计一个管理图书目的简单程序,提供的基本功能包括:
可连续将新书存入文件“book.dat”中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件“book.dat”中同书名的所有书显示出来。
为简单起见,描述一本书的信息包括:
书号,书名,出版社和作者。
实验5:
模板与异常处理
一、实验目的
了解模板的概念、定义,了解C++的异常处理机制。
二、实验类型验证
三、实验学时4学时
四、实验原理及知识点
1、异常的基本概念
2、异常的触发、传播和处理
3、类属程序设计
4、模板的定义和使用
五、实验环境(硬件环境、软件环境)
1、软件:
Windows操作系统,VisualC++6.0
2、硬件:
CPU奔腾Ⅲ;内存64兆以上(最好128兆以上);
六、实验内容及步骤
1、编写一个程序,使用new运算符动态分配空间,当空间分配失败时抛出异常,并捕获处理该异常,处理异常时要考虑不能有内存泄漏。
2、写一个函数模板,求数组中的最大元素。
使得函数调用时,数组的类型和返回值类型可以是整数也可以是双精度类型。
3、以下是一个整数栈类的定义:
constintSIZE=100;
classStack
{
public:
Stack();
~Stack();
voidPush(intn);
intPop();
private:
intstack[SIZE];
inttos;
};
(1)编写一个栈的类模板(包括其成员函数定义),以便为任何类型的对象提供栈数据结构操作
(2)在应用程序中创建整数栈、字符栈和浮点数栈,并提供一些数据供进栈、退栈和打印操作
七、思考与练习
求一元二次方程式ax2+bx+c=0的实根,如果方程没有实根,则利用异常处理机制输出有关警告信息。
第二部分
实验指导
VisualC++6.0的集成环境
一、VC++6.0主要菜单、工具
可视化与面向对象的编程技术是当今世界流行的编程技术,在众多的开发工具中,Microsoft公司的VC++6.0独树一帜,深得广大程序员的青睐。
VC++6.0提供了编写应用程序的所有工具,它包含了许多单独的组件,并由窗口、对话框、菜单、工具栏等组成了一个统一的整体。
首先,看一下启动的主界面:
1.VC++6.0的菜单
VisualC++6.0的菜单栏如图所示,其中包括File,Edit,View等共九个菜单选择项,通过它们,你可以轻松地完成编辑程序和资源、编译、链接及调试程序等各项工作。
要激活菜单栏中的菜单有两种方法:
一是用鼠标左键直接单击相应的菜单,另一种方法是在按住Alt键的同时,按下相应菜单的热键,例如要激活Edit菜单只要按下Alt+E键即可。
下图是VisualC++6.0的主菜单,当激活某个菜单后,会弹出相应的下拉子菜单。
其中包含了多个菜单项,用于执行相应的功能或命令
有一些常用的菜单命令具有快捷键,例如File菜单中的New菜单命令,它的快捷键是Ctrl+N,只要直接按下此快捷键就可以执行相应的菜单命令。
有的菜单项显示为灰色,表示这些菜单命令在此时为禁用状态。
以下介绍几种常用的菜单,这些在今后的编程中会经常使用。
1、File文件菜单
File菜单如图所示,
其中包含了各种对文件进行操作的选项,如加载、保存、打印和退出等。
各菜单项的功能分述如下:
New菜单项(Ctrl+N)此菜单项的快捷键是Ctrl+N。
用于创建新的文件、工程、工作区或其他文档。
当您选中此菜单项后,屏幕将会出现New对话框,如图所示。
其中包含了4个选项卡:
File、Project、Workspace和OtherDocuments。
在File选项卡中,您可以选择创建各种文件,当选中Addtoproject复选框时,则新创建的文件将加入到当前工程中。
表1-1New对话框中可创建的项目类型工程
选项说明
ATLCOMAppWizard创建ATL应用程序
ClusterResourceTypeWizard创建多重资源类型
CustomAppWizard创建自定义的AppWizard
DatabaseProject创建数据库项目
DevStudioAdd-inWizard创建自动化宏
ExtendedStoredProcWizard创建扩展存储过程
ISAPIExtensionWizard创建Internet服务器或过滤器
Makefile创建Make文件
MFCActiveXControlWizard创建ActiveX控件程序
MFCAppWizard[dll]创建MFC动态链接库
MFCAppWizard[exe]创建MFC可执行程序
UtilityProject创建实用工具项目
Win32Application创建Win32应用程序
Win32ConsoleApplication创建Win32控制台应用程序此项即为控制台程序项目
Win32Dynamic-LinkApplication创建Win32动态链接库
Win32StaticLibrary创建Win32静态库
在新建立程序时,首先要建立工程项目文件,根据程序类型选择工程。
上表说明了各种工程项目的说明。
File选项卡中可以创建的文件类型见表1-2
New对话框中可创建的文件类型
文件选项说明
ActiveXServerPage创建活动的服务器页
BinaryFile创建二进制文件
BitmapFile创建位图文件
C/C++HeaderFile创建C/C++头文件
C++SourceFile创建C++源文件
CursorFile创建光标文件
HTMLPage创建HTML文件
IconFile创建图标文件
2、编辑菜单
Edit菜单中的命令是用来使用户便捷地编辑文件内容,如进行删除、复制等操作,其中的大多数命令功能与windows中的标准字处理程序的编辑命令一致。
3、VIEW菜单:
view菜单中的命令主要用来改变窗口和工具栏的显示方式,激活调试时所用的各个窗口等。
4、插入菜单
Insert菜单中的命令主要用于项目
及资源的创建和添加。
5、Project菜单
Project菜单中的命令主要用于项目
的操作,如项目中添加源文件等。
6、Build菜单
Build菜单中的命令主要用来应用
程序的编译、连接、调试、运行。
7、工具菜单Tools菜单中的命令主要用于选择
或制定开发环境中的一些实用工具。
8、窗口菜单
Windows菜单中的命令主要用于文档窗口的操作。
如排列文档、打开或关闭一个文档窗口、重组或切分文档窗口等。
9、帮助菜单
VisualC++6.0 同大多数其它的Windows应用软件一样,提供了大量详细的帮助信息,而Help菜单便是得到这些帮助信息的最