欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c语言课程设计万年历文档格式.docx

    • 资源ID:7554671       资源大小:372.68KB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计万年历文档格式.docx

    1、select 表示菜单选择的变量i 表示月份的变量j 表示一个月中的某一天的变量sum 判断某天是一年中的第几天的变量number判断某天离公元1年1月1日还有几天的变量a 表示每月天数的数组变量year1 系统时间年份的变量month1 系统时间月份的变量day1 系统时间日期的变量2总体设计2.1应用到的C语言头文件: #include time.h #include stdio.hmath.hwindows.hconio.h在程序中应用了大量的自定义函数,都涉及为了使程序更简洁明了。其中:int isleap() /*判断是否为闰年*/ int eachyeartotal() /*判断某

    2、天是一年中的第几天*/int week() /*对天数进行判断确定是星期几*/void display1() /*输出年历*/void display2() /*输出月历*/int counterdays() /*判断今天距特定日期的天数*/void whatweek() /*判断是星期几*/void jieri() /*判断是否公历节日*/void setDay2() /*通过键盘“”“”控制月历的变换*/这些函数的定义极其相应的内部程序共同构筑起了这个万年历总程序。其中的isleap函数是用来判断输入的年份是否为闰年,实现了预计功能的第一个方面;theweek函数则是为了实现判断星期而编写

    3、的.2.2判断是否为闰年图2.1判断闰年2.3功能模块图图2.2功能图 3详细设计源程序 /*包含的头文件*/#define KEYNUMUp 0x48 /*宏定义*/#define KEYNUMDown 0x50 #define KEYNUMLeft 0x4b #define KEYNUMRight 0x4d#define KEYNUMPageUp 0x49 #define KEYNUMPageDown 0x51 int eachyeartotal(int year,int month,int day); /*函数声明*/ int counterdays(int year,int month

    4、,int day);int nowtime(int year,int month,int day);int week(int year,int month,int day);int maxDay(int year,int month);int isleap(int year);void whatweek(int year,int month,int day);void display(int year ,int month);void display2(int year,int month);void display3(int year,int month,int day) ;void set

    5、Day1(int year,int month,int day);void setDay2(int year,int month,int day);void setDay3(int year,int month,int day);void jieri(int month,int day);void display1(int year);void getmenu();void main() /*主函数*/ int year,month,day,select; while(1) getmenu(); printf( 请输入相应数字:); /*菜单选择 */ scanf(%d,&select); s

    6、ystem(cls switch(select) case 1: /*当选择为1时显示年历*/ 年历显示:输入年(如2011):year); if(year0&year=1&month=12&dayday=maxDay(year,month) display3(year,month,day); 提示 按PageUp:前一天 按PageDown:后一天 按其他键: setDay3( year,month, day); case 4: exit(0); default: /*当输入其他数字时,输入无效,重新输入*/int isleap(int year) /*判断是否为闰年*/ if(year%4

    7、=0&year%100!=0|year%400=0) return 1; return 0;int maxDay(int year,int month) /*每月的天数*/ int a=31,28,31,30,31,30,31,31,30,31,30,31; /*每个月中的天数*/ if(isleap( year) a1=29; /*闰年2月份有29天*/ return amonth-1; int eachyeartotal(int year,int month,int day) /*判断某天是一年中的第几天*/ int i,sum=0; for(i=1;imonth;i+) sum+=max

    8、Day(year,i); sum+=day; return sum;int week(int year,int month,int day) /*对天数进行判断确定是星期几*/ int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400 +eachyeartotal(year,month,day); number=number%7 ; return number;void display(int year ,int month) /*输出年月*/ int max,number,i,j=1; max=maxDay(year,month); n

    9、umber=week(year,month,1); %4s %4s %4s %4s %4s %4s %4sn,SunMoTueWed, ThuFrisat for(i=0;number;i+) /*1号前的星期补空格*/ while(jtm_year) ; month1=(1+p-tm_mon) ; day1=(p-tm_mday); /*获取系统时间year1、month1、day1分别为年、月、日*/days0=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day); days1=(ye

    10、ar1-1)*365+(year1-1)/4-(year1-1)/100+(year1-1)/400+eachyeartotal(year1,month1,day1);days=days0-days1; /*计算出两个日期之间的时间差*/n 今天距%d年%d月%d日还有%d天nn,year,month,day,days); return days;void whatweek(int year,int month,int day) /*判断是星期几*/ int number;number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+eachyear

    11、total(year,month,day);number=number%7 ;switch( number) case 0: printf( n %d年%d月%d日是星期日,year,month,day);break;n %d年%d月%d日是星期一printf( n %d年%d月%d日是星期二n %d年%d月%d日是星期三n %d年%d月%d日是星期四 case 5:n %d年%d月%d日是星期五 case 6:n %d年%d月%d日是星期六printf( 出现错误! );void jieri(int month,int day) /*判断是否公历节日*/ if(month=1) switch

    12、(day),这天是元旦 if(month=2) case 14:,这天是情人节 if(month=3) case 8:,这天是妇女节 case 12:,这天是植树节 if(month=4) case 1:,这天是愚人节 if(month=5),这天是劳动节,这天是青年节 if(month=6),这天是儿童节 if(month=7) ,这天是建党节 if(month=8),这天是建军节 if(month=9) case 10:,这天是教师节 if(month=10),这天是国庆节void setDay1(int year,int month,int day) /*通过键盘“”“”控制年历的变换*

    13、/ char k; getch(); k=getch(); switch(k) case KEYNUMUp: /*“”年份减小*/ if(year2) 警告!超出范围! year-; setDay1(year,month,day); case KEYNUMDown: /*“”年份变大*/ year+;void setDay2(int year,int month,int day) /*通过键盘“”“”控制月历的变换*/ char k; switch(k) case KEYNUMLeft: /*“”月份变小*/ if(month11) month-=12;9999); month+; void

    14、setDay3(int year,int month,int day) /*通过键盘“PageUp”“PageDown”控制日期的变换*/ case KEYNUMPageUp: /*“PageUp”日期变小*/ if(daymaxDay(year,month) day=1;12)10000);void getmenu() /* 显示菜单选择*/ *主菜单* nn * 欢迎进入万年历系统 * nn * 1、年历显示 * nn * 2、月历查询 * nn * 3、日期查询 * nn * 4、退出系统 * nn * nn4调试分析打开软件,进入如下菜单界面,输入数字进行选择图4.1主界面4.1年历的显示(1)输入数字1进入年历的显示图4.2输入年历图(2)输入年份2013,显示2013年的年历如下图4.3该年年历显示(3)按键盘显示上一年(2012年)的年历,显示如下图4.4上一年年历显示(4)按键盘显示下一年(2014年)的年历,显示如下图4.5 下一年年历显示4.2月历的显示(1)在菜单中选择2,进入月历的显示,输入2013,8,显示2013年8月份月历.图4.6当月月历显示(2)按键盘显示上一个月(7月)的月历,显示效果如下图4.7上月月历显示(3)按键盘显示下个月(9月)


    注意事项

    本文(c语言课程设计万年历文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开