议程/日程安排/ C日历

时间:2012-06-10 14:33:22

标签: c

我需要有一个想法,写一个我应该做的程序的一部分。

这部分是一个议程,我们可以安排一些事情并检查我们在进行新约会时会发生什么冲突。

我虽然使用了某种结构,但我想我使整个事情变得复杂。

我正在考虑拥有一年的结构,一个月的结构和一天的新结构。然后,年份有月结构,月份有日结构。但我觉得这可以变得更简单,我只是无法获得更好的想法。

我怎样才能让这更简单? 我只需要制作一些东西来存储一天和几小时的新约会,以及它不能同时进行两次约会。

任何帮助,我将不胜感激。

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;
}

1 个答案:

答案 0 :(得分:3)

在处理这样的问题时,你基本上要弄清楚你想要什么信息投入应用,你想要什么从中

  1. 我知道你从一个空日历开始 - 还没有事件。
  2. 然后你会想要在2012-06-11 / 10:00直到2012-06-11 / 12:00举办活动。
  3. 所以我们现在可以看到,我们有一个开始和结束的事件。原谅我在这里使用了一些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)函数,但现在由您来解决这个问题。

    我不是说上述解决方案是最好的,唯一的,也不是完整的。我只想给你一个解决这个问题的提示。