c语言课程设计…………日期工具

上传人:第*** 文档编号:34039680 上传时间:2018-02-20 格式:DOC 页数:14 大小:115KB
返回 下载 相关 举报
c语言课程设计…………日期工具_第1页
第1页 / 共14页
c语言课程设计…………日期工具_第2页
第2页 / 共14页
c语言课程设计…………日期工具_第3页
第3页 / 共14页
c语言课程设计…………日期工具_第4页
第4页 / 共14页
c语言课程设计…………日期工具_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c语言课程设计…………日期工具》由会员分享,可在线阅读,更多相关《c语言课程设计…………日期工具(14页珍藏版)》请在金锄头文库上搜索。

1、南昌航空大学课 程 设 计课程名称: C 语言 设计课题: 日期工具 专业: 班级: 姓名: 虞乐文 学号: 评分: 指导老师(签字): 20 年 月 日如有不懂地方加 QQ1214975119目录:1.要求分析.2.概要设计.3.详细设计.4.调试分析.5.用户使用说明.6.测试结果.7.源程序.1.要求分析:日期工具(难度系数:A)要求实现以下功能:创建日期日期差计算判断某个日期为星期几按格式输出日期(1)系统变量(基本)Struct dateInt year,Int month,Int day,Int hour,Int minute,Int second(2) 待实现的方法(基本)方法名

2、称 方法声明 方法作用初始化 Create() 初始化系统相关变量输入日期Date inpur 输入日期的年月日,返回该日期结构体计算日期差Int datediff(date date1,date date2,int unit)返回两个日期之间 unit 所表示的时间差,unit 表示单位,0年,1月,2日,3时,4分,5秒比较日期大小Int compare(date date1,date date2)判断两个日期大小,如果 date1 较新则返回 1,相等则返回 0,date2 较新则返回-1获取星期几Int get_weekday(date date)返回 date 当前星期几,0星期天,

3、1星期一,2星期二,按格式输出日期Char*format(date date,char*format)返回按 format 格式化输出的 date日期。如格式 format 为“yyyy_mm_d”当前日期输出为 20110829,格式规定如下:y_年,m_月,d_日,h_时,m_分,s_秒打印 Void print() 按默认格式打印当前时间记录操作日志Void info(char*filename)将每次用户的操作信息写到日志文件 filename 中屏幕显示(主菜单)2.概要设计:a.数据类型:int,FILE。b.标准函数名称和自定义函数名称:scanf 函数printf 函数gett

4、ime 函数int get_weekday(struct dat);int datdiff(struct dat);int compare(struct dat,struct dat);int runnian(int x);3.详细设计:主函数开始程序主函数结束打印当前时间函数创建文件输入日期输出日期获取星期几函数计算日期差函数比较日期大小函数记录操作日志4.调试分析:a.遇到的问题:switch 语句中漏了 break,子函数中漏了右括号,自定义的结构体 struct date 与时间函数的 date 同名导致冲突创建文件时指针 fp 写错b.解决方案:对应地方加上 break 和括号把自定

5、义的结构体名称改为 struct dat统一并修改文件指针 fpc.经验与体会:要熟练地掌握 c 语言开发环境,明确函数与函数间的调用写代码时尽量认真避免出现小错误学习独立完成程序的编写过程,在修改和整理中了解 c 语言中常常出现的错误,并找到其改正方法只有多写代码才可以让自己真正学好 c 语言5.用户使用说明:a.编译完了之后,首先屏幕上会显示当前时间,并提示用户请输入一个日期包括年月日时分秒b.输入六个数据后它会以规定格式输出刚才所输入的日期,并显示刚才输入日期为星期几,同时提示用户输入两个日期,即十二个数据。c.屏幕上会显示这两个日期的差,同时提示用户再一次输入两个日期,即十二个数据。d

6、.运行后屏幕上会显示两个日期的比较结果e.之后,文件进行保存,可以显示刚才的操作。6.测试结果:7.源程序:#include#include#include#includestruct datint year;int month;int day;int hour;int minute;int second;int get_weekday(struct dat);int datdiff(struct dat);int compare(struct dat,struct dat);int runnian(int x);void main()int y;int p,q,o,m,n,l;int z;s

7、truct dat a;struct dat dat1;struct dat dat2;struct dat dat3;struct dat dat4;struct time dt,dt2;FILE *fp;if(fp=fopen(yulewen.txt,a+)=NULL)printf(cannot open file sum! strike any key exit);getch();exit(1);gettime(printf(current time is %d %d %dn,dt.ti_hour,dt.ti_min,dt.ti_sec);printf(please input six

8、numbers!n); scanf(%d%d%d%d%d%d, printf(the date you input isn);fprintf(fp,the date you input isn);printf(%dnian,%dyue,%dri,%ddian,%dfen,%dmiaon,a.year,a.month,a.day,a.hour,a.minute,a.second);fprintf(fp,%d,%d,%d,%d,%d,%dn,a.year,a.month,a.day,a.hour,a.minute,a.second);y=get_weekday(a);printf(the date

9、 is xingqi %dn,y);printf(please input twelve numbers!to caculate their distance!n);scanf(%d%d%d%d%d%d,%d%d%d%d%d%d,&dat1.year,&dat1.month,&dat1.day,&dat1.hour,&dat1.minute,&dat1.second,&dat2.year,&dat2.month,&dat2.day,&dat2.hour,fprintf(fp,please input twelve numbers!to caculate their distance!n);fp

10、rintf(fp,%d,%d,%d,%d,%d,%dn%d,%d,%d,%d,%d,%dn,dat1.year,dat1.month,dat1.day,dat1.hour,dat1.minute,dat1.second,dat2.year,dat2.month,dat2.day,dat2.hour,dat2.minute,dat2. second);p=datdiff(dat1);q=datdiff(dat2); o=fabs(p-q);m=fabs(dat1.hour-dat2.hour);n=fabs(dat1.minute-dat2.minute);l=fabs(dat1.second-

11、dat2.second);printf(the distance is %d tian,%dxiaoshi,%dfenzhong,%dmiaon,o,m,n,l);printf(please input twelve numbers again!in order to compare which is big!n);scanf(%d%d%d%d%d%d,%d%d%d%d%d%d,&dat3.year,&dat3.month,&dat3.day,&dat3.hour,&dat3.minute,&dat3.second,&dat4.year,&dat4.month,&dat4.day,&dat4.

12、hour,fprintf(fp,please input twelve numbers again!in order to compare which is big!n);fprintf(fp,%d,%d,%d,%d,%d,%dn%d,%d,%d,%d,%d,%dn,dat3.year,dat3.month,dat3.day,dat3.hour,dat3.minute,dat3.second,dat4.year,dat4.month, dat4.day,dat4.hour,dat4.minute,dat4.second);z=compare(dat3,dat4);if(z0)printf(qi

13、an zhe da yu hou zhe!n);else if(zdat4.year)return 1;else if(dat3.yeardat4.month)return 1;else if(dat3.monthdat4.day)return 1;else if(dat3.daydat4.hour)return 1;else if(dat3.hourdat4.minute)return 1;else if(dat3.minutedat4.second)return 1;else if(dat3.seconddat4.second)return -1;elsereturn 0;int runnian(int x)if(x%4=0&x%100!=0)|(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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