师大实验报告格式学生版doc一表.docx
- 文档编号:24360193
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:29
- 大小:24.96KB
师大实验报告格式学生版doc一表.docx
《师大实验报告格式学生版doc一表.docx》由会员分享,可在线阅读,更多相关《师大实验报告格式学生版doc一表.docx(29页珍藏版)》请在冰豆网上搜索。
师大实验报告格式学生版doc一表
贵州师范大学数学与计算机科学学院学生实验报告
课程名称:
面向对象的程序设计班级:
2007信息实验日期:
2008年5月7日
学号:
姓名:
指导教师:
实验成绩:
一、实验名称:
实验二、函数与数组
二、实验目的及要求:
掌握函数的调用关系,注意调用与被调用的顺序与技巧和方法。
掌握用户自定义函数的编写、定义与调用,函数参数的传递方式及变量的作用域;
掌握数组的定义和使用,可以利用数组结构解决、优化实际问题.
三、实验环境:
硬件:
IBM-PC及兼容机
软件:
windowsXP操作系统
MicrosoftVisualC++6.0
四、实验内容:
1.写两个函数,分别求两个函数的最大公约数和小公倍数,用主函数调用两个函数,并输出结果,两个整数由键盘输入。
2.求a!
+b!
+c!
的值,用一个函数fac(n)求n!
。
a,b,c由主函数输入,最终得到的值在主函数中输出。
3.用递归的方法求n!
勒让多项式的值。
4.用递归法将一个整数n转换成字符串。
如:
输入483,应输出“483”,n的位数不确定。
5.用筛选法求100之内的素数。
6.用选择法对10个数排序。
7.求一个3*3矩阵的对角线元素之和。
8.找出一个二维数组中的鞍点即该位置上的元素在该行上最大,在该列上最小(也可能没有)
9.有15个一维数组由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几位数,如果该数不在数组中则打印出“无此数”。
10.编写一程序,将两个字符串连接起来(结果取代第一个字符串)
(1)用字符数组,不用strcat函数(即自己写一个有strcat函数功能的函数)。
(2)用标准库中的strcat函数;
(2)用string方法定义字符串变量;
11.输入n个字符串,将它们按字母由小到大的顺序排序并输出.
根据题目要求用流程图等形式表达算法设计思想与算法实现步骤(或记录实验实验步骤)然后用C++语言写出进行编译。
12.输入n个字符串,将其中按字母A开头的字符串输出;
五、算法描述及实验步骤:
1.在主函数上输入两个整数,然后两个函数(这两个函数能求出最大公约数和小公倍数),最后输出两个数的最大公约数和小公倍数。
2.写一个函数能求出所输入的数的阶乘,写一个主函数,输入3个数,分别调用所写的函数,求出其阶乘,在相加。
3.利用p(n,x)=﹛1(n=0);x(n=1);((2n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n}求:
p(n,x)。
4.利用一个函数将一个整数转换为字符串,在由主函数输入整数并调用函数,最后输出字符串。
5.利用一个数组的自等,筛选出100以内的所有素数。
6.利用冒泡法对10个数排序,既用相互比较的方法一个一个的比较,最后得出从大到小的排序。
7.利用数的自加,及3*3矩阵的对角线元素之和的下标都一样,求出和。
8.利用数的自加,先进行行的比较,在进行列的比较,最后输出。
9.根据题目要求设计思想与算法实现步骤,然后用C++语言写出进行编译。
10.根据题目要求用流程图等形式表达算法设计思想与算法实现步骤(或记录实验实验步骤)然后用C++语言写出进行编译。
11.根据题目要求用流程图等形式表达算法设计思想与算法实现步骤(或记录实验实验步骤)然后用C++语言写出进行编译。
12.运用数组自身的特征(以"\0"结束)进行连结.
六、调试过程及实验结果:
1.调试没有错误时
输入两个整数5,6,按Enter键输出:
最大公约数是1,最小公倍数是30。
2.写好了所想的程序,调试没有错误后,输入3个整数,能达到要求。
如:
输入3,4,5.后按Enter键后输出a!
+b!
+c!
=150。
3.写好程序后,输入两个数,求n!
勒让多项式的值。
如输入1,5.3输出:
0。
4.输入,最后输出123456;
5.写好程序,调试无误后,按Enter键输出所有的100以内的素数。
6写完程序后,调式无误后运行,输入:
4,3,8,1,5,2,7,9,6,0。
按Enter键得出:
0,1,2,3,4,5,6,7,8,9.
7.输入一个3*3矩阵,能达到要求。
8.输入一个二维数组,能达到要求。
9.输入一个数组,能达到要求。
10.输入一个字符串,能达到要求.
11.输入一个字符串,能达到要求.
12.输入3个字符,达到要求.
七、总结:
通过设计,我掌握了处理多函数的技巧,如:
被调用的函数写在了主函数前后就必须要在主函数内声明,如果写在了前面,就不需要加以声明了。
通过设计,我掌握了处理多函数的技巧。
如在主函数中的输入与输出等等。
运用数组解决问题有很多技巧,比如和利用数的自加性,解决数组的一些问题。
通过这个实验,我懂得了怎样分析和计算数组的一些技巧。
掌握数组的定义和使用,可以利用数组结构解决、优化实际问题。
八、附录(源程序清单):
1.
#include
usingnamespacestd;
intf(intx,inty)
{inta,b;
if(x {a=x;x=y;y=a;} while((b=x%y)! =0) {x=y;y=b;} returny;} intg(intx,inty,intp) {p=(x*y)/p; returnp;} intmain() {intx,y,p,q; cin>>x>>y; p=f(x,y); q=g(x,y,p); cout< return0;} 2.#include usingnamespacestd; longfac(intm) {longn; if(m<0) {cout<<"输入有错误请从新输入"< n=-1;} elseif(m==0||m==1) n=1; else n=fac(m-1)*m; returnn;} longmain() {longa,b,c,o,p,q,r; cin>>a; cin>>b; cin>>c; o=fac(a); p=fac(b); q=fac(c);r=o+p+q; cout<<"a! +b! +c! ="< return0;} 3.#include usingnamespacestd; doublep(intn,floatx) {doublef; if(n==0)f=1; elseif(n==1)f=x; else f=((2*n-1)*x-p((n-1),x)-(n-1)*p((*n-2),x))/n; returnf; } intmain() {intn;doublef;floatx; cout<<"input2numbers"< cin>>n>>x; f=p(n,x); cout<<"f="< return0;} 4.#include usingnamespacestd; intmain() {intn; voidC(int); cin>>n; C(n); cout< return0;} voidC(intn) {inti; charc; if((i=n/10)! =0) C(i); c=n%10+'0'; cout<<""< 5.#include #include #include usingnamespacestd; intmain() {inti,m,k,j,a[101],n=0,flag; cout< flag=1; for(i=4;i<101;i++) {m=i;k=int(sqrt(m)); {for(j=2;j<=k;j++) if(m%j==0) {flag=0; break;} elseflag=1;} if(flag) {cout< return0;} 6.#include usingnamespacestd; intmain() {inta[10],i,k,j,t; for(i=0;i<10;i++) cin>>a[i]; for(i=0;i<10;i++) {k=i; for(j=i+1;j<10;j++) if(a[k] k=j; t=a[k];a[k]=a[i];a[i]=t; cout< return0;} 7.#include usingnamespacestd; intmain() {inta[3][3],i,j,m=0; for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>a[i][j]; for(i=0;i<3;i++) {m=m+a[i][i];} cout< return0;} 8.#include usingnamespacestd; intmain() {constintn=4,m=5; inti,j,a[n][m],max,maxj; for(i=0;i for(j=0;j cin>>a[i][j]; for(i=0;i {{max=a[i][0];maxj=0; for(j=0;j if(a[i][j]>max) {max=a[i][j]; maxj=j; } for(intk=0;k {if(max>a[k][maxj]) cout<<"没有鞍点"< else cout<<"鞍点是: "<<"a["< break;} } return0;} 9.#include usingnamespacestd; main() { constints=15; inti,j; floatt,a[s]={98,91,89,75,73,60,55,41,31,24,15,14,10,9,0}; for(i=0;i cout< cout< intn; intfound; intl,h,m; intf=1; for(i=1;i<4;i++) {cin>>n; f=0; l=0; h=s-1; while(l<=h) { mid=(h+l)/2; if(a[m]==value) {f=1; break;} if(a[m]>v) l=m+1; else h=m-1;} if(f) cout< else cout<<"无此数"< 10.(1)用字符数组,不用strcat函数(即自己写一个有strcat函数功能的函数)。 #include usingnamespacestd; intmain() { chara[30],b[30],c[60]; inti=0,j=0; cout<<"Pleaseenterthestring: \n"; cin>>a>>b; while(a[i]! ='\0') { c[i]=a[i];i++; } while(b[j]! ='\0') { c[i]=b[j];i++,j++; } c[i]='\0'; cout< cout< 调试过程及实验结果 (2)用标准库中的strcat函数 #include usingnamespacestd; intmain() {chara[30],b[30],c[60]; cout<<"Pleaseenterthestring: \n"; cin>>a>>b; cout< return0;} (3)用string方法定义字符串变量; #include #include usingnamespacestd; intmain() {stringa,b; cout<<"Pleaseenterthestring: \n"; cin>>a>>b; cout< return0;} 11.#include #include usingnamespacestd; intmain() { stringa,b,c,z; voidSort(string,string,string); cin>>a>>b>>c; cout< if(a>b){z=a;a=b;b=z;} if(a>c){z=a;a=c;c=z;} if(b>c){z=b;b=c;c=z;} cout< cout< cout< return0; } 12.#include usingnamespacestd; intmain() { chara[100],b[100],c[100]; cout<<"Pleaseenterthestring: \n"; cin>>a>>b>>c; cout<<"\nAstringtothebeginningofa: \n"; if(a[0]=='A'||a[0]=='a')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 师大 实验 报告 格式 学生 doc