0

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

这部分旨在成为一个议程,如果我们可以安排一些事情并检查我们在进行新约会时遇到了什么冲突。

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

我正在考虑有一个今年的结构,一个月的结构和一天的新结构。然后,年有月结构,月有日结构。但我觉得这可以变得更简单,我只是想不出更好的主意。

我怎样才能让这更简单?我只需要做一些事情来在一天和几个小时内存储一个新的约会,并且它不能同时有两个约会。

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

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;

伟大的。但是,什么是日期时间?我们也需要那个。

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 回答