0

私は自分がやるべきプログラムの一部を書くという考えを持っている必要があります。

この部分は、何かをスケジュールし、新しい予定を立てるときにどのような競合があるかを確認できるという議題になることを意図しています。

ある種の構造を使うことは考えていますが、全体を複​​雑にしていると思います。

私は、年の構造体、月の構造体、および日の新しい構造体を持つことを考えていました。次に、年は月の構造を持ち、月は日の構造を持ちました。しかし、これはもっと簡単にできると思います。これ以上のアイデアは得られません。

どうすればこれをもっと簡単にできますか?曜日と時間に新しい予定を保存するために何かを作成する必要があり、同時に2つの予定を設定することはできません。

助けていただければ幸いです。

enum DiaSemana { Domingo, Segunda, Terca, Quarta, Quinta, Sexta, Sabado };

struct Dia {
    int dia;
    int semana;
    char* horas[24][60];
};

struct Meses {
    int mes;
    char* nome[11];
    struct Dia dia;
};

struct Ano {
    int ano;
    tipoAno tipo;
    struct Meses jan;
    struct Meses fev;
    struct Meses mar;
    struct Meses abr;
    struct Meses mai;
    struct Meses jun;
    struct Meses jul;
    struct Meses ago;
    struct Meses set;
    struct Meses out;
    struct Meses nov;
    struct Meses dez;
};
typedef struct Ano ANO;
typedef ANO *PANO;

int validaBi(int ano) {
    if(ano%4==0)
        return 0;
    else
        return 1;
}
4

1 に答える 1

3

このような問題に対処するときは、基本的に、アプリケーションにどのような情報を入れたいのか、そしてそこから何を求めているのかを理解する必要があります。

  1. 空のカレンダーから始めているとのことですが、まだイベントはありません。
  2. 次に、たとえば、2012-06-11 /10:00から2012-06-11 /12:00までのイベントを設定します。

さて、今私たちが見ることができるのは、始まりと終わりのイベントがあります。ここで少しOOPを使用することを許してください。ただし、それでもCに適用されます。

typedef struct 
{
    DateTime Start, End;
} Event;

素晴らしい。しかし、DateTimeとは何ですか?それも必要になります。

typedef struct
{
    int Year, Month, Day;
    int Hour, Minute;
} DateTime;

これで、C ++の「++」の部分が本当に恋しくなりますが、それでも...

typedef struct
{
    int EventCount;
    Event Events[MAX_EVENTS];
} Calendar;

繰り返しになりますが、Cでの私の無知を許してください。ここで作成したのは、システムの基本概念です。おそらく今お分かりのように、次のステップはAdd(Calendar, Event)関数ですが、これを理解するのはあなた次第です。

上記の解決策が最善であり、唯一のものであり、完全であると言っているわけではありません。このような問題を解決するためのヒントをお伝えしたいと思います。

于 2012-06-10T14:52:06.980 に答える