安徽工业大学软件工程实验报告_第1页
安徽工业大学软件工程实验报告_第2页
安徽工业大学软件工程实验报告_第3页
安徽工业大学软件工程实验报告_第4页
安徽工业大学软件工程实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽工业大学软件工程实

验报告Preparedon24November2020《软件工程》实验报告姓 名:江文杰学 号:3班 级:网133指导老师:周兵一.实验目的1.能按照软件工程的思想,采用面向过程的方法开发出一个小型软件系统。2.在软件系统开发过程中,能综合利用一门编程语言和软件工程等多门课程的知识。.培养良好的软件开发习惯,了解软件企业文化。.掌握结构化数据流分析技术。.掌握结构化程序设计的基本概念与技术,并且养成良好的编码风格。.掌握单元测试的一般步骤及技术。.掌握集成测试的一般步骤和技术。二.实验内容1.软件需求分析①、功能需求分析•输入一个年份(1-3000),然后显示12个月的月历•能解决闰年和平年问题•能输出显示结果②、运行需求分析操作系统:Windows9x,Windows2000,WindowsXP及更高版本年份^确定年份尸 rfI^年份1\年J是否闰年开始信、开始信息丿③、数据流图计算1月1日检查输结构图:更高版本年份^确定年份尸 rfI^年份1\年J是否闰年开始信、开始信息丿③、数据流图计算1月1日检查输结构图:Lt()错误显示1inputyear()显示12月!・显示表计与编码9Utpyt(EAtmonth()■#include<>#include<>#include<>#include<>#definefirstdayofl1/*定义第一年的第一天,星期日=7*/#definegap""/*setgapbetweennumbersofdates*/#definedent" "/*setrightmargin.*/structinfo{intmonth;intfirstdayofmonth;intdaysofmonth;intleap;}monthinfo;intcheckinput(void);intinputyear(void);intisleap(inty);voidoutput(structinfo);voidprinthead(structinfo);voidprintmonth(structinfo);structinfosetinit(int);structinfosetmonthinfo(structinfo);/*这个作用是判断年,如果是闰年,return1,否则显示2setinfo()显示其他月份return0*/intisleap(inty){return((y%4==0&&y%100!=0)||y%400==0);}/*Thismoduleistoacceptinputyear()andcheckifitiscorrect.ifitiscorrectitreturnintyear,otherwiseaskuserreenter*/intcheckinput(void){inty;do{y=inputyear();if(y<1||y>3000){printf("\n输入错误!。\n\n");y=0;}}while(y<1);returny;}/*Thisfunctionistoaccepttheinputyear,ifitistheinteger,itreturnsit,otherwiseitreturn-1*/intinputyear(void){chars[80];inti,y;y=-1;printf(“请输入年份(1-3000):");for(i=0;i<80;++i){s[i]=getchar();if(s[i]==27)exit(0);if(s[i]==10)break;}for(i=0;i<80;++i){if(s[i]==10)break;elseif(!isdigit(s[i]))returny;}y=atoi(s);returny;}/*Thismoduleistoacceptmonthinfo,andprintthewholeyearcalender.*/voidoutput(structinfomonthinfo){charch;do{printhead(monthinfo);printmonth(monthinfo);printf("按任意键显视下一月,按Esc键退出.\n");ch=getchar();if(ch==27)exit(0);monthinfo=setmonthinfo(monthinfo);}while<13);}/*Thismoduleistoacceptmonthinfo,amdprintmonthlyheadlike"—月"*/voidprinthead(structinfomonthinfo){char*ss;printf("%s",dent);switch{case1:ss="一月";break;case2:ss="二月";break;case3:ss="三月";break;case4:ss="四月";break;case5:ss="五月";break;case6:ss="六月";break;case7:ss="七月";break;case8:ss="八月";break;case9:ss="九月";break;case10:ss="十月";break;case11:ss="—月";break;case12:ss="十二月";}printf("%s%s%s%s\n\n",gap,gap,gap,ss);}/*Thismoduleistoacceptmonthinfo,andprintthenumbereddatesofthemonth.*/voidprintmonth(structinfomonthinfo){inti,j,k;printf("%s",dent);printf("—%s二%s2%sB%s五%$六%s日\n\n",gap,gap,gap,gap,gap,gap);printf("%s",dent);for(i=1;i<;i=i+1){printf("%s",gap);}k=;for(j=1;j<=;j=j+1){if(k>7){k=k-7;printf("\n\n%s",dent);};k=k+1;printf("%2d%s",j,gap);}printf("\n\n");}/*Thismoduleistoacceptthemonthinfo,andsetthemonthinfoofnextmonth.*/structinfosetmonthinfo(structinfomonthinfo){intm;=+\%7+1;=+1;=30;m=;if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)=31;if(m==2){if=29;else=28;}returnmonthinfo;}/*Thismoduleistoinitializethemonthinfo.*/structinfosetinit(intyear){inti,days,total;structinfomonthinfo;=1;=firstdayof1;for(i=1;i<year;i=i+1){if(isleap(i))days=366;elsedays=365;=+days-1)%7+1;}=31;=isleap(year);returnmonthinfo;

voidmain(){printf("voidmain(){printf("、丁、丁\n");printf(" \t\t欢迎使用万年历演示程序 \n");\n");printf("printf("、丁、丁\n");intyear;\n");structinfomonthinfo;year=checkinput();monthinfo=setinit(year);output(monthinfo);}3.单元测试白盒测试②.黑盒测试2015年三月四月五月六月2016年:三.总结和体会本次用C语言编写的万年历系统主要实现了年历、月历、日历的显示。我根本就不喜欢敲代码了,看见代码就头疼。所以感觉厌恶这门专业,对学习也不感兴趣了。而且,还有一件更头疼的事是在写一个简单的程序时竟然老是出错,难一点的,复杂一点的程序竟然无从下手。但是去看程序的参考答案时都看得懂,又感觉很容易。学了软件工程以后,我就感觉我以前的学习方法是错误的。以前我只注重于代码,而不注重理论知识以及编程的思路,程序的架构。以至于在些程序时没有写程序的思路,不能形成程序的架构。只想到看脑袋里是否有与此类似的代码。越想程序越乱,最后脑袋里一片空白。不知道程序从哪个方面下手了。软件工程这门课程是做软件开发的人必学的课程,通过学这门课程,程序员就会注重软件开发的理论知识,以及做项目开发的思路。学了这门课程后你写程序就不会去盲目的去套用代码,而是理清此程序的架构以及思路。程序该从什么时候开始,什么时候结束。在中间需要添加什么样的功能,以完善该软件。在设计初期,首先温习了课本内容,再次熟悉了一下C语言程序,然后广泛的查找有关万年历的资料,并结合查找到的资料,整理出设计的主要思路,画出流程图,最终写出了源程序,并编译成功,在实验中,碰到了不少问题,其中包括如何获取系统时间,如何计算任意时间的时间差,这些困难,都通过查阅资料和问同学得到了解决。当然,由于时间和能力的原因,做得还不是很完美。在这学期的课程序设计中,收获知识的同时,还收获了阅历,收获了成熟,通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手制作的能力,在各种其它能力上也都有了提高。更重要的是,在课程序设计里,我们学会了很多学习的方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。同时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论