C语言课程设计实验报告(万年历)

C语言课程设计
一、题目及功能描述
题目:万年历的设计
利用C语言设计出万年历,使其实现如下要求
1、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。假定输入的年份在1-9999年之间。
2、输入年月,输出该月的月历。
3、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。:
4、指定键盘的某些键,用于控制变换不同年、月、日的显示。即:当前若正在显示2011年的年历,按下键盘“←”方向键后,年历变为2010年的。
二、使用的所有变量的说明
变量说明:(以下均为整型变量)
year 表示年份的变量
month 表示月份的变量
day 表示日期的变量
select 表示菜单选择的变量
i 表示月份的变量
j 表示一个月中的某一天的变量
侠盗石川
sum 判断某天是一年中的第几天的变量
number判断某天离公元1年1月1日还有几天的变量
a[] 表示每月天数的数组变量
year1 系统时间年份的变量
month1 系统时间月份的变量
陈运泰>中国越南冲突day1 系统时间日期的变量
三、程序清单及其说明
#include "time.h"      /*包含的头文件*/
#include "stdio.h"
#include "math.h"
#include "windows.h"
#include "conio.h"
#define  KEYNUMUp                  0x48        /*宏定义*/
#define  KEYNUMDown                0x50 
#define  KEYNUMLeft                0x4b 
#define  KEYNUMRight                0x4d
#define  KEYNUMPageUp              0x49
#define  KEYNUMPageDown            0x51 
int eachyeartotal(int year,int month,int day);                  /*函数声明*/
int counterdays(int year,int month,int day);
int nowtime(int year,int month,int day);
int week(int year,int month,int day);
int maxDay(int year,int month);
int isleap(int year);
void whatweek(int year,int month,int day);
煤气作业void display(int year ,int month);
void display2(int year,int month);
void display3(int year,int month,int day) ;
void setDay1(int year,int month,int day);
void setDay2(int year,int month,int day);
void setDay3(int year,int month,int day);
void jieri(int month,int day);
void display1(int year);
void getmenu();
void main()                                              /*主函数*/
{
  int year,month,day,select;
  while(1)
  {
    getmenu();
    printf("  请输入相应数字:");                        /*菜单选择 */
    scanf("%d",&select);
    system("cls");
    switch(select)
    {
      case 1:                                  /*当选择为1时显示年历*/
      printf("  年历显示:输入年(如2011:");
      scanf("%d",&year);
      if(year>0&&year<10000)                  /*显示年份从0-10000 */
      {
          display1(year);  /*调用函数*/
        printf(" 提示  按↑:上一年  按↓:下一年  按其他键:返回菜单\n\n");     
        setDay1( year,month, day);
        }
        else
2001年南充案        system("cls");
        printf("  输入无效,重新输入!\n");
          break;
     
      case 2:                                /*当选择为2显示月历*/
      printf("  月历显示:输入年月(如2011,6:");
      scanf("%d,%d",&year,&month);
      if(year>0&&year<10000&&month>=1&&month<=12)
      {
        display2(year,month);
        printf(" 提示  按←:上个月  按→:下个月  按其他键:返回菜单\n\n");
        setDay2( year,month, day);
        }
        else
        system("cls");
        printf("  输入无效,重新输入!\n");
        break;
     
      case 3:                                /*当选择为3时显示日期*/
      printf("  日期显示:输入年月日(比如2011,6,23):");
      scanf("%d,%d,%d",&year,&month,&day);
      if(year>0&&year<10000&&month>=1&&month<=12&&day>=1&&day<=maxDay(year,month))
      {
        display3(year,month,day);
        printf(" 提示  PageUp:前一天    PageDown:后一天  按其他键:返回菜单\n\n");
        setDay3( year,month, day);
        }
        else
        system("cls");
        printf("  输入无效,重新输入!\n");
        break;
       
      case 4:
      exit(0);
       
      default:                  /*当输入其他数字时,输入无效,重新输入*/
      system("cls");
衣原体包涵体      printf("  输入无效,重新输入!\n");
   
    }
  }
}
int isleap(int year)                              /*判断是否为闰年*/
{
if(year%4==0&&year%100!=0||year%400==0)

本文发布于:2024-09-23 06:29:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/523499.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:STI8035-DS-EN
标签:变量   输入   年份   表示
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议