はじめまして。学校の問題にてわからない部分があり分かる方、一度考えてみてもらえませんか?
問題は
fileを読み込み、
ベースのクラスを作成し、継承して作成すること。
カプセル化も行う。
なお、class,new,deleteも使用すること
実行例
--------------------
noを入力:1001
no、英語、技術、生物
1001、79、44、68
--------------------
fileの中身は
---------------------
no、英語、技術、生物
1000、50、60、85
1001、79、44、68
1002、55、18、98
---------------------
※no及び英語等は増える事を考慮すること。
1003、1004や、社会、韓国語等・・
詳しい方、よろしくお願いします。
...問題がどこにもありませんが。
察するに入力されたのと同じnoを持つレコードを
ファイルから探し出して出力するようですが、
「わからない部分」はどこですか?
ちょっと考えてみた。
継承する必要性が判らん。
学校の問題ってことはSTL使っていいのかとか
どうせ習っている範囲内の知識で答えなければいけないんだろうけど
それは俺には分からない。
まずnoを入力
ファイルの先頭行を読む
その行を表示
while(ファイルを1行読み込み、EOFではない) {
if(atoi(その行) != no) continue;
if(atoi(その行) == no) { その行を表示; break; }
}
でもnew,deleteを使わないといけないから
この方法は駄目だああ。
データが1001、79、44、68で、
表示も1001、79、44、68なら、
英語等の科目数は無視して"1001、79、44、68"という1つの文字列のままで
いいじゃんって思うけど
そんなことしたらああああ怒られるな。
ということは最初に科目数を調べたりするのか。
ということは動的な二次元配列みたいにするのか。
new/deleteってことはvector<値型>は駄目なのか。
ぶっちゃけちょっと面倒だね。
継承の必要性は、技術的なことではなく
勉強・経験させることが目的でしょう
で、質問内容だけど
せめて、自分がどこまで進めていて、どこでつまっているのか?
って情報がないと
毎年、学校の1学期時期に多い
「宿題おいとくのて、かわりに誰か解いてください」って感じにみえる
同じく、クラス継承を使う意味が分からないです。
class IntegerBase{
private:
int i;
public:
IntegerBase(int x){i=x;}
int get(){return i;}
void set(int x){i=x;}
};
class IntegerInherit : public IntegerBase{
public:
IntegerInherit(int x) : IntegerBase(x){}
};
int main(){
int x;
cout << "noを入力" << endl;
cin >> x;
IntegerInherit *no = new IntegerInherit(x);
while(ファイルを1行読み込み、EOFではない) {
if(atoi(その行) != no) continue;
if(atoi(その行) == no) { その行を表示; break; }
}
delete no;
}
2次元配列を使ってみたらどうでしょうか。
ツイート | ![]() |