두 개의 디스크 파일 생성 f1.dat와 f2.dat, 컴파일러는 다음과 같은 작업을 실현한다

2954 단어 프로그램 설계
1) 키보드에서 20개의 정수를 입력하여 각각 2개의 디스크 파일에 저장하고 파일당 10개의 정수를 넣는다
2) f1.dat는 10개의 수를 읽고 f2.dat 파일의 원래 데이터 뒤에
3) f2.dat에서 20개의 정수를 읽고 그것들을 작은 순서에서 큰 순서로 f2에 저장합니다.dat에서 (원래의 데이터를 보존하지 않음)
#include 
#include 
#include 


using namespace std;

//fun1       20   ,            
void fun1()
{
    int a[10];
    ofstream outfile1("f1.dat"),outfile2("f2.dat");     //           
    if(!outfile1)
    {
        cerr << "open f1.dat error!" << endl;
        exit(1);
    }
    if(!outfile2)
    {
        cerr << "open f2.dat error!" << endl;
        exit(1);
    }
    cout << "enter 10 integer numbers:" << endl;
    for (int i=0;i<10;i++)              //  10     f1.dat   
    {
        cin >> a[i];
        outfile1 << a[i] << " ";
    }
    cout << "enter 10 integer numbers:" << endl;
    for (int i=0;i<10;i++)              //  10     f2.dat   
    {
        cin >> a[i];
        outfile2 << a[i] << " ";
    }

    outfile1.close();
    outfile2.close();
}

// 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);        //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");
    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];
    for (i=0;i<19;i++)                  //   
        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();
    ofstream outfile("f2.dat",ios::out);
    //f2.dat      ,         
    if(!outfile)
    {
        cerr << "open f2.dat error!" << endl;
        exit(1);
    }
    cout << "data in f2.dat:" << endl;
    for (i=0;i<20;i++)
    {
        outfile << a[i] << " ";
        cout << a[i] << " ";
    }
    cout << endl;
    outfile.close();
}
int main()
{
    fun1();
    fun2();
    fun3();
    cout << "Hello world!" << endl;
    return 0;
}

Code::Blocks에서 실행됩니다. 담호강 C++ 프로그램 설계를 참고하십시오.

좋은 웹페이지 즐겨찾기