将夕愿 发表于 2023-11-7 18:56:13

C语言课题

emm作业是打印月历,本来已经写好了,但是写得很少很简单,别的同学的作业都是什么什么管理系统,比较复杂,代码整个几百行的那种
有大佬帮忙弄个复杂的打印月历吗,这个怎么弄得复杂一些却不显得冗杂

Mike_python小 发表于 2023-11-7 18:56:22

关于编写复杂而不显冗杂的月历打印程序

当设计一个复杂的月历打印程序时,你可以考虑添加一些额外的功能和细节,使其不仅仅是简单的日历显示,同时又不会让代码显得冗长复杂。以下是一些建议:

1. 节假日标注: 在月历上标注重要节假日,例如国庆节、春节等。你可以通过判断日期并在特定日期下方输出相应的节日标志。

2. 月相显示: 添加月相显示功能,根据日期计算当前月份的月相,并在日历中显示。这项功能可以增加一些复杂性,但也能让程序更加生动有趣。

3. 周数显示: 除了天数以外,显示每一天所在的周数,这可以增加一些额外的信息量。

4. 闰年处理: 考虑到闰年的影响,确保你的程序可以正确地处理闰年的情况,这可能需要一些额外的逻辑和计算。

5. 美化输出格式: 使用颜色、特殊字符或者对齐方式来美化输出效果,使得打印出来的月历更具可读性和美感。

这些都是可以增加程序复杂度的方式,但同时也会让你的月历程序变得更加有趣和实用。如果你愿意,我可以帮你修改现有的月历程序,添加其中一些功能。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-11-7 18:56:27

对于打印月历的问题,你可以考虑增加一些额外的功能来使代码变得更复杂但不冗杂。以下是一些可以考虑的功能:

1. 用户输入:允许用户输入年份和月份,然后根据输入的年份和月份打印相应的月历。
2. 当前日期高亮:在月历中突出显示当前日期,以便用户可以快速识别。
3. 周末标记:将周末的日期以不同的颜色或其他方式标记出来,以增加可读性。
4. 节假日标记:在月历中标记出国家或地区的节假日,以便用户可以清楚地知道哪些日期是假期。
5. 月历样式:可以根据用户的喜好选择不同的月历样式,例如表格形式、矩形形式等。
6. 命令行参数:允许用户通过命令行参数传递年份和月份,以便在命令行中直接打印月历。

通过添加这些额外的功能,你的代码将变得更加复杂,同时也会提升用户体验和可读性。你可以根据自己的需求选择其中的一些功能进行实现。希望对你有所帮助!

将夕愿 发表于 2023-11-7 19:03:21

Mike_python小 发表于 2023-11-7 18:56
关于编写复杂而不显冗杂的月历打印程序

当设计一个复杂的月历打印程序时,你可以考虑添加一些额外的功能和 ...

#include <stdio.h>

//确定此月共多少天
int get_days(int year, int month) {
    int days;
    switch (month) {
    case 2:
      days = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 29 : 28;
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      days = 30;
      break;
    default:
      days = 31;
      break;
    }
    return days;
}

//用 吉姆拉尔森法则 确定这月第一天是周几
int getDayOfWeek(int year, int month) {
    intdayOfWeek;

    if (month < 3) {
      month += 12;
      year--;
    }
    dayOfWeek = (1 + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400 + 1) % 7;

    return dayOfWeek;
}

void print_calendar(int year, int month) {
    int days = get_days(year, month);
    int weekday = getDayOfWeek(year, month);

    printf("日一二三四五六\n");

    // 打印该月第一天之前的空格
    for (int i = 0; i < weekday; i++) {
      printf("    ");
    }

    // 打印日期
    for (int day = 1; day <= days; day++) {
      printf("%3d ", day);
      weekday++;
      if (weekday == 7) {
            printf("\n");
            weekday = 0;
      }
    }

    printf("\n");
}


int main() {
    int year, month;

    printf("请输入年份和月份(以空格分隔):");
    scanf_s("%d %d", &year, &month);

    print_calendar(year, month);

    return 0;
}

将夕愿 发表于 2023-11-7 19:07:51

Mike_python小 发表于 2023-11-7 18:56
关于编写复杂而不显冗杂的月历打印程序

当设计一个复杂的月历打印程序时,你可以考虑添加一些额外的功能和 ...

请大佬赐教
页: [1]
查看完整版本: C语言课题