ラベル 構造体 の投稿を表示しています。 すべての投稿を表示
ラベル 構造体 の投稿を表示しています。 すべての投稿を表示

2011年3月26日土曜日

構造体データの並べ替え

構造体により定義されたデータを並べ替える例です。

本例題では、データの挿入時に日付毎 (char hday) に並べ替えて挿入されるようになっていますが、データ挿入後に再度、別の条件で並べ替えを行っています。

並び替えの部分 (sort_list 関数) では、関数ポインタ (int (* const comp[2])()) により並び替えの手法を変更しています。
また、sort_list 関数に指定する引数により、昇順/降順の指定を行うことができます.
例:
売り上げ金額毎に昇順に並べる:
sort_list(SORT_ASC,&start,uk_compare);
日付毎に降順に並べる:
sort_list(SORT_DESC,&start,date_compare);
→ それぞれの条件を計算するための比較関数を用意し、ASC(昇順)、DESC(降順) を指定しています。


sample.txt
004 東京 20050524 00001 東京商店 25000
003 横浜 20050321 00002 横浜商店 20000
002 千葉 20050103 00001 東京商店 30000
004 東京 20050603 00003 関東商事 15000
004 東京 20050603 00003 関東商事 18000
004 東京 20050603 00003 関東商事 17000
004 東京 20050603 00003 関東商事 16000
004 東京 20050603 00003 関東商事 11000
004 東京 20050603 00003 関東商事 12000
実行結果

構造体による木構造のノードデータの格納

構造体により木構造体のノードデータを格納する例題です。

例題では、ノードデータの入力、検索、削除を行っています。


実行結果

2011年3月19日土曜日

ファイル情報読み込み、構造体への格納

適当なフォーマットのファイルから構造体にデータを格納し、表示する例題です。

フォーマットは以下のようなコンフィグファイルの形となっています。
[id1]
connect cause = "ip address1"
connect point = "path1"

[id2]
connect cause = "ip address2"
connect point = "path2"

バイナリファイルを構造体に格納する例は こちら

実行結果

2011年3月13日日曜日

構造体による社員名簿管理

構造体を利用した社内スタッフの整理例です。

ID、氏名、身分、部門、給料
の情報を構造体内に格納し、管理します。

例題では、部署ごとの情報を表示し、平均給料を計算・表示を行っています。
また、IDにより情報を並べ替え、元の管理ファイルへの書き出しを行っています。


992766A3.txt
#ID 氏名 身分 部門 給料
2169 michael CEO outside 10000
2374 arthor president company 8000
1922 mike secretary company 4000
343 ken staff room1 3000
1080 john staff room2 4000
1080 carl staff room3 2500
1278 david staff room1 3000
2231 dianne staff room2 4000
1175 alan staff room3 2500
1584 andreas staff room1 3000
1430 ben staff room2 4000
実行結果