西安交大C++程序设计第十一章作业.docx
《西安交大C++程序设计第十一章作业.docx》由会员分享,可在线阅读,更多相关《西安交大C++程序设计第十一章作业.docx(18页珍藏版)》请在冰豆网上搜索。
西安交大C++程序设计第十一章作业
西安交通大学实验报告
课程计算机程序设计实验名称_标准库和输入输出流_第1页共25页
系别__________实验日期2014年6月7日
专业班级______组别__________实验报告日期2014年6月7日
姓名_________学号__报告退发(订正、重做)
同组人_________________________________教师审批签字
一、实验目的
掌握C++语言输入和输出操作的方法、流和流类库的使用方法。
二、实验内容
(一)第一题:
编写一个程序,分别用不同的域宽(0~10)打印出整数12345和浮点数。
观察当域宽小于数值的实际需要域宽时会发生什么状况。
1.源程序代码:
#include
usingnamespacestd;
voidmain()
{
intWIDTH;
for(WIDTH=10;WIDTH>0;WIDTH--)
{
cout<<"域宽、精度为"<\n";
(WIDTH);验结果:
3.结论:
(1)域宽不够时会自动补足。
(2)精度只需一次定义则一直有效。
(3)域宽需要每次输出时均进行定义
(二)第二题:
编写一个程序,将华氏温度0度~212度转化为浮点型摄氏温度,浮点精度为3.转换公式为如下:
Celsius=*(Fahrenheit-32);
输出用两个右对齐序列,摄氏温度前面加上正负号。
1.源程序代码:
#include
usingnamespacestd;
voidmain()
{
doubleCelsius,Fahrenheit;
(3);
cout<<"转换结果为:
\n";
for(Fahrenheit=0;Fahrenheit<=212;Fahrenheit++)
{
(ios:
:
showpos);
Celsius=*(Fahrenheit-32);
cout<<"华氏"<(ios:
:
showpos);
cout<}
}
2.实验结果:
(三)第三题:
编写一个程序,打印出ASCⅡ字符集中码值为33~126的字符的ASCⅡ码表。
要求输出十进制值、八进制值、十六进制值以及码值所表示的字符。
1.源程序代码:
#include
usingnamespacestd;
voidmain()
{
inta;
charw;
cout<<"字符八进制十进制十六进制\n";
for(a=33;a<=126;a++)
{
w=a;
cout<}
}
2.实验结果:
四、第四题:
修改例11-2中的程序,重载>>运算符,使其能够直接使用cin语句输入Date类对象。
1.源程序代码:
<Datebirthday;
cout<<"输入出生年月日:
";
cin>>birthday;
cout<<"输入的是:
"<return0;
}
2.实验结果:
五、第五题:
编写一个程序,可以读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.prn的同名文件中。
1.源程序代码:
#include
#include
#include
usingnamespacestd;
intmain()
{
strings,name,name1;
cout<<"请输入源c++文件的名称(不含有后缀名):
";
cin>>name;
name1=name+".prn";
name+=".cpp";
ifstreamread());验结果:
实验前:
实验后:
六、第六题:
将一个文本文件内容用凯撒尔方法加密,密钥是4。
即文本文件中字母用其后第4个字母代替,若是数字则用其后第4个数字代替。
例如文本文件原内容为“RedAndBlack2008”,加密后文本文件内容为“VihErhFpego6442”。
(提示:
先用记事本创建一个文本文件,其内容应该是有意义的英文句子,然后以只读方式打开,加密后的内容写入另一个文本文件中。
)
1.源程序代码:
#include
#include
usingnamespacestd;
charjiami(charch);
intmain()
{
ifstreamin("");
ofstreamout("");
if(!
in)
{
cout<<"Cannotopenthefile."<return1;
}
if(!
out)
{
cout<<"Cannotopenthefile."<return1;
}
charch;
while(in)
{
(ch);
ch=jiami(ch);
if(in)out<}
();
();
return0;
}
charjiami(charch)
{
if(ch>='0'&&ch<='9')
{
if(ch>'5')ch=ch-6;
elsech+=4;
}
elseif(ch>='a'&&ch<='z')
{
if(ch>='w')ch=ch+4-'z'+'a'-1;
elsech+=4;
}
elseif(ch>='A'&&ch<='Z')
{
if(ch>='W')ch=ch+4-'Z'+'A'-1;
elsech+=4;
}
returnch;
}
2.实验结果:
加密前:
加密后:
(七)第七题:
(必作题)找出100以内的勾股数,输出到文件gouku中。
所谓勾股数指找出三个数满足A2+B2=C2,并且A
要求将三个勾股数的计算公式A^2+B^2=C^2输出到文件中的每一行,例如3^2+4^2=5^29+16=25。
1.源程序代码:
#include
#include
#include
usingnamespacestd;
intmain()
{
ofstreamout("");
if(!
out)
{
cout<<"Cannotopenthefile.\n";
return1;
}
for(inti=0;i<101;i++)
for(intj=i+1;j<101;j++)
for(intk=j+1;k<101;k++)
{
if(i*i+j*j==k*k)
{
(ios:
:
left);
out<out<<'\t'<
}
}
();
return0;
}
2.实验结果:
(八)第八题:
仿造实现DOS文件复制命令COPY源文件名目标文件名。
(提示:
利用main()函数中的参数intargv,char*argk[]识别解析命令。
)
1.源程序代码:
#include
#include
usingnamespacestd;
intmain(intargc,char*argv[])
{
charch;
cout<if(argc!
=3)
{
cout<<"请输入两个文件名,及后缀"<return1;
}
ifstreamfin(argv[1],ios:
:
binary|ios:
:
in);
if(!
fin)
{
cout<<"无法打开原文件"<return1;
}
ofstreamfout(argv[2],ios:
:
binary|ios:
:
out);
if(!
fout)
{
cout<<"无法打开目标文件"<return1;
}
while(fin)
{
(ch);
if(fin)
{
fout<}
}
();
();
return0;
}
2.实验结果:
保存为exe格式之后提示“64位不兼容”,由于能力有限不知道如何操作。
因而无法得到结果。
精心搜集整理,只为你的需要