动态内存分配一_第1页
动态内存分配一_第2页
动态内存分配一_第3页
动态内存分配一_第4页
全文预览已结束

下载本文档

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

文档简介

1、实验十八 动态内存分配(一)一、实验目的1 掌握使用模板函数利用矩形法求积分1 联系使用动态内存分配方式实现字符串类mystring二、 实验内容1. 设计梯形积分法函数模板,求函数fx=x5+6x3+x2+9在区间0.1, 3.4的积分。#include<iostream>using namespace std;class Fpublic:double fun(double x)return (x*x*x*x*x+6*x*x*x+x*x+9);template<typename T>double integer(T f,double a,double b,int n)

2、double result,step;step=(b-a)/n;result=(f.fun(a)+f.fun(b)/2;for(int i=1;i<n;i+)result+=f.fun(a+i*step);result*=step;return result;int main()F f;double result0;int n=1000;result0=integer(f,0.1,3.4,n);cout<<"函数f(x)=x*x*x*x*x+6*x*x*x+x*x+9在区间0.1, 3.4的积分为"<<result0<<endl;r

3、eturn 0;2、仿照标准字符串类string,采用动态字符数组,改造自定义字符串类mystring,可自动适应不同的串长度。要求新的自定义字符串类mystring如下:const int MAXSIZE = 100;class mystringchar* str; /指向存储字符串空间的指针int maxsize; /存储字符串空间的大小int last; /已用的存储空间大小public:mystring(int=MAXSIZE);mystring(char *s, int=MAXSIZE); /要考虑串长mystring(mystring & st); /要考虑串长mystri

4、ng();void show(); /输出字符串int strlen(); /字符串长度void reverse(); /反转字符串int strchr(char c); /查找字符c首次出现的位置;要求:缺省情况下字符串动态存储空间的大小为MAXSIZE;拷贝构造函数中,maxsize的大小由参数st确定;将mystring类定义在头文件mystring.h中,在源文件mystring.cpp中实现类的函数定义在主函数所在源文件中引用mystring.h,并对mystring类进行测试#include<iostream>#include<cstring>#includ

5、e "mystring.h"using namespace std;mystring:mystring()str=NULL;maxsize=MAXSIZE;last=0;mystring:mystring(char *s) int i=-1;doi+;while(*(s+i)!='0'); if(s)if(str=new chari+1)strcpy(str,s); maxsize=MAXSIZE; last=i-1; elsestr=NULL;maxsize=MAXSIZE;last=-1;mystring:mystring(mystring &s

6、t)if(st.str)if(str=new charst.strlen()+1)strcpy(str,st.str); maxsize=st.maxsize;last=st.last;mystring:mystring()cout<<"Destructor"<<endl;deletestr;void mystring:show()for(int i=0;i<=last;i+)cout<<*(str+i)<<'0'cout<<endl;int mystring:strlen()int i=-1

7、;doi+;while(*(str+i)!='0');return i;void mystring:reverse()char a100; for(int i=0;i<=last;i+)ai=*(str+i);for(int j=0;j<=last;j+)*(str+j)=alast-j;int mystring:strchr(char c)int i=-1;int j;for(j=0;j<=last;j+)if(*(str+j)=c)i=j;else continue;if(i=-1) return -1;else return i;mystring.h:class mystringprivate:char *str;int maxsize;int last;public:mystring();mystring(char*s

温馨提示

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

评论

0/150

提交评论