【C++】实验十四

news/2024/11/9 17:07:59/

题目:

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>>a[i];
  cout<<setiosflags(ios::fixed)<<setprecision(3);
  for(int j=0; j<5; j++){
    cout<<setw(10)<<a[j]<<endl;
  }
  return 0;
}

3、

#include <iostream>
#include <fstream>
using namespace std;    
 
//fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中
void fun1()
{
    int a[10];
    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 >> a[i];
        outfile1 << a[i] << " ";
    }
    cout << "输入10个数存到f2:" << endl;
    for (i = 0; i < 10; i++)           //输入10个数存放到f2.dat文件中
    {
        cin >> a[i];
        outfile2 << a[i] << " ";
    }
    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 a[20];
    int i, j, t;
    for (i = 0; i < 20; i++)
        infile >> a[i];        //从磁盘文件f2.dat读入20个数放在数组a中
    for (i = 0; i < 19; i++)     //用起泡法对20个数排序
        for (j = 0; j < 19 - i; j++)
            if (a[j] > a[j + 1])
            {
                t = a[j]; a[j] = a[j + 1]; a[j + 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 << a[i] << " ";      //向f2.dat输出已排序的20个数
        cout << a[i] << " ";
    }        //同时输出到显示器
    cout << endl;
    outfile.close();
}
 
int main()
{
    fun1();                     //分别调用3个函数
    fun2();
    fun3();
    return 0;
}
 


http://www.ppmy.cn/news/1503509.html

相关文章

健康小贴士丨中考考生怎么吃得好?

文章目录 引言三餐最佳的进食时间引言 中考正值初夏,气温急剧升高,食物易滋生细菌,发生食物中毒的风险也随之增加,医生建议 选择新鲜的食材,煮熟煮透,现吃现做,尽量不食用剩饭剩菜;不在路边露天摊点、不到无证和食品安全状况差的餐馆用餐;尽量减少在外就餐和点外卖的…

Netty必知必会(一)——零拷贝

一、什么是零拷贝&#xff1f;&#xff08;OS层面、用户态和内核态&#xff09; 9.1 什么是零拷贝&#xff1f; | 小林coding (xiaolincoding.com) 1.传统的文件传输 2.mmap write 实现零拷贝 mmap() 系统调用函数会直接把内核缓冲区里的数据「映射」到用户空间。 3.sendfi…

GPT-4o mini一手测评:懂得不多,但答得极快

在性能方面,GPT-4o mini 在 MMLU 上的得分为 82%,在 LMSYS 排行榜的聊天方面分数优于 GPT-4。 OpenAI 突然上线新模型 GPT-4o mini, 声称要全面取代 GPT-3.5 Turbo。 在性能方面,GPT-4o mini 在 MMLU 上的得分为 82%,在 LMSYS 排行榜的聊天方面分数优于 GPT-4。 在价格…

IT运维管理与ITSM:理论与实践

IT运维管理和IT服务管理&#xff08;ITSM&#xff09;在现代企业信息化过程中占据着举足轻重的地位。它们不仅是确保IT系统稳定运行和业务连续性的关键&#xff0c;还是推动企业数字化转型、提升竞争力的重要力量。本文将结合《IT运维管理和ITSM》文档的内容&#xff0c;深入探…

java的对象向上转型

对象向上转型&#xff0c;父类对象就可以调用子类重写父类的方法&#xff0c;这样当父类对象需要添加新的功能时&#xff0c;只需要添加一个子类&#xff0c;在子类中对父类的功能进行扩展&#xff0c;而不需要更改父类代码 向上转型&#xff0c;格式如下 父类类型 父类对象子…

二分查找概述

文章目录 二分法第一种写法二分法第二种写法题型查找某个值 target查找第一个大于&#xff08;大于等于&#xff09; target 的值查找第一个小于&#xff08;小于等于&#xff09; target 的值 条件&#xff1a; 只能对已经排序好的列表进行查找。 需求&#xff1a; 对搜索时间…

springboot校园商店配送系统-计算机毕业设计源码68448

摘要 本文详细阐述了基于Spring Boot框架的校园商店配送系统的设计与实现过程。该系统针对校园内的用户需求&#xff0c;整合了用户注册与登录、商品浏览与购买、订单管理、配送追踪、用户反馈收集以及后台管理等功能&#xff0c;为校园内的普通用户、商家、配送员和管理员提供…

【综合架构】总篇

设备信息 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web01 172.16.1.8 web02 172.16.1.9 web03 172.16.1.10 web04 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.51 db01 172.16.1.61 m01模板机系统安装 http://t.csdnimg.cn/czgBb 模板机基础优化 http://t.csdnimg.…