栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言 日历备忘录之彩蛋游戏】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言 日历备忘录之彩蛋游戏】

系列文章目录

 来自小小怪的C语言,小白一枚。代码的未知错误可能还存在,谢谢各位集美来找错误!


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 系列文章目录
  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


库?NO(不需要下载第三方库)

我们都知道,C语言需要很多第三方库,但是安装起来非常麻烦。windows和macOS的库有很多区别。所以一些第三方库macOS不能用,Xcode编译器也不能安装一些库。小小怪我是Mac,所以写这篇C作业的时候避免了很多C的第三方库,需要下载的第三方库一个都没有。

没有需要下载的库使我非常容易,但是呢?代码的效果看起来不太完美。


提示:以下是本篇文章正文内容,下面案例可供参考

一、代码效果

欢迎您使用此备忘录

请按相应数字键进入相应模式

输入 1  进入日历模式

输入 2  进入备忘录模式

输入 3  进入休闲模式北

二、 代码环节

 

1.函数部分

这是备忘录的函数部分

//1.1 进入查询星期模式
int whatDay(int year, int month, int day){
    int W;//年月日
    if (month > 12 || month < 0) {
        printf("输入月份无效n");//判断输入月份无效
    }
    if (day > 31 || month < 1) {
        printf("输入日无效n");//判断输入日无效
    }
    
    if (month < 3) {
        month += 12;
        year -= 1;
    }
    W= (day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;
    switch (W) {
        case 0:
            printf("查询结果为:星期一n");
            break;
        case 1:
            printf("查询结果为:星期二n");
            break;
        case 2:
            printf("查询结果为:星期三n");
            break;
        case 3:
            printf("查询结果为:星期四n");
            break;
        case 4:
            printf("查询结果为:星期五n");
            break;
        case 5:
            printf("查询结果为:星期六n");
            break;
        case 6:
            printf("查询结果为:星期日n");
            break;
    }
    printf("查询完毕!n");
    return 1;
}

//进入查询天数模式
int howManyDays(int year, int month, int day){
    int i, sum = 0;
    if (month > 12 || month < 0) {
        printf("输入月份无效n");//判断输入月份无效
    }
    if (day > 31 || month < 1) {
        printf("输入日无效n");//判断输入日无效
    }
    int dayOfMonth[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    for(i = 0; i < month -1; i++){
        sum += dayOfMonth[i];
    }
    sum += day;
    if (year % 4 == 0 && year % 100 != 0|| year % 400 == 0)      //判断该年是否是闰年
        {
            if (month > 2)
            {
                sum = sum + 1;
            }
            else
            {
                sum = sum + 0;
            }
        }
        else
        {
            sum = sum + 0;
        }
        return sum;   //返回sum;
}

//查询历史备忘录
int printfHistory(int year, int month, int day){
    int HistorySum = 1, i;
    WriteNote writenote[50];
    for (i = 0; i < 50; i++) {
        //按照日期查找
        if (year == writenote[i].date.year && month == writenote[i].date.month && day == writenote[i].date.day ) {
            HistorySum ++;
            printf("查询成功!n");
            printf("备忘录内容为:n");
            printf("%sn", writenote[i].notes);
            break;
        }
        else{
            HistorySum = -1;
        }
    }
    if (HistorySum == -1) {
        printf("查询失败,该日期下暂无笔记n");
    }
    return HistorySum;
}
//写备忘录
int writeBooks(int year, int month, int day, int rank){
    int writeBooksum = 0;
    WriteNote writenote[50];
    //录入备忘录日期
    writenote[rank].date.year = year;
    writenote[rank].date.month = month;
    writenote[rank].date.day = day;
    printf("请开始输入备忘录内容n");
    scanf("%s", &writenote[rank].notes);
    printf("输出所写内容 %sn", writenote[rank].notes);
    printf("添加备忘录成功n");
    return writeBooksum;
}
//打印*和数字
void printfun()
{
    int i,j;
    for(i=0;i 
 

函数实现:

int whatDay(int year, int month, int day);//1.1查询星期模式
int howManyDays(int year, int month, int day);//1.2查询天数模式
int printfHistory(int year, int month, int day);//输出历史备忘录
int writeBooks(int year, int month, int day, int rank);//写备忘录
int a[N][N],b[N][N];
void printfun();//输出*
void printA();
int fun(int i,int j);
2.主函数

代码如下(示例):

  printf("输入 5 进入查询天数模式n");
            printf("请按相应数字键进入相应模式n");
            int menu, sum;
            float d = 5, w = 4;//d:1.2模式。 w:1.1模式
            scanf("%d",&menu); //查询菜单
            if (menu == w) {//进入4查询星期模式
                printf("您已进入查询星期模式n");
                printf("请输入年月日--格式为xxxx,xx,xxn");//如2022,6,1
                scanf("%d,%d,%d",&date.year, &date.month, &date.day);
                whatDay(date.year, date.month, date.day);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else if (menu == d){//5 进入查询天数模式
                printf("您已进入查询天数模式n");
                printf("请输入年月日--格式为xxxx,xx,xxn");//如2022,6,1
                scanf("%d,%d,%d",&date.year, &date.month, &date.day);
                sum = howManyDays(date.year,date.month,date.day);
                printf("该日期为本年的第%d天n",sum);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else{
                printf("输入模式错误!");
            }
            break;
        case 2:
            printf("您已进入备忘录模式n");
            printf("输入 6 查询历史备忘录n");
            printf("输入 7 写备忘录n");
            int model , six = 6, seven = 7;
            scanf("%d",&model);
            if (model == six) {
                printf("当前为查询备忘录模式n");
                printf("输入查询备忘录的日期n");
                scanf("%d,%d,%d",&date.year, & date.month, &date.day);
                printfHistory(date.year, date.month, date.day);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            if (model == seven) {
                int rank;
                printf("当前为写备忘录模式n");
                printf("输入写入备忘录的日期以及备忘录重要程度: (输入格式要求:xxxx,xx,xx,xx)n");
                scanf("%d,%d,%d,%d",&date.year, & date.month, &date.day, &rank);
                writeBooks(date.year, date.month, date.day, rank);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else{
                printf("输入错误!");
            }
            break;
        case 3:
             
            printf("您已进入休闲模式北nn");
            printf("马上进入休闲模式之扫雷♨️n");
            printf("输入任意非 0 数字键游戏开始n ");
            scanf("%d", &star);
            if (star){
            int i, j, coordinate, mine, asum, flag;
        loop:
            mine=0;
            asum=N*N-1;
            srand((unsigned)time(0));//随机数
            for(i=0;iN*10+N);
                i = coordinate/10-1;
                j = coordinate%10-1;
                    b[i][j] = 1;
                    asum--;
            }while(a[i][j] != -1 && asum !=  mine);
            printA();
                if(a[i][j] == -1){
                    printf("n引爆地雷!-1代表地雷!n");
                    printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                    scanf("%d",&back);
                    if (back) {
                        goto LOOP1;//输入任意数字键返回目录页

                    }else{
                        goto LOOP2;//输入(0)返回上一步
                    }
                }
                
                else{
                    printf("n扫雷成功!n");
                    printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                    scanf("%d",&back);
                    if (back) {
                        goto LOOP1;//输入任意数字键返回目录页

                    }else{
                        goto LOOP2;//输入(0)返回上一步
                    }
                }
            getchar();
            goto loop;
                 
        }
    }
    
    return 0;
}
//1.1 进入查询星期模式
int whatDay(int year, int month, int day){
    int W;//年月日
    if (month > 12 || month < 0) {
        printf("输入月份无效n");//判断输入月份无效
    }
    if (day > 31 || month < 1) {
        printf("输入日无效n");//判断输入日无效
    }
    
    if (month < 3) {
        month += 12;
        year -= 1;
    }
    W= (day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;
    switch (W) {
        case 0:
            printf("查询结果为:星期一n");
            break;
        case 1:
            printf("查询结果为:星期二n");
            break;
        case 2:
            printf("查询结果为:星期三n");
            break;
        case 3:
            printf("查询结果为:星期四n");
            break;
        case 4:
            printf("查询结果为:星期五n");
            break;
        case 5:
            printf("查询结果为:星期六n");
            break;
        case 6:
            printf("查询结果为:星期日n");
            break;
    }
    printf("查询完毕!n");
    return 1;
}

 


全部代码

这是全部的代码

 

#include 
#include 
#include 
#include 
#include 
#include
#define N 10
 
//(日期)结构体
typedef struct Date{
    int year;
    int month;
    int day;
    //int whatDay;//星期几
}Dates;
//备忘录结构体
typedef struct Notes{
    struct Date date;
    char notes[200];
}WriteNote;
int whatDay(int year, int month, int day);//1.1查询星期模式
int howManyDays(int year, int month, int day);//1.2查询天数模式
int printfHistory(int year, int month, int day);//输出历史备忘录
int writeBooks(int year, int month, int day, int rank);//写备忘录
int a[N][N],b[N][N];
void printfun(void);//输出*
void printA(void);
int fun(int i,int j);
int main(void){
    printf("欢迎您使用此备忘录n");
LOOP1:
    printf("请按相应数字键进入相应模式n");
    printf("输入 1  进入日历模式n");
    printf("输入 2  进入备忘录模式n");
    printf("输入 3  进入休闲模式北n");
    int catalogue;//目录模式
    scanf("%d",&catalogue);
    
    int back;//返回数字键
    int star;//开始
LOOP2:
    switch(catalogue){
        case 1:
            printf("您已进入日历模式n");
            printf("输入 4 进入查询星期模式n");
            printf("输入 5 进入查询天数模式n");
            printf("请按相应数字键进入相应模式n");
            int menu, sum;
            float d = 5, w = 4;//d:1.2模式。 w:1.1模式
            scanf("%d",&menu); //查询菜单
            if (menu == w) {//进入4查询星期模式
                printf("您已进入查询星期模式n");
                printf("请输入年月日--格式为xxxx,xx,xxn");//如2022,6,1
                scanf("%d,%d,%d",&date.year, &date.month, &date.day);
                whatDay(date.year, date.month, date.day);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else if (menu == d){//5 进入查询天数模式
                printf("您已进入查询天数模式n");
                printf("请输入年月日--格式为xxxx,xx,xxn");//如2022,6,1
                scanf("%d,%d,%d",&date.year, &date.month, &date.day);
                sum = howManyDays(date.year,date.month,date.day);
                printf("该日期为本年的第%d天n",sum);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else{
                printf("输入模式错误!");
            }
            break;
        case 2:
            printf("您已进入备忘录模式n");
            printf("输入 6 查询历史备忘录n");
            printf("输入 7 写备忘录n");
            int model , six = 6, seven = 7;
            scanf("%d",&model);
            if (model == six) {
                printf("当前为查询备忘录模式n");
                printf("输入查询备忘录的日期n");
                scanf("%d,%d,%d",&date.year, & date.month, &date.day);
                printfHistory(date.year, date.month, date.day);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            if (model == seven) {
                int rank;
                printf("当前为写备忘录模式n");
                printf("输入写入备忘录的日期以及备忘录重要程度: (输入格式要求:xxxx,xx,xx,xx)n");
                scanf("%d,%d,%d,%d",&date.year, & date.month, &date.day, &rank);
                writeBooks(date.year, date.month, date.day, rank);
                printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                scanf("%d",&back);
                if (back) {
                    goto LOOP1;//输入任意数字键返回目录页

                }else{
                    goto LOOP2;//输入(0)返回上一步
                }
            }
            else{
                printf("输入错误!");
            }
            break;
        case 3:
             
            printf("您已进入休闲模式北nn");
            printf("马上进入休闲模式之扫雷♨️n");
            printf("输入任意非 0 数字键游戏开始n ");
            scanf("%d", &star);
            if (star){
            int i, j, coordinate, mine, asum, flag;
        loop:
            mine=0;
            asum=N*N-1;
            srand((unsigned)time(0));//随机数
            for(i=0;iN*10+N);
                i = coordinate/10-1;
                j = coordinate%10-1;
                    b[i][j] = 1;
                    asum--;
            }while(a[i][j] != -1 && asum !=  mine);
            printA();
                if(a[i][j] == -1){
                    printf("n引爆地雷!-1代表地雷!n");
                    printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                    scanf("%d",&back);
                    if (back) {
                        goto LOOP1;//输入任意数字键返回目录页

                    }else{
                        goto LOOP2;//输入(0)返回上一步
                    }
                }
                
                else{
                    printf("n扫雷成功!n");
                    printf("输入(0)返回上一步,输入任意数字键返回目录页n");
                    scanf("%d",&back);
                    if (back) {
                        goto LOOP1;//输入任意数字键返回目录页

                    }else{
                        goto LOOP2;//输入(0)返回上一步
                    }
                }
            getchar();
            goto loop;
                 
        }
    }
    
    return 0;
}
//1.1 进入查询星期模式
int whatDay(int year, int month, int day){
    int W;//年月日
    if (month > 12 || month < 0) {
        printf("输入月份无效n");//判断输入月份无效
    }
    if (day > 31 || month < 1) {
        printf("输入日无效n");//判断输入日无效
    }
    
    if (month < 3) {
        month += 12;
        year -= 1;
    }
    W= (day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;
    switch (W) {
        case 0:
            printf("查询结果为:星期一n");
            break;
        case 1:
            printf("查询结果为:星期二n");
            break;
        case 2:
            printf("查询结果为:星期三n");
            break;
        case 3:
            printf("查询结果为:星期四n");
            break;
        case 4:
            printf("查询结果为:星期五n");
            break;
        case 5:
            printf("查询结果为:星期六n");
            break;
        case 6:
            printf("查询结果为:星期日n");
            break;
    }
    printf("查询完毕!n");
    return 1;
}

//进入查询天数模式
int howManyDays(int year, int month, int day){
    int i, sum = 0;
    if (month > 12 || month < 0) {
        printf("输入月份无效n");//判断输入月份无效
    }
    if (day > 31 || month < 1) {
        printf("输入日无效n");//判断输入日无效
    }
    int dayOfMonth[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    for(i = 0; i < month -1; i++){
        sum += dayOfMonth[i];
    }
    sum += day;
    if (year % 4 == 0 && year % 100 != 0|| year % 400 == 0)      //判断该年是否是闰年
        {
            if (month > 2)
            {
                sum = sum + 1;
            }
            else
            {
                sum = sum + 0;
            }
        }
        else
        {
            sum = sum + 0;
        }
        return sum;   //返回sum;
}

//查询历史备忘录
int printfHistory(int year, int month, int day){
    int HistorySum = 1, i;
    WriteNote writenote[50];
    for (i = 0; i < 50; i++) {
        //按照日期查找
        if (year == writenote[i].date.year && month == writenote[i].date.month && day == writenote[i].date.day ) {
            HistorySum ++;
            printf("查询成功!n");
            printf("备忘录内容为:n");
            printf("%sn", writenote[i].notes);
            break;
        }
        else{
            HistorySum = -1;
        }
    }
    if (HistorySum == -1) {
        printf("查询失败,该日期下暂无笔记n");
    }
    return HistorySum;
}
//写备忘录
int writeBooks(int year, int month, int day, int rank){
    int writeBooksum = 0;
    WriteNote writenote[50];
    //录入备忘录日期
    writenote[rank].date.year = year;
    writenote[rank].date.month = month;
    writenote[rank].date.day = day;
    printf("请开始输入备忘录内容n");
    scanf("%s", &writenote[rank].notes);
    printf("输出所写内容 %sn", writenote[rank].notes);
    printf("添加备忘录成功n");
    return writeBooksum;
}
//打印*和数字
void printfun()
{
    int i,j;
    for(i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号