【C++】实验十四

题目:

1、编写程序,输入a,b,c,检查a,b,c是否满足以下条件,如不满足,由cerr输出有关错误信息。

2、从键盘输入一批数值。要求保留3位小数,在输出时上下行小数点对齐

1.用控制符控制输出格式。

2.用流成员函数控制输出格式。

3、建立两个磁盘文件f1.dat和f2.dat。编程序实现以下工作:

1.从键盘输入20个整数。分别存放在两个磁盘文件中(每个文件中放10个整数)。

2.从f1.dat中读入10个数,然后存放到f2.dat文件原有数据的后面。

3.从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。

参考代码:

1、

#include<cmath>

#include<iostream>

using namespace std;

int main(){

int a, b, c;

int s, area;

cout<<"输入a , b , c"<<endl;

cin >> a >> b >> c;

if( a+b > c && a+c > b && b+c > a){

s=(a+b+c)/2;

area = sqrt(s*(s-a)*(s-b)*(s-c));

cout<<"面积"<<area<<endl;

}

else

cerr<<"不是三角形"<<endl;

return 0;

}

2、

#include<iostream>

#include<iomanip>

using namespace std;

int main(){

double a 5;

cout<<"输入5个浮点数"<<endl;

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

cin>>ai;

cout<<setiosflags(ios::fixed)<<setprecision(3);

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

cout<<setw(10)<<aj<<endl;

}

return 0;

}

3、

#include <iostream>

#include <fstream>

using namespace std;

//fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中

void fun1()

{

int a10;

int i;

ofstream outfile1("f1.dat"), outfile2("f2.dat"); //分别定义两个文件流对象

if (!outfile1) //检查打开f1.dat是否成功

{

cerr << "open f1.dat error!" << endl;

exit(1);

}

if (!outfile2) //检查打开f2.dat是否成功

{

cerr << "open f2.dat error!" << endl;

exit(1);

}

cout << "输入10个数存到f1:" << endl;

for (i = 0; i < 10; i++) //输入10个数存放到f1.dat文件中

{

cin >> ai;

outfile1 << ai << " ";

}

cout << "输入10个数存到f2:" << endl;

for (i = 0; i < 10; i++) //输入10个数存放到f2.dat文件中

{

cin >> ai;

outfile2 << ai << " ";

}

outfile1.close(); //关闭f1.dat文件

outfile2.close(); //关闭f2.dat文件

}

//从f1,dat读入10个数,然后存放到f2.dat文件原有数据的后面

void fun2()

{

ifstream infile("f1.dat"); //f1.dat作为输入文件

if (!infile)

{

cerr << "open f1.dat error!" << endl;

exit(1);

}

ofstream outfile("f2.dat", ios::app);/*ios::app 追加模式打开文件夹, 以ios::app打开,如果没有文件,那么生成空文件;如果有文件,那么在文件尾追加*/

//f2.dat作为输出文件,文件指针指向文件尾,向它写入的数据放在原来数据的后面

if (!outfile)

{

cerr << "open f2.dat error!" << endl;

exit(1);

}

int a;

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

{

infile >> a; //磁盘文件f2.dat读入一个整数

outfile << a << " "; //将该数存放到f2.dat中

}

infile.close();

outfile.close();

}

//从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat

void fun3()

{

ifstream infile("f2.dat"); //定义输入文件流infile,以输入方式打开f2.dat

if (!infile)

{

cerr << "open f2.dat error!" << endl;

exit(1);

}

int a20;

int i, j, t;

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

infile >> ai; //从磁盘文件f2.dat读入20个数放在数组a中

for (i = 0; i < 19; i++) //用起泡法对20个数排序

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

if (aj > aj + 1)

{

t = aj; aj = aj + 1; aj + 1 = t;

}

infile.close(); //关闭输入文件f2.dat

ofstream outfile("f2.dat", ios::out);/*或ofstream outfile("f2.dat");*/

// f2.dat作为输出文件,文件中原有内容删除

if (!outfile)

{

cerr << "open f2.dat error!" << endl;

exit(1);

}

cout << "f2.dat:" << endl;

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

{

outfile << ai << " "; //向f2.dat输出已排序的20个数

cout << ai << " ";

} //同时输出到显示器

cout << endl;

outfile.close();

}

int main()

{

fun1(); //分别调用3个函数

fun2();

fun3();

return 0;

}

相关推荐
ShineWinsu17 分钟前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
傲世仙尊30 分钟前
多态-虚表才活到运行期符号表早已消失
c++
开开心心_Every33 分钟前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c43 分钟前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
是main不是漫44 分钟前
【双指针——移动零】数组划分类题目的入门基石
c++·算法
吴卫斌1 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
·present·1 小时前
CSAPP(Bomb lab)
c语言·c++
王老师青少年编程1 小时前
2026年信奥赛c++普及组csp-j第二轮复赛真题
c++·真题·csp·信奥赛
超级架构师2 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
时间的拾荒人2 小时前
CMake 常用命令详解:从版本声明到安装部署
c++·面试