ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:107.32KB ,
资源ID:7476193      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7476193.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(语言课程设计日期工具.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

语言课程设计日期工具.docx

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

2、ate()初始化系统相关变量输入日期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星期天,1星期一,2星期二,按格式输出日期Char*format(d

3、ate 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函数gettime函数int get_weekday(struct dat);int da

4、tdiff(struct dat);int compare(struct dat,struct dat);int runnian(int x);3.详细设计:4.调试分析:a.遇到的问题:switch语句中漏了break,子函数中漏了右括号,自定义的结构体struct date与时间函数的date同名导致冲突创建文件时指针fp写错b.解决方案: 对应地方加上break和括号 把自定义的结构体名称改为struct dat 统一并修改文件指针fpc.经验与体会: 要熟练地掌握c语言开发环境,明确函数与函数间的调用 写代码时尽量认真避免出现小错误学习独立完成程序的编写过程,在修改和整理中了解c语言中

5、常常出现的错误,并找到其改正方法只有多写代码才可以让自己真正学好c语言5.用户使用说明:a.编译完了之后,首先屏幕上会显示当前时间,并提示用户请输入一个日期包括年月日时分秒b.输入六个数据后它会以规定格式输出刚才所输入的日期,并显示刚才输入日期为星期几,同时提示用户输入两个日期,即十二个数据。c.屏幕上会显示这两个日期的差,同时提示用户再一次输入两个日期,即十二个数据。d.运行后屏幕上会显示两个日期的比较结果e.之后,文件进行保存,可以显示刚才的操作。6.测试结果:7.源程序:#include#include#include#includestruct dat int year; int mo

6、nth; 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;struct dat a; struct dat dat1; struct dat dat2; struct dat dat3; struct dat dat4; struct time dt,dt2; FIL

7、E *fp; if(fp=fopen(yulewen.txt,a+)=NULL)printf(cannot open file sum! strike any key exit);getch();exit(1);gettime(&dt);printf(current time is %d %d %dn,dt.ti_hour,dt.ti_min,dt.ti_sec);printf(please input six numbers!n); scanf(%d%d%d%d%d%d,&a.year,&a.month,&a.day,&a.hour,&a.minute,&a.second); printf(

8、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 is xingqi %dn,y); printf(please input

9、 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,&dat2.min ute,& dat2.second); fprintf(fp,please input twelve numbers!to caculate their distance!n); fprint

10、f(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.secon

11、d-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,

12、&dat4.hour,&dat4.min ute,&dat4.second); 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)

13、; z=compare(dat3,dat4); if(z0) printf(qian zhe da yu hou zhe!n); else if(z0) printf(qian zhe xiao yu hou zhe!n); else printf(liang zhe xiang tong!);fclose(fp);int get_weekday(struct dat a) int A,B,D,E,F,G,i; int C=0,s=0; if(a.year=2000) switch(a.month) case 1:s=s+a.day-1;break; case 2:s=s+30+a.day;b

14、reak; case 3:s=s+30+29+a.day;break; case 4:s=s+30+29+31+a.day;break; case 5:s=s+30+29+31+30+a.day;break; case 6:s=s+30+29+31+30+31+a.day;break; case 7:s=s+30+29+31+30+31+30+a.day;break; case 8:s=s+30+29+31+30+31+30+31+a.day;break; case 9:s=s+30+29+31+30+31+30+31+31+a.day;break; case 10:s=s+30+29+31+

15、30+31+30+31+31+30+a.day;break; case 11:s=s+30+29+31+30+31+30+31+31+30+31+a.day;break; case 12:s=s+30+29+31+30+31+30+31+31+30+31+30+a.day;break; A=s%7; switch(A) case 0:B=6;break; case 1:B=7;break; case 2:B=1;break; case 3:B=2;break; case 4:B=3;break; case 5:B=4;break; case 6:B=5;break; return B; els

16、e for(i=2000;ia.year;i+) if(runnian(i)=1) C=C+366; else C=C+365; D=C%7; switch(D) case 0:E=6;break; case 1:E=7;break; case 2:E=1;break; case 3:E=2;break; case 4:E=3;break; case 5:E=4;break; case 6:E=5;break; if(runnian(a.year)=1) switch(a.month) case 1:F=a.day-1;break; case 2:F=30+a.day;break; case

17、3:F=30+29+a.day;break; case 4:F=30+29+31+a.day;break; case 5:F=30+29+31+30+a.day;break; case 6:F=30+29+31+30+31+a.day;break; case 7:F=30+29+31+30+31+30+a.day;break; case 8:F=30+29+31+30+31+30+31+a.day;break; case 9:F=30+29+31+30+31+30+31+31+a.day;break; case 10:F=30+29+31+30+31+30+31+31+30+a.day;bre

18、ak; case 11:F=30+29+31+30+31+30+31+31+30+31+a.day;break; case 12:F=30+29+31+30+31+30+31+31+30+31+30+a.day;break; G=F%7; switch(G) case 0:return E; case 1:if(E+G=7) return 7; else return (E+G)%7); case 2:if(E+G=7) return 7; else return (E+G)%7); case 3:if(E+G=7) return 7; else return (E+G)%7); case 4

19、:if(E+G=7) return 7; else return (E+G)%7); case 5:if(E+G=7) return 7; else return (E+G)%7); case 6:if(E+G=7) return 7; else return (E+G)%7); else switch(a.month) case 1:F=a.day-1;break; case 2:F=30+a.day;break; case 3:F=30+28+a.day;break; case 4:F=30+28+31+a.day;break; case 5:F=30+28+31+30+a.day;bre

20、ak; case 6:F=30+28+31+30+31+a.day;break; case 7:F=30+28+31+30+31+30+a.day;break; case 8:F=30+28+31+30+31+30+31+a.day;break; case 9:F=30+28+31+30+31+30+31+31+a.day;break; case 10:F=30+28+31+30+31+30+31+31+30+a.day;break; case 11:F=30+28+31+30+31+30+31+31+30+31+a.day;break; case 12:F=30+28+31+30+31+30

21、+31+31+30+31+30+a.day;break; G=F%7; switch(G) case 0:return E; case 1:if(E+G=7) return 7; else return (E+G)%7); case 2:if(E+G=7) return 7; else return (E+G)%7); case 3:if(E+G=7) return 7; else return (E+G)%7); case 4:if(E+G=7) return 7; else return (E+G)%7); case 5:if(E+G=7) return 7; else return (E

22、+G)%7); case 6:if(E+G=7) return 7; else return (E+G)%7); int datdiff(struct dat a) int i; int c=0; for(i=0;idat4.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; else return 0;int runnian(int x) if(x%4=0&x%100!=0)|(x%100=0&x%400=0) return 1; else return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1