课程设计报告实用工具的设计与使用.doc
课程设计报告课程名称: c语言设计题目: 实用工具的设计与使用 目录一、 需求分析.二、 概要设计.三、 详细设计.四、 调试分析.五、 用户手册.六、 测试数据.七、 附录一、 需求分析1 对于本程序来说,复杂度不是很高,主要是用到结构体和各个子函数。2 首先从键盘中输入任一的日期和时间,要执行改程序,必须让程序先判断输入日期中年份是否为平闰年的判断。3 其次要判断小时是否与12的大小比较。4 对于输入的任一日子要判断其为星期几,我主要是设计了用switch语句来判断,这样可以简洁明了,让读程序的人能够很容易的读懂。二、 概要分析1判断年份是否为平闰年的代码:#include <stdio.h>void main()int n;printf("input the data:");scanf("%d",&n);if(n%4=0&&n%100!=0)|(n%400=0)printf("%d is a leap year!n",n);else printf("%d is not a leap year!n",n);2.十二小时至于二十四小时制的转换的代码:#include<stdio.h>void main() int h;char c; printf(“input the hour:”);scanf(“%d”,&h);if(h<0|h>23) printf("error");exit (0); else if(h>12) h-=12; c='p' else c='a' printf(“%d %c”,h,c);3、判断某一天是星期几的代码:if(y%4=0&&y%100!=0)|y%400=0) printf("%d is a leap yearn",y); flag=1;elseprintf("%d is not a leap yearn",y);flag=0;if(flag=1) switch(m) case 1:sum=d;break; case 2:sum=31+d;break; case 3:sum=60+d;break; case 4:sum=91+d;break; case 5:sum=121+d;break; case 6:sum=152+d;break; case 7:sum=182+d;break; case 8:sum=213+d;break; case 9:sum=244+d;break; case 10:sum=274+d;break; case 11:sum=305+d;break; case 12:sum=335+d;break; else switch(m) case 1:sum=d;break; case 2:sum=31+d; break; case 3:sum=59+d; break; case 4:sum=90+d; break; case 5:sum=120+d; break; case 6:sum=151+d; break; case 7:sum=181+d; break; case 8:sum=212+d; break; case 9:sum=243+d; break; case 10:sum=273+d;break; case 11:sum=304+d;break; case 12:sum=334+d;break; switch(sum)%7) case 1:printf ("Sunday");break; case 2:printf ("Tuesday");break; case 3:printf (" Wednesday");break; case 4:printf ("Thursday");break; case 5:printf ("Friday");break; case 6:printf ("Saturday");break; case 7:printf ("Sunday");三、 详细分析#include<stdio.h>void main() int y,m,d,sum; int h,f,s,flag; char c; printf("input year month day hour moment second:"); scanf("%d %d %d %d %d %d",&y,&m,&d,&h,&f,&s);if(m>12|m<1) printf("error,input again!");exit (0); if(h<0|h>23) printf("error");exit (0); else if(h>12) h-=12; c='p' else c='a' if(y%4=0&&y%100!=0)|y%400=0) printf("%d is a leap yearn",y); flag=1;elseprintf("%d is not a leap yearn",y);flag=0;if(flag=1) switch(m) case 1:sum=d;break; case 2:sum=31+d;break; case 3:sum=60+d;break; case 4:sum=91+d;break; case 5:sum=121+d;break; case 6:sum=152+d;break; case 7:sum=182+d;break; case 8:sum=213+d;break; case 9:sum=244+d;break; case 10:sum=274+d;break; case 11:sum=305+d;break; case 12:sum=335+d;break; else switch(m) case 1:sum=d;break; case 2:sum=31+d; break; case 3:sum=59+d; break; case 4:sum=90+d; break; case 5:sum=120+d; break; case 6:sum=151+d; break; case 7:sum=181+d; break; case 8:sum=212+d; break; case 9:sum=243+d; break; case 10:sum=273+d;break; case 11:sum=304+d;break; case 12:sum=334+d;break; switch(sum)%7) case 1:printf ("Sunday");break; case 2:printf ("Tuesday");break; case 3:printf (" Wednesday");break; case 4:printf ("Thursday");break; case 5:printf ("Friday");break; case 6:printf ("Saturday");break; case 7:printf ("Sunday");printf("%d,%d,%d,%d,%d,%d,%cn",d,m,y,h,f,s,c);四、 调试分析1.原因是没有加入判断是否为闰年的条件,解决的方法是加入了一个if(flag=1).2.当输入的月份,日期,时,分,秒超过12,31,24,60,60时,程序可以运行,但是并没有报错,解决的方法是在程序中加入了,3.因为p是字符 要在p上加单引号。五、 用户手册首先根据程序的提示输入年月份时分秒,然后程序就会显示你所输入的日期,之后屏幕会显示该年份是不是闰年,这一天在该年中是第几天,星期几,时间会显示是上午还是下午,如果是上午时间会在时间后面显示am说明是中午,如果是下午会在时间后面显示pm来说明是下午。六、 测试数据七、 附录1.#include <stdio.h> void pi (int a,int b,int c); void main (void) int a,b,c; printf ("input: "); scanf ("%d%d%d",&a,&b,&c); pi (a,b,c); void pi (int a,int b,int c) int max,t; if (a<b) t=a; a=b; b=t; if (a<c) t=a; a=c; c=t; if (b<c) t=b; b=c; c=t; printf ("%d %d %d",a,b,c); 2. include<stdio.h>void main() struct student long int num; char name20; char sex; char addr20; a=10101,"li lin",'M',"123beijing road" printf("No.:%ldnname:%snsex:%dnaddress:%sn",a.num,a.name,a.sex,a.addr); 3#include<stdio.h>void main() int i,j,min,temp,a11; printf("enter data:n"); for(i=1;i<=10;i+) printf("a%d=",i); scanf("%d",&ai); printf("n"); printf("the original number:n"); for(i=1;i<=10;i+) printf("%5d",ai); printf("n"); for(i=1;i<=9;i+) min=i; for(j=i+1;j<=10;j+) if(amin>aj) min=j; temp=ai; ai=amin; amin=temp; printf("nthe sorted numbers:n"); for(i=1;i<=10;i+) printf("%5d",ai); printf("n");