《c++ 实验79页word文档.doc》由会员分享,可在线阅读,更多相关《c++ 实验79页word文档.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流c+ 实验7【精品文档】第 11 页实验 7 实验报告教学班级:_11_ 学生学号:2017114499_ 学生姓名:_张恒_实验日期:_ 实验地点: _7103_(机房) 指导教师签名:_ 实验成绩:_ 一、实验目的1掌握常用系统函数的功能及使用方法;2掌握自定义有返回值函数的概念、定义及使用方法。二、实验任务1、实现功能:根据键盘输入的数x,计算分段函数f(x)的值。(1) 主函数功能:从键盘输入数x,通过调用子函数得到计算结果并输出。(2) 子函数功能:定义有返回值函数,实现计算该分段函数值的功能。要求:求平方根和绝对值使用数学函数sqrt(x)、
2、fabs(x)。(3) 输入输出格式请参考以下样张:2、实现功能:110加减乘运算训练系统。(1) 主函数功能:随机产生一个110加减乘算术式(数字在110之间随机产生,运算符在加减乘中随机产生,如2+3=、8-4=、6*3=),要求用户输入计算结果,通过调用子函数得到正确答案,判断用户输入的计算结果是否正确并输出结论。(2) 子函数功能:定义有返回值函数,实现加减乘算术式的计算功能。(3) 输入输出格式请参考以下样张:3. 实现功能:计算a的b次方与b的a次方的和。(1) 主函数功能:从键盘输入两个整数a、b(a0, b0),通过调用子函数计算a的b次方与b的a次方的和并输出结果。(2) 子
3、函数功能:定义有返回值函数,实现计算a的b次方的功能。(3) 输入输出格式请参考以下样张:4、实现功能:求两个正整数的最大公约数、最小公倍数。(1) 主函数功能:从键盘输入两个正整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。(2) 子函数1功能:定义有返回值函数,实现求两个正整数的最大公约数的功能。子函数2功能:定义有返回值函数,实现求两个正整数的最小公倍数的功能。(3) 输入输出格式请参考以下样张:5、实现功能:计算正整数mn之间所有完数之和。(1) 主函数功能:从键盘输入两个整数m、n(m0, n0, mn),通过调用子函数判断出mn之间所有完数,计算所有完数之和并输出
4、结果。(2) 子函数功能:定义有返回值函数,实现判断正整数是否为完数的功能。(完数是指:该数所有因子(不含自身)之和等于该数,如28=1+2+4+7+14)。(3) 输入输出格式请参考以下样张:三、实验结果(源程序 + 注释)1.#include#includeusing namespace std;double zheng(double x);void main()double x,y;cout2017114499 张恒endl;coutx;y=zheng(x);couty=y0)return(sqrt(x);elsereturn(fabs(x);2.#include#includeusin
5、g namespace std;int add(int m,int n);int minus(int m,int n);int mul(int m,int n);void main()int x,y,hao,i=1;cout2017114499 张恒endl;srand(time(NULL);hao=1+rand()%(3-1+1);x=1+rand()%(10-1+1);y=1+rand()%(10-1+1);switch(hao)case 1:cout请计算x+y=;add( x,y);case 2:cout请计算x-y=;minus( x,y);case 3:cout请计算x*yresu
6、lt;if(m+n=result)cout计算正确!endl;return(m+n);elsecout计算错误!m+n=m+nresult;if(m-n=result)cout计算正确!endl;return(m-n);elsecout计算错误!m-n=m-nresult;if(m*n=result)cout计算正确!endl;return(m*n);elsecout计算错误!m*n=m*nendl;return(m*n);3.#includeusing namespace std;double zhang(double x,double y);void main()cout201711449
7、9 张恒endl;double a,b;coutab;couta的b次方为:zhang(a,b)endl;coutb的a次方为:zhang(b,a)endl;couta的b次方与b的a次方的和为:zhang(a,b)+zhang(b,a)endl;double zhang(double x,double y)double sum=1,i=1;while(i=y)sum=sum*x;i=i+1;return(sum);4.#includeusing namespace std;int zhang(int x,int y);int heng(int x,int y);void main()cout
8、2017114499 张恒endl;int a,b;coutab;cout最大公约数:zhang(a,b)endl;cout最小公倍数:heng(b,a)endl;int zhang(int x,int y)int t,r;if(xy)t=x;x=y;y=t;r=x%y;if(r=0)coutp,q两数的最大公约数为:xendl;elsewhile(r!=0)x=y;y=r;r=x%y;return(y);int heng(int x,int y)int sum=x;while(sum%y!=0)sum=sum+x;return(sum);5.#include using namespace std;int num(int a);void main()cout2017114499 张恒endl;int m,n,t,s=0;coutm0):mn;for(t=m;t=n;t+)s=num(t)+s;coutmn之间所有完数之和为:sendl;int num(int a)int i,sum=0;for(i=1;ia;i+)if(a%i=0)sum=sum+i;if(a!=0&sum=a)return a;elsereturn 0;