ページ 11

日付を表すクラス(C++)

Posted: 2017年4月25日(火) 20:41
by るいと
日付を表すクラスを作成したいのですが、
閏年は考慮しないで、

メンバの変数は
int year;
int month;
int day;

メンバ関数は

int set(int year,int month,int day);
年月日を設定する関数
不正な日時の場合は設定せず、1を返す
正しく設定された場合は、0を返す

void get( )
設定されている年月日を取得する関数
引数はmain関数から察する

void next()
日付を次の日にする

です。

main関数は以下です。

コード:

int main()
{
Date d1;
int yy, mm, dd, y, m, d;
cin >> yy >> mm >> dd;
if (d1.set(yy, mm, dd) == 0) {
d1.get(y, m, d);
cout << yy << "年" << mm << "月" << dd << "日が設定されました" << endl;

d1.next();
d1.get(yy, mm, dd);
cout << "次の日は" << yy << "年" << mm << "月" << dd << "日です" << endl;
} else {
cout << "正しく設定されていません" << endl;
}
return 0;
}

Re: 日付を表すクラス(C++)

Posted: 2017年4月25日(火) 22:35
by みけCAT
仕様と「日付を表すクラスを作成したい」という希望しか書かれておらず、質問が書かれていないようです。
(これが課題かはわかりませんが)課題の丸投げは禁止です。

以下、フォーラムルールより
「うまくいきません」という質問は大抵回答に困ります。

  1. 自分は今何がしたくて

  2. どう取り組んで(作ったプログラムはどれで

  3. どのようなエラーやトラブルで困っていて

  4. 自分は何が解らないのか、知りたいのか

  5. 今のCの知識はどの程度なのか


この5点をしっかりと明記して下さい。

環境に依存する場合やライブラリを使っているときは

使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。

コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう
どう質問していいか解らない時は、以下のテンプレをコピペして、

各項目に対して答える形で記載して下さい。

[hr]
[1] 質問文
 [1.1] 自分が今行いたい事は何か
 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
 [1.4] 今何がわからないのか、知りたいのか

[2] 環境  
 [2.1] OS : Windows, Linux等々
 [2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々

[3] その他
 ・どの程度C言語を理解しているか
 ・ライブラリを使っている場合は何を使っているか

[hr]

Re: 日付を表すクラス(C++)

Posted: 2017年4月25日(火) 22:40
by るいと
set,get,nextの中にはなにをいれたらよいのでしょうか??

Re: 日付を表すクラス(C++)

Posted: 2017年4月25日(火) 23:57
by purin52002
こんばんは
set,get,nextの中身ですが
ご自身で説明された通りのプログラムを書けばいいのではないでしょうか、、、?

int set(int year,int month,int day);
年月日を設定する関数
不正な日時の場合は設定せず、1を返す
正しく設定された場合は、0を返す
私ならif文を使うかな?(if文を使わないスマートな方法もあります)

void get( )
設定されている年月日を取得する関数
引数はmain関数から察する
察せませんでした、、、
参照型の引数ですかね?
とりあえず年月日を代入する、、、?

void next()
日付を次の日にする
次の日にしましょうw
30、31日の時は1日にすればいいのかな?


というような感じでどうでしょうか?

割と簡単な部類のプログラムだと思いますので、
まずは自分で書いてみる。実行してみる。エラーを出してみる。

エラーは偉大です。どこでどう間違ったのかを教えてくれますからね。
あとはエラーメッセージを頼りにコードを直していけばきっと書き上げられるはず、、、!