C语言课程设计打印月历.docx

上传人:b****3 文档编号:4312709 上传时间:2022-11-29 格式:DOCX 页数:9 大小:291.56KB
下载 相关 举报
C语言课程设计打印月历.docx_第1页
第1页 / 共9页
C语言课程设计打印月历.docx_第2页
第2页 / 共9页
C语言课程设计打印月历.docx_第3页
第3页 / 共9页
C语言课程设计打印月历.docx_第4页
第4页 / 共9页
C语言课程设计打印月历.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言课程设计打印月历.docx

《C语言课程设计打印月历.docx》由会员分享,可在线阅读,更多相关《C语言课程设计打印月历.docx(9页珍藏版)》请在冰豆网上搜索。

C语言课程设计打印月历.docx

C语言课程设计打印月历

《c语言程序设计》

课程设计报告

题目

打印月历

学号

姓名

年级专业

09电子信息工程2班

指导教师

完成日期

2010

6

28

一:

.目的要求

综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。

通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识。

二:

问题描述

打印月历,用C语言将月历打印于屏幕上。

如下所示:

Welcometousethisprogram

***********************************************

20106

MONTUEWEDTHUFRISATSUN

123456

78910111213

14151617181920

21222324252627

282930

***********************************************

Wouldyouliketocontinue(y/n)?

 

三:

基本要求

1)年份和月份由键盘输入,打印的月历按星期一到星期日排列;

2)注意大小月、闰年等问题。

四:

源程序

#include

main()

{

voidprint_head(intx,inty);//函数声明//

voidprint_month(intx,inty);

intleap(intx,inty);

inti,days,year,month,firstday;

charchoose;

do

{printf("\n\npleaseinputtheyear(00000~32767):

\n\n");

scanf("%d",&year);

if(year<0||year>32767)

printf("WANNING:

ERROR,pleaseinputagain!

");}

while(year<0||year>32767);

//不可查询00000~32767之外的年份//

printf("\n\n");

do

{printf("pleaseinputthemonth(0~12)\n\n\n");

scanf("%d",&month);

if(month<=0||month>12)

printf("WANNING:

ERROR,pleaseinputagain!

");}

//不可以查询超过12的月份//

while(month<=0||month>12);

printf("\n\n");

days=days_of_month(year,month);

//调用days_of_month(year,month)函数//

firstday=leap(year,month);

//调用leap(year,month)函数//

print_head(year,month);

//调用print_head(year,month)函数//

print_month(firstday,days);

//调用print_month(firstday,days)函数//

choose=getchar();

printf("\n\n\n");

printf("wouldyouliketocontinue(y/n):

\n\n");

//是否继续查询?

//

scanf("%c",&choose);

if(choose=='y'||choose=='Y')main();

}

days_of_month(intx,inty)

{

intz;

switch(y)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

z=31;break;

//每年1、3、5、7、8、10、12月31天//

case4:

case6:

//每年4、6、9、11月30天//

case9:

case11:

z=30;break;

case2:

{if((x%4==0&&x%100!

=0)||(x%400==0))z=29;

//闰年2月29天//

elsez=28;break;

//平年2月28天//

}

}

returnz;

}

leap(intx,inty)

{

intz,i,moday;

z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;

//判断某月一号星期几//

for(i=1;i

{moday=days_of_month(x,i);

z=(z+moday)%7;

}

returnz;

}

voidprint_head(intx,inty)//打印图形界面//

{

printf("\t\t\t\tWelcometousethisprogram\n");

printf("\n\n********************************************************************************\n\n");

printf("\t\t\t\t%d%d\n\n",x,y);

printf("\t\t\tMONTUEWEDTHUFRISATSUN\n");

printf("\t\t\t");

}

voidprint_month(intx,inty)//生成月历//

{

inti;

charspace[7]={''};

for(i=1;i<=x-1;i++)

printf("%4c",space[i]);

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

{if((i+x-1)%7==1)printf("\n\t\t\t%4d",i);

elseprintf("%4d",i);}

printf("\n\n********************************************************************************\n\n");

}

 

五:

程序流程图

六:

程序与结果图样

1.程序调试图样

2.结果图样

 

七:

小结

在这次C语言程序设计中,我学到了很多的东西,首先对于C语言中的循环的使用跟家娴熟,其中利用for循环可以使程序更加的简洁,对函数的调用的理解更加深刻。

当然,在程序调试中也有很多问题,但通过查询资料与询问同学,都很好的解决了,更加深刻的理解了课本所学知识。

参考书目:

1、谭浩强C语言程序设计

2、C高级使用程序设计

 

程序设计报告到此结束

 

指导教师评语

主要内容包括:

设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1