c语言课程设计电子日历

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
nianli函数:
输出年历,先调用runnian函数,定义变量i,赋初值为1,利用for循环,循环十二次,调用x2函数,输出各个月的月历,从而显现出该年的每一天达到年历的效果。
yueli函数:
输出月历,先调用runnian函数,调用showmonth函数,输出该月月历。
rili函数:
输出日历,先调用函数,调用printmonth函数,输出该日日期。
x函数:
输出该天星期几,调用week1函数,将编号的值赋给number,调用*week2函数,根据number的值,确定指针指向,从而输出星期几,输出年,月,日,星期几。
显示月历,先输出星期日 星期一 星期二 星期三 星期四 星期五 星期六,星期日。
检验有效性,即当输入的年小于零、月小于一或大于十二、天大于该月最大值(调用day1函数)时将0返回给主函数,否则将1返回给主函数
day函数:
判断某年某月最多多少天,定义一个十二个元素的数组a[12],给十二个月的天数分别赋初值31、28、31、30、31、30、31、31、30、31、30、31。调用runnian函数,当if语句中条件为真实即返回值为1时,将二月份改为29天,即a[1]=29。
week函数:
判断某年某月某日的编号,根据公式(年份-1)+(年分-1)除以4-(年份-1)除以100+(年份-1)除以400+该天是该年的第几天(调用day2函数),把算出的值赋给number,再用number除以7取余数,即得到某年某月某日的编号。
二、
输入选择---选择+回车键---输入相应信息+回车键---输出结果。
流程图如下:
程序包含多个函数,分别为main函数、nianli函数、yueli函数、rili函数、nongli函数、printmonth函数、printyear函数、SelectMenu函数、HandleMenu函数、showmonth函数、week1函数、*week2函数、day1函数、day2函数。通过函数间的调用,实现程序的运行。

1补充

及格


无补充

不及格
不好
不好
无补充
不好
评阅人王更生职称教授
2011年12月30日
目 录
一、设计思路
二、功能实现详细设计
三、测试结果分析
四、用户手册
五、设计体会
一、
If语句:
判断该年是否为闰年,判断一年是否为闰年需要符合下面二者之一:1,能被4整除,但不能被100整除。2,能被400整除。满足上述条件时,返回值为1,否则返回值为0。
char MonthDayLeap[]={31,29,31,30,31,30,31,31,30,31,30,31};
char *WeekDayName[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
char getkey()
{
char c,s[10];
scanf("%s",s);
详细程序
#include<stdio.h>
#include<stdlib.h>
void nongli()
{
}
void printtab(int n)
{
while (n>0)
{
printf("\t");
n--;
}
}
#include <stdio.h>
char MonthDay[]={31,28,31,30,31,30,31,31,30,31,30,31};
{
int d,dt,week;
week=WeekDay(y,m,1);
if (isLeapYear(y))
dt=MonthDayLeap[(m-1)%12];
else
dt=MonthDay[(m-1)%12];
for (d=0;d<7;d++)
{
printf("\t%s",WeekDayName[d]);
课 程 设 计( 论 文 )任 务 书
专 业班 级
一、课程设计(论文)题目电子日历
二、课程设计(论文)工作:
自2011年12月26日起
至2011年12月30日止。
三、课程设计(论文)的内容要求:
1、主界面
2、基本要求
a)编写一个实用日历程序,并且可以多次进行。
b)编写一个2012年1月份日历与农历对照程序。
week=WeekDay(y,m,d);
printf("%d年%d月%d日是星期%s,是否继续查询(Y/N)?",y,m,d,WeekDayName[week]);
c=getkey();
}wenku.baidu.com
while (c=='Y' || c=='y');
return c;
}
void showmonth(int y,int m)
3、补充自己的设计内容
(1)、根据日期查星期几!
(2)、某月日历!
(3、)某年日历!
(4、) 2012年1月的农历!
学生签名:戴斌
2011年12月30日
课程设计(论文)评阅意见
等 级
项 目
课程设计态度评价
出勤情况评价
设计中创新性评价
论文书写规范化评价
综合评定等级
优秀


3补充

良好


2补充

中等

week=(d+2*m+3*(m+2)/5+y+y/4-y/100+y/400)%7;
return week;
}
char queryweekday()
{
int y,m,d,week,c=0;
do
{
printf("请输入年月日(XXXX XX XX)\n");
scanf("%d %d %d",&y,&m,&d);
c=s[0];
return c;
}
char isLeapYear(int y)
{
return((y%4 == 0 && y%100 != 0 || y%400 == 0)?1:0);
}
int WeekDay(int y,int m, int d)
{
int week;
if(m==1) m=13;
if(m==2) m=14;
定义一个字符型指针变量,利用switch语句,当number=0时,使指针指向星期日;当number=1时,指针指向星期一;当number=2时,指针指向星期二;当number=3时,指针指向星期三;当number=4时,指针指向星期四;当number=5时,指针指向星期五;当number=6时,指针指向星期六;当number不是上述数值时,指针指向错误。
}
printf("\n");
printtab(week);
for (d=1;d<=dt;d++)
相关文档
最新文档