C++实验报告.docx
- 文档编号:9563745
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:63.87KB
C++实验报告.docx
《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
C++实验报告
北京电子科技学院(BESTI)
实验报告
课程:
面向对象程序设计
班级:
1022
姓名:
徐骏
学号:
20102225
成绩:
指导教师:
徐日
实验日期:
2011/10/22
实验密级:
预习程度:
实验时间:
12:
00
仪器组次:
801机房
A43
必修/选修:
选修
实验序号:
1
实验名称:
熟悉开放环境
实验目的与要求:
1.使学生熟悉上机环境
2.培养学生具有运用C++语言编程解决问题的能力,提高学生的计算机编程能力;;
3.引导和培养学生具有认真严谨的实验态度和勇于实践的学习精神。
实验仪器:
名称
型号
数量
微机
LenovoThinkCentre8000
1
一、实验内容
第一题
1.编写程序(使用循环控制编程),输出如下结果
1
121
12321
1234321
123454321
12345654321
要求:
同行相邻的两个数字间为2个空格。
最后一行最左边的“1”距左边距为2个空格。
编程设计思想:
先控制外层循环控制每行打印的空格的数目,
然后分为2段,一段是逐渐增加的一段,另一段是逐渐减少的一段,再用2个循环分别把2段打印出来
编程如下:
#include
voidmain(void)
{
intn1,n2,n3,k;
cout<<"输入你要打印几行"< cin>>k;//给变量赋值// for(n1=1;n1<=k;n1++)//外层函数控制打印几行// { for(n2=k*3-(n1-1)*3;n2>=1;n2--)//控制打印左边的空格// { cout<<""; } for(n3=1;n3<=n1;n3++)//打印每行左半边逐渐增加的数字,每行数字后面加2个空格// { cout< } for(n3=n1-1;n3>0;n3--)//打印每行右半边逐渐减少的数字,每行数字后面加2个空格// { cout< } cout< } } 结果如下: 输入你要打印几行 6 1 121 12321 1234321 123454321 12345654321 Pressanykeytocontinue 结果图: 第二题 2.偶数=一对儿素数组合 编写程序: 任何一个充分大的偶数(>=5000)总可以表示成2个素数之和,求出所有符合这样条件的素数的组合。 要求: 1.主函数中提示用户输入一个充分大的偶数(>=5000),最后由主函数输出所有符合上述条件的成对儿的素数组。 2.编写判断是否是素数的函数,主函数调用该函数。 3.所生成的程序执行结果至少有4对儿素数组合,但一般情况下结果较多,请由程序控制调正每行显示的组合数目; 4.为便于理解题意,程序执行结果可参考下图。 编程设计思想: 先定义一个判断素数的函数,然后设置一个循环,把输入的一个数分为2个数的和,然后将2个数带入这个判断素数的函数当中去,判断2个数是不是素数,如果2个都是素数就打印出这2个数字。 编程如下: #include #include inthanshu(ints);//定义一个判断素数的函数// voidmain(void) { intn1,n2=1,a,b,s,k,l;//定义变量// cout<<"输入一个充分大的偶数(大于等于5000)"< cin>>a;//从键盘输入变量的值// cout<<"请输入每行显示的组合数目"< cin>>s; if(a<5000) { cout<<"请重新输入一个充分大的偶数(>=5000)"; cin>>a; cout<<"请输入每行显示的组合数目"< cin>>s; } for(n1=3;n1<=a-1;n1++) { b=a-n1; k=hanshu(n1); l=hanshu(b); if(k==1&&l==1) { cout< : left)< : left)< : right)< if(n2%s==0){ cout< } n2++; } } } inthanshu(ints) { intn; intm; intjishu=0; for(n=2;n<=s-1;n++) { m=s%n; if(m==0) { jishu++;//当有一个数能整除的时候,计数就会增加,有利于下面的判断// } } if(jishu! =0){ return0;} else{ return1; } } 结果如下: 输入一个充分大的偶数(大于等于5000) 5002 请输入每行显示的组合数目 3 5002=3+49995002=29+49735002=59+4943 5002=71+49315002=83+49195002=113+4889 5002=131+48715002=251+47515002=269+4733 5002=281+47215002=311+46915002=353+4649 5002=359+46435002=419+45835002=479+4523 5002=509+44935002=521+44815002=593+4409 5002=653+43495002=719+42835002=743+4259 5002=761+42415002=773+42295002=863+4139 5002=911+40915002=929+40735002=953+4049 5002=983+40195002=1013+39895002=1091+3911 5002=1151+38515002=1181+38215002=1223+3779 5002=1283+37195002=1301+37015002=1409+3593 5002=1511+34915002=1553+34495002=1613+3389 5002=1811+31915002=1913+30895002=1979+3023 5002=2003+29995002=2039+29635002=2063+2939 5002=2099+29035002=2141+28615002=2213+2789 5002=2273+27295002=2309+26935002=2339+2663 5002=2381+26215002=2393+26095002=2411+2591 5002=2423+25795002=2459+25435002=2543+2459 5002=2579+24235002=2591+24115002=2609+2393 5002=2621+23815002=2663+23395002=2693+2309 5002=2729+22735002=2789+22135002=2861+2141 5002=2903+20995002=2939+20635002=2963+2039 5002=2999+20035002=3023+19795002=3089+1913 5002=3191+18115002=3389+16135002=3449+1553 5002=3491+15115002=3593+14095002=3701+1301 5002=3719+12835002=3779+12235002=3821+1181 5002=3851+11515002=3911+10915002=3989+1013 5002=4019+9835002=4049+9535002=4073+929 5002=4091+9115002=4139+8635002=4229+773 5002=4241+7615002=4259+7435002=4283+719 5002=4349+6535002=4409+5935002=4481+521 5002=4493+5095002=4523+4795002=4583+419 5002=4643+3595002=4649+3535002=4691+311 5002=4721+2815002=4733+2695002=4751+251 5002=4871+1315002=4889+1135002=4919+83 5002=4931+715002=4943+595002=4973+29 5002=4999+3Pressanykeytocontinue 结果图: 第三题 3.整数换为字符串(选作) 使用递归的方法将一个整数转换为一个字符串。 例如输入整数11286,应输出字符串“11286”。 要求: 1.主函数中提示用户输入一个整数,由主程序输出转换后的字符。 2.编写转换函数,用语将整数转换为字符串,用递归的方法,主函数调用该函数。 3.编程时应考虑负整数的转换处理。 4.为便于理解题意,程序执行结果可参考下图。 注意: 1.输入输出使用C++中的CIN和COUT,不要使用SCANF()和PRINTF()。 编程设计思想: 先确定输入的这个数总共有多少位数,然后分别存到字符数组当中,当输入完了数字后,再向字符数组当中输入结束符号0(避免打印烫烫烫)。 编程如下: #include #include voidzhuanhuan(intn,char*s,intb);//定义一个转换的函数// voidmain(void) { inta; intcounter1=0; intcounter2=0; chars[22]; cout<<"请输入一个整型数: "; cin>>a; inta1=a,a2=-a; if(a>0) { while(a1! =0) { counter1++; a1=a1/10; } s[counter1]=0; zhuanhuan(a,s,counter1);//将变量带入函数当中// cout<<"输出的字符串是: "< } if(a<0) { while(a2! =0) { counter2++; a2=a2/10; } s[counter2]=0; zhuanhuan(-a,s,counter2);//将变量带入函数当中// cout<<"输出的字符串是: "<<"-"< } } voidzhuanhuan(intn,char*s,intb) { if(b>=1) { s[b-1]=n%10+'0'; n=n/10; b--; zhuanhuan(n,s,b); } } 结果如下: 请输入一个整型数: -12345 输出的字符串是: -12345 Pressanykeytocontinue 结果图: 二.实验体会 经过实验1的训练,我进一步了解了字符型和整型的相互转换,多重循环的运用,从左对齐再右对齐,从编程过程中慢慢从C语言的编程习惯转换到了C++的编程习惯当中。 在实验1中,我找到了自己的不足,在字符和整型的转换的运用不熟悉,找了很多资料才懂得其中的道理。 在做第二的时候,由于对左对齐的运用不熟悉,在书上找了很多例子,才慢慢熟悉。 计算机语言就是一个需要多练习的学科。 大一下期一个只会看书看程序的我,现在才慢慢发现其中的方法和乐趣。 Iamchangingmyself.Iwillprovemyself.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)