【问题标题】:Agenda / Scheduler / Calendar in CC语言中的议程/调度程序/日历
【发布时间】:2012-06-10 14:33:22
【问题描述】:

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

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

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

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

我怎样才能使这更简单? 我只需要做一些事情来存储一天和几个小时的新约会以及不能同时有两个约会的事情。

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

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

【问题讨论】:

  • 家庭作业?您的问题确实涵盖了非常非常基本的主题。
  • 我知道是的。但这是否意味着我无法获得任何帮助?我不是要求有人为我编写代码。只是一些更简单的想法来制定议程。谢谢你的帮助..
  • 你真的不知道吗?试着解释一下你到目前为止得到了什么。
  • 把它放在问题中,有一个 edit 函数就是为了这个。
  • 我觉得这样可以更简单一些。尽管我需要完成其余的代码。

标签: c


【解决方案1】:

在处理此类问题时,您基本上必须弄清楚您希望将哪些信息放入应用程序以及您希望从中获得什么

  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) 函数,但现在由您来解决这个问题。

我并不是说上面的解决方案是最好的,唯一的,也不完整的。我只是想给你一个关于解决此类问题的提示。

【讨论】:

  • 你仍然假设 C++ 部分......在 C 中,结构定义并不意味着 typedef。
  • 别忘了这件事-.-
  • 我理解这个想法。这可能是一个很好的方法。让我试试。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-06-20
  • 2022-01-06
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
相关资源
最近更新 更多