用c语言编写万年历程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C程序设计》课程设计报告
2011-2012学年第二学期
设计题目:万年历的设计
指导教师:李素若
完成时间:2012年6月1日至2011年6月26日
第 1 组报告成员
成绩评定:分任课教师签字: 2012年6月 21 日
目录
目录
目录 (2)
1序言 (3)
2设计题目 (3)
3问题定义 (4)
4总体分析与设计 (5)
4.1总体流程图 (5)
4.2算法中涉及的知识点 (6)
4.3详细设计 (6)
5调试与测试 (9)
6参考文献 (11)
7总结与心得 (11)
1 序言
我们经过了一个学期的c语言课程的学习,对计算机变成所需的c语言有了大体的了解,能够看懂和编写一些简单的c语言程序,为了更好的加深同学们对c语言的认识,提升同学们的c语言时间编程能力,所以进行了c语言的课程设计。
本程序是一个万年历程序,可以在程序中任意的输入公元年份,通过程序的将该年份的各种信息形象直观的显示出来,达到c语言程序编写所体现的方便快捷的功效。同时,通过对该程序c语言的编写,能够在训炼我们在课本中学到各种知识点,并将其应用其中。
2 设计题目:
1设计编写一个C程序—“万年历”。
2输入任一年将显示出该年的所有月份日期,对应的星期。
3 下一行显示星期,从周日到周六,中英文都可以。
4 下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐。
5 月份:中文英文都可以,注意闰年情况。
3 问题定义(或系统分析):
1 要输入任一年显示出该年的所有月份日期,应该先设计具体的输出格式,如下:
the calendar of the year2008.
January
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
February
Sun Mon Tue Wed Thu Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
=============================================
2 判断是不是闰年(year%4!=0||year%100==0&&year%400!=0)满足条件就是平
年,把一年中的所有月份分为四类(28,29,30,31)。
3 求出一年中的第一天是周几(year +(year-1)/4-(year-1)/100+(year-1)/400)%7。
4 有指针数组存放十二个月的英文和星期的英文缩写。
5 用FOR循环输出各月份的日历
4 总体设计与详细设计:
4.1 总体流程图
4.2 算法中涉及的知识点
1 定义整型,字符型,指针变量,字符型数组和指针数组。数组的初始化和引用和指针的使用。
2 函数的定义、声名、调用以及函数的返回值。
3 程序的三种基本结构:顺序,选择,循环。if语句的嵌套,for语句的嵌套。
4 赋值语句的使用。
5 输入(scanf)输出(printf)函数的应用。
6 算术运算符、关系运算符和逻辑运算符的应用.
4.3 详细设计:
#include
int judge(int year,int month)
{
if(month==1||month==3||month==5||month==7||month==8||mon th==10||month==12)
return(1);
else if(month==2)
{
if(year%4!=0||year%100==0&&year%400!=0)
return(2);
else return(3);
}
else return(4);
}
int main()
{
int year,i,j,a,n,m,k;
char ** p;
char * week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
char*month[]={"January","February","March","April","May" ,"June","July","August","September","October","November","D ecember"};
printf("please inter the year:");
scanf("%d",&year);
printf("\n");
printf("the calendar of the year%d.",year);
printf("\n");
a=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+1)%7; for(i=0;i<12;i++)
{
n=judge(year,i+1);
p=month+i;
printf("%s\n",*p);
printf("\n");
for(j=0;j<7;j++)
{
p=week+j;
printf("%6s",*p);
}
printf("\n");