万年历C语言程序设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
。
输入2可以打印任意月份的日历例如输入2010年3月得到
1对于第一个功能输出任意天的星期先要算出输入的是这一年的第几天,(要注意对闰年的判断)。然后利用公式S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
X表示年份,C是该年份元旦开始到这一日的天数
printf(" Sun Mon Tue Wed Thu Fri Sat \n");
if(a==7)
{for(i=1;i<=b;i++)
{printf("%4d",i);
if(i%7==0)
{printf("\n");
}=4*a)
{printf(" ");
j++;
{if(year%4==0&&year%100!=0||year%400==0)
return 1;
else return 0;
}
int days_month (int month,int year)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
case 2:
printf("打印任意日历\n");g();
break;
case 3:
printf("谢谢使用!\n");
exit(0);
}
}
}int menu_select()
{
char s;
int cn;
printf("1.输入年月日计算星期几\n");
printf("2.打印任意日历\n");
}
}
void g()
{int i,j=1,k=1,a,b,month,year;
printf("\n输入年月:\n");
scanf("%d%d",&year,&month);
b=days_month(month,year);
a=firstday (month,year);
printf("*************************************\n");
[2]张长海.C语言程序设计[M].北京:高等教育出版社,2006
[3]于帆.赵妮.王中生等程序设计基础.(C语言版).清华大学出版社
[4]谭明金 俞海英 C语言程序设计实例精粹 电子工业出版社
附
源程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
S/7的系数就是星期数.
2,对日历的打印,用函数day_month()判断要输出的月份是多少天,再用公式w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;算出输入月份第一天的星期数。
3.2
主函数图
计算星期图
打印日历图
第
4.1
问题:
2、 打印任意年份的日历;
3、界面要优化,直观,大方,美观;
基本要求:1、独立完成系统的设计、编码和调试。
2、系统利用C语言实现。
3、按照课程设计规范书写课程设计报告。
4、熟练掌握基本的调试方法,并将程序调试通过。
1.
界面优化,直观,大方,美观需要做一个菜单,可实现直接输入所需要的
信息,不用显示源代码。对于显示任意一天的星期数可以利用网络找到公式。
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else leap=0;
if(leap==1&&month>2)
sum++;
S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
//X表示年份,C是该年份元旦开始到这一日的天数
//S/7的系数就是星期数
//01printf("%d",S);
switch(S)
{
case 1:printf("星期一\n");break;
(1)问题:没有毅力调程序,遇见困难总是逃避。解决办法,在助导的把课设的重要程度说明后,坚持了下来。
(2)问题。很多程序都是不通过,总是无定义。
解决办法:没有认真的看借来的书籍,没有分清楚t.c与V。C的区别。
(3)问题:打印的日历总是提前一天,对控制格式还不是很了解。
解决方法:细心调试发现问题的原因,然后解决;
printf("3.谢谢使用! \n");
printf("input 1-3:");
do {
s=getchar();
cn=(int)s-48;
}while(cn<0||cn>6);
return cn;
}
总结
课程设计总结:自从学习了C语言后,一直觉得模模糊糊,什么也不会,一个学期过去了总想学点现实中能用到的知识,在一开学就开始做课程设计学习如可编写程序心里比较高兴吧,但是拿到题目以后有点晕,要我编写一个万年历,自己一点想法也没有,后来上网看了一下大家的编写的程序,晕啊,看不懂!没办法去了校图书馆去借书看看没想到找了打印日历的书,。心里自然是高兴但是没有注意到是T,C环境下的。这件事让我知道做事要稳重细心!后来同学告诉我T,C与V,C的差别不是特变大,于是我继续调试终于成功了,。。通过课程设计我学了很多。也明白了以前一些不懂得问题,以后要继续努力!
.
指导教师评语:
指导教师(签字):年月日
课程设计成绩
int leap (int year) ;//判断是否为闰年
int days_month (int month,int year) ;//判断这个月的天数
int firstday(int month,int year);//显示本月第一天是星期几
int menu_select();
void f()
{
打印日历先要判断这个月的天数,1,3,5,7,8,10,12月为31天。4,6,9,11月为30天,2月要判断是否为闰年,是为29天,不是为28天;判断出天数后
计算本月第一天是星期几,然后打印出日历。
第
2.1
2.1.1
1关于设计菜单的函数menu_select().;
2leap()函数;
3 days_month()
(4) 问题:对计算输入年月日输出星期几的公式没有具体查清,导致自己修改还没有结果 ,浪费了时间。
4.2
多看书籍尤其是教科书,把书上的知识点弄清楚然后看课外书来增加专业知识,要好好利用学校图书馆的资源和网络资源,但是不能盲目的抄袭。做事要向前赶,不能拖。
参考文献
[1]刘振安 C语言程序设计 课程设计 机械工业出版社2004
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
return 31;
if(month==4||month==6||month==9||month==11)
return 30;
if(month==2&&leap(year)==1) return 29;
else return 28;
}
int firstday(int month,int year)
{int w;
4 firstday()
2.1.2
1.菜单函数mune_select();直接显示菜单;
2判断是否为闰年的leap()函数;
3判断这个月天数的days_month()
4判断这个月第一天是星期几的函数firstday()
2.2
第三章
3.1
先做一个菜单窗口,可以重复这个窗口,
输入1可以查询任意某一天的星期数例如输入2010年3月20日得到
沈阳航空航天大学
课程设计报告
课程设计名称:C语言课程设计
课程设计题目:万年历软件设计
学院:计算机学院
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
指导教师:从丽晖
起止时间:2010年3月4日-2010年3月19日
第
1
题目:万年历软件设计
内容:设计一个简单的万年历软件,可实现对任意年份日历的输出。
1、输入年、月、日:输出时星期几;
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;
case 0:printf("星期日\n");break;
int day,month,year,sum,leap,S;
printf("\n请输入年月日\n");
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
}
for(i=1;i<=b;i++)
{printf("%4d",i);
if(i==7*k-a)
{printf("\n");
k++;
}
}
}
printf("\n*************************************\n");
printf("\n");}
int leap (int year)
w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;
return w;
}
void main()
{for(;;){
switch(menu_select()){
case 1:
printf("输入年月日计算星期几\n");f();
break;
输入2可以打印任意月份的日历例如输入2010年3月得到
1对于第一个功能输出任意天的星期先要算出输入的是这一年的第几天,(要注意对闰年的判断)。然后利用公式S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
X表示年份,C是该年份元旦开始到这一日的天数
printf(" Sun Mon Tue Wed Thu Fri Sat \n");
if(a==7)
{for(i=1;i<=b;i++)
{printf("%4d",i);
if(i%7==0)
{printf("\n");
}=4*a)
{printf(" ");
j++;
{if(year%4==0&&year%100!=0||year%400==0)
return 1;
else return 0;
}
int days_month (int month,int year)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
case 2:
printf("打印任意日历\n");g();
break;
case 3:
printf("谢谢使用!\n");
exit(0);
}
}
}int menu_select()
{
char s;
int cn;
printf("1.输入年月日计算星期几\n");
printf("2.打印任意日历\n");
}
}
void g()
{int i,j=1,k=1,a,b,month,year;
printf("\n输入年月:\n");
scanf("%d%d",&year,&month);
b=days_month(month,year);
a=firstday (month,year);
printf("*************************************\n");
[2]张长海.C语言程序设计[M].北京:高等教育出版社,2006
[3]于帆.赵妮.王中生等程序设计基础.(C语言版).清华大学出版社
[4]谭明金 俞海英 C语言程序设计实例精粹 电子工业出版社
附
源程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
S/7的系数就是星期数.
2,对日历的打印,用函数day_month()判断要输出的月份是多少天,再用公式w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;算出输入月份第一天的星期数。
3.2
主函数图
计算星期图
打印日历图
第
4.1
问题:
2、 打印任意年份的日历;
3、界面要优化,直观,大方,美观;
基本要求:1、独立完成系统的设计、编码和调试。
2、系统利用C语言实现。
3、按照课程设计规范书写课程设计报告。
4、熟练掌握基本的调试方法,并将程序调试通过。
1.
界面优化,直观,大方,美观需要做一个菜单,可实现直接输入所需要的
信息,不用显示源代码。对于显示任意一天的星期数可以利用网络找到公式。
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else leap=0;
if(leap==1&&month>2)
sum++;
S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
//X表示年份,C是该年份元旦开始到这一日的天数
//S/7的系数就是星期数
//01printf("%d",S);
switch(S)
{
case 1:printf("星期一\n");break;
(1)问题:没有毅力调程序,遇见困难总是逃避。解决办法,在助导的把课设的重要程度说明后,坚持了下来。
(2)问题。很多程序都是不通过,总是无定义。
解决办法:没有认真的看借来的书籍,没有分清楚t.c与V。C的区别。
(3)问题:打印的日历总是提前一天,对控制格式还不是很了解。
解决方法:细心调试发现问题的原因,然后解决;
printf("3.谢谢使用! \n");
printf("input 1-3:");
do {
s=getchar();
cn=(int)s-48;
}while(cn<0||cn>6);
return cn;
}
总结
课程设计总结:自从学习了C语言后,一直觉得模模糊糊,什么也不会,一个学期过去了总想学点现实中能用到的知识,在一开学就开始做课程设计学习如可编写程序心里比较高兴吧,但是拿到题目以后有点晕,要我编写一个万年历,自己一点想法也没有,后来上网看了一下大家的编写的程序,晕啊,看不懂!没办法去了校图书馆去借书看看没想到找了打印日历的书,。心里自然是高兴但是没有注意到是T,C环境下的。这件事让我知道做事要稳重细心!后来同学告诉我T,C与V,C的差别不是特变大,于是我继续调试终于成功了,。。通过课程设计我学了很多。也明白了以前一些不懂得问题,以后要继续努力!
.
指导教师评语:
指导教师(签字):年月日
课程设计成绩
int leap (int year) ;//判断是否为闰年
int days_month (int month,int year) ;//判断这个月的天数
int firstday(int month,int year);//显示本月第一天是星期几
int menu_select();
void f()
{
打印日历先要判断这个月的天数,1,3,5,7,8,10,12月为31天。4,6,9,11月为30天,2月要判断是否为闰年,是为29天,不是为28天;判断出天数后
计算本月第一天是星期几,然后打印出日历。
第
2.1
2.1.1
1关于设计菜单的函数menu_select().;
2leap()函数;
3 days_month()
(4) 问题:对计算输入年月日输出星期几的公式没有具体查清,导致自己修改还没有结果 ,浪费了时间。
4.2
多看书籍尤其是教科书,把书上的知识点弄清楚然后看课外书来增加专业知识,要好好利用学校图书馆的资源和网络资源,但是不能盲目的抄袭。做事要向前赶,不能拖。
参考文献
[1]刘振安 C语言程序设计 课程设计 机械工业出版社2004
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
return 31;
if(month==4||month==6||month==9||month==11)
return 30;
if(month==2&&leap(year)==1) return 29;
else return 28;
}
int firstday(int month,int year)
{int w;
4 firstday()
2.1.2
1.菜单函数mune_select();直接显示菜单;
2判断是否为闰年的leap()函数;
3判断这个月天数的days_month()
4判断这个月第一天是星期几的函数firstday()
2.2
第三章
3.1
先做一个菜单窗口,可以重复这个窗口,
输入1可以查询任意某一天的星期数例如输入2010年3月20日得到
沈阳航空航天大学
课程设计报告
课程设计名称:C语言课程设计
课程设计题目:万年历软件设计
学院:计算机学院
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
指导教师:从丽晖
起止时间:2010年3月4日-2010年3月19日
第
1
题目:万年历软件设计
内容:设计一个简单的万年历软件,可实现对任意年份日历的输出。
1、输入年、月、日:输出时星期几;
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;
case 0:printf("星期日\n");break;
int day,month,year,sum,leap,S;
printf("\n请输入年月日\n");
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
}
for(i=1;i<=b;i++)
{printf("%4d",i);
if(i==7*k-a)
{printf("\n");
k++;
}
}
}
printf("\n*************************************\n");
printf("\n");}
int leap (int year)
w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;
return w;
}
void main()
{for(;;){
switch(menu_select()){
case 1:
printf("输入年月日计算星期几\n");f();
break;