1、C语言课程设计打印月历c语言程序设计课程设计报告题 目打印月历学 号 姓 名 年级专业09电子信息工程2班指导教师 完成日期2010年6月28日一:目的要求综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识。二:问题描述打印月历,用C语言将月历打印于屏幕上。如下所示: Welcome to use this program* 2010 6MON TUE WED THU FRI SAT SUN 1 2 3 4 5 6
2、 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30*Would you like to continue(y/n)?三:基本要求1)年份和月份由键盘输入,打印的月历按星期一到星期日排列;2)注意大小月、闰年等问题。四:源程序#include main()void print_head(int x,int y); /函数声明/void print_month(int x,int y); int leap(int x,int y); int i,days,year,month,firstday;char cho
3、ose; do printf (nnplease input the year(0000032767):nn); scanf (%d,&year); if (year32767) printf (WANNING:ERROR,please input again!);while (year32767); /不可查询0000032767之外的年份/ printf (nn); do printf (please input the month(012)nnn); scanf (%d,&month); if (month12) printf (WANNING:ERROR,please input ag
4、ain!); /不可以查询超过12的月份/ while (month12); printf (nn);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
5、 (nnn); printf(would you like to continue(y/n):nn); /是否继续查询?/ scanf(%c,&choose); if (choose=y|choose=Y) main();days_of_month(int x,int y)int z;switch (y)case 1: case 3: case 5: case 7: case 8: case 10: case 12: z=31;break; /每年1、3、5、7、8、10、12月31天/ case 4: case 6: /每年4、6、9、11月30天/ case 9: case 11: z=3
6、0;break; case 2: if (x%4=0&x%100!=0)|(x%400=0) z=29; /闰年2月29天/ else z=28;break; /平年2月28天/ return z;leap(int x,int y)int z,i,moday;z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7; /判断某月一号星期几/for (i=1;iy;i+) moday=days_of_month(x,i); z=(z+moday)%7; return z;void print_head(int x,int y) /打印图形界面/printf (ttttWelcome
7、 to use this programn);printf (nn*nn);printf (tttt%d %dnn,x,y);printf (ttt MON TUE WED THU FRI SAT SUNn);printf (ttt);void print_month(int x,int y) /生成月历/ int i;char space7= ;for (i=1;i=x-1;i+) printf (%4c,spacei);for (i=1;i=y;i+) if (i+x-1)%7=1) printf (nttt%4d,i); else printf (%4d,i);printf (nn*nn); 五:程序流程图六:程序与结果图样1.程序调试图样2.结果图样七:小结 在这次C语言程序设计中,我学到了很多的东西,首先对于C语言中的循环的使用跟家娴熟,其中利用for循环可以使程序更加的简洁,对函数的调用的理解更加深刻。当然,在程序调试中也有很多问题,但通过查询资料与询问同学,都很好的解决了,更加深刻的理解了课本所学知识。参考书目:1、谭浩强C语言程序设计 2、C高级使用程序设计程序设计报告到此结束指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1