计算机C++程序设计实验报告Word格式文档下载.docx

上传人:b****2 文档编号:282437 上传时间:2023-04-28 格式:DOCX 页数:43 大小:25.74KB
下载 相关 举报
计算机C++程序设计实验报告Word格式文档下载.docx_第1页
第1页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第2页
第2页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第3页
第3页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第4页
第4页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第5页
第5页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第6页
第6页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第7页
第7页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第8页
第8页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第9页
第9页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第10页
第10页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第11页
第11页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第12页
第12页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第13页
第13页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第14页
第14页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第15页
第15页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第16页
第16页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第17页
第17页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第18页
第18页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第19页
第19页 / 共43页
计算机C++程序设计实验报告Word格式文档下载.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机C++程序设计实验报告Word格式文档下载.docx

《计算机C++程序设计实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机C++程序设计实验报告Word格式文档下载.docx(43页珍藏版)》请在冰点文库上搜索。

计算机C++程序设计实验报告Word格式文档下载.docx

string(n-i,'

'

)+string(2*i-1,c)+'

\n'

;

}

【输入】:

A5B3

【输出】:

1.2字符菱形

根据读入的字符和边长,勾画字符菱形。

输入数据含有不超过50组的数据,每组数据包括一个可见字符c和一个整数n(1<

输出以c为填充字符、边长为n的菱形,勾画每个菱形时都应另起一行。

{

)+string(2*i-1,c)+'

=n-1;

string(i,'

)+string(2*n-1-2*i,c)+'

A5B3

1.3背靠背字符三角形

根据读入的字符和高,勾画背靠背字符三角形。

输入数据不超过50组的数据,每组数据包括一个可见字符c和一个整数n(1<

输出以c为填充字符,高为n的背靠背字符三角形,勾画每个三角形时都应另起一行。

intmain(){

i++)

)+string(i,c)+"

"

+string(i,c)+"

\n"

W5B3

1.4格式阵列一

根据读入的阶,按样例打印格式阵列。

输入读入的阶,按样例打印格式阵列。

输出以n为阶的格式阵列。

每行开始先打印行号,行号为两个字符宽,右对齐,行号与元素之间空2格。

每个元素占3个字符宽。

右对齐,元素值起始位置为0,以后每向右前进一个,元素值便取前一元素加1除n的余数,每进到下一行,起始的元素值为上一元素加1除以n的余数,以此类推。

每个格式阵列之间应有一空行,最前与最后不应有空行。

#include<

intn,casen;

voidcomputing(){

for(inti=0;

i<

i++){

cout<

"

i+1;

i;

for(intt=1;

t<

t++)cout<

(i+t)%n;

endl;

}

while(cin>

n){

if(casen>

0)cout<

computing();

casen++;

return0;

63

实验二、字符和数字运算实验

一、实验目的

三、实验内容

a)P.44,3.6.1,逆反01串;

b)P.44,3.6.2,倒杨辉三角形;

c)P.45,3.6.3,“顺”序列;

d)P.46,3.6.4,数字和。

4、实验过程及结果

2.1逆反01串

输入数据含有不多于50个的01串,每个字串的长度不大于200.

按输入的01串输入对应的10串,每个字串单独占一行。

intmain()

strings;

inti,m=1;

for(;

cin>

s;

m++)

{

if(s.length()<

=200)

for(i=0;

s.length();

i++)

if(s.substr(i,1)=="

1"

cout<

0"

elsecout<

elsebreak;

if(m>

50)break;

2.2倒杨辉三角形

输入数据中包含了不多于50个的整数n(1<

=10).

以n为行数,其打印出的倒杨辉三角形(每个数据占三个字符),每个倒三角形之间没有空行,见样本输出。

constintmaxn=10;

inta[maxn+10][maxn+10],n;

voidini(){

for(inti=1;

=maxn;

a[i][i]=1;

a[i][1]=1;

for(inti=3;

for(intj=2;

j<

j++){

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

ini();

for(inti=n;

i>

=1;

i--){

for(intj=i;

j++)cout<

for(intj=1;

=i;

cout<

a[i][j]<

}

cout<

5

3

2.3“顺”序列

输入中第一行为一个整数n(1<

=10),描述后面一共有n组卡片,每组卡片的第一个数m(1<

=m<

=100),表示后面会出现m张卡片。

输入每组卡片,判断是否能构成“顺”序列。

如果能构成“顺”序列,则输出yes,否则就输出no。

每个结果应分别不同行显示。

boolcompute(int*a,intm)

inti,j,max=0;

m;

if(a[i]>

max)

max=a[i];

for(j=0;

if(a[i]+1==a[j]||a[i]==max)

break;

if(j>

=m)

returnfalse;

returntrue;

int*a;

intn=0;

intm=0;

string*b;

inti,j;

intrsize=0;

请输入一个整数n:

b=newstring[n];

j=0;

while(j<

请输入整数m:

a=newint[m];

请输入一连串数据:

a[i];

if(compute(a,m))

b[j]="

Yes"

else

No"

delete[]a;

j++;

输出:

b[i]<

delete[]b;

2

45768

81732812783

2.4数字和

输入数据中包含了不多于50个的正整数n

每个正整数都应输出一个各位数字和,并独占一行。

stringst;

while(getline(cin,st)){

intans=0;

for(inti=0;

st.length();

if(st[i]>

='

0'

&

&

st[i]<

9'

)ans+=st[i]-'

ans<

12345

56123

82

五、实验小结:

本次试验重点学习了各种数据类型,逻辑运算,函数的声明,定义和调用。

在过程控制过程中,熟练地使用多重循环,同时应养成良好的编程习惯和形成自己的编程风格,一边为日后的学习打下坚实的基础。

实验三、加密和解密算法实验

1、重视数学方法,提高数学推算和编程表的转换能力。

2、拓展编程表达的方法,熟练运用函数等手段进行计算模块的分离计算。

3、进一步学会使用c++标准库;

4、在保证编程程序正确的条件下,关注数据结构和算法,改进效率。

a)P.98,7.2.1,密钥加密;

b)P.99,7.2.2,密钥解密;

3.1密钥加密

【实验代码】:

string.h>

{while

(1){

charkey[100],data[101];

cin.getline(key,100);

cin.getline(data,100);

key;

inti=0,j=0;

strlen(data);

strlen(key);

if(i>

=strlen(data))

data[i]+=key[j]-'

if(data[i]>

122)

data[i]=data[i]-123+32;

i++;

i-=1;

data<

4972863

Theresultof3and2isnot8

123

Helloworld

3.2密钥解密

while

(1){

key<

data[i]-=key[j]-'

if(data[i]<

32)

data[i]=data[i]-32+123;

xql”zkvyu“wl#7)hpl”5$rx”vuw$A

Igomq#Xqumf

五,实验小结:

通过本次实验,对加密解密有一定的了解,密钥加密就是将密钥数字串值循环加到明文上,使得明文不可阅读,解密就是加密的反过程。

实验中,遇到一些问题,字符串的读入和输出以及循环表达式的设计,通过查阅资料和上网查阅,最后算是解决问题。

实验四、数字算法实验

a)P.102,7.3.1,n!

的位数;

b)P.103,7.3.2,排列对称串;

c)P.103,7.3.3,勒让德多项式表;

d)P.104,7.3.4,立方数和连续奇数和;

4.1n!

的位数

【基本描述】:

针对每个非负整数n,计算n!

的位数

输入数据中含有一些整数n(0<

10^7)

根据每个整数n,输出n!

的位数,每个数占独立一行。

【主要代码】:

cmath>

doubleN,logV;

inti;

while(cout<

输入N的值:

i)

N=i;

for(i=1,logV=0;

=N;

logV+=log(1.0*i);

logV/=log(10.0);

N<

!

的位数:

(int)(logV+1)<

return0;

56

4.2排列对称串

一些字串,有些是对称的,有些是不对称的。

请将那些对称的字串按从小到大的顺序输出。

字串先以长度论大小,如果长度相同,再以ASCII码值大小为标准。

输入数据中含有一些字串(1<

=串长<

=256)

根据每个字串,输出对称的那些串,并且要求按从小到大的顺序输出。

【代码如下】:

fstream>

vector>

algorithm>

boolComp(conststring&

s1,conststring&

s2)

{

returns1.length()!

=s2.length()?

s1.length()<

s2.length():

s1<

s2;

}

intmain(intargc,char*argv[])

vector<

v;

stringt,s;

s)

{

t=s;

reverse(t.begin(),t.end());

if(t==s)

v.push_back(s);

}

if(cin.get()=='

sort(v.begin(),v.end(),Comp);

v.size();

i++)

v[i]<

system("

pause"

);

123321

321

sdfsdfd

121212

\\dd\\

4.3勒让德多项式表

数学poly函数的展开式也称关于x的n阶勒让德多项式,它的递推公式为:

给定x,请计算n阶勒让德多项式的值。

输入数据中含有一些浮点数x(0<

x<

1)

对于每个x,分别计算2阶,3阶,4阶,5阶,6阶的勒让德多项式的值,其每个值的精度为6位小数。

输出时,先列出x的值,保留3位小数精度,然后每输出一个阶值之前,都空出2格,由此一字排开,形成一张多项式表

iomanip>

doublepoly(intn,doublex);

{inti=0;

for(doublex;

x;

){

if(i==0){

xp2(x)p3(x)p4(x)p5(x)p6(x)"

i=1;

fixed<

setprecision(3)<

setprecision(6);

for(inti=2;

=6;

setw(11)<

poly(i,x);

doublepoly(intn,doublex){

if(n==0)

return1;

if(n==1)

returnx;

return((2*n-1)*x*poly(n-1,x)-(n-1)*poly(n-2,x))/n;

0.20.30.35

【输出】:

4.4立方数与连续奇数和

一个整数的立方数,可以表示为连续奇数的和,例如:

3^3=7+9+11

4^3=13+15+17+19

针对每个正整数n,输出表示其立方数的连续奇数和

输入数据中含有一些整数n(1<

=100)

根据每个整数n,输出其值等于n^3的连续奇数和

 

intmain() 

inti,n,j,a[5];

i++) 

intm=a[i]*a[i]-a[i]+1;

j++) 

m<

m+=2;

348

4.5斐波那契数

根据输入数据中的n,输出第n项斐波那契数。

=46)

根据每个整数n,输出其第n项斐波那契数,每个数独占一行。

intn;

int>

v.push_back(0);

v.push_back

(1);

for(intk=2;

k<

=46;

++k)

v.push_back(v[k-1]+v[k-2]);

while(cin>

n)

cout<

v[n]<

endl;

5678940

本次试验第一,三,五题均使用递归算法,即程序自己调用自己的编程技巧。

在使用递归时,要有递归边界条件,递归前进段和递归返回段。

当边界条件不满足时,递归前进,当边界条件满足时,递归返回。

应该熟练掌握递归算法的用法。

第二题中,排序比较函数的具体方法是,判断参与比较的没两个字符串的长度是否相等,若不相等则按长度从小到大的顺序返回;

若相等则以ASCII码值为排序标准,即按字符串从小到大排序。

第四题中,立方数表示为连续的奇数和。

n个连续的奇数,假设第一个奇数为x,那么第n个奇数就是x+(2n-2) 

n个连续奇数的和就等于x+(x+2)+...+(x+(2n-2))=(x+n-1)*n。

正整数n的立方可以表示为n个连续奇数的和 

就可以变成 

n*n*n=(x+n-1)*n->

n*n=x+n-1->

x=n*n-n+1 

实验五、大数运算算法实验

a)P.106,7.4.2,大数加;

b)P.107,7.4.3,大数和;

c)P.109,7.5.1,大数乘;

5.1大数加

给定一些大数,把它们加起来。

【输入描

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2