2014秋C++第13週プロジェクト6参考-体験ファイル操作

4471 ワード

カリキュラムのホームページhttp://blog.csdn.net/sxhelijian/article/details/39152703、カリキュラムリソースは雲学堂の「賀先生教室」で同期して展示され、使用するアカウントはカリキュラムのホームページに表示してください. 
【項目6-体験ファイル操作】データダウンロードリンク(1-予備)添付の「ファイル操作初体験」を読み、理解する(必要に応じてこれらのプログラムを実行する).(2-ウォーミングアップ)キーボードから数人の学生の英語の成績を読み込み、プログラミングして今回の試験の平均成績を求め、優秀人数と不合格人数を統計して出力する.
#include <fstream>   //      
#include<iostream>
#include<cstdlib>
using namespace std;
int main( )
{
    int i,s;
    int a=0, b=0;//      、     、   
    double sum=0,ave; //s:    ,ave:    
    //      (ios::in)    
    for(i=0; i<10; i++)
    {
        cin>>s;
        sum+=s;
        if(s>=90)
            a++;
        else if(s<60)
            b++;
    }
    //      
    ave=sum/10;
    cout<<"     :"<<ave<<endl;
    cout<<"    :"<<a<<endl;
    cout<<"     :"<<b<<endl;
    return 0;
}

(3-実戦)ファイルenglish.dat(クラウド学堂とQQ群でダウンロードし、このファイルはソースプログラムと同じフォルダにある)に学生の成績データがすでにあるので、(2)のプログラムを改編し、プログラミングして今回の試験の平均成績を求め、優秀人数と不合格人数を統計して出力してください.
#include <fstream>   //      
#include<iostream>
#include<cstdlib>
using namespace std;
int main( )
{
    int s; //     
    int a=0, b=0,count=0;//      、     、   
    double sum=0,ave; //sum:    ,ave:    
    //      (ios::in)    
    ifstream infile("english.dat",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(infile>>s)   //     ……
    {
        count++;
        sum+=s;
        if(s>=90)
            a++;
        else if(s<60)
            b++;
    }
    infile.close(); 		 //         
    //      
    ave=sum/count;
    cout<<"    :"<<count<<endl;
    cout<<"     :"<<ave<<endl;
    cout<<"    :"<<a<<endl;
    cout<<"     :"<<b<<endl;
    return 0;
}

(4-実戦)プログラミングは今回の試験の最高成績と、最高成績を取った学生の学号(学号を設けることは対応する配列要素の下標)を求める.
#include <fstream>   //      
#include<iostream>
#include<cstdlib>
using namespace std;
int main( )
{
    int s[10000],max=-1; //     
    int i,count=0;//      、     、   
    //      (ios::in)    
    ifstream infile("english.dat",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(infile>>s[count])   //     ……
    {
        if(s[count]>max)
            max=s[count];
        count++;
    }
    infile.close(); 		 //         
    //      
    cout<<"    :"<<count<<endl;
    cout<<"    :"<<max<<endl;
    cout<<"           :";
    for(i=0; i<count; i++)
        if(s[i]==max)
            cout<<i<<" ";
    cout<<endl;
    return 0;
}

(5-実戦)文書salary.txtから労働者の給与(500人を超えない)を読み込み、すべて20%増やし(良いこと)ソートし、ソート後の結果をファイルordered_に保存するsalary.txtで.(salary.txtは雲学堂とQQ群でダウンロードします.)
#include <fstream>
#include<iostream>
#include<cstdlib>
using namespace std;
int main( )
{
    float a[500],t;
    int i=0,j,n;
    ifstream infile("salary.txt",ios::in);  //          
    if(!infile)       //        
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(infile>>a[i]) i++;   //        
    infile.close();
    n=i; //n     
    for(i=0; i<n; i++)
        a[i]*=1.2; //    
    //  ,    ,     
    for(j=0; j<n-1; j++)
        for(i=0; i<n-j-1; i++)
            if (a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
    //    
    ofstream outfile("ordered_salary.txt",ios::out);
    if(!outfile)    //            ,         。
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for(i=0; i<n; i++)
    {
        outfile<<a[i]<<endl;
        if(i%5==0&&i!=0) cout<<endl;
        cout<<a[i]<<"\t";
    }
    outfile.close();     //    。       ,       
    return 0;
}
===================        CSDN    =================
|== IT                  (     ) ==|
|== C++                  (     ) ==|
|==     ——《    ——  IT      》    ==|
=====  IT       ,                =====