C语言课程设计万年历

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计

课程名称____C语言程序设计__ __ 题目名称万年历

学生学院物理与光电工程学院

专业班级__ 光信息科学与技术

学号____ 3109008862_____ 学生姓名_______陈樟浩_______

指导教师江志文

2011 年 6 月 24 日

一、题目及已完成的功能描述

(1)题目:万年历的设计

(2)已完成的功能:

1、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。

2、输入年月,输出该月的月历。

3、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的

星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。假定输入的年份在1-9999年之间。

二、使用的所有变量的说明

int IsLeapYear(int year) 调用函数,其中变量名:year;整型;存放信息:某一年。

int month_day(int year,int month)调用函数,其中变量名:year、month;整型;存放信息:某年某月。

int DaySearch(int year,int month,int day)调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。

int c=0,变量名:c;整型;存放信息:给c赋以初值3。

float s,变量名:s;浮点型;存放信息:定义浮点型变量。

int m,变量名:m;整型;存放信息:定义整型变量。

long daynum(int year,int month,int day) 调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。

int i,变量名:i;整型;存放信息:定义整型变量。

long num=0,变量名:num;长整型;存放信息:给num赋以初值0。

void M_count(int year,int month,int day) 调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。

long num1,num2,变量名:num1,num2;长整型;存放信息:定义长整型变量。int PrintAllYear(int year)调用函数,其中变量名:year,整型;存放信息:某一年。

int temp,变量名:temp;存放信息:定义整型变量。

int i,j,变量名:i,j;存放信息:定义整型变量。

int PrintAllMonth(int year,int month) 调用函数,其中变量名:year、month;整型;存放信息:某年某月。

int option,da,变量名:option,da;整型;存放信息:定义整型变量。

char ch,变量名:ch;字符型;存放信息:定义字符型变量。

int year,month,day,变量名:year,month,day;整型;存放信息:定义整型变量。

三、程序清单及其说明

#include

#include

char*

month_str[]={"January","February","March","April","May","June","July" ,"August","September","October","November","December"};

char*

week[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"," Saturday"};

int IsLeapYear(int year) /*判断闰年,若为闰年返回值1,若否返回值0*/ {

if((year%4==0&&year%100!=0)||(year%400==0))

return 1;

else

return 0;

}

int month_day(int year,int month) /*判断x年x月x的天数*/

{

int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};/*平年1月到12月的天数*/

if(IsLeapYear(year)&&month==2)/*判断x年是否为闰年,若为闰年且month=2,则天数为29,若不是则天数为28*/

return 29;

else

return(mon_day[month-1]);

}

int DaySearch(int year,int month,int day) /*计算x年x月x是星期几*/ {

int c=0;

float s;

int m;

for(m=1;m

c=c+month_day(year,m);

c=c+day;

s=year-1+(float)(year-1)/4-(float)(year-1)/100+(float)(year-1)/400+c; return ((int)s%7); /*S%7的余数为星期数,若余数为0,则为星期天*/

}

long daynum(int year,int month,int day)/*计算某一天距离公元一年一月一日的天数*/

{

int i;

long num=0;

for(i = 1; i < year; i++)

{

num+= 365;

if(IsLeapYear(i))/*如果是闰年就加1*/

{

num+=1;

}

}

for(i = 1; i < month; i++)

{

num+=month_day(year, i);

}

num=num+day;

return num;

}

void M_count(int year,int month,int day)/*计算某天距离今天(可任意设定)的天数*/

{

long num1,num2;

char xq[7][10]={"Sunday", "Monday", "Tuesday", "Wednesday",

"Thursday", "Friday", "Saturday"};

num1=daynum(year,month,day);/*某天距离公元一年一月一日的天数为

num1*/

num2=daynum(2011,6,24);/* 设定今天是2011年6月24号,距离公元一年一

月一日的天数为num2*/

num1=num2-num1;/*得出某天距离今天(2011,6,24)的天数*/

printf("\n距今%d天\n",num1);

相关文档
最新文档