1、软件工程实验报告 姓名: 学号: 班级: 指导老师第三章 实验报告(Reports)实验题目:实验目的通过实例使同学们掌握结构化数据流分析技术,结构化程序设计的基本概念与技术,并且养成良好的编码风格,单元测试的一般步骤及技术,集成测试的一般步骤和技术等软件设计的相关技术。一 实验内容1 软件需求分析数据流程图 初始化年份输入年份是否在03000间间输入月份是否在012间对比初始化年份方案一算法法方案二算法 总流程算法一y%4=0&y%100!=0|y%400=0是否闰年t1=28t1=29days=(year-2006)*365+count_leap(year)+monthdays(month
2、,year)weekday=days%7 算法一算法一y%4=0&y%100!=0|y%400=0是否闰年t1=28t1=29days=(2005-year)*365+count_leap(year)+monthdays(month,year)weekday=7-days%7 算法二2 软件设计与编码#include stdio.h#include conio.hvoid main() int leap_year(int y); int count_leap(long year); int monthdays(int month,long year); void monthprint(long
3、 year,int month); int month=0; long year=0; char choose; clrscr(); /* clear the windows */ do printf (nnPlease input one integer number as year(03000):n); scanf (%ld,&year); if (year3000) printf (WANNING:ERROR,please input again!); while (year3000); printf (nn); do printf (please input the month(112
4、)nn); scanf (%d,&month); if (month12) printf (WANNING:ERROR,please input again!); while (month12); printf (nnn); printf(tttt%ldt%dnn,year,month); printf(n*n); printf(tt Sunt Mont Tuet Went Thut Frit Satn); monthprint(year,month); printf(nn); choose=getchar(); printf(Continue?(y/n):nn); scanf(%c,&cho
5、ose); if (choose=y|choose=Y) main(); /*main函数调用main函数本身*/int leap_year(int y) int i; if (y%4=0&y%100!=0|y%400=0) i=1; else i=0; return i;int count_leap(long year) int i=0,j,min,max; if(year2006) min=2006;max=year; else min=year+1;max=2006; for(j=min;j=2006) static int t12=31,0,31,30,31,30,31,31,30,3
6、1,30,31;/*112月的每月天数*/ j=month-1; if(leap_year(year) t1=29; else t1=28; for(i=0;ij;i+) sum=sum+ti; else static int t112=31,30,31,30,31,31,30,31,30,31,0,31; /*121月的每月天数*/ j=12-month; if(leap_year(year) t110=29; else t110=28; for(i=0;i2006) days=(year-2006)*365+count_leap(year)+monthdays(month,year); w
7、eekday=days%7; else if(year2006) days=(2005-year)*365+count_leap(year)+monthdays(month,year); weekday=7-days%7; else days=monthdays(month,year);weekday=days%7;for (i=1;i=weekday+2;i+) /*由于上一行打印星期的时候空2个制表位,所以weekday要加2*/ printf (t);for (i=1;i=y;i+) if (i+weekday-1)%7=0) printf (nntt%3dt,i); else printf (%3dt,i);printf (n*nn);二测试结果三 总结通过本次实验,我充分认识到了制作一个能够运行的软件和制作一个好的软件之间的差距,做一个好的软件不仅要求软件能够工作,而且软件从开始制作到最终完成都要经过严格的审核,不断的修改,从而使做出的软件界面更和谐,更易于操作,功能更强大等等。 在本次实验中,我也犯了这样那样的错误,但是通过与其他同学的讨论交流,我也将这些错误一一改正了过来,这使我认识到软件制作过程中交流的重要性。总之,本次实验我的收获很大,最重要的是对软件工程这门课程有了一个更深入的认识。 7