- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万年历实现
第 章
万年历(TC 2.0实现) 自学视频、源程序:配套资源\mr\1\
在计算机普及的今天,万年历成为了人们日常生活和工作中经常用到的桌面实用工具,它方便人们查看日期,省去了翻阅日历的麻烦。万年历还可以根据用户输入的年月日准确快速地查出当天的信息,当输入到月时能够显示出该月的日历。通过本章的学习,读者能够学到以下内容:
? 如何向主函数传递参数
? 怎样将传入的字符串转换成年月日
? 如何判断闰年
? 如何计算星期几
1.1 万年历概述
1.1.1 功能概述
实用工具万年历类似于家里的日历,方便办公人员翻看日历,查阅信息。它的主要功能是根据用户输入的参数,显示相应的信息。例如,输入年月日具体日期,系统会输出该天是星期几;若输入的数据为年月,那么会输出该年该月的日历信息。
1.1.2 万年历效果预览
图1.1 传入
图1.1 传入年月日后的效果图
当输入参数“1988/10/18”时,命令行中显示的效果如图1.1所示。
当输入闰年的参数时,例如“2000/02/”,命令行中显示的效果如图1.2所示。
当在命令行中输入参数为“2011.05.”时,显示2011年5月的效果如图1.3所示。
图1.2 闰年2月的显示效果 图1.3 查看月的日历效果
1.2 关 键 技 术
1.2.1 main()函数的参数
在万年历实用工具中,运行程序时首先应该向主函数传递参数。主函数main()的形式参数如下:
main (int argc, char* argv[] )
main()函数的两个内部形参argc和argv是用来接收命令行实参的,这是只有主函数main()才能具有的参数。
在该系统中主要需要满足以下功能:
argc参数
argc参数保存命令行的参数个数,是个整型变量。这个参数的值至少是1,因为程序名就是第一个实参。
argv参数
argv参数是一个指向字符指针数组的指针,在这个数组中的每一个元素都指向命令行实参。所有命令行实参都是字符串,任何数字都必须要由程序转变成为适当的格式。
在万年历实用工具中,main()函数的参数格式如下:
main(int x,char **date)
说明:
此项关键技术中需要对命令行实参在程序中进行格式转换,格式转换部分将在传参模块中详细介绍。
1.2.2 闰年的判断方法
闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的,补上时间差的年份为闰年,闰年共有366天,在2月中加1天。
判定闰年遵循的一般规律为4年一闰,100年不闰,400年再闰。在万年历实用工具中,采用C语言语句对闰年进行判定,代码如下:
if((year%4==0year%100!=0)||(year%100==0year%400==0))
如果if语句中判定闰年的语句为真,则说明该年为闰年,然后执行相应的语句。
1.3 传 参 模 块
1.3.1 模块概述
在万年历项目中,通过使用main()函数的参数,将其程序的名称以及想要查询的年月日信息进行输入,运行程序,即可显示需要的信息。在传递参数之前需要对程序进行编译链接,得到可执行文件后,向可执行文件中传递参数。
1.3.2 模块实现
在实现传递参数时首先需要对程序进行编译链接,生成可执行文件,在命令行中输入该执行文件的路径名称,然后再输入传入的参数,由于所有的命令行实参都是字符串类型的,因此在程序中需要将字符串类型的实参转换成整型,以便于在程序中对整型数据进行计算等操作。相应代码如下:
int year=0,month=0,day=0,week; /*定义整型变量*/
int d,i,dm,dy,m2;
char WEEK[9];
if (x==1) /*判断命令行的传参个数*/
{
printf (\n ERROR! you forgot to enter the date you want to view\n); /*没有传参时,输出此提示语句*/
exit (0); /*退出项目程序*/
}
i=0; d=-1;
while (date[1][i]) /*遍历传参,进行格式转换*/
{
if ((date[1][i]==/||date[1][i]==.)d==-1) { d=0; i++; continue; }
if ((date[1][i]==/||date[1][i]==.)d==0) { d=1; i++; continue; }
if (d==-1) year=year*10+(date[1][i]-0);
您可能关注的文档
- -难溶盐溶度积测定.ppt
- 七年级生物下册人体细胞获得氧气过程教学设计北师大版.doc
- 七年级上学期地理第四章世界气候单元测试题.doc
- 七年级生物下册 31 呼吸道对空气处理(同步练习题)人教版.doc
- 七年级下册生物第三章学案 呼吸道对空气处理.doc
- 七年级下_第三章_人体呼吸_练习题.doc
- 七年级生物人体能量供应.doc
- 七年级英语上学期动词和句型转换.ppt
- 七年级第三章,第一节《呼吸道对空气处理》教学设计.doc
- 七年级生物下册 第四单元 第三章 人体呼吸《发生在肺内气体交换(第2课时)》导学案.doc
- 急诊科“三基”考试抢救药品知识试题(附答案).docx
- 口腔颌面外科学试题含参考答案.docx
- 老年冠心病慢病管理指南试题与答案.docx
- 零售药店采购员岗位培训考核试题(带答案).docx
- 急诊科护理考试试题及答案.docx
- 零售药店采购员岗位培训考核试题(附答案).docx
- 江苏省南京市协同体九校2024-2025学年高二下学期期中语文试卷(含答案).docx
- 零售药店店员业务知识培训-GSP系列-《中华人民共和国药品管理法》培训考核试题及答案.docx
- 零售药店店员业务知识培训-GSP系列-《中华人民共和国药品管理法》培训考核试题(附答案).docx
- 零售药店店员业务知识培训-GSP系列-《中华人民共和国药品管理法》培训考核试题(含答案).docx
文档评论(0)