《西南交大C++实验七.doc》由会员分享,可在线阅读,更多相关《西南交大C++实验七.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流西南交大C+实验七.doc【精品文档】第 12 页实验 7 实验报告教学班级:_ 学生学号:_ 学生姓名:_实验日期:_ 实验地点:_指导教师签名:_ 实验成绩:_ 一、实验目的1掌握常用系统函数的功能及使用方法;2掌握自定义有返回值函数的概念、定义及使用方法。二、实验任务1、实现功能:根据键盘输入的数x,计算分段函数f(x)的值。(1) 主函数功能:从键盘输入数x,通过调用子函数得到计算结果并输出。(2) 子函数功能:定义有返回值函数,实现计算该分段函数值的功能。要求:求平方根和绝对值使用数学函数sqrt(x)、fabs(x)。(3) 输入输出格式请参
2、考以下样张: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) 子函数功能:定义有返回值函数,实现计算a的
3、b次方的功能。(3) 输入输出格式请参考以下样张:4、实现功能:求两个正整数的最大公约数、最小公倍数。(1) 主函数功能:从键盘输入两个正整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。(2) 子函数1功能:定义有返回值函数,实现求两个正整数的最大公约数的功能。子函数2功能:定义有返回值函数,实现求两个正整数的最小公倍数的功能。(3) 输入输出格式请参考以下样张:5、实现功能:计算正整数mn之间所有完数之和。(1) 主函数功能:从键盘输入两个整数m、n(m0, n0, mn),通过调用子函数判断出mn之间所有完数,计算所有完数之和并输出结果。(2) 子函数功能:定义有返回值函
4、数,实现判断正整数是否为完数的功能。(完数是指:该数所有因子(不含自身)之和等于该数,如28=1+2+4+7+14)。(3) 输入输出格式请参考以下样张:三、实验结果(源程序 + 注释)1.#include#includeusing namespace std; void main()cout学号:endl;cout=endl;double x,y;double f(double x);coutx;y=f(x);couty=y0)y=sqrt(x);elseif(x=0)y=0;elsey=fabs(x);return y;2.#include#includeusing namespace s
5、td;void main()cout学号:endl;cout=endl;int m,a,b,js,zq;char op;int calc(int a,int b,char op);srand(time(NULL);m=1+ rand()%3;a=1+ rand()%10;b=1+ rand()%10;switch (m) case 1:op=+; break;case 2:op=-; break;case 3:op=*; break;coutaopbjs;zq=calc(a,b,op);if(js!=zq)cout计算错误aopb=zqendl;elsecout计算正确endl;int cal
6、c(int a,int b,char op)int n;switch(op) case +:n=a+b;break; case -:n=a-b;break; case *:n=a*b;break; return n;3.#includeusing namespace std;void main()cout学号:endl;cout=endl;double a,b,c;double power(int a,int b);coutab;c=power(a,b)+power(b,a); couta的b次方为power(a,b)endl; coutb的a次方为power(b,a)endl; couta的
7、b次方加b的a次方为cendl;double power(int a,int b) int mul=1,i;for(i=0;ib;i+)mul=mul*a;return mul;4.#includeusing namespace std;void main()cout学号:endl;cout=endl;int x,y,z,gy,gb;int max(int m,int n);int min(int m,int n);coutxy;if(xy)z=x;x=y;y=z;gy=max(x,y);gb=min(x,y);cout最大公约数是:gyendl;cout最小公倍数是:gbendl;int m
8、ax(int m,int n) int t;t=m%n;while(t!=0)m=n;n=t;t=m%n;return n;int min(int m, int n) int max(int, int); return(m*n)/max(m,n);5.#includeusing namespace std;void main()cout学号:endl;cout=endl;int m,n,i,j,sum;sum=0;bool fact(int i);coutmn;for(i=m;i=n;i+) if (fact(i) sum=sum+i;coutmn之间所有完数之和为:sumendl;bool fact(int m) int sum=0,i;for(i=1;im;i+)if(m%i=0)sum=sum+i;if(sum=m)return true;elsereturn false;