ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:18.23KB ,
资源ID:12226323      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12226323.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言编程万年历程序说明书.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言编程万年历程序说明书.docx

1、C语言编程万年历程序说明书目录前言3正文4-6本次课程总结7附录8-16前言一 设计题目模仿现实生活中的挂历。当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。二 要求简析根据题目要求,实现当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。并且在系统时间变化时能够自动翻转页数。三 实现功能与设计目的题目中要求尽量模仿生活中的挂历,在起始页显示当前的时间以及当前月的月历,目的是使使用者能够直接获取时间,月内周次显示等生活便捷信息。在功能上有一定创新,表现在周次查询,闰年查询和全年年历查询等便捷功能,

2、操作要求也很快捷,在起始页按下对应数字即可,实现了程序使用上的简便性和快捷性。另外,功能界面上具有持续性,即可让使用者选择性的持续使用谋一个固定的功能,方便快速使用。同时,实现了快速回复主菜单的功能,在每个功能菜单上,都可以通过一键快速启用主菜单,从而在功能转换方面得到了很好的提升,方便使用。通过本程序,实现查询方便,功能持续,转换快捷等有利于方便人们生活的功能,达到了时间知识,灵活运用的目的。正文一 需求分析(1) 输入的形式和输入值的范围;程序输入要求包含数字输入和字母输入两个部分,回车键确定,数字输入部分主要为年份,月份,日期查询命令时使用,要求了固定的输入格式年份规定位数为四位正数,月

3、份和日期固定为两位正数。字母输入部分主要为功能转换和输入确定使用。若输入出错将提示使用者“输入有错,请从新确定输入”。(2) 输出的形式;输出形式以汉字和数字结合的方式输出,输出环境汉语显示,简单明了,数字排列简明,读数方便。(3) 程序所能达到的功能;程序所能达到的功能包括五个方面:1、 当前时间,精确到分钟;2、 当前月的月历;3、 周次查询功能;4、 闰年查询功能;5、 任意年全年年历查询功能。(4) 测试数据:包括正确的输入及输出结果和含有错误的输入及其输出结果;1、 正确输入的数据,比如主菜单下输入“1+回车”“2010,03,26+回车”可以显示为“2010-3-26是星期六,是否

4、继续使用该项功能(y/n)”。在比如主菜单下输入“3+回车”“2010+回车”显示为2010年全年年历2、 错误输入的数据,比如主菜单下输入“5+回车”将会出现错误提示,显示为“错误提醒:您的输入有错,请从新确定输入”二 设计概要本程序主要运用的数据结构主要为数组,类型包括字符型和整形等,程序结构上,使用了循环体结构,选择性结构,选择性结构包含switch语句,do语句,ifelse语句,while语句等,算法上使用了符合逻辑语句,运用各种逻辑运算符和赋值语句,使程序简洁明了,函数调用方面,使用了数组函数的调用方式,快速简明,使用了指针调用,同时,在程序中使用了调用系统当时时间,同时,使用了一

5、部分结构体变量服务程序。主函数通过switchcase语句调用了各个小函数,且通过switchcase语句逐渐展开。三 详细设计 伪代码算法概要:1、 闰年算法:When year%4 is zeroAnd year%100 is not one 100Or year%400 is zero The The year is leapyear!2、 周次算法:A mon_day is defferentThen put it togetherThey are31,28,31,30,31,30,31,31,30,31,30,31; If the year is leapyearThen the s

6、econd number is29Else it is 28Get daySearch(int year,int month,int dayWhen day is mWhen m is one mis not bigger than month M is m add one And c add dayS is yearcut1add year cut one/4 add year cut one/100 add year cut one /400 cut 40 add c; 四 调试分析(1) 遇到的问题问题主要包括1、 函数调用方面数组结构调用出现失误,出现调用数组但不能赋值或者是赋值后不能

7、显示;调用系统函数是也出现了调用失误的现象,处理时提示调用失误无法显示等提示。处理时灵活运用书本知识,分析清楚变量之间的关系。2、 字符方面特别注意符合问题和拼写问题,比如漏写“;“和“,”等一出错。(2) 经验和体会处理问题灵活分析,熟悉运用课本知识处理问题,另外,细心分析,耐心处理问题很重要。五 用户使用说明运行程序起始界面,根据汉字提示,按需要输入相关指令前面对应的数字,以回车键确定,得出结果后,若需要继续使用该项功能,输入y,以回车键确定,否车输入n,以回车键确定,在主菜单选择其他功能,操作要求简单明了,用户只需要根据汉字提示输入相关数字或是字母,回车确定即可。六 测试结果例:(1)主

8、菜单下输入“1+回车”“2010,03,26+回车”可以显示为“2010-3-26是星期六,是否继续使用该项功能(y/n)”。(2)主菜单下输入“2010+回车”显示为“2010年不是闰年,是否继续使用该项功能(y/n)”(3)主菜单下输入“3+回车”“2010+回车”显示为2010年全年年历(4)主菜单下输入“5+回车”将会出现错误提示,显示为“错误提醒:您的输入有错,请从新确定输入”本次课程设计总结C语言博大精深,是一门要求细心与耐心的课程,c语言灵活多变,但是入门要求高,取得入门时一个努力攀登的过程。但是,使用好c语言,确能改使用者带来许多乐趣,能够在使用过程中感受创造之美和改变之美,更

9、能领略到计算机科学的神奇之处。而且,学习c语言不能急于求成,冰冻三尺,非一日之寒,要好好体会,多读多练,熟悉各种程序的编程技巧,计算方法,而且要在自己的程序中熟练使用,这样才能有所提高。要熟悉生活,熟悉各种生活需要,然后运用编程的方法处理生活中的问题,学有所用,这样才能是学习更有趣味,才能有不竭的学习动力。当然,作为一个c语言初学者,未来还有不少东西要学,希望能在以后的生活中得到更好的提高,不断提升个人能力。附录#include #include 。#includechar* month_str=一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月; char* week

10、=星期一,星期二,星期三,星期四,星期五,星期六,星期天; int IsLeapYear(int year) if(year%4=0&year%100!=0)|(year%400=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(IsLeapYear(year)&month=2) return 29; else return(mon_daymonth-1); int DaySearch(int year,int mon

11、th,int day) int c=0; float s; int m; for(m=1;mmonth;m+) c=c+month_day(year,m); c=c+day; s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c; return (int)s%7); int PrintAllYear(int year) int temp; int i,j; printf(nn%d 全年历n,year); for(i=1;i=12;i+) printf(nn%s(%d)n,month_stri-1,i);

12、printf(S M T W T F S nn); temp=DaySearch(year,i,1); for(j=1;j=month_day(year,i)+temp;j+) if(j-temp=0) printf( ); else if(j-temp10) printf(%d ,j-temp); else printf(%d ,j-temp); if(j%7=0) printf(n); return 0; int main() int option,da; char ch;int year,month,day;long int timer;struct tm *timenow;int i,

13、j;int month_day=31,28,31,30,31,30,31,31,30,31,30,31;printf(您好!nn欢迎使用万年历系统!n); timer=time(0);timenow=localtime(&timer);printf(n现在的时间是:%d年 %d月 %d日 %d时 %d分,(*timenow).tm_year+1900,(*timenow).tm_mon+1,(*timenow).tm_mday,(*timenow).tm_hour,(*timenow).tm_min);printf(nn本月月历n);printf(nS M T W T F S nn);da=D

14、aySearch(year,month,day);for(i=1;i=month_day(*timenow).tm_mon;i+) j=(*timenow).tm_wday; if(*timenow).tm_mday%7-(*timenow).tm_wday)!=0) printf( );else printf(%d ,i); if(i%7=0) /printf(n);putchar(n);while(1) printf(n请选择服务的种类:n); printf(n1周次查询); printf(n2闰年查询); printf(n3全年年历); printf(n4退出n); scanf(%d,&

15、option); switch(option) case 1: while(1) printf(n请按该格式输入年月日(XXXX,XX,XX):); scanf(%d,%d,%d,%c,&year,&month,&day); da=DaySearch(year,month,day); printf(n%d-%d-%d 是 %s,是否继续使用该项服务?(Y/N),year,month,day,weekda); fflush(stdin); scanf(%c,&ch); if(ch=N|ch=n) break; break; case 2: while(2) printf(n请按格式输入查询年份(

16、XXXX); scanf(%d,&year); if(IsLeapYear(year) printf(n%d 是闰年,是否继续使用该项服务?(Y/N),year); else printf(n%d 不是闰年,是否继续使用该项服务?(Y/N)?,year); fflush(stdin); scanf(%c,&ch); if(ch=N|ch=n) break; break; case 3: while(3) printf(n请按格式输入查询年份(XXXX); scanf(%d,&year); PrintAllYear(year); printf(n是否继续使用该项服务(Y/N)?); fflush(stdin); scanf(%c,&ch); if(ch=N|ch=n) break; break; case 4: fflush(stdin); printf(确定退出?(Y/N); scanf(%c,&ch); if(ch=Y|ch=y) exit(0); break; default: printf(n错误提醒:输入出错,请从新确定输入!n); break; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1