实验7实验报告教学班级:_______学生学号:__________学生姓名:___________实验日期:_____________实验地点:_指导教师签名:_____________实验成绩:______________一、实验目的1.掌握常用系统函数的功能及使用方法;2.掌握自定义有返回值函数的概念、定义及使用方法。二、实验任务1、实现功能:根据键盘输入的数x,计算分段函数f(x)的值。(1)主函数功能:从键盘输入数x,通过调用子函数得到计算结果并输出。(2)子函数功能:定义有返回值函数,实现计算该分段函数值的功能。要求:求平方根和绝对值使用数学函数sqrt(x)、fabs(x)。(3)输入输出格式请参考以下样张:2、实现功能:1~10加减乘运算训练系统。(1)主函数功能:随机产生一个1~10加减乘算术式(数字在1~10之间随机产生,运算符在加减乘中随机产生,如2+3=、8-4=、6*3=),要求用户输入计算结果,通过调用子函数得到正确答案,判断用户输入的计算结果是否正确并输出结论。(2)子函数功能:定义有返回值函数,实现加减乘算术式的计算功能。(3)输入输出格式请参考以下样张:3.实现功能:计算a的b次方与b的a次方的和。(1)主函数功能:从键盘输入两个整数a、b(a0,b0),通过调用子函数计算a的b次方与b的a次方的和并输出结果。(2)子函数功能:定义有返回值函数,实现计算a的b次方的功能。(3)输入输出格式请参考以下样张:4、实现功能:求两个正整数的最大公约数、最小公倍数。(1)主函数功能:从键盘输入两个正整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。(2)子函数1功能:定义有返回值函数,实现求两个正整数的最大公约数的功能。子函数2功能:定义有返回值函数,实现求两个正整数的最小公倍数的功能。(3)输入输出格式请参考以下样张:5、实现功能:计算正整数m~n之间所有完数之和。(1)主函数功能:从键盘输入两个整数m、n(m0,n0,mn),通过调用子函数判断出m~n之间所有完数,计算所有完数之和并输出结果。(2)子函数功能:定义有返回值函数,实现判断正整数是否为完数的功能。(完数是指:该数所有因子(不含自身)之和等于该数,如28=1+2+4+7+14)。(3)输入输出格式请参考以下样张:三、实验结果(源程序+注释)1.#includeiostream#includecmathusingnamespacestd;voidmain(){cout学号:endl;cout=========================================endl;doublex,y;doublef(doublex);coutx=;cinx;y=f(x);couty=yendl;}doublef(doublex){doubley;if(x0)y=sqrt(x);elseif(x==0)y=0;elsey=fabs(x);returny;}2.#includeiostream#includectimeusingnamespacestd;voidmain(){cout学号:endl;cout=========================================endl;intm,a,b,js,zq;charop;intcalc(inta,intb,charop);srand(time(NULL));m=1+rand()%3;a=1+rand()%10;b=1+rand()%10;switch(m){case1:op='+';break;case2:op='-';break;case3:op='*';break;}coutaopb=;cinjs;zq=calc(a,b,op);if(js!=zq)cout计算错误aopb=zqendl;elsecout计算正确endl;}intcalc(inta,intb,charop){intn;switch(op){case'+':n=a+b;break;case'-':n=a-b;break;case'*':n=a*b;break;}returnn;}3.#includeiostreamusingnamespacestd;voidmain(){cout学号:endl;cout=========================================endl;doublea,b,c;doublepower(inta,intb);cout请输入a,b:;cinab;c=power(a,b)+power(b,a);couta的b次方为power(a,b)endl;coutb的a次方为power(b,a)endl;couta的b次方加b的a次方为cendl;}doublepower(inta,intb){intmul=1,i;for(i=0;ib;i++)mul=mul*a;returnmul;}4.#includeiostreamusingnamespacestd;voidmain(){cout学号:endl;cout=========================================endl;intx,y,z,gy,gb;intmax(intm,intn);intmin(intm,intn);cout请输入2个正整数:;cinxy;if(xy){z=x;x=y;y=z;}gy=max(x,y);gb=min(x,y);cout最大公约数是:gyendl;cout最小公倍数是:gbendl;}intmax(intm,intn){intt;t=m%n;while(t!=0){m=n;n=t;t=m%n;}returnn;}intmin(intm,intn){intmax(int,int);return(m*n)/max(m,n);}5.#includeiostreamusingnamespacestd;voidmain(){cout学号:endl;cout=========================================endl;intm,n,i,j,sum;sum=0;boolfact(inti);cout请输入2个正整数m,n:;cinmn;for(i=m;i=n;i++)if(fact(i))sum=sum+i;coutm~n之间所有完数之和为:sumendl;}boolfact(intm){intsum=0,i;for(i=1;im;i++)if(m%i==0)sum=sum+i;if(sum==m)returntrue;elsereturnfalse;}