欢迎来到天天文库
浏览记录
ID:5779301
大小:68.05 KB
页数:9页
时间:2017-12-24
《万年历c语言课程设计报告书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言课程设计报告书设计人:查波学号:201201466院系:电信学院班级:电气11203指导老师:杜红一.设计要求1.能够显示星期。2.能够显示年月日。二.设计目的1. 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性! 2. 通过C语言课程设计,使
2、学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。三.设计思想1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为355。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否
3、则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2.输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。四.要用到的函数和语句1./*头文件*/2.main()/*主函数*/3.printf(),4.scanf()5.if语句6.for语句7.IsL
4、eapYear(int)/*定义函数*/流程图输入的年份判断从定义年到输入的年份中每个年份是否为闰年是否每年为366天每年为365天返回该年的天数输入的年月判断输入年是否为定义年是否总天数=year_days总天数为定义年前到输入年的总天数求出定义年第一天星期几判断输入的月份是否为闰年中的月份是否该月是否是二月是否求该月的万年历依次执行加1求该月的万年执行下步历总天数判断总天数的最后一天为星期几从这一天起依次输出输入月份的天数直到该月底为止四.程序运行结果六.源代码#includeintIsLeapYea
5、r(int);main(){inti;intday;intyear;inttemp;inttemp_i;longintYear_days=0;//输入的年份之前的所有年的天数之和intYear_Start=1;//当前年份intPer_Year_Days;intmonth_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};//第n月的天数printf("请输入年份:");scanf("%d",&year);while(Year_Start6、天数之和{if(IsLeapYear(Year_Start))//当前年份是闰年Per_Year_Days=366;//则当前年份的天数为366天else//当前年份是平年Per_Year_Days=365;//则当前年份的天数为365天Year_days=Year_days+Per_Year_Days;//当前年份之前的所有年的天数之和Year_Start++;}for(temp=1;temp<=12;temp++)//一个for循环内部嵌套一个for循环和两个while循环{switch(temp){case1:pri7、ntf("*****************一月(%d)********************",year);break;//break:跳出switch语句,执行switch语句后面的语句case2:printf("*****************二月(%d)********************",year);break;case3:printf("*****************三月(%d)********************",year);break;case4:printf("******8、***********四月(%d)********************",year);break;case5:printf("*****************五月(%d)********************",year);break;case6:printf("************
6、天数之和{if(IsLeapYear(Year_Start))//当前年份是闰年Per_Year_Days=366;//则当前年份的天数为366天else//当前年份是平年Per_Year_Days=365;//则当前年份的天数为365天Year_days=Year_days+Per_Year_Days;//当前年份之前的所有年的天数之和Year_Start++;}for(temp=1;temp<=12;temp++)//一个for循环内部嵌套一个for循环和两个while循环{switch(temp){case1:pri
7、ntf("*****************一月(%d)********************",year);break;//break:跳出switch语句,执行switch语句后面的语句case2:printf("*****************二月(%d)********************",year);break;case3:printf("*****************三月(%d)********************",year);break;case4:printf("******
8、***********四月(%d)********************",year);break;case5:printf("*****************五月(%d)********************",year);break;case6:printf("************
此文档下载收益归作者所有