"C ++ primerplus" 第8章演習

 1台の構造、ストレージ名(文字[])と電力値(INT)を定義(単純と参照変数で、書籍のタイトルを使用しません)。パラメータは2つの機能を記述使用組み込ま構造は、CONSTことなく、定義された構造にそのような変更を加えることができ、他方はCONSTプラスその内容を変動しません。最初の機能は、代替の名前と強度値、出力情報構造の第2の機能を設定します。

書式#include <iostreamの>
 使用して 名前空間はstdを、

構造体スタンド
{ 
    int型のパワーを、
    文字名[ 15 ]。
}。

 show_stand(constのスタンド&temp_show)。
 set_stand(スタンド&temp_set)。

INT メイン()
{ 
    スタンドnew_stand。

    set_stand(new_stand)。
    show_stand(new_stand)。

    システム(一時停止)。
} 

ボイド show_stand(CONSTスタンド&temp_show)
{ 
    COUT<< " 名前:" << temp_show.name << てendl; 
    裁判所未満 << " パワー:" << temp_show.power << てendl; 
} 

無効 set_stand(スタンド&temp_set)
{ 
    裁判所未満は << " スタンドの名前を入力してください:" ; 
    CIN。取得(temp_set.name、15 ); 
    CIN。取得(); 
    裁判所未満 << スタンドの電源を入力してください。; 
    cinを >> temp_set.power。\ n " ; 
}

 

2.関数TOUPPERを使用して、パラメータとして文字列オブジェクト参照へのポインタをとり、大文字コンテンツオブジェクトに文字列を変換する関数を書きます。入力するように求め循環させることによって。

書式#include <iostreamの> 
の#include <CCTYPE> 
書式#include < 文字列 >
 使用して 名前空間はstdを、

 upper_string(文字列string_temp)。

INT メイン()
{ 
    文字列INPUT_STRING。
    
    裁判所未満 << (qが終了する)文字列を入力してください:; 

    getline(CIN、INPUT_STRING)。

    一方、(!INPUT_STRING = " Q " 
    { 
        upper_string(INPUT_STRING)。
        coutの << INPUT_STRING。
        coutの <<" \ nNext文字列(qが終了します):" ; 
        getline(CIN、INPUT_STRING)。
    } 

    COUT << " さようなら\ N。" 
    システム(一時停止)。
} 

ボイド upper_string(ストリングstring_temp)
{ 
    ためint型 I = 0!; string_temp [I] = ' \ 0 ' ; iは++ 
    { 
        string_temp [I] = TOUPPER(string_temp [I])。
    } 
}

 

ブック3.完全なルーチン、集合関数を記述し、文字列を格納するために、体内で新しい動的に割り当てられたスペース文字ポインタ構造を使用するために、参照構造と文字列を受け付けます。2つの表示機能を使用して調製過負荷、デフォルトパラメータが使用されている構造の使用は上記で定義され、これは、出力文字列、出力に直接渡される別の文字列に格納されます。

書式#include <iostreamの> 
の#include <CStringの>
 使用して 名前空間はstdを、

構造体糸{
     チャー *のSTR。
    int型のCT; 
}。

 のセット(糸&st_ref、文字列str_set_temp)。
ショー(constの糸st_show_temp、int型回= 1 )。
ショー(のconst  文字列 str_show_tempは、int型回= 1 ); 

INT )(主
{ 
    糸豆。
    チャー試験[] =現実はそれがために使用できません。; 

    セット(豆、テスト)。
    ショー(豆); 
    ショー(豆、2 )。
    試験[ 0 ] = ' D ' 
    試験[ 1 ] = ' U ' 
    ショー(試験、3 )。
    ショー(" 完了!" ); 

    システム(一時停止)。
} 

ボイド 集合(糸&st_ref、ストリングstr_set_temp)
{ 
    st_ref.ctStr_set_temp.length =();     // 文字列の長さを取得 
    st_ref.str = 新しい新しい 文字を [st_ref.ct];     // スペース構造体の内部に割り当てられた参照文字列
    のためのint型 I = 0 ; I <st_ref.ct ; I ++ 
    { 
        st_ref.str [I] = str_set_temp [I]; 
    } 
} 

ボイド表示(CONST糸st_show_tempを、int型 =タイムズ。1 
{ 
    ためINT T = 0、T <時間; T ++ 
    { 
        ためint型私は=0 ; 私はst_show_temp.ctを<; I ++ 
        { 
            COUT << st_show_temp.str [I]。
        } 
        COUT << " の\ n " 
    } 
} 

ボイドショー(CONST  文字列 str_show_temp、int型回数= 1 
{ 
    ためINT T = 0、T <時間; tは++ 
    { 
        ためint型 I = 0 ; iが(str_show_temp.lengthを<); iが++ 
        { 
            COUT <<str_show_temp [i]は、
        } 
        COUT << " の\ n " 
    } 
}

 

テンプレート機能を使用する4.シンプル。異なるサイズおよびアレイのタイプを取るテンプレート関数、最大値の前記出力の調製。まず、使用int配列のテスト、そしてダブルアレイテストを使用しています。

書式#include <iostreamの>
 使用して 名前空間はstdを、

テンプレート <型名T> 
T MAXN(Tの *のt_ptr、int型N); 

テンプレート <型名T>
 のボイド input_num(Tの*の一時、int型のn); 

INT のmain()
{ 
    int型ARRAY_SIZE。

    // 先使用int型数组测试 
    はcout << " どのように多くの番号:(int型)" 
    cinを >> ARRAY_SIZE。

    int型 * int_array = 新しい int型[ARRAY_SIZE]。
    input_num(int_array、ARRAY_SIZE)。
    coutの << "最大数:" << MAXN(int_array、ARRAY_SIZE)<< てendl; 

    // 再使用のダブル数组测试 
    はcout << " どのように多くの番号:(ダブル)" ; 
    CINは >> ARRAY_SIZE; 

    ダブル * double_array = 新しい ダブル[ARRAY_SIZE] ; 
    input_num(double_array、ARRAY_SIZE); 
    COUT << " 最大数:" << MAXN(double_array、ARRAY_SIZE)<< ENDL; 

    削除int_array [];
     削除double_array []; 
    システム(" 一時停止" )。
}

テンプレート <型名T> 
T MAXN(Tの *のt_ptr、int型N)
{ 
    T MAX = t_ptr [ 0 ]。
    以下のためにint型 i = 0 ; iは<N; iは++ 
    { 
        場合(t_ptr [I]> MAX)
            最大 = t_ptr [I]。
        {}。
    } 
    戻り最大。
} 

テンプレート <型名T>
 ボイド input_num(Tの*の温度、int型N)
{ 
    COUT << " 数字を入力してください" <<endl;
    以下のためにint型 i = 0 ; iがn <; iは++ 
    { 
        CIN >> TEMP [I]。
    } 
}

*関数プロトタイプの前に、各テンプレート関数とは、関数を実装するテンプレートを追加する必要があることに注意してください。<typenameに...>

おすすめ

転載: www.cnblogs.com/banmei-brandy/p/11363842.html