万年历程序设计报告

上传人:人*** 文档编号:504858936 上传时间:2023-10-19 格式:DOC 页数:11 大小:126.50KB
返回 下载 相关 举报
万年历程序设计报告_第1页
第1页 / 共11页
万年历程序设计报告_第2页
第2页 / 共11页
万年历程序设计报告_第3页
第3页 / 共11页
万年历程序设计报告_第4页
第4页 / 共11页
万年历程序设计报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《万年历程序设计报告》由会员分享,可在线阅读,更多相关《万年历程序设计报告(11页珍藏版)》请在金锄头文库上搜索。

1、-电机学院课 程 设 计20142015学年第一学期课程名称 程序设计 设计题目 万年历 院(系) 高职学院 专业 计算机应用技术 班级 计算机1401 * 36 学生 茅晔豪 设计时间 2015.1.12 指导教师 唐政 提交日期 2015.1.15 目 录1. 选题的意义22. 总体设计22.1 系统分析22.2 系统概述22.3 系统的构成22.4 各模块的功能23. 系统的流程图34. 功能测试4-105. 课程设计小结11参考文献11附录:源代码清单12-15课程设计评语及成绩评定记录16. z.-1. 选题的意义(1) 通过万年历的设计,使我们掌握软件开发过程的问题分析、系统设计、

2、程序编写、测试等基本方法。 (2)通过万年历的设计,熟练掌握C+中的分支、循环、数组、函数、文件操作等应用。2. 总体设计2.1系统分析2.2系统概述:该程序可以实现系统当前日期所在月份的日历显示功能,日期查询功能,程序的初始日期设定功能,还有把给定年份的万年历输出到t*t文档中的功能。2.3 系统的构成:1日历查询功能 2日期查询、闰年判断功能。3支持通过键盘的操作调整年份、月份、和日期。并显示调整后的日期。4 输入任意年份,将该年份每月的日历输入文件。2.4各模块的功能及分析1、定义全局变量及数组。2、程序共由十一个函数组成,其功能分别为:a.showtime()显示系统日期所在月份的日历

3、。b.refer()查询日期并显示所在年份是否为闰年。c.setdate()设定系统的初始日期。d.print()打印指定年份的每月日历并写入文件。 e.nowday()提取系统所在日。 f.nowmoth()提取系统所在月。g.nowyear()提取系统所在年。h.isleap()判断给定年份是否为闰年。i.isweek()判断给定日期是星期几,周六到周日分别为0到6。j.errortest()判断输入的日期是否合法并给出提示。k.main()主函数,程序开始运行并跳转到showtime()函数。3系统的运行流程图4. 功能测试4.1 本系统的主界面1. 万年历系统。本系统的主要功能有:1.

4、 输入年月日计算星期几。2. 打印任意日历。4. 任意年份,判断是否为闰年。3. 退出系统,使用!2. 用户可根据系统提示和用户需要输入14的操作数字。(程序主界面)3.当用户输入的选项不符合要求时,系统将验证并重新选择(输入报错界面)4.2 输入1.输入选项1进入“输入年月日计算星期几。”功能,此功能下可以输入日期。2.输入日期为:2015-1-143.此处如果输入日期不符合要求的话,系统将报错并提示错误并重新选择。4.3 打印任意日历1. 输入选项2进入“打印任意日历”功能,此功能下可以打印日历(输入日期界面)2. 输入日期:2015-1-143. 打印成功,并返回。4.4 判断是否为闰年

5、1. 输入选项3进入“任意年份,判断是否为闰年功能”功能。2. 输入年份:20153. 输出判断并返回。4.5 使用完毕,退出系统1. 输入选项2进入“退出系统”功能。2.使用任意键退出系统 5设计小结本次我课程设计的题目是万年历系统。根据课程设计的要求,需要我用本学期所学的C+面向过程的知识来编写程序。利用面向过程的方法以及C+的编程思想来完成系统,以及参考了网上的一些C语言程序。在设计的过程中,我参考了大量的书籍资料、和网上的资料,我们的指导老师也一直都在鼓舞和帮助我,最后我终于通过努力完成此次得课程设计。通过这次的课程能够设计学习,让我对C+语言的编程有了更深层的认识和理解。我主要负责打

6、印任意日历的部分,一开始还很没有头绪,但经过思考和查找资料后,我很好的完成了我的任务。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!参 考 文

7、 献1 龙澍C+程序设计实训 清华大学,2003年2 伍俊良VISUAL C+课程设计与系统开发案例,清华大学2003年3乌尼尔 Visual C+经典例程分析中国电力,2000年4 曜VISUAL C+程序开发案例解析清华大学,1999年5 宋晓宇、王永会VISUAL C+高级编程技术与实例中国水利水电,2003年附录:源代码清单*include *include *include *include int leap (int year); /判断是否为闰年int days_month (int month,int year); /判断这个月的天数int firstday(int month

8、,int year);/显示本月第一天是星期几int menu_select(); void f() int day,month,year,sum,leap,S; printf(n *请输入年 月 日*n); scanf(%d%d%d,&year,&month,&day); switch(month) case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break;

9、 case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(data error);break; sum=sum+day; if(year%400=0|(year%4=0&year%100!=0) leap=1; else leap=0; if(leap=1&month2) sum+; S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;/*表

10、示年份,C是该年份元旦开始到这一日的天数/S/7的系数就是星期数/01printf(%d,S); switch(S) case 1:printf(星期一n);break; case 2:printf(星期二n);break; case 3:printf(星期三n);break; case 4:printf(星期四n);break; case 5:printf(星期五n);break; case 6:printf(星期六n);break; case 0:printf(星期日n);break; void g() int i,j=1,k=1,a,b,month,year; printf(n 输入年月

11、:n); scanf(%d%d,&year,&month); b=days_month(month,year); a=firstday (month,year); printf(*n); printf( Sun Mon Tue Wed Thu Fri Sat n); if(a=7) for(i=1;i=b;i+) printf(%4d,i); if(i%7=0) printf(n); if(a!=7) while (j=4*a) printf( ); j+; for(i=1;i=b;i+) printf(%4d,i); if(i=7*k-a) printf(n); k+; printf(n*n

12、); printf(n); int leap (int year) if(year%4=0&year%100!=0|year%400=0) return 1; else return 0; int days_month (int month,int year) if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) return 31; if(month=4|month=6|month=9|month=11) return 30; if(month=2&leap(year)=1) return 29; else return 28; int firstday(int month,int year) int w; w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1; return w; int h() int year; bool leap; coutyear; if(year%4=0) if(year%100=0) if(year%400=0) leap=true; else leap=false;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号