收藏 分销(赏)

安徽工业大学软件工程实验报告.doc

上传人:人****来 文档编号:4033896 上传时间:2024-07-25 格式:DOC 页数:8 大小:43.54KB
下载 相关 举报
安徽工业大学软件工程实验报告.doc_第1页
第1页 / 共8页
安徽工业大学软件工程实验报告.doc_第2页
第2页 / 共8页
安徽工业大学软件工程实验报告.doc_第3页
第3页 / 共8页
安徽工业大学软件工程实验报告.doc_第4页
第4页 / 共8页
安徽工业大学软件工程实验报告.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、软件工程实验报告姓 名:江文杰 学 号:139074333 班 级:网133 指导老师:周兵一 实验目的1能按照软件工程的思想,采用面向过程的方法开发出一个小型软件系统。2在软件系统开发过程中,能综合利用一门编程语言和软件工程等多门课程的知识。 3培养良好的软件开发习惯,了解软件企业文化. 4掌握结构化数据流分析技术。 5掌握结构化程序设计的基本概念与技术,并且养成良好的编码风格。 6掌握单元测试的一般步骤及技术。 7掌握集成测试的一般步骤和技术。二 实验内容1 软件需求分析、功能需求分析输入一个年份(13000),然后显示12个月的月历能解决闰年和平年问题能输出显示结果、运行需求分析 操作系

2、统: Windows9x, Windows2000, Windows XP及更高版本、数据流图是否闰年确定年份开始信息开始信息年份显示其他月份显示12月错误显示表头计算1月1日检查输入年份任意键年份年份非法显示2月显示1月软件结构图:mainsetinit()output()inputyear()checkinput()setinfo()printmonth()printhead()isleap ()2 软件设计与编码include stdio。hinclude ctype。h#include #include define firstdayof1 1 / 定义第一年的第一天, 星期日=7 /

3、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

4、 info);struct info setinit(int);struct info setmonthinfo(struct info );/ 这个作用是判断年, 如果是闰年, return 1, 否则 return 0 */int isleap(int y) return (y4=0 y100!=0) | y400=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 */int

5、 checkinput(void) int y; do y=inputyear(); if(y1 y 3000) printf(”n输入错误!。nn”); y=0; while(y1); return y; / This function is to accept the input year, if it is the integer, it returns it, otherwise it return 1 /int inputyear(void) char s80; int i, y; y=1; printf(”请输入年份(13000):”); for(i=0;i80;+i) si=ge

6、tchar(); if(si=27) exit(0); if(si=10) break; for(i=0;i80;+i) if(si=10) break; else if(!isdigit(si) return y; y=atoi(s); return y;/This module is to accept monthinfo, and print the whole year calender。 */void output(struct info monthinfo) char ch; do printhead(monthinfo); printmonth(monthinfo); print

7、f(”按任意键显视下一月, 按Esc键退出. n”); ch=getchar(); if(ch=27) exit(0); monthinfo=setmonthinfo(monthinfo); while(monthinfo。month13);/ This module is to accept monthinfo, amd print monthly head like”一 月 /void printhead(struct info monthinfo) char ss; printf(”s”,dent); switch(monthinfo.month) case 1: ss=一 月; bre

8、ak; case 2: ss=二 月; break; case 3: ss=三 月; break; case 4: ss=”四 月”; break; case 5: ss=”五 月”; break; case 6: ss=六 月”; break; case 7: ss=七 月; break; case 8: ss=”八 月”; break; case 9: ss=九 月; break; case 10: ss=”十 月; break; case 11: ss=十一 月”; break; case 12: ss=”十二 月”; printf(” %ssssnn,gap,gap,gap,ss);/

9、 This module is to accept monthinfo, and print the numbered dates of the month。 /void printmonth(struct info monthinfo) int i,j,k; printf(”s”,dent); printf(”一s二%s三%s四s五s六s日nn”,gap,gap,gap,gap,gap,gap); printf(%s”,dent); for(i=1;imonthinfo。firstdayofmonth;i=i+1) printf(%s ”,gap); k=monthinfo.firstday

10、ofmonth; for(j=1;j=monthinfo。daysofmonth;j=j+1) if(k7) k=k7; printf(”nns”,dent); ; k=k+1; printf(”2ds”,j,gap); printf(”nn”);/ This module is to accept the monthinfo, and set the monthinfo of next month. / struct info setmonthinfo(struct info monthinfo) int m; monthinfo.firstdayofmonth= (monthinfo。fi

11、rstdayofmonth+ monthinfo.daysofmonth-1)7+1; monthinfo。month=monthinfo。month+1; monthinfo。daysofmonth=30; m=monthinfo。month; if(m=1 m=3 | m=5 | m=7 m=8 m=10 m =12) monthinfo。daysofmonth=31; if(m=2) if(monthinfo。leap) monthinfo.daysofmonth = 29; else monthinfo。daysofmonth = 28; return monthinfo;/ This

12、 module is to initialize the monthinfo。 /struct info setinit(int year) int i,days,total; struct info monthinfo; monthinfo。month=1; monthinfo。firstdayofmonth=firstdayof1; for(i=1;iyear;i=i+1) if(isleap(i) days=366; else days=365 ; monthinfo。firstdayofmonth=(monthinfo。firstdayofmonth+days1)7+1; monthi

13、nfo.daysofmonth=31; monthinfo。leap=isleap(year); return monthinfo;void main()printf( tt* n);printf(” tt欢迎使用万年历演示程序 n);printf(” tt* n”); int year ; struct info monthinfo; year = checkinput(); monthinfo = setinit(year); output(monthinfo);3 单元测试 白盒测试黑盒测试2015年三月四月五月六月2016年:三 总结和体会本次用C语言编写的万年历系统主要实现了年历、月

14、历、日历的显示。我根本就不喜欢敲代码了,看见代码就头疼。所以感觉厌恶这门专业,对学习也不感兴趣了。而且,还有一件更头疼的事是在写一个简单的程序时竟然老是出错,难一点的,复杂一点的程序竟然无从下手。但是去看程序的参考答案时都看得懂,又感觉很容易。学了软件工程以后,我就感觉我以前的学习方法是错误的。以前我只注重于代码,而不注重理论知识以及编程的思路,程序的架构.以至于在些程序时没有写程序的思路,不能形成程序的架构.只想到看脑袋里是否有与此类似的代码。越想程序越乱,最后脑袋里一片空白。不知道程序从哪个方面下手了。软件工程这门课程是做软件开发的人必学的课程,通过学这门课程,程序员就会注重软件开发的理论

15、知识,以及做项目开发的思路。学了这门课程后你写程序就不会去盲目的去套用代码,而是理清此程序的架构以及思路。程序该从什么时候开始,什么时候结束.在中间需要添加什么样的功能,以完善该软件。在设计初期,首先温习了课本内容,再次熟悉了一下C语言程序,然后广泛的查找有关万年历的资料,并结合查找到的资料,整理出设计的主要思路,画出流程图,最终写出了源程序,并编译成功,在实验中,碰到了不少问题,其中包括如何获取系统时间,如何计算任意时间的时间差,这些困难,都通过查阅资料和问同学得到了解决。当然,由于时间和能力的原因,做得还不是很完美。在这学期的课程序设计中,收获知识的同时,还收获了阅历,收获了成熟,通过查找

16、大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、 动手制作的能力,在各种其它能力上也都有了提高。更重要的是,在课程序设计里,我们学会了很多学习的方法,知道了理论和实践的巨大差别。而这是以后最实用的,真的是受益匪浅。要面 对社会的挑战,只有不断的学习、实践,再学习、再实践。同时在与老师和同学的交流过程中,互动学习,将知识融会贯通。通过自己的努力,做出了一个万年历,对以后的学习是一个莫大的鼓舞,激起了我的学习兴趣和开发创新思维。在调试过程中主要的问题就是结果的显示问题,显示易错位.以及函数之间调用问题。对于这些问题,主要是翻阅书籍和在网络上寻找解决方案,以及自己亲自用找到的方法去测试,最终成功的解决了问题。通过这次课程设计,使我对C语言了解不再停留在书面的了解,而是有了更深的理解,培养了自己的分析能力和设计能力,受益匪浅。 7

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服