




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杜红燕 编C+程序设计课程实验指导书长 沙 学 院 计 算 机 科 学 与 技 术 系47前 言本书是C+程序设计课程的实验指导书。初学程序设计的人,都有一个体会,看程序容易,但自己动手写程序难,甚至感觉无从下手,究其原因就在于没有把握住学习程序设计的根本方法,学习程序设计的关键是多实践,通过上机体会和掌握程序设计的思想和方法,通过上机验证程序的正确性,为此我们编写了这本实验指导书。本书的主要内容分为三个部分,第一部分为实验内容,对每个实验的实验目的、实验类型、实验学时、实验原理及知识点、实验环境(硬件环境、软件环境)和实验内容及步骤进行简单介绍,第二部分为实验指导,对每个实验的实验方法,实验步骤及补充的实验知识进行详细介绍,第三部分为实验报告。C+程序设计的环境有许多,在这里我们选用的是MicroSoft Visual C+ 6.0。对书中的每个实验题目,在实验指导部分都给出了编程提示,个别实验给出了程序的参考代码,最后还介绍了常用标准库函数的函数原型。需要强调一点,程序设计是一个创作的过程,解决一个问题的方法不是唯一的,所以请大家在阅读本书的实验指导之前,已经独立思考过对这些问题的解决方法,这样才有助于程序设计水平的提高。 编者2008年2 月目 录第一部分 实验内容实验1:类的定义和构造2实验2:堆与拷贝构造函数、静态成员与友元、运算符重载4实验3:通过继承进行软件的渐增式开发8实验4:I/O流与文件操作.11实验5:模板与异常处理13第二部分 实验指导Visual C+ 6.0的集成环境.16实验1:类的定义和构造26实验2:堆与拷贝构造函数、静态成员与友元、运算符重载31实验3:通过继承进行软件的渐增式开发34实验4:I/O流与文件操作.39实验5:模板与异常处理 43C/C+常用标准库函数 46第一部分实验内容实验1:类的定义和构造一、实验目的1、掌握类的定义和使用2、学习构造类的方法3、掌握如何定义构造函数和析构函数4、掌握初始化对象的方法5、理解面向对象程序设计的思想二、实验类型验证三、实验学时4学时四、实验原理及知识点1、类的定义2、类成员的访问控制3、类的数据成员和成员函数4、构造函数和析构函数5、对象的定义与初始化五、实验环境(硬件环境、软件环境)1、软件:Windows 操作系统,Visual C+ 6.02、硬件:CPU 奔腾;内存64兆以上(最好128兆以上);六、实验内容及步骤1、定义一个描述学生通讯录的类,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。2、将第一个上机实验题中的成员函数Init改为构造函数,将成员函数FreeSpace改为析构函数。增加一个缺省的构造函数,使指针pName,pSchool和pNum的初值为0,使Box包含空字符串。3、定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形式表示,即24/36应该以2/3的形式表示,并提供public成员函数实现如下功能:(1) 两个分数相加,结果表示为简化形式;(2) 两个分数相减,结果表示为简化形式;(3) 按a/b的形式输出分数的值,a、b为整数;(4) 按浮点数的形式输出分数的值。七、思考与练习1、编写Time类,要求:(1) 包含年、月、日、时、分、秒的信息;(2) 构造函数将类的对象初始化为系统当前时间(使用头文件time.h中的time()函数);(3) 能按标准格式输出对象表示的时间。2、编写矩形类,要求可以提示用户输入矩形的长度和宽度,并显示该矩形的长度、宽度和面积。实验2:堆与拷贝构造函数、静态成员与友元、运算符重载一、实验目的1、领会拷贝构造函数的实质2、学会使用堆对象的分配与释放3、领会运算符重载的意义4、学会使用this指针5、理解友元的语法和含义6、在此基础上领会和掌握面向对象的程序设计思想。二、实验类型验证三、实验学时4学时四、实验原理及知识点1、堆对象的分配与释放2、拷贝构造函数3、类的复合4、This指针5、静态数据、友元函数和友元类6、运算符重载的概念7、单目运算符重载8、双目运算符重载9、重载流插入和流提取运算符10、赋值运算符重载五、实验环境(硬件环境、软件环境)1、软件:Windows操作系统,Visual C+ 6.02、硬件:CPU 奔腾;内存64兆以上(最好128兆以上);六、实验内容及步骤1、建立一个Stock类,含有股票代码和股票现价两个数据成员。用new自动为Stock类的对象分配内存,并将股票”600001”,现价8.89存入内存的相应域中。在类中增加静态数据成员记载创建对象的个数,增加拷贝构造函数并调用。2、对如下圆柱类Column的定义:class Column public:Column(double x, double y, double r, double h);Column();double area();/求圆柱面积double volume();/求圆柱体积private:double height;/高度double radius;/半径double x;/底面圆心x坐标double y;/底面圆心y坐标;要求:(1) 实现类Column中的四个成员函数;(2) 增加一个友元函数,实现从键盘读取四个double类型的数据对类Column的对象进行赋值的功能;(3) 增加一个友元函数,实现将类Column的对象输出到屏幕的功能,输出信息包括对象的基本信息以及对象的面积和体积。3、对于下面定义的类Test:class Test private:int a;double b;要求:(1) 为类Test的每个数据成员增加一个set函数,并使这些set函数都可以被连续调用;(2) 为类Test的每个数据成员增加一个get函数。(3) 如果要求所有get函数都可以被连续调用,这些函数该如何编写?4、 定义一个复数类,通过重载运算符: *,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。七、思考与练习1、定义一个复数类,通过重载运算符: *,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。2、定义包含年、月、日信息的日期类Date,并重载二元运算符“+”,使之具有日期对象和整数(天数)相加的功能,并编程测试。3、下列程序定义了一实部为real,虚部为imag的复数类complex,要求重载运算符“+”、“-”、“*”实现复数对象的加法、减法、乘法运算,并编写测试程序。如果要进行a = b + c * d;(a、b、c、d都是类Complex的对象)这样的运算,需要重载赋值运算符吗?为什么?class Complexpublic:complex(double r=0, double i=0)real=r; imag=i; private:double real, imag;4、于下面的类MyString,要求重载一些运算符后可以计算表达式:a = b + c;,其中a、b、c都是类MyString的对象。请重载相应的运算符并编写程序测试。class MyString public:MyString(char *s) str = new charstrlen(s)+1;strcpy(str, s);MyString() delete str;private:char *str;5、对于下面的Time类:class Time public:Time(int h = 0, int m = 0, int s = 0);private:int hour, minute, second;要求:(1) 实现构造函数,是类Time的数据成员可以得到正确的赋值;(2) 重载流插入运算符,按照hh-mm-ss的格式输入类Time的对象。实验3:通过继承进行软件的渐增式开发一、实验目的1、掌握继承方法,理解多态性2、掌握虚函数的用法,观察其多态性3、掌握软件的渐增式开发方法二、实验类型设计三、实验学时6学时四、实验原理及知识点1、继承和派生的基本概念2、继承的定义3、基类和派生类对象的转换4、类指针的使用5、多态性的意义和作用6、虚函数的定义方法7、抽象基类的作用和定义方法8、虚析构函数的作用和使用方法9、如何在程序中实现多态性10、软件的渐增式开发方法五、实验环境(硬件环境、软件环境)1、软件:Windows操作系统,Visual C+ 6.02、硬件:CPU 奔腾;内存64兆以上(最好128兆以上);六、实验内容及步骤1、下面是一个形状类Shape,编写类Shape的派生类:圆类Circle、三角形类Triangle和矩形类Rectangle,并重定义基类的成员函数使之返回正确的结果(show函数要输出对象的基本信息),然后编写程序测试它们。class Shape public:/形状的面积double area() return 0;/形状的周长double girth() return 0;/输出对象的信息void show() coutShape Object: b+c,ba+c,ca+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操作系统,Visual C+ 6.02、硬件:CPU 奔腾;内存64兆以上(最好128兆以上);六、实验内容及步骤1、编写一个程序,使用new运算符动态分配空间,当空间分配失败时抛出异常,并捕获处理该异常,处理异常时要考虑不能有内存泄漏。2、写一个函数模板,求数组中的最大元素。使得函数调用时,数组的类型和返回值类型可以是整数也可以是双精度类型。3、以下是一个整数栈类的定义:const int SIZE=100;class Stackpublic:Stack(); Stack();void Push(int n);int Pop();private:int stackSIZE;int tos;(1) 编写一个栈的类模板(包括其成员函数定义),以便为任何类型的对象提供栈数据结构操作(2) 在应用程序中创建整数栈、字符栈和浮点数栈,并提供一些数据供进栈、退栈和打印操作七、思考与练习求一元二次方程式ax2+bx+c=0的实根,如果方程没有实根,则利用异常处理机制输出有关警告信息。第二部分实验指导Visual C+ 6.0的集成环境一、VC+6.0主要菜单、工具可视化与面向对象的编程技术是当今世界流行的编程技术,在众多的开发工具中,Microsoft公司的VC+6.0独树一帜,深得广大程序员的青睐。VC+6.0提供了编写应用程序的所有工具,它包含了许多单独的组件,并由窗口、对话框、菜单、工具栏等组成了一个统一的整体。首先,看一下启动的主界面:1.VC+6.0的菜单Visual C+ 6.0的菜单栏如图所示,其中包括File,Edit,View等共九个菜单选择项,通过它们,你可以轻松地完成编辑程序和资源、编译、链接及调试程序等各项工作。要激活菜单栏中的菜单有两种方法:一是用鼠标左键直接单击相应的菜单,另一种方法是在按住Alt键的同时,按下相应菜单的热键,例如要激活Edit菜单只要按下Alt+E键即可。下图 是Visual C+ 6.0的主菜单,当激活某个菜单后,会弹出相应的下拉子菜单。其中包含了多个菜单项,用于执行相应的功能或命令有一些常用的菜单命令具有快捷键,例如File菜单中的New菜单命令,它的快捷键是Ctrl+N,只要直接按下此快捷键就可以执行相应的菜单命令。有的菜单项显示为灰色,表示这些菜单命令在此时为禁用状态。以下介绍几种常用的菜单,这些在今后的编程中会经常使用。1、 File文件菜单File菜单如图所示,其中包含了各种对文件进行操作的选项,如加载、保存、打印和退出等。各菜单项的功能分述如下:New菜单项(Ctrl+N)此菜单项的快捷键是Ctrl+N。用于创建新的文件、工程、工作区或其他文档。当您选中此菜单项后,屏幕将会出现New对话框,如图所示。其中包含了4个选项卡:File、Project、Workspace和Other Documents。在File选项卡中,您可以选择创建各种文件,当选中Add to project复选框时,则新创建的文件将加入到当前工程中。表1-1 New对话框中可创建的项目类型工程选项 说 明ATL COM AppWizard 创建ATL应用程序Cluster Resource Type Wizard 创建多重资源类型Custom AppWizard 创建自定义的AppWizardDatabase Project 创建数据库项目DevStudio Add-in Wizard 创建自动化宏Extended Stored Proc Wizard 创建扩展存储过程ISAPI Extension Wizard 创建Internet服务器或过滤器 Makefile 创建Make文件MFC ActiveX ControlWizard 创建ActiveX控件程序MFC AppWizard dll 创建MFC动态链接库MFC AppWizard exe 创建MFC可执行程序Utility Project 创建实用工具项目Win32 Application 创建Win32应用程序Win32 Console Application 创建Win32控制台应用程序 此项即为控制台程序项目Win32 Dynamic-Link Application 创建Win32动态链接库Win32 Static Library 创建Win32静态库在新建立程序时,首先要建立工程项目文件,根据程序类型选择工程。上表说明了各种工程项目的说明。File选项卡中可以创建的文件类型见表1-2New对话框中可创建的文件类型 文件选项 说 明ActiveX Server Page 创建活动的服务器页Binary File 创建二进制文件Bitmap File 创建位图文件C/C+ Header File 创建C/C+头文件C+ Source File 创建C+源文件Cursor File 创建光标文件HTML Page 创建HTML文件Icon File 创建图标文件2、编辑菜单Edit菜单中的命令是用来使用户便捷地编辑文件内容,如进行删除、复制等操作,其中的大多数命令功能与windows中的标准字处理程序的编辑命令一致。3、VIEW菜单:view菜单中的命令主要用来改变窗口和工具栏的显示方式,激活调试时所用的各个窗口等。4、插入菜单Insert菜单中的命令主要用于项目及资源的创建和添加。5、Project菜单Project菜单中的命令主要用于项目的操作,如项目中添加源文件等。6、Build菜单Build菜单中的命令主要用来应用程序的编译、连接、调试、运行。7、工具菜单Tools菜单中的命令主要用于选择或制定开发环境中的一些实用工具。8、窗口菜单Windows菜单中的命令主要用于文档窗口的操作。如排列文档、打开或关闭一个文档窗口、重组或切分文档窗口等。9、帮助菜单Visual C+6.0同大多数其它的Windows 应用软件一样,提供了大量详细的帮助信息,而Help菜单便是得到这些帮助信息的最有效和最主要的途径。2.VC+6.0的标准工具栏 标准工具栏中的工具按钮命令大多数是常用的文档编辑命令,如新建、保存、撤消、恢复、查找等。 小型编连工具栏 小型编连工具栏提供了常用的编译、连接操作命令。 二、用VC+6.0开发控制台程序1.启动VC+6.0,选择“文件”菜单下的“新建”命令。弹出下列对话框。2.选择Win32 Console Application项目,给项目起个名称如hello,并设置存放路径,点击确定后到如下图示:3.选择一个空的项目,点击确定。4.再点击新建菜单项:在弹出的对话框中,选择文件选项,并选择C+ Source File,为文件起名并设置好文件的路径:5.这时,在打开的代码编辑窗口里输入代码。6.点击编译按钮和Build按钮并运行得到结果如下:实验1:类的定义和构造1、定义一个描述学生通讯录的类,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。编程提示:(1)由于姓名、学校和电话号码的数据长度是可变的,可使用动态的数据结构。邮编的长度是固定的,可定义一个字符数组来存放邮编。将数据成员均定义为私有的。(2)用一个成员函数输出所有的成员数据,用一个成员函数完成初始化,用四个成员函数分别设置姓名、学校、电话号码和邮编,再用四个成员函数分别获取姓名、单位、电话号码和邮编。(3)主函数完成简单的测试工作。类定义参考:class COMMUprivate:char *pName;/姓名,数据成员为私有的 char *pSchool;/单位 char *pNum;/电话号码char Box10;/邮编public:void Print(void);/输出数据成员void Init(char *,char *,char *,char *);/完成初始化void FreeSpace(void);/释放数据成员占用的空间void SetName(char *name);/置姓名void SetScool(char *unit);/置学校名称void SetNum(char *num);/置电话号码void SetBox(char *mailnum);/置邮编char *GetName(void);/取姓名char *GetScool(void );/取学校char *GetNum(void);/取电话号码char *GetBox(void)/取邮编;2、将第一个上机实验题中的成员函数Init改为构造函数,将成员函数FreeSpace改为析构函数。增加一个缺省的构造函数,使指针pName,pSchool和pNum的初值为0,使Box包含空字符串。编程提示:(1) 缺省的构造函数完成数据成员的初始化,根据实验题的要求,该缺省的构造函数可以是:COMMU()/缺省的构造函数pName = pSchool = pNum =0;Box0 = 0; (2) 用构造函数COMMU代替成员函数Init的功能,只要将函数名Init改为COMMU,即: COMMU(char *name,char *unit,char *num,char *b)/重载构造函数pName = new char strlen(name)+1;strcpy(pName,name);pSchool = new char strlen(unit)+1;strcpy(pSchool,unit);pNum = new char strlen(num)+1;strcpy(pNum,num);strcpy(Box,b);(3) 用析构函数COMMU代替成员函数FreeSpace,该析构函数为:COMMU( )/析构函数 if(pName) delete pName;if(pSchool) delete pSchool;if(pNum) delete pNum;3、定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形式表示,即24/36应该以2/3的形式表示,并提供public成员函数实现如下功能:(1) 两个分数相加,结果表示为简化形式;(2) 两个分数相减,结果表示为简化形式;(3) 按a/b的形式输出分数的值,a、b为整数;(4) 按浮点数的形式输出分数的值编程提示:完整的程序参考代码:/Rational.hclass Rational public:Rational(int fz, int fm);void add(Rational &one);void sub(Rational &one);void print();void outputAsFloat();private:void simple();int fenzi;int fenmu;/Rational.cpp#include Rational.h#include #include Rational:Rational(int fz, int fm)fenzi = fz;if (fm != 0)fenmu = fm;elsefenmu = 1;simple();void Rational:add(Rational & one)int a, b;a = fenmu * one.fenmu;b = fenzi * one.fenmu + fenmu * one.fenzi;fenmu = a;fenzi = b;simple();void Rational:sub(Rational & one)int a, b;a = fenmu * one.fenmu;b = fenzi * one.fenmu - fenmu * one.fenzi;fenmu = a;fenzi = b;simple();void Rational:print()coutfenzi / fenmuendl;void Rational:outputAsFloat()float a = (float)fenzi/fenmu;couta 1; i-)if (abs(fenzi) % i = 0 & abs(fenmu) % i = 0)fenzi = fenzi / i;fenmu = fenmu / i;/main.cpp#include Rational.hmain()Rational a(24, 18), b(12, 36), c(6, 8);a.add(b);b.sub(c);a.print();a.outputAsFloat();b.print();b.outputAsFloat();return 0;实验2:堆与拷贝构造函数、静态成员与友元、运算符重载1、建立一个Stock类,含有股票代码和股票现价两个数据成员。用new自动为Stock类的对象分配内存,并将股票”600001”,现价8.89存入内存的相应域中。在类中增加静态数据成员记载创建对象的个数,增加拷贝构造函数并调用。编程提示:(1) 堆对象分配Stock p;p=new Stock;(2) 堆对象释放delete p;(3) 堆对象赋值p-set(“600001”,8.89);(4) 拷贝构造函数Stock(Stock &s);思考:拷贝构造函数的函数体应完成什么功能?(5) 静态数据成员static int N_count;思考:静态数据成员在程序中什么位置初始化?在程序中什么位置计数?2、对如下圆柱类Column的定义:class Column public:Column(double x, double y, double r, double h);Column();double area();/求圆柱面积double volume();/求圆柱体积private:double height;/高度double radius;/半径double x;/底面圆心x坐标double y;/底面圆心y坐标;要求:(1) 实现类Column中的四个成员函数;(2) 增加一个友元函数,实现从键盘读取四个double类型的数据对类Column的对象进行赋值的功能;(3) 增加一个友元函数,实现将类Column的对象输出到屏幕的功能,输出信息包括对象的基本信息以及对象的面积和体积。编程提示:友元函数的声明:void friend set(Column &t);void friend print(Column &t);3、对于下面定义的类Test:class Test private:int a;double b;要求:(1) 为类Test的每个数据成员增加一个set函数,并使这些set函数都可以被连续调用;(2) 为类Test的每个数据成员增加一个get函数。(3) 如果要求所有get函数都可以被连续调用,这些函数该如何编写?编程提示:要满足类的对象可以连续调用其成员函数,这些成员函数的返回值就必须是调用该函数的对象本身,所以返回类型是该类型的引用,返回值则是*this4、定义一个复数类,通过重载运算符: *,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。编程提示:(1) 两复数相乘的计算公式为:(a+b i)*(c+d i)=(acbd )+(ad+bc) i(2) 两复数相除的计算公式为:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d) i(3) 复数类及运算符重载函数可定义为: class Complexfloat Real, Image;public:Complex(float r=0,float i=0) Real=r;Image=i;void Show()cout Real=RealtImage=Imagen;friend Complex operator *(Complex &, Complex &);/重载运算符*Complex operator /(Complex &);/重载运算符/;思考:增加重载复数的加法和减法运算符的功能,实现两个复数的加法,一个复数与一个实数的加法;两个复数的减法,一个复数与一个实数的减法。用成员函数实现加法运算符的重载,用友元函数实现减法运算符的重载。实验3:通过继承进行软件的渐增式开发1、下面是一个形状类Shape,编写类Shape的派生类:圆类Circle、三角形类Triangle和矩形类Rectangle,并重定义基类的成员函数使之返回正确的结果(show函数要输出对象的基本信息),然后编写程序测试它们。class Shape public:/形状的面积double area() return 0;/形状的周长double girth() return 0;/输出对象的信息void show() coutShape Object: endl;private:;编程提示:(1) 在三个派生类中应增加相关数据成员的定义(2) 在三个派生类中应重定义基类中的area()、girth()、show()成员函数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中)。编程提示:(1) 基类Currency定义参考:class Currencypublic:void set_j(float j);Japan=j;void set_e(float e)Europe=e;virtual void print_exchange()=0;protected:float Japan,Europe; (2) 在类Ja和类Eur中重定义print_exchange()函数,分别用来计算10000日元和100欧元兑换多少美元3、给定如下抽象类:class shape protected: double r;public:shape(double x)r=x;virtual void area()=0;virtual void perimeter()=0; (1) 以shape类为基类,派生一个circle圆形类、一个in_square圆的内接正方形类、一个ex_square圆的外接正方形类,在派生类中对shape类中求面积和周长的纯虚函数进行重定义。(2) 对类进行实例化,输出运算结果编程提示:(1) 在派生类circle、in_square、ex_square中分别对基类中的求面积和周长的纯虚函数进行重定义(2) 圆的内接正方形,其面积=2*r*r,其周长=4*sqrt(2)*r(3) 圆的外接正方形, 其面积= 4*r*r, 其周长= 8*r4、给定单向链表类List,要求以List类为基类建立两种类型的表:队列(先进先出)与堆栈(先进后出),请编写程序实现队列与堆栈的存储和读取操作,编写一个测试程序,演示类的功能。class Listpublic:List()head=NULL;tail=NULL;next=NULL;virtual void store(int i)=0;/存储数据virtual int retrieve()=0;/读取数据List *next;/指向表的下一项int num;/用于存储节点数据protected:List *head;/指向表头List *tail;/指向表尾;程序关键参考代码:(1) 文件Queue.h#if !defined _H_QUEUE_H#define _H_QUEUE_H#includeList.hclass Queue:public Listpublic:void store(int i);/存储数据int retrieve();/读取数据;#endif(2) 文件Queue.cpp#includeQueue.hvoid Queue:store(int i)List *item;item=new Queue;if(item=NULL) coutnum=i;if(tail!=NULL) tail-next=item;tail=item;if(head=NULL) head=tail;int Queue:retrieve()int i;List *p;if(head=NULL)coutnum;p=head;head=head-next;delete p;return i;(3) 文件Stack.h#if !defined _H_STACK_H#define _H_STACK_H#includeList.hclass Stack:public Listpublic:void store(int i);/存储数据int retrieve();/读取数据;#endif(4) 文件Stack.cpp#includeStack.hvoid Stack:store(int i)List *ite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年三四线城市房地产税收政策与风险控制报告
- 药品购销信用管理制度
- 药品顾客投诉管理制度
- 药店医疗废物管理制度
- 药店药品归置管理制度
- 营业网点加班管理制度
- 设备使用维修管理制度
- 设备培训考核管理制度
- 设备技术文件管理制度
- 设备检修提级管理制度
- 公司职业病危害防治责任制度
- 第十八章:爬行纲课件
- 米亚罗-孟屯河谷风景名胜区旅游基础设施建设项目环评报告
- 滁州市第一人民医院医疗暂存间环保设施提升改造项目环境影响报告表
- 籍贯对照表完整版
- 警用无人机考试题库(全真题库)
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 高边坡作业安全专项施工方案与高边坡安全专项施工方案汇编
- 医保业务知识题库
- 等级医院评审中应注意的迎评礼仪
- 吉林省长春市东北师大附中明珠学校2023年物理八年级第二学期期末统考模拟试题含解析
评论
0/150
提交评论