《 软 件 工 程 》 实 验 报告姓 名 : 江 文 杰 学 号 : 139074333 班 级 : 网 133 指 导 老 师 : 周 兵一.实验目的1 .能根据软件工程的思想, 采纳面对过程的方法开发出一个小型软件系统。2 .在软件系统开发过程中, 能综合利用一门编程语言和软件工程等多门课程的知识。 3 .培育良好的软件开发习惯,了解软件企业文化. 4 .掌握结构化数据流分析技术。 5 .掌握结构化程序设计的基本概念与技术,并且养成良好的编码风格。 6 .掌握单元测试的一般步骤及技术。 7 .掌握集成测试的一般步骤和技术。二.实验内容1 .软件需求分析①、功能需求分析· 输入一个年份(1—3000 ),然后显示12个月的月历· 能解决闰年和平年问题· 能输出显示结果②、运行需求分析· 操作系统: Windows9x, Windows2000, Windows XP 及更高版本③、数据流图软件结构图:mainmain检查输入检查输入确定年份确定年份计算 1 月 1 日计算 1 月 1 日显示 1 月显示 1 月显示 2 月显示 2 月显示 12 月显示 12 月显示表头显示表头显示其他月份显示其他月份错误错误非法年份年份年份年份是否闰年开始信息开始信息任意键2 .软件设计与编码#include 〈stdio。h 〉#include 〈ctype。h 〉#include #include #define firstdayof1 1 / * 定义第一年的第一天, 星期日=7 */#define gap " " /* set gap between numbers of dates */#define dent ” " /* set right margin 。 */struct info { int month; int firstdayofmonth ; int daysofmonth; int leap; }monthinfo;int checkinput (void );int inputyear(void);int isleap (int y);void output (struct info);void printhead (struct info );void printmonth(struct info);struct info setinit (int);struct info setmonthinfo (struct info );/ * 这个作用是推断年, 假如是闰年, return 1, 否则 return 0 */int isleap(int y ){ return ((y %4==0 && y %100 !=0) || y%400==0);}/ * This module is to accept inputyear () and check if it is correct. if it is correct it return int year, otherwise ask user reenter */checkinput()checkinput()ou...