收藏 分销(赏)

西南交大C++实验七.doc

上传人:a199****6536 文档编号:1693244 上传时间:2024-05-07 格式:DOC 页数:8 大小:46KB 下载积分:6 金币
下载 相关 举报
西南交大C++实验七.doc_第1页
第1页 / 共8页
西南交大C++实验七.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
实验 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(a>0, b>0),通过调用子函数计算a的b次方与b的a次方的和并输出结果。 (2) 子函数功能:定义有返回值函数,实现计算a的b次方的功能。 (3) 输入输出格式请参考以下样张: 4、实现功能:求两个正整数的最大公约数、最小公倍数。 (1) 主函数功能:从键盘输入两个正整数,通过调用两个子函数分别得到最大公约数、 最小公倍数并输出结果。 (2) 子函数1功能:定义有返回值函数,实现求两个正整数的最大公约数的功能。 子函数2功能:定义有返回值函数,实现求两个正整数的最小公倍数的功能。 (3) 输入输出格式请参考以下样张: 5、实现功能:计算正整数m~n之间所有完数之和。 (1) 主函数功能:从键盘输入两个整数m、n(m>0, n>0, m<n),通过调用子函数判断出m~n之间所有完数,计算所有完数之和并输出结果。 (2) 子函数功能:定义有返回值函数,实现判断正整数是否为完数的功能。(完数是指:该数所有因子(不含自身)之和等于该数,如28=1+2+4+7+14)。 (3) 输入输出格式请参考以下样张: 三、实验结果(源程序 + 注释) 1. #include<iostream> #include<cmath> using namespace std; void main() { cout<<"学号:"<<endl; cout<<"========================================="<<endl; double x,y; double f(double x); cout<<"x="; cin>>x; y=f(x); cout<<"y="<<y<<endl; } double f(double x) {double y; if(x>0) y=sqrt(x); else if(x==0) y=0; else y=fabs(x); return y;} 2. #include<iostream> #include<ctime> using namespace std; 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; } cout<<a<<op<<b<<"="; cin>>js; zq=calc(a,b,op); if(js!=zq) cout<<"计算错误"<<a<<op<<b<<"="<<zq<<endl; else cout<<"计算正确"<<endl; } int calc(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. #include<iostream> using namespace std; void main() { cout<<"学号:"<<endl; cout<<"========================================="<<endl; double a,b,c; double power(int a,int b); cout<<"请输入a,b:"; cin>>a>>b; c=power(a,b)+power(b,a); cout<<a<<"的"<<b<<"次方为"<<power(a,b)<<endl; cout<<b<<"的"<<a<<"次方为"<<power(b,a)<<endl; cout<<a<<"的"<<b<<"次方加"<<b<<"的"<<a<<"次方为"<<c<<endl; } double power(int a,int b) {int mul=1,i; for(i=0;i<b;i++) mul=mul*a; return mul; } 4. #include<iostream> using 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); cout<<"请输入2个正整数:"; cin>>x>>y; if(x<y) { z=x; x=y; y=z;} gy=max(x,y); gb=min(x,y); cout<<"最大公约数是:"<<gy<<endl; cout<<"最小公倍数是:"<<gb<<endl; } int max(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. #include<iostream> using namespace std; void main() { cout<<"学号:"<<endl; cout<<"========================================="<<endl; int m,n,i,j,sum; sum=0; bool fact(int i); cout<<"请输入2个正整数m,n:"; cin>>m>>n; for(i=m;i<=n;i++) if (fact(i)) sum=sum+i; cout<<m<<"~"<<n<<"之间所有完数之和为:"<<sum<<endl; } bool fact(int m) { int sum=0,i; for(i=1;i<m;i++) if(m%i==0) sum=sum+i; if(sum==m) return true; else return false; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服