c语言专业课程设计方案报告万年历最详细.docx
《c语言专业课程设计方案报告万年历最详细.docx》由会员分享,可在线阅读,更多相关《c语言专业课程设计方案报告万年历最详细.docx(21页珍藏版)》请在咨信网上搜索。
1、C语言课程设计汇报 -万年历设计人:贾伟涛学号:010912班级:13电信应电班指导老师:张伟日期:6月9日内容提要经过大一下学期对C语言学习,了解到了很多C语言相关知识。学习过程即使有很多迷惑,不过当自己能够独立看懂和独立完成一个简单程序时,心中就会收获无限喜悦和成就感。我即使能够看懂部分简单程序,编写部分简单计算程序,更多是学会了一个思想编程,它让我在去思索很多日常生活中事物是怎么样经过一个个小小函数实现功效,激发我对c语言爱好。C语言是多年在中国外得到快速推广应用一个机器语言。C语言功效丰富,表示能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既含有高级语言优点,又含有低级语
2、言很多特点。所以,C语言尤其适合于编写多种软件。在这次课程设计中我将把日常生活中最常常接触日历查询,利用C语言程序编成一个简单万年历查询系统。经过这个小小系统能够实现很多功效。在程序中你能看到很多熟悉C语言关键字,同时也加入了很多自己课外了解到部分关键字。在不停调试中最终才取得最为完整程序。接下来就是我C语言课程设计具体内容来了,大家拭目以待吧!目录一、 系统功效和数听说明-二、 问题分析-三、 程序总体设计及功效结构框图-四、 程序步骤图-五、 源程序代码-六、使用说明-七、个人心得-八、参考文件-一、系统功效和数听说明(一)功效介绍在日常生活中能接触到很多不一样类型日历,在日历上我们通常期
3、望它能简单明了给我们最想要日期信息。在我万年历系统当中,就是将日历,月历做简单明了,很方便我们查询使用。下面是它要实现部分基础功效:C语言编写万年历查询系统:(1)输入年份,判定是否为闰年(2)输入年月日,判定是星期几(3)输入年份,打印出12个月月历(4)输入年月,打印出本月日历另新增:(1) 对输入指令错误提醒(2) 加入了调用系统时间函数(3) 还添加了欢迎界面并进行界面优化(二)程序中数听说明int days12 = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;这是定义相关每个月天数数组,依据大小月和二月份特殊情况将每个月天数变为数组中
4、元素存入数组当中。其中days1=28,是将闰年二月天数28天作为初始元素存入。在经过yearMonth函数后就能够给days1中存入正确月天数。 tm *tp;char *week=一,二,三,四,五,六,日; 这两组数据设计全部利用了指针定义,利用指针能够提升程序可读性,能够更方便使用。这两个数组作用是用于调用系统时间,而定义星期数组*week和年月日变量*tp,因为还没学到指针,在这里查阅了很多资料,并也借鉴了前辈们很多程序。二、问题分析对于闰年判定,能被4整除但不能被100整除,或能被400整除年份为闰年,不然为平年。日期查询,就是直接打印改天所在月份月历。程序难点在于判定星期,但依据
5、公式,我们能够很轻易地用年月日推断出星期: weekday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;其中year:要查询年份day:从该年一月一日起到该天天数weekday:得出星期数。在打印月历时,只要知道第一天星期,就能够依次输入后面日期,经过一定长度输出日期,在碰到某天时星期天时,就换行输出,所以能够根据月历格式输出。对于初始输入目前系统时间,能够经过中time 和localtime函数取出系统时间进行初始化。判定日期是否正当,if(year=3000|year=12|month=31|day=0)syste
6、m(CLS);printf( 输入错误,系统及立即返回!);Sleep(3000);goto tz;能够先判定年月日是否有小于0值,月和日是否有超出最大值12和31 ,假如经过此判定正当,再判定是否时闰年,假如时闰年,则判定二月份是否满足要求,闰年二月份不能超出29天,平年二月份不能超出28天。在查询过程中,假如发觉输入不正当或不满足输入要求,则提醒错误,并返回主菜单。三、程序总体设计及功效结构框图(一)功效结构框图系统时间显示主菜单星期查询输出年历输出月历闰年判定欢迎使用 (二)程序设计头文件:#include/标准输入输出函数#include/清屏函数system()#include/延时
7、函数Sleep()#include /调用系统时间函数time()在程序中利用了大量自定义函数,全部包含为了使程序更介绍明了。其中有:int isLeapYear(int year)/判定是否为闰年void hy()/欢迎信息; void Time() /获取系统时间;int whichWeekday(int year, int month, int day)/判定某天为星期几; void yearMonth(int year, int month)/打印某年某月月历;void monthDay(int year)/输入年份,打出个月历;void menu()/主菜单;void main()/
8、主函数;这些函数定义及其对应内部程序共同构筑起了这个万年历查询系统总程序。其中isLeapYear函数是用来判定输入年份是否为闰年,实现了估计功效第一个方面;whichWeekday函数则是为了实现判定星期而编写;yearMonth函数则是为了实现月历而编写;Time()函数则是为调用系统时间而编写,该Time()函数采取指针形式定义了*week数组和*tp变量;yearMonth,monthDay 这两个函数共同使用就能够完成输出年历功效。四、程序步骤图(一)总步骤图开始计算是否为闰年计算星期数按键1?按键3和44输出是否为闰年输出星期数计算编辑接收到数据输出具体年历和月历按键5?是是是是计
9、算是否为闰年计算星期数按键2?是是是计算是否为闰年计算星期数是是是是结束 退出(二)算法说明1. 总天数算法:isLeapYear函数使用,判定出了输入年份是否为闰年信息。判定十二个月是否为闰年方法是:该年分而能被4整除但不能被100整除,或是能被400整除。判定是否为闰年步骤图:2.输入日期计算星期几:利用whichWeekday函数能够判定出星期,然后对于输入日期能够经过公式weekday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7计算就能够输出对应星期数。int whichWeekday(int year, in
10、t month, int day)/判定某天为星期几int weekday;if (month = 1 | month = 2)/公式中要把月和月换成是上十二个月月和月 month += 12; year -= 1; weekday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7; /计算星期公式return weekday+1;3. 对输入信息汇总:void yearMonth(int year, int month)/打印某年某月月历,void monthDay(int year)/输入年份,打出个月历;经过这两个函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计方案 报告 万年历 详细
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。