C语言课程设计《打印月历》(完整版)
更新时间:2024-03-20 15:53:01 阅读量: 综合文库 文档下载
《C语言课程设计》 课程设计报告
题 目 学 号 姓 名 年级专业 指导教师 完成日期
年
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
《打印月历》
月
日
一、问题描述及基本要求:
1)年份和月份由键盘输入,打印的月历按星期一到星期日排
列;
2)注意大小月,闰年等问题。
二、程序分析和具体设计
设计难点:
1.程序难点在于判断每月的第一日为星期几,但根据蔡勒公式,可以很容易地有年月日推断出星
1)s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;
2)return ((int)s%7); 3)year:要查询的年份;
4)s:从该年的一月一日起到该天的天数; 5)s%7:得出的星期数,s%7==0表示星期天;
在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出;
2.闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年;大小月的判断,闰年的第二月为29天,平年的第二月为30天;
3.判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是否有超出最大值12和31 ,如果通过此判断合法,再判断是否时闰年,如果时闰年,则判断二月份是否满足要求,闰年二月份不能超过29天,平年二月份不能超过28天。在查询过程中,如果发现输入不合法或者不满足输入要求,则要求重新输入。 设计思路
1)第一步:判断输入是否合法;int dayExame(int year,int month,int day)
2)第二步:判断是否为闰年;int IsLeapYear(int year)
3)第三步:判断二月份天数;int month_day(int year,int month) 4)第四步:计算每月第一天的星期;int DaySearch(int year,int
month,int day)
5)第五步:按月历格式输出;int PrintYearmonth(int year,int
month)
6)第六步:整合;void main()
三、结构图:
输入日期
日期查询
月历显示 闰年判断,按星期排列
四、流程图
(计算每月
year%4==0&&year0!=0)||(year@0==0 输入 int dayExmae 闰年判断是否为 第一天的星期)int DaySearch (判断二月的天数) Int month_day (按星期一道星期日排列)int daysearch
输出结果: 打印月历 按月历格式输出int PrintYearmonth 五、程序清单:
#include
int dayExame(int year,int month,int day) { }
if(year<0||month<1||month>12)
else return 1;
return 0;
int LeapYear(int year) {
if((year%4==0&&year0!=0)||(year@0==0)) return 1; else return 0; }
int month_day(int year,int month) {
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31}; if( LeapYear(year)&&month==2) return 29; else
return(mon_day[month-1]); }
int DaySearch(int year,int month,int day) { int c=0; float s;
int m;
for(m=1;m s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c; return ((int)s%7); } int PrintYearmonth(int year,int month) { int temp; int i,j; printf(\年%d月\\n\ temp=DaySearch(year,month,1); printf(\星期一 星期二 星期三 星期四 星期五 星期六 星期天\\n\for(j=1;j if(j-temp<0) printf(\ \ else printf(\ \ if(j%7==0) printf(\ } return 0; } void main() { int year,month; printf(\请输入年:\ scanf(\ printf(\请输入月:\ scanf(\ printf(\日历---某某&&某某制作\\n\ printf(\ PrintYearmonth(year,month); } 六、测试数据及程序运行结果 七、参考书目 1:谭浩强著. C程序设计(第三版).北京:清华大学出版社,2005 2:谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997 3:谭浩强编著.C++程序设计.北京:清华大学出版社,2004 4:谭浩强,田淑清编著.PASCAL语言课程设计(第二版).北京:高等教育出版社,1998 5:Schildt H 著.戴建鹏译.C语言大全(第二版).北京:电子工业出版社,1994 八、课程设计结束语 经过半年C语言的学习,收获不少,通过实验课的实践,深刻体会到C语言的重要性。通过《打印月历》课程设计的制作,发现自身许多的不足,例如对于闰年的判断,日期的输出,以及星期的排列,在经过老师的指导下,查阅相关参考资料和与同学的交流,这些问题都被一 一 解决。 虽然C语言的课程基本结束了,但是学习的路还有很长,仍有许多的问题等待我去解决,让所学的为我所用! 物理与电子信息学院课程设计评定意见 主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。 指导教师评语 成绩: 签名: 年 月 日 注:本页与上一页用A3纸套印成封面和封底,课程设计报告正文用A4纸打印然后装订
正在阅读:
C语言课程设计《打印月历》(完整版)03-20
禁毒和&183;预防艾滋病教育07-23
童年糗事作文400字06-17
教育知识与能力简答题11-10
关于感恩励志的作文精选4篇04-01
浅谈工程施工现场管理06-17
艺术导论(韩国音乐)结课论文11-23
政府未来的治理模式101-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 整版
- 月历
- 语言
- 课程
- 打印
- 设计
- 日立Za-3000型原子吸收分光光度仪操作规程
- 新课标人教版四年级下册语文教学计划
- 党员干部学习《廉政准则》知识测试题参考答案
- 《自动化专业概论》读书心得
- 两位数加一位数、整十数(不进位)教学设计(1)
- 体育教学中学生意志品质的培养研究-2019年教育文档
- 2014年湖南师范大学实变函数招收硕士研究生入学考试大纲考研大纲
- 浅析建筑实际使用寿命中的加固措施问题及措施
- 熔体流动速率仪厂家哪家好?排名榜供应商排名!(2)
- 不用器械的健身
- I2C操作时序问题总结(内附大量实用代码和详解)
- 三年级下语文同步试题田忌赛马 - 沪教版-最新学习文档
- 2014年七年级下册语文期末试题及答案
- 2013人教版七年级英语下册重点短语和句子及范文
- 部编版三年级语文上册17《古诗三首》教学设计及反思
- 施工现场机械设备安全管理办法
- 统计学课后作业图表
- 计算机文化基础考试选择模拟题
- 典型智库-兰德公司介绍
- 感动无数人的9部电影