アプリ版:「スタンプのみでお礼する」機能のリリースについて

とても難しい問題なので教えていただきたいです。次のようなデータ構造をもつバイナリファイル『shain.bin』と
氏名リストが記載されたテキストファイル『name.txt』を読み
込み、社員データとして構造体shainに社員番号、所属、分野、
年齢、氏名の要素で情報を格納する。
コマンドライン入力で分野情報(M・S・E)を入力し、
指定された分野の社員情報をテストファイル『bunya.txt』に出
力する。(出力例の表記で出力する)

ルール
■ファイル読み込みは、read()関数にて行う。
※1つの関数で、バイナリファイルとテキストファイルを読み込むようにする。
※引数:ファイルパス、ファイル種別(0:テキストファイル、1:バイナリファイル)
■ファイル書き込みは、write()関数にて行う。
■社員データは、main関数内で保持する。

画面参考

shain.bin
4 byte 社員番号
4 byte 所属
4 byte 分野
4 byte 年齢

name.txt
山本太郎
髙橋健太
佐藤一樹
石塚健二
伊藤信也
山田宏
上本伸二

画面出力例

bunya.txt
社員番号,所属,分野,年齢
1002,東京,S,25,髙橋健太
1003,埼玉,S,26,佐藤一樹
1007,神奈川,S,24,上本伸二

A 回答 (2件)

所属がどういう形式でshain.binに格納されているのか?判らない。


SHIFT-JISで文字列が入ってるのか?神奈川は"神奈"だけ入ってるのか?数字で都道府県に対応する番号が決まってるのか?ならそのテーブルは?

社員番号の範囲は0~4294967296
分野の文字数の上限は4文字って事があるのか?
氏名の長さの上限はあるのか?
データの最大数は決まってるのか?
扱う文字コードは?
とか、細かい仕様が分かってると、手を抜きやすい。
    • good
    • 0

具体的に何処の部分がわかりませんか?


それ以前にこの処理手順を日本語の箇条書きや何らかのチャート図で書くことは出来ていますか?
それをするにあたり、いきなりコーディングの1ステップ、1ステップを考えるのではなく、「このファイルを読み込んでプログラム内部にこういう構造の(←配列がどうとか整数の変数がどうとかではなく1人1行のこういう感じの構造の)データに展開し、次にこっちのファイルを読み込んで同じデータ構造のまだ埋まっていないこの欄にデータを入れ、更に続いて・・・」といった大まかな流れを考え、その次にその大まかな部分一つ一つを順に更に詳しい細かな手順に落として行く・・・という“設計”をしていますか?

おそらくこの設計をせずにプログラムの頭から下降としているので「どこから手を付けたらよいのかわからん!」となっているのではないでしょうか?
違ったらごめんなさい。
でもそんな気がする・・・。(^^;

ということで日本語で処理手順を考えて書き物を作りましょう。
箇条書きにする際は本の章・節のように構造化するとわかりやすいです。
以下のような感じで。
「章」が大きな処理の順番
「節」が大きな処理一つの中の中くらいの処理の順番
その下が一つの節の中の具体的な細かな処理の順番
全体の処理内容がとても多かったり複雑だったりする場合は節を2段、3段にするとかいった風になって行きます。
ご質問のプログラムでしたら章の下が(1)、(2)でも行ける・・・かな? そうかな?

1. xxx
1.1. yyy
(1) ...
(2) ...
1.2. zzz
 ・
 ・
 ・

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!