用c语言编写万年历程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");

for(k=0;k

printf(" ");

for(m=1;m<32;m++)

{

printf("%6d",m);

if((a+m)%7==0)

printf("\n");

if(n==1&&m==31) break;

else if(n==2&&m==28) break;

else if(n==3&&m==29) break;

相关文档
最新文档