cpp module 00


ex00
サブオブジェクト
  • パラメータが受信、パラメータがない場合、*LOUD AND UNBEARABLE FEEDBACK NOISE*出力
  • パラメータ
  • が小文字の場合は、大文字に変更されます.
  • str.length()->の長さがわかります.
    toupper(str[i])->小文字があれば大文字に変更できます.
    以上の2つの機能で解決できます.
    ex01
    サブオブジェクト
  • 値入力を受け入れます.
  • EXIT-脱退
  • ADD-firstname,lastname,ニックネーム,電話番号,最も暗い秘密入力と保存.
  • SEARCH-最初にリストが表示され、インデックス値が入力され、インデックスの情報が表示されます.
  • 他の入力は無視されます.
  • 動的割り当てを使用しないと、8人以上の連絡先を保存できません.
  • の9番目の連絡先が追加された場合、最も古い連絡先が変更されます.
  • data a; <- 静的割当て(スタック領域)
    データ*a=newdataを動的に割り当てるには
    ex02
    サブオブジェクト
  • tests.cppファイルとAccounts.hppファイルを提供します.
  • ここでAccountscppをlogのように追加します.
  • log
    [19920104_091532] index:0;amount:42;created
    [19920104_091532] index:1;amount:54;created
    [19920104_091532] index:2;amount:957;created
    [19920104_091532] index:3;amount:432;created
    [19920104_091532] index:4;amount:1234;created
    [19920104_091532] index:5;amount:0;created
    [19920104_091532] index:6;amount:754;created
    [19920104_091532] index:7;amount:16576;created
    [19920104_091532] accounts:8;total:20049;deposits:0;withdrawals:0
    [19920104_091532] index:0;amount:42;deposits:0;withdrawals:0
    [19920104_091532] index:1;amount:54;deposits:0;withdrawals:0
    [19920104_091532] index:2;amount:957;deposits:0;withdrawals:0
    [19920104_091532] index:3;amount:432;deposits:0;withdrawals:0
    [19920104_091532] index:4;amount:1234;deposits:0;withdrawals:0
    [19920104_091532] index:5;amount:0;deposits:0;withdrawals:0
    [19920104_091532] index:6;amount:754;deposits:0;withdrawals:0
    [19920104_091532] index:7;amount:16576;deposits:0;withdrawals:0
    [19920104_091532] index:0;p_amount:42;deposit:5;amount:47;nb_deposits:1
    [19920104_091532] index:1;p_amount:54;deposit:765;amount:819;nb_deposits:1
    [19920104_091532] index:2;p_amount:957;deposit:564;amount:1521;nb_deposits:1
    [19920104_091532] index:3;p_amount:432;deposit:2;amount:434;nb_deposits:1
    [19920104_091532] index:4;p_amount:1234;deposit:87;amount:1321;nb_deposits:1
    [19920104_091532] index:5;p_amount:0;deposit:23;amount:23;nb_deposits:1
    [19920104_091532] index:6;p_amount:754;deposit:9;amount:763;nb_deposits:1
    [19920104_091532] index:7;p_amount:16576;deposit:20;amount:16596;nb_deposits:1
    [19920104_091532] accounts:8;total:21524;deposits:8;withdrawals:0
    [19920104_091532] index:0;amount:47;deposits:1;withdrawals:0
    [19920104_091532] index:1;amount:819;deposits:1;withdrawals:0
    [19920104_091532] index:2;amount:1521;deposits:1;withdrawals:0
    [19920104_091532] index:3;amount:434;deposits:1;withdrawals:0
    [19920104_091532] index:4;amount:1321;deposits:1;withdrawals:0
    [19920104_091532] index:5;amount:23;deposits:1;withdrawals:0
    [19920104_091532] index:6;amount:763;deposits:1;withdrawals:0
    [19920104_091532] index:7;amount:16596;deposits:1;withdrawals:0
    [19920104_091532] index:0;p_amount:47;withdrawal:refused
    [19920104_091532] index:1;p_amount:819;withdrawal:34;amount:785;nb_withdrawals:1
    [19920104_091532] index:2;p_amount:1521;withdrawal:657;amount:864;nb_withdrawals:1
    [19920104_091532] index:3;p_amount:434;withdrawal:4;amount:430;nb_withdrawals:1
    [19920104_091532] index:4;p_amount:1321;withdrawal:76;amount:1245;nb_withdrawals:1
    [19920104_091532] index:5;p_amount:23;withdrawal:refused
    [19920104_091532] index:6;p_amount:763;withdrawal:657;amount:106;nb_withdrawals:1
    [19920104_091532] index:7;p_amount:16596;withdrawal:7654;amount:8942;nb_withdrawals:1
    [19920104_091532] accounts:8;total:12442;deposits:8;withdrawals:6
    [19920104_091532] index:0;amount:47;deposits:1;withdrawals:0
    [19920104_091532] index:1;amount:785;deposits:1;withdrawals:1
    [19920104_091532] index:2;amount:864;deposits:1;withdrawals:1
    [19920104_091532] index:3;amount:430;deposits:1;withdrawals:1
    [19920104_091532] index:4;amount:1245;deposits:1;withdrawals:1
    [19920104_091532] index:5;amount:23;deposits:1;withdrawals:0
    [19920104_091532] index:6;amount:106;deposits:1;withdrawals:1
    [19920104_091532] index:7;amount:8942;deposits:1;withdrawals:1
    [19920104_091532] index:0;amount:47;closed
    [19920104_091532] index:1;amount:785;closed
    [19920104_091532] index:2;amount:864;closed
    [19920104_091532] index:3;amount:430;closed
    [19920104_091532] index:4;amount:1245;closed
    [19920104_091532] index:5;amount:23;closed
    [19920104_091532] index:6;amount:106;closed
    [19920104_091532] index:7;amount:8942;closed
    vector
    int	const				amounts[] = { 42, 54, 957, 432, 1234, 0, 754, 16576 };
    size_t const				amounts_size( sizeof(amounts) / sizeof(int) );
    accounts_t				accounts( amounts, amounts + amounts_size );
    accounts_t::iterator			acc_begin = accounts.begin();
    accounts_t::iterator			acc_end	 = accounts.end()
    メモリの配置を自動的に割り当てます.vector<[datatype]>「変数名」と宣言したり、「変数名」と宣言したりできます.begin()などの機能を使用して、最初のパラメータと最後のパラメータを取得できます.Accounts(最初のパラメータのアドレス、最後のパラメータのアドレス);配列宣言メソッドの1つです.最初のパラメータアドレスと最後のパラメータアドレスを入力すると、配列が自動的に完了します.最後にaccount t::iteratorは反復文字であり、ベクトルのメンバータイプである.要素を保存および使用できます.
    [19920104_091532] index:0;amount:42;created
    [19920104_091532] index:1;amount:54;created
    [19920104_091532] index:2;amount:957;created
    [19920104_091532] index:3;amount:432;created
    [19920104_091532] index:4;amount:1234;created
    [19920104_091532] index:5;amount:0;created
    [19920104_091532] index:6;amount:754;created
    [19920104_091532] index:7;amount:16576;created
    Account::Account(int initial_deposit)
    ログの上部は作成者で発生し、最初はaccounts(counts,amouts+amouts size);配列が宣言されると、Accountジェネレータが同時に起動します.
    displayTimestamp
    void	Account::_displayTimestamp(void)
    {
    	time_t	cur_time = time(nullptr);
    	char	buff[16];
    	
    	strftime(buff, sizeof(buff), "%Y%m%d_%H%M%S", localtime(&cur_time));
    	std::cout << "[" << buff << "]";
    }
    ログの前に、時間は現在の時刻を表す必要があります.だからtime関数とstrftimeを使います.時間相関関数はctimeライブラリに存在し、月、時間、分などの値を組み合わせて構造体に格納します.localtime関数を使用すると、構造体に時間を格納し、strftime関数に必要なフォーマットに変換してバッファに入れることができます.
    保存
    ログを見ると、預金と金額を合わせてプラス、マイナス睡眠が偽物と判断しているようです.draftingの場合、amountから値を減算し、正の値であれば負の数であり、虚偽である.