d. 输入参数(修改)
e. 输入修改内容
f. 修改成功
g. 输入参数(删除)
h. 确认删除后
3. 最后测试一组大于一万年的日期:999999年
- 14 -
9月9日.测试功能:添加功能、全部删除功能。 a. 输入参数
b. 输入备忘
c. 添加成功
d. 输入参数(删除全部)
- 15 -
e. 确认删除后
至此,数据测试完毕。所有的测试结果均与实际符合得很好,验证了该程序的正确性。
5 总结
1 算法与程序总结
本程序定义了结构体类型,将年月日和备忘联系起来,在写入和读取的过程中均作为一个整体,并且在将写入的内容始终写在文件的末尾,而不是定义一一对应的备忘数组,节省了时间和空间。 由于课题要求使用命令行参数,所以,没有使用菜单来实现功能,而是使用命令选项来选择所需要执行的功能。而由于使用了命令行参数,因此该程序必须在DOS环境下运行(命令提示行)。 万年历部分,采用定基点求相差的天数取7的余来确定当月首日是星期几,从而得到所需要的
- 16 -
日历。
2 改进方案
我们
附录
以下为我们小组该课题的最终代码: /*-------------------------------我是分割-------------------------------*/ /*命令行功能选项*/
/*-d:显示当月日历和当日备忘*/ /*-i:显示当月日历和添加当日备忘*/ /*-m:显示当月日历和修改当日备忘*/ /*-g:删除当日备忘*/ /*-t:删除全部备忘*/
/*-------------------------------我是分割-------------------------------*/ /*头文件*/ #include
- 17 -
线线
#include
#include
/*定义全局变量(各月所含天数)*/ int a[]={0,31,0,31,30,31,30,31,31,30,31,30,31}; /*定义全局变量(已获取的备忘个数)*/ int count_memo; /*定义结构体*/ struct date_message {
int year; /*年*/ int month; /*月*/ int day; /*日*/ char memo[300]; /*备忘*/ }date={1,1,1,\
/*-------------------------------我是分割线-------------------------------*/ /*主函数*/
int main(int argc,char *argv[]) {
- 18 -
C语言课程设计--万年历



