C语言课程设计--万年历
C 语 言
课 程 设 计 报 告
2011年 6月 15 日
设计题目:
学生姓名: 学生学号: 专业班级: 学院名称: 同组人姓名: 指导老师:
万年历
叶磊 20101010125 数学与应用数学一班 数学与计量经济学院
胡凡 姚 兰
1 需求分析
1.1 问题描述
我们需要实现万年历的功能,那么如何实现这个功能呢?我们都很清楚,普通年份和闰年是有区别的,那么该怎么区分这种一天的差别对于万年历日期现实的影响呢?而且已知一个日期,那么我们怎么能够知道它是星期几?是不是需要一个参照物来比较呢?而且还有很多关于万年历的美化问题,占位符的考虑等等。另外我们还必须判断输入的万年历是否合法,这也需要一个子函数来实现。好吧,至于基础的判断闰年也是不在话下了。
1.2 输入数据要求
我们要考虑三种情况,这三种情况下是不能够实现这个万年历的功能的:
/*如果给定的日期中年份部分为非正数*/ if(date.year<=0)
printf(\年份不符合要求!\\n\ printf(\请重新输入 )
- 1 -
/*如果给定的日期中月份部分为负数,为0或者大于12*/
if(date.month>12||date.month<1) printf(\月份不符合要求!\\n\ printf(\请重新输入\ getchar(); exit(0);
/*如果给定的日期中天数部分为非正数,或者大于31*/
a[2]=28+leap(date.year);
if(date.day>a[date.month]||date.day<1) printf(\日期不符合要求!\\n\ printf(\请重新输入\ getchar(); exit(0);
1.3 输出数据要求
根据输入数据,输出数据必须严格的
按照占位符进行逻辑的策划,然后得知一行万年历的日期的占位符是38个占位符,于是空格占位符和字符显示出来的那些占位符就需要有一个限定使得其不凌乱特别应该注意
- 2 -
空格符的占位。
1.4 开发环境和工具
开发环境:WINDOWS 7 开发工具:Dev-C++ 4.9.9.2
1.5 成员分工
叶磊:主调模块、万年历功能实现、数据测试、注释编写
胡凡:总体设计、主调模块、备忘录功能实现、注释编写
2 总体设计
2.1总体设计思路
1. 设计思路
考虑到日期与备忘的一一对应,采用结构体来解决该题成为一个可行的思路。首先,定义结构体类型,使得年月日与备忘直接绑定在一起。通过程序中这一临时存放数据的变量,使用文件的读写功能向文件中写入文件以及读出信息以暂时使用。
针对日历的输出,首要考虑的是当月1日的
- 3 -