计算机程序设计语言C++实验报告.docx

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

计算机程序设计语言C++实验报告.docx

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

计算机程序设计语言C++实验报告.docx

计算机程序设计语言C++实验报告

计算机程序设计语言C++

实验报告

 

班级工商管理

学号20124130

姓名沈栋

指导教师何耀琴

经济管理学院

二O一一年六月

题目1:

输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

#include

usingnamespacestd;

intmain()

{

intn1,n2,n3,i;

for(i=100;i<=999;i++)

{

n1=i/100;

n2=(i%100)/10;

n3=i%10;

if(n1*n1*n1+n2*n2*n2+n3*n3*n3==i)

cout<

}

return0;

}

题目2:

输入一行字符,分别统计出其中英语字母、空格、数字和其他字符的个数

#include

usingnamespacestd;

intmain()

{intl,s,n,o;

cout<<"请输入一行字符"<

{

chare;

l=s=n=o=0;

while((e=getchar())!

='\n')

{if((e>='a'&&e<='z')||(e>='A'&&e<='Z'))l++;

elseif(e>='0'&&e<='9')n++;

elseif(e=='')s++;

elseo++;

}

printf("l:

%d\n",l);

printf("s:

%d\n",s);

printf("n:

%d\n",n);

printf("o:

%d\n",o);

}

return0;}

题目3:

输入两个正整数m和n,求其最大公约数和最小公倍数

#include

usingnamespacestd;

intmain()

{

intm,n,a,b,X,Y;

cout<<"输入两个正整数";

cin>>m>>n;

X=m*n;

Y=1;

for(a=m*n;a>=m&&a>=n;a--)

{

if(a%m==0&&a%n==0&&a

X=a;

}

for(b=m;b>=1;b--)

{

if(m%b==0&&n%b==0&&b>Y)

Y=b;

}

cout<<"最小公倍数"<

cout<<"最大公约数"<

return0;

}

题目4:

输出以“*”表示的正金字塔与倒金字塔模型

#include

usingnamespacestd;

voidprint(intn)

{

inti,j;

for(i=1;i<=n;i++)

{for(j=n-1;j>=i;j--)cout<<"";

for(j=1;j<=2*i-1;j++)cout<<"*";

cout<

}

}

voidprintstar(intn)

{

inti,j;

for(i=1;i<=n;i++)

{for(j=1;j<=i-1;j++)cout<<"";

for(j=n-1;j>=i;j--)cout<<"**";

cout<<"*";

cout<

}

}

intmain()

{

inti,m;

for(i=1;i<=5;i++)

{cin>>m;

print(m);

printstar(m);

}

return0;

}

题目5:

输入十个整数,要求按倒序排列输出

#include

usingnamespacestd;

intmain()

{

voiddaoxu(int*);

inta[10];

cout<<"输入10个数";

inti,*p=a;

for(i=0;i<10;i++)cin>>*(p+i);

cout<

daoxu(p);

for(p=a;p<(a+10);p++)cout<<*p<<"";

cout<

return0;

}

voiddaoxu(int*p)

{voidswap(int*,int*);

inti;

for(i=0;i<5;i++)swap((p+i),(p+9-i));

}

voidswap(int*p1,int*p2)

{

inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

}

题目6:

输入5位学生的5门课成绩,要求计算这5位学生的各自5门课平均成绩及所有5位学生的平均成绩,并输出

#include

usingnamespacestd;

intmain()

{

structStudent

{

charname[10];

intscore[5];

floataverage;

};

inti,sum;

Studentstu;

cout<<"输入学生姓名:

";

cin>>stu.name;

cout<<"输入五门课的成绩:

";

for(i=0;i<5;i++)

cin>>stu.score[i];

sum=0;

for(i=0;i<5;i++)

sum+=stu.score[i];

stu.average=(float)sum/5;

cout<

inta1=stu.average;

cout<<"输入学生姓名:

";

cin>>stu.name;

cout<<"输入五门课的成绩:

";

for(i=0;i<5;i++)

cin>>stu.score[i];

sum=0;

for(i=0;i<5;i++)

sum+=stu.score[i];

stu.average=(float)sum/5;

cout<

inta2=stu.average;

cout<<"输入学生姓名:

";

cin>>stu.name;

cout<<"输入五门课的成绩:

";

for(i=0;i<5;i++)

cin>>stu.score[i];

sum=0;

for(i=0;i<5;i++)

sum+=stu.score[i];

stu.average=(float)sum/5;

cout<

inta3=stu.average;

cout<<"输入学生姓名:

";

cin>>stu.name;

cout<<"输入五门课的成绩:

";

for(i=0;i<5;i++)

cin>>stu.score[i];

sum=0;

for(i=0;i<5;i++)

sum+=stu.score[i];

stu.average=(float)sum/5;

cout<

inta4=stu.average;

cout<<"输入学生姓名:

";

cin>>stu.name;

cout<<"输入五门课的成绩:

";

for(i=0;i<5;i++)

cin>>stu.score[i];

sum=0;

for(i=0;i<5;i++)

sum+=stu.score[i];

stu.average=(float)sum/5;

cout<

inta5=stu.average;

cout<<"所有人平均成绩"<<':

'<<(a1+a2+a3+a4+a5)/5<

 

return0;

}

 

题目7:

输入5位学生的5门课成绩,要求输出按由高到低排列的这5位学生的各自5门课平均成绩及所有学生的5门课平均成绩。

#include

#include

usingnamespacestd;

structStudent

{

stringname;

floatscore[5];

floataverage;

};

intmain()

{floattotal_average,temp;

stringc;

Studentstu[5];

inti,j;

stu[0].name="stone";

stu[1].name="eva";

stu[2].name="demon";

stu[3].name="kevin";

stu[4].name="lucy";

for(i=0;i<5;i++)

{cout<<"输入学生"<

";

for(j=0;j<5;j++)

{cin>>stu[i].score[j];}

cout<

for(i=0;i<5;i++)

{stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4])/5;}

for(j=0;j<4;j++)

for(i=0;i<4-j;i++)

if(stu[i].average

{temp=stu[i].average;stu[i].average=stu[i+1].average;stu[i+1].average=temp;

c=stu[i].name;stu[i].name=stu[i+1].name;stu[i+1].name=c;}

total_average=(stu[0].average+stu[1].average+stu[2].average+stu[3].average+stu[4].average)/5;

cout<<"排序:

"<

for(i=0;i<5;i++)

cout<

'<

cout<<"总平均成绩为:

"<

return0;

}

 

题目8:

给小学生出100道1~99范围内的加减乘除题,如果成绩小于90分则再做100题。

#include

#include

#include

usingnamespacestd;

intmain()

{

inti,x1,x2,x,y,n1,n2;

srand(time(NULL));

cout<<"请输入下面各题的结果:

"<

lable:

n1=n2=0;

for(i=1;i<=100;i++)

{

x1=1+rand()%99;x2=1+rand()%99;

x=rand()%4;

switch(x)

{case0:

cout<

";

cin>>y;

if(y==x1+x2)

{cout<<"你答对了,继续努力!

"<

else

{cout<<"你答错了,认真一点!

"<

break;

case1:

if(x1>x2)cout<

";

elsecout<

";

cin>>y;

if(y==int(fabs(x1-x2)))

{cout<<"你答对了,继续努力!

"<

else

{cout<<"你答错了,认真一点!

"<

break;

case2:

cout<

";

cin>>y;

if(y==x1*x2)

{cout<<"你答对了,继续努力!

"<

else

{cout<<"你答错了,认真一点!

"<

break;

case3:

cout<

";

cin>>y;

if(y==x1/x2)

{cout<<"你答对了,继续努力!

"<

else

{cout<<"你答错了,认真一点!

"<

break;}

}

if(n1<90)

{cout<<"你成绩太差了,还得罚做100题。

"<

return0;}

 

题目9:

输入积分区域的端点值,输出f1,f2,f3,f4,f5的定积分的值

#include

usingnamespacestd;

doubleintegral(doublea,doubleb,intn,double(*fun)(doublex));

doublef1(doublex)

{doublefun;

fun=1+x;

returnfun;}

doublef2(doublex)

{doublefun;

fun=2*x+3;

returnfun;}

doublef3(doublex)

{doublefun;

fun=(1+x)*(1+x);

returnfun;}

doublef4(doublex)

{doublefun;

fun=x*x*x;

returnfun;}

doublef5(doublex)

{doublefun;

fun=x*x*x+1;

returnfun;}

 

voidmain()

{doubles1,s2,s3,s4,s5;

doublea,b;

intn;

cout<<"输入积分区域端点值a,b和n";

cin>>a>>b>>n;

s1=integral(a,b,n,f1);

s2=integral(a,b,n,f2);

s3=integral(a,b,n,f3);

s4=integral(a,b,n,f4);

s5=integral(a,b,n,f5);

cout<<"f1的定积分的值"<

cout<<"f2的定积分的值"<

cout<<"f3的定积分的值"<

cout<<"f4的定积分的值"<

cout<<"f5的定积分的值"<

}

doubleintegral(doublea,doubleb,intn,double(*fun)(doublex))

{

inti;

doubleh,x,f1,f2,s;

h=(b-a)/n;f1=(*fun)(a);x=a;s=0.0;

for(i=1;i<=n;i++)

{x=x+h;f2=(*fun)(x);

s=s+(f1+f2)/2*h;

f1=f2;}

returns;}

题目10:

用自己输入的种子产生100000个随机数并求最大值和最小值;

#include

#include

usingnamespacestd;

voidmain()

{unsignedseed;

longints(-1),n(50000);

for(inti=1;i<=1000000;i++)

{inttemp;

temp=rand();

if(temp>s)s=temp;

if(temp

}

cout<<"s="<

cout<<"n="<

}

 

题目11:

模拟100次掷钱币的过程,输出“f”表示此次钱币正面朝上,输出“b”表示此次钱币反面朝上,并统计这100次中,共有多少次正面朝上,多少次反面朝上。

#include

#include

usingnamespacestd;

voidmain()

{

inti,fac(0),back(0),temp;

srand(time(NULL));

for(i=0;i<100;i++)

{temp=rand();

if(temp%2==1){cout<<"f"<<"";fac++;}

else{cout<<"b"<<"";back++;}

}

cout<

cout<

}

 

题目12:

编写一个完成n个数排序的函数sort,凡是需要交换两个元素值都调用swap来完成。

分别用指针和引用两种方法做;

#include

usingnamespacestd;

intmain()

{voidsort(int*p);

inta[10];

cout<<"输入10个不同的数:

"<

inti,*p=a;

for(i=0;i<10;i++)

cin>>*(p+i);

cout<

sort(p);

cout<<"输出新顺序:

"<

for(p=a;p

cout<<*p<<"";

cout<

return0;

}

voidswap(int*p1,int*p2)

{inttemp;

temp=*p1;*p1=*p2;*p2=temp;

}

voidsort(int*p)

{voidswap(int*,int*);

inti,j,s;

for(i=0;i<9;i++)

{s=i;

for(j=i+1;j<10;j++)

if(*(p+j)<*(p+s))s=j;

swap((p+s),(p+i));

}

}

 

题目13:

写一个求n!

的函数,并通过调用函数求sum=a!

+b!

+c!

#include

usingnamespacestd;

intjc(intn);

intmain()

{

intsum,a,b,c;

cout<<"输入a,b,c:

";

cin>>a>>b>>c;

sum=jc(a)+jc(b)+jc(c);

cout<<"sum=a!

+b!

+c!

="<

}

intjc(intn)

{ints=1,i=1;

for(i=1;i<=n;i++)

s=s*i;

returns;

}

 

题目14:

写一个判断素数的函数,并通过调用函数判断2000年至3000年间有哪些是素数年号。

#include

usingnamespacestd;

voidfun(intn)

{

inti;

for(i=2;i<=n;i++)

if(n%i==0)

break;

if(i==n)

cout<

}

voidmain()

{

intj;

for(j=2000;j<=3000;j++)

fun(j);

}

 

题目15:

将汉诺塔程序里三根针用字符‘a’,‘b’,‘c’表示,并统计搬动盘子的次数

#include

usingnamespacestd;

ints=0;

inta,b,c;

voidmovedisk(chartakeoff,charputon)

{cout<"<

voidmovetower(charn,chara,charb,charc)

{

if(n>1)

{movetower(n-1,a,c,b);

movedisk(a,b);

movetower(n-1,c,b,a);}

elsemovedisk(a,b);

s=s+1;

}

voidmain()

{intm;

cout<<"inputnumberofdiskplease:

";

cin>>m;

movetower(m,'a','b','c');

cout<<"s="<

}

 

题目16:

用牛顿迭代法求方程的根

#include

#include

#include

usingnamespacestd;

doublef1(doublex)

{

doubles;

s=x*x*x+2*x*x+3*x+4;

returns;

}

doublef2(doublex)

{

doublet;

t=3*x*x+4*x+3;

returnt;

}

doubleroot(doublex0)

{

doublex,y1,y2;

do

{y1=f1(x);

y2=f2(x);

x=x0-y1/y2;

x0=x;}

while(fabs(y1)>0.00001);

returnx;

}

intmain()

{

doublex,x0;

cin>>x0;

x=root(x0);

cout<

return0;

}

 

题目17:

写一函数验证哥德巴赫猜想

#include

#include

usingnamespacestd;

intmain()

{

voidgodbaha(int);

intn;

cout<<"inputn:

";

cin>>n;

godbaha(n);

return0;

}

voidgodbaha(intn)

{intprime(int);

inta,b;

for(a=3;a<=n/2;a=a+2)

if(prime(a))

{b=n-a;

if(prime(b))

cout<

intprime(int

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

当前位置:首页 > 解决方案 > 学习计划

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

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