华中科技大学C++实验56Word文档下载推荐.docx

上传人:b****4 文档编号:18492615 上传时间:2022-12-17 格式:DOCX 页数:13 大小:408.41KB
下载 相关 举报
华中科技大学C++实验56Word文档下载推荐.docx_第1页
第1页 / 共13页
华中科技大学C++实验56Word文档下载推荐.docx_第2页
第2页 / 共13页
华中科技大学C++实验56Word文档下载推荐.docx_第3页
第3页 / 共13页
华中科技大学C++实验56Word文档下载推荐.docx_第4页
第4页 / 共13页
华中科技大学C++实验56Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

华中科技大学C++实验56Word文档下载推荐.docx

《华中科技大学C++实验56Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《华中科技大学C++实验56Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

华中科技大学C++实验56Word文档下载推荐.docx

a>

n;

s=0;

t=a;

for(i=1;

i<

=n;

i++){

s+=t;

t=t*10+a;

}

s=a+aa+aaa+aaaa+……+aaaa……aaa(n个)="

s<

return0;

3、编程求出所有的“水仙花数”。

所谓“水仙花数”是指一个3位数,其中各位数字的立方和等于该数本身,例如153就是一个“水仙花数”,

因为153=13+53+33。

要求采用枚举法。

inti,j,k,s,p=0;

=9;

for(j=0;

j<

j++){

for(k=0;

k<

k++){

s=100*i+10*j+k;

if(s!

=i*i*i+j*j*j+k*k*k)continue;

cout<

'

\t'

;

p++;

if(p%5==0)cout<

}}}

4、有两队选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,经过抽签决定比赛对手名单。

规定A不和J比赛,

M不和D及E比赛。

列出所有可能的比赛名单。

【提示:

】先固定甲队,A在0号位,B在1号位,依次排列,最后E在4号位;

然后乙队排对应的对手,用循环变量j、k、l、m、n分别对应0号位的选择、1号位的选择、依次类推,

直到到4号位的选择,每一层循环应剔除上一轮已选过的选手,和指定不与比赛的对手。

用变量i统计不同情况数。

 

intj,k,l,m,n,i=0;

for(j=1;

5;

if(k==j)continue;

for(l=0;

l<

l++){

if(l==j||l==k)continue;

for(m=0;

m<

m++){

if(m==j||m==k||m==l||m==3||m==4)continue;

for(n=0;

n<

n++){

if(n==j||n==k||n==l||n==m)continue;

i++;

cout<

switch(j){

case1:

cout<

J-B"

break;

case2:

J-C"

case3:

J-D"

case4:

J-E"

switch(k){

case0:

K-A"

K-B"

K-C"

case3:

K-D"

K-E"

switch(l){

L-A"

l-B"

l-C"

l-D"

l-E"

switch(m){

M-A"

M-B"

M-C"

M-D"

M-E"

switch(n){

N-A"

N-B"

N-C"

N-D"

N-E"

cout<

}}}}}

★(选做题)5、设函数f(x)定义在区间[a,b]上,f(x)连续且满足f(a)*F(b)<

0,求f(x)在[a,b]上的根。

采用弦位法,迭代公式为:

xi+1=xi+(xi-1-xi)/(f(xi)-f(xi-1))*f(xi)

其代换规律为:

首先用两端点函数值的绝对值较大者的对应点作为x[i-1],较小者作为x[i],即如果

|f(a)|<

|f(b)|,则xi←a,xi-1←b。

用迭代公式得出xi+1,f(xi+1)。

误差定义为:

⊿x=(xi-1-xi/(f(xi)-f(xi-1))*f(xi)

当⊿x<

ε或f(xi+1)==0则结束运算。

否则用(xi,f(xi))代替(xi-1,f(xi-1)),用(xi+1,f(xi+1))

代替(xi,f(xi)),继续迭代。

求方程xlg(x)=1的实根的近似值,要求误差不超过0.001。

【提示】令f(x)=xlgx-1,则f

(2)≈-0.398<

0,而f(3)≈0.431>

0,由此可知f(x)的根在2与3之间。

实验六文本文件的简单应用

(1)学会将程序运行的结果存入文本文件

(2)学会从文本文件中读取数据,并进行运算。

1.范例:

修改实验五中的第二题,求出水仙花数后不是在屏幕上显示而是存入文本文件。

请在退出程序后,用记事本打开该文本文件,查看结果。

【分析】

(使用文件的格式)

(1)首先,说明一个文件流对象(内部文件)。

文件流类型ifstream支持从输入文件中提取数据的操作,

而文件流类型oofstream用于完成将数据写入输出文件中各种操作。

ifstreamifile;

//定义输入文件,ifile为文件名,可使用任意标识符

ofstreamofile;

///定义输出文件,ofile为文件名,可使用任意标识符

特别注意:

输入文件用于读操作,输出文件用于写操作。

(2)然后打开文件。

在文件流对象和磁盘文件名之间建立联系。

ifile.open(“d:

\\my_in_file.txt”);

ofile.open(“d:

\\my_out_file.txt”);

(3)对文件进行读/写操作。

可以使用C++的提取运算符(>

)和插入运算符(<

)进行,

也可以使用读字符的get()函数和读字符串的getline()函数。

读写文件时,使用输出文件(如ofile)代替cout,用输入文件(如ifile)代替cin。

(4)最后关闭文件。

ifile.close();

Ofile.close();

关闭文件时,系统把与该文件相关联的文件缓冲区中的数据写到磁盘文件中,保证文件的完整性;

同时把磁盘文件名与文件流对象之间的关联断开,可防止误操作修改了磁盘文件。

【程序】

2.范例:

编程从上题生成的文本文件读取水仙花数,并显示在屏幕上。

【思考】

(1)本程序在读到文件的结束符之前,先读了一个空串,所以输出时多了一个空行。

能去掉该空行吗?

请试试。

不能,那个空行是文件本身就有的

可以改成上面这样

fstream>

charch[256];

ifstreamifile;

ifile.open("

e:

\\myself.txt"

);

文件内容:

do{

ifile.getline(ch,255);

ch<

\0'

}

while(ifile.eof()==0);

ifile.close();

(2)请尝试使用别的方法对文件进行读/写操作。

iomanip>

chara[255];

inti=0,j,k,l;

while(ifile.get(a[i])){

if(a[i]=='

\n'

)break;

i++;

while(l){

ifile>

i>

j>

k>

l;

if(ifile.eof()!

=0)break;

cout<

3.编写程序求500以内的勾股弦数,即满足c2=b2+a2(2为指数)的3个数,要求b>

a。

将所有符合要求的组合存入文本文件中。

intc,a,b,s,i;

ofstreamofile;

ofile.open("

\\gougu.txt"

ofile<

勾股数有:

for(c=1;

c<

=500;

c++){

for(b=1;

b<

b++){

for(a=1;

a<

a++){

if(a<

=b)continue;

s=c*c;

if(s!

=a*a+b*b)continue;

ofile<

"

setw(7);

i++;

if(i%4==0)ofile<

}}}

ofile.close();

4.编写程序从上题建立的文本文件中读取500以内的勾股弦数并显示在屏幕上。

#include<

chara[1000];

文件内容:

ifile.getline(a,999);

……

#

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1