




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江苏科技大学课程实践报告 设计题目: 计算机程序设计实践(VC+) 设计时间: 2016 -02-22 至 2016-02-26 学 院: 电子信息学院 专业班级: 电气工程及其自动化2班 学生姓名: 沈永阳 学号 1440304212 指导老师: 张晓如 2016年 2月一、 编程题 1试建立一个类PP,求出下列多项式的前n项的值。 具体要求如下:(1)私有数据成员l int n:前若干项的项数。l double x:存放x的值。l double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数l PP(int nu
2、m,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。l PP():析构函数,释放p指向的动态内存空间。l double fun(int n1,double x):递归函数,用于求多项式Pn(x)的第n1项。注意: 将递归公式中的n用作函数参数。本函数供process函数调用。l void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。l void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化ite
3、ms的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。答:#include<iostream.h>class PPint n;double x;double *p;public:PP(int num,double x1)n=num;x=x1;p=new doublenum+1;PP()cout<<"调用了析构函数n"deletep;double fun(int n1,double x)if(n1=0)return 1;if(n1=1)return x;if(n1>1)return (2*n1-1)*x*fun(n1-1,x
4、)-(n1-1)*fun(n1-2,x)/n1;void process()for(int i=0;i<=n;i+)*(p+i)=fun(i,x);void show()cout<<"n="<<n<<'t'<<"x="<<x<<endl;for(int i=0,m=0;i<n;i+,m+)cout<<*(p+i)<<'t'if(m%4=0)cout<<'n'void main()int n
5、um;double x1;cout<<"请输入num和x1"<<endl;cin>>num>>x1;PP items(num,x1);cess();items.show();截图:4建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。具体要求如下:(1)私有数据成员l int *array:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数l MOVE(int b,int m):构造函数,初始化成员数据。l void exchange():输出平均值,并将数组中的元素按要求重新放置。l
6、 void print():输出一维数组。l MOVE():析构函数。(3)在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。答:#include<iostream.h>class MOVEint *array;int n;public:MOVE (int b,int m)n=m;array=new intn;for(int x=0;x<n;x+)arrayx=bx;void exchange()float a=0;int i,*x,*y;for(i=0;i<n;i+)a+=arrayi;a=a/n;cout<<&qu
7、ot;The average of the number is:"<<a<<endl;x=y=&array0;for(i=0;i<n;i+)if(arrayi<*x)x=&arrayi;if(arrayi>*y)y=&arrayi;i=*x;*x=*y;*y=i;MOVE()delete array;void print()int i,num=1;for(i=0;i<n;i+)cout<<arrayi<<'t'if(num%5=0)cout<<'n
8、9;num+;void main()int b=21,65,43,87,12,84,44,97,32,55,n=10;MOVE test(b,n);test.exchange();test.print();截图:12建立一个STRING类,将一个字符串交叉插入到另一个字符串中(假定两字符串不等长)。例如将字符串“abcde” 交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。具体要求如下:(1)私有数据成员l char str160 :存放被插入的字符串。l char str240 :存放待插入的字符串。l char str3100 :存放插入
9、后的字符串。(2)公有成员函数l STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。l void process():将str2中的字符串插入到str1中,存放到str3中。l void print():输出插入后的字符串。(2) 在主程序中定义STRING类的对象test对该类进行测试。答:#include<iostream.h>#include<string.h>class STRINGchar str160;char str240;char str3100;public:STRING(char*s1,char
10、*s2)for(int i=0;i<60;i+)str1i=s1i;for(int j=0;j<40;j+)str2j=s2j;void process()int i=0,j=0,x;while(str1i&&str2i)str3j+=str2i;str3j+=str1i;i+;x=i;if(str2x)while(str2x)str3j+=str2x+;if(str1i)while(str1i)str3j+=str1i+;str3j+='0'void print()cout<<"合并后的字符串为:"cout<&
11、lt;str3<<endl;void main()char str160,str240;cout<<"输入字符串1"<<endl;cin.getline(str1,59);cout<<"输入字符串2"<<endl;cin.getline(str2,39);STRING test(str1,str2);cess();test.print();截图:17定义一个类SIN,求 具体要求如下:(1)私有成员数据。l double x:输入公式中x的值,求sin(x)。l int n:输入
12、公式中n的值。(2)公有成员函数。l SIN(double x, int n ):构造函数,用于初始化x和n的值。l double power( int q):求q!的值。l double mi( int m,int n):求mn的值。l double fun( ):用于求SIN(X)的值。l void show( ):输出求得的结果。(3)在主程序中定义对象test,对该类进行测试。答:#include<iostream.h>class SINdouble x;int n;public:SIN(double x,int n)this->x=x;this->n=n;do
13、uble power(int q)for(int i=1;i<=q;i+)q*=i;return q;double mi(int m,int n)for(int i=1;i<n;i+)m*=m;return m;double fun()int s=0;for(int i=1;i<=n;i+)s+=mi(-1,i+1)*mi(x,2*i-1)/power(2*i-1);return s;void show()cout<<"sin("<<x<<")="<<fun()<<endl;v
14、oid main()double x;int n;cout<<"输入x和n的值"<<endl;cin>>x>>n;SIN test(x,n);test.show();截图:32建立一个类SUM,使用二维数组输入“Follow me”,“BASIC”,“Great wall”,“Fortran”,“Pascal”,将它们按从小到大的顺序排列后输出。具体要求如下:(1)私有数据成员lint *p5:存放二维数组每行的字符串的地址。(2)公有成员函数lSUM(int d55):构造函数,初始化成员数据。lvoid process1(
15、):对二维数组中存放的字符串进行排序。lvoid print():输出二维数组中排好序的字符串。(3) 在主程序中对该类进行测试。答:#include<iostream.h>#include<string.h>class sumchar *p5;public:sum(char d515);void process1();void print();sum:sum(char d515)for(int i=0;i<5;i+)pi=&di0;void sum:process1()char *p1,*p2,m;int x,n;for(int i=0;i<5;i
16、+)p1=p2=pi;for(n=0;n<strlen(pi);n+)for(p2=p1,x=n;x<strlen(pi);x+,p2+)if(*p1>*p2)m=*p1;*p1=*p2;*p2=m;p1+;void sum:print()cout<<"修改后的字符串为:"<<endl;for(int i=0;i<5;i+)cout<<pi<<endl;void main()char d515="Follow me","BASIC","Great wal
17、l","Fortran","Pascal"sum test(d);cess1();test.print();截图:二、改错题1. 以下程序中函数fun(int a, int N)的功能是删除数组中a的前N个元素中重复的元素,并返回所删除元素的总数。请改正其中的错误。程序正确的运行结果为:处理前的数组为:4133124344处理后的数组为:4132含有错误的源程序如下:#include <iostream.h>void fun(int *a, int N)int c,n=0;for(int i=0;i<N-n;i
18、+)c=ai;for(int j=i+1;j<N-n-1;j+)if(aj=c)for(int k=j;k<N-n-1;k+)ak=ak+1;n+;j+; return n; void print(int a, int n) for(int i=0;i<n;i+)cout<<ai<<'t'cout<<endl; void main( ) int a10= 4,1,3,3,1,2,4,3,4,4,b6=1,2,1,3,2,1; int n=fun(a,10); cout<<"数组a处理后的数组为:&quo
19、t; print(a, n); n=fun(b,6); cout<<"数组b处理后的数组为:" print(b, n);答:将void fun(int *a,int N)改为int fun(int *a,int N)更改后的程序为:#include <iostream.h>int fun(int *a, int N)int c,n=0;for(int i=0;i<N-n;i+)c=ai;for(int j=i+1;j<N-n-1;j+)if(aj=c)for(int k=j;k<N-n-1;k+)ak=ak+1;n+;j+;retu
20、rn n;void print(int a, int n)for(int i=0;i<n;i+)cout<<ai<<'t'cout<<endl;void main( )int a10= 4,1,3,3,1,2,4,3,4,4,b6=1,2,1,3,2,1; int n=fun(a,10); cout<<"数组a处理后的数组为:" print(a, n); n=fun(b,6); cout<<"数组b处理后的数组为:" print(b, n);运行结果:22建立一个类Sadd
21、le_point,求一个数组中的所有鞍点。提示:鞍点是这样的数组元素,其值在它所在行中为最大,在它所在列中为最小。具体要求如下:(1)私有数据成员lint a44:存放二维数组元素。lint b44:存放二维数组中的鞍点值。lint num:存放鞍点个数。(2)公有成员函数lSaddle_point(int data4):构造函数,用参数int data4初始化数组a,,同时初始化数组b与num 的值均为0。lvoid process( ):求数组a所有鞍点(如果有鞍点),把它们行、列、及值相应存放在数组b中,并将求出的鞍点个数赋给num。 lvoid print( ):输出数组a、鞍点个数,
22、与鞍点坐标及相应值。(3) 在主程序中定义数组int b 4=2, 6, 3, 4, 5, 6, 5, 5, 5, 7, 6, 7, 1, 9, 2, 7作为原始数组。定义一个Saddle_point类对象fun。通过fun调用成员函数完成求鞍点及输出工作。(4) #include<iostream.h>(5) class var(6) double a100;(7) int n;(8) public:(9) var(double x,int n1);(10) double average(double x,int n);(11) void variance(double x,int n);(12) void show();(13) ;(14) var:var(double x,int n1)(15) (16) for(int i=0;i<n1;i+)(17) ai=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养与食品安全专业考试题目及答案
- 2025年社会工作者考试试卷及答案
- 2025年生物科学专业相关试题及答案
- 2025年生物技术与工程考试试卷及答案
- 2025年核工程师考试试题及答案
- 2025年环境保护与可持续发展考试试题及答案
- 万科管家测评题库及答案
- 徐州市大许中学2024-2025高二年级数学4月阶段测试试卷答案
- 2025年成品浆板包装输送系统合作协议书
- 字节跳动企业管理分析
- 2025证券从业资格考试证券市场基础知识真题试卷
- 2025年入团基础知识试题及答案详解
- 2025-2030年中国军工行业市场发展现状及发展趋势与投资战略研究报告
- 地震知识课件
- 2025年小学生科学知识竞赛试题及答案
- 2025年中学语文教师招聘试题及答案
- 阿片类药物的不良反应和对策
- 《液相色谱-质谱联用》课件
- 润滑油购销合同协议
- 《医疗团队中的护理管理:护士长角色定位》课件
- 2025年电商客服管理试题及答案
评论
0/150
提交评论