




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院C程序设计报告C语言课程设计报告题 目:编写一万年历系统设 计 者: 杨景专业班级:通信1302学 号:311309020228指导教师: 张黎娜 2014年6 月26 日河南理工大学计算机学院目录1 题目与要求 1.1 问题提出 1.2 本系统涉及的知识点 1.3 功能要求2 功能设计 2.1 算法设计 2.2 部分模块流程图3 程序代码设计4 C程序设计总结 参考文献1 题目与要求1.1 问题提出(左对齐,宋体粗小四号) 本人计划编写一个编写一万年历系统,1.2 本系统涉及的知识点 结构、数组、循环、函数、分支、指针1.3 功能要求1.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几);2.当系统日期变到下一月时,安回车键自动翻页到下一月;3.输入对应的年,输出相应的月份;2 功能设计1设计编写一个C程序“万年历”。12输入任一年将显示出该年的所有月份日期,对应的星期。13 下一行显示星期,从周日到周六,英文表示。14 下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐。15 月份:英文显示,注意闰年。2.1 算法设计将题目分成若干模块或部分、各模块或部分的算法设计Judge函数判断闰年和每个月份的天数int judge(int year,int month)/*定义一个函数,把月分为四类(28,29,30,31)*/ if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) return(1);/*31天的月份,返回值为1*/ else if(month=2) if(year%4!=0|year%100=0&year%400!=0) return(2);/*平年的2月份,返回值为2*/ else return(3);/*闰年的2月份,返回值为3*/ else return(4);/*30天的月份,返回值为4*/判断是不是闰年 (year%4!=0|year%100=0&year%400!=0)满足条件就是平年,把一年中的所有月份分为四类(28,29,30,31)。求出一年中的第一天是周几 (year +(year-1)/4-(year-1)/100+(year-1)/400)%7。有指针数组存放十二个月的英文和星期的英文缩写。 用FOR循环输出各月份的日历 要输入任一年显示出该年的所有月份日期,应该先设计具体的输出格式,如下: 2008年的日历.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 31February 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=3、根据所选菜单编写相应代码:1)输入函数while(scanf(%d,&year)!=EOF),输入要查询的年份。2)输出每个月份的日历2.2 部分模块流程图2.3 N-S图1.图一 输入的年份 判断从定义年到输入的年份中每个年份是否为闰年是 否每年为366天 每年为365天 返回该年的天数2. 图二 输入的年月 判断输入年是否为定义年 是 否总天数S=1总天数S为定义年到输入年的总天数把S加上该年一月到输入月份的天数,再加1判断输入的月份是否为闰年中的月份是 否该月是否大于二月 是 否把S加上该 年一月到输入月份的天数把S再加上该 把S加上该年年一月到输入 一月到输入月的月份的天数 份的天数再加1总天数为S判断S的最后一天为星期几从这一天起依次输出输入月份的天数直到该月底为止3 程序代码设计判断每个月的天数int judge(int year,int month)/*定义一个函数,把月分为四类(28,29,30,31)*/ if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) return(1);/*31天的月份,返回值为1*/ else if(month=2) if(year%4!=0|year%100=0&year%400!=0) return(2);/*平年的2月份,返回值为2*/ else return(3);/*闰年的2月份,返回值为3*/ else return(4);/*30天的月份,返回值为4*/输入模块1) 函数原形:void show() ;int judge(int year,int month)。2) 功 能:show函数的使用,提醒用户如何使用,和食用规则;judge函数的使用,判断每个月份的天数,如果是平年二月28天,闰年29天,其他的1 3 5 7 8 10 12月分31天4 6 9 11月份30;3)变量及类型:1.变量为月份mouthif(month=1|month=3|month=5|month=7|month=8|month=10|month=12);else if(month=2)Else用这种方式判断每个月的天数;如果是平年二月28天,闰年29天,其他的1 3月5 月7月8月10 月12月分31天4 月6月 9月 11月份30;struct student stu :接收主函数传过来的数组首地址。4)说明:执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型变量赋值时,会将缓冲区中的回车键当成数据存入变量中,所以要在某些输入语句后面加getchar()函数。4 C程序设计总结(左对齐,宋体粗四号)内容:1. 程序调试情况;当开始程序时候,会显示制作者,已经用处,提醒用户输入月份;2. 输入月份以后按回车键,会出现第一个月份的日历;提醒用户按回车键查询下一个月份的日历;3. 全部显示完后,会提示用户要不要继续查询;要继续查询,按回车键;4. 我的感受经历了这次课程设计的设计和制作的整个过程,我才发现我知识的贫乏和知识面的狭窄,原本以为不就是一个小小的课程设计,小case,很容易就可以搞定,可是到了后来实际的操作的时候可是花费了我九牛二虎之力,不说其他的,只说时间上面,我在宿舍里面熬了三个通宵,更不用说白天的时间了。这次作课程设计我也是收获很大,首先,我对C语言有了更深的了解,使用起来也更加的熟练,原来有一些不知道和不熟悉的函数,我学会用了。其次,我这一次找了不少的资料,找专业的书籍、上网找各方面的资料,也使我学到了一些书本中学不到的知识,让我长了见识。同时我们同学之间也互相的探讨,也增进了我们同学之间的感情。这次作的这一个设计,虽然我自己觉的很有的成就感,但是这必竟是我第一次作C语言的课程设计,必然会有很多的不足之处有待改进,相信以后我一定会做的更好。参考文献内容:列出课程设计中所参考的所有书目,格式如下:1 谭浩强,C程序设计(第二版),北京:清华大学出版社,2001.1 (左对齐,宋体,五号)2 陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社,2003.6附录:程序清单内容:全部源代码#includeint judge(int year,int month)/*定义一个函数,把月分为四类(28,29,30,31)*/ if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) return(1);/*31天的月份,返回值为1*/ else if(month=2) if(year%4!=0|year%100=0&year%400!=0) return(2);/*平年的2月份,返回值为2*/ else return(3);/*闰年的2月份,返回值为3*/ else return(4);/*30天的月份,返回值为4*/int main()void show(); int year,i,j,a,n,m,k; char * p; char enter; char * week=Sun,Mon,Tue,Wed,Thu,Fri,Sat;char*month=January,February,March,April,May,June,July,August,September,October,November,December;show(); printf(请输入你要查询的年:); while(scanf(%d,&year)!=EOF) printf(n); printf( %d的日历n,year); printf(-); printf(n); a=(year+(year-1)/4-(year-1)/100+(year-1)/400)%7; for(i=0;scanf(%c,&enter)!=27;i+)/*输出前几个月的日历表*/ n=judge(year,i+1); p=month+i; printf(%sn,*p); printf(n); for(j=0;j7;j+) p=week+j; printf(%6s,*p); printf(n); for(k=0;ka;k+) printf( );/*六个空格*/ for(m=1;m32;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; else if(n=4&m=30) break; a=(a+m)%7;/*计算出下个月的第一天是星期几*/ print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022-2023学年上海宝山区七年级(上)第二次月考语文试题及答案
- 应急及安全管理培训课件
- 2024-2025学年度中级软考综合提升测试卷附答案详解(满分必刷)
- 强化训练-人教版7年级数学上册期中试题及答案详解
- 卖水果的合同(标准版)
- 设计转包合同(标准版)
- 2024年安全员考试模拟试题含答案详解(新)
- 2025年海洋生态保护与修复政策对海洋生态系统服务功能可持续性优化报告
- 2025年教育行业投资并购趋势与教育产业投资前景报告
- 2025年工业污染源全面达标排放与环保人才培养计划
- 2025劳动合同范本下载
- 2025-2026学年高二上学期数学第一次月考立体几何卷全解析【测试范围:沪教版2020必修第三册第十章】(上海专用)
- Unit 3 Places we live in单元整体公开课一等奖创新教学设计表格式(5课时)
- 2025年4月自考02204经济管理试题及答案
- 统战工作培训课件
- 泡茶的步骤课件
- 人教版(2024)八年级上册数学全册教案
- 《无机化学》第六版 课件 0绪论
- 水利建筑工程概算定额(上册)2025版
- 煤矿冲击地压培训课件
- 安徽省2021-2023年中考满分作文45篇
评论
0/150
提交评论