软件维护实验报告yxx.docx
- 文档编号:27688460
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:14
- 大小:391.55KB
软件维护实验报告yxx.docx
《软件维护实验报告yxx.docx》由会员分享,可在线阅读,更多相关《软件维护实验报告yxx.docx(14页珍藏版)》请在冰豆网上搜索。
软件维护实验报告yxx
实验一检查程序的可维护性
一.实验内容
a、认真分析程序代码,了解程序的功能;
b、找出程序中的错误,对其进行修改;
c、找出程序中不符合规范的地方,进行修改;
d、对输入的分数进行检测,要求不小于零,不大于100;
e、为了检测程序输出的对错,要求通过在输入结束后,显示输入的学生数据;
f、如果学生人数为6,每个同学有4门课,请在源程序上修改。
程序代码:
structstudent
{charnum[6];charname[8];intfenshu[3];floatavr;}stu[5];
intmain(){inti,j,sum;FILE*fp;
/*input*/
for(i=0,i<5,i++){printf("\npleaseinputNo.%dfenshu:
\n",i);printf("stuNo:
");scanf("%s",stu[i].num);printf("name:
");
scanf("%s",stu[i].name);sum=0;
for(j=0,j<3,j++){printf("fenshu%d.",j+1);
scanf("%d",&stu[i].fenshu[j]);sum+=stu[i].fenshu[j];}
stu[i].avr=sum/3.0;}fp=fopen("stud","w");
for(i=0,i<5,i++)fprintf(fp,"%s\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].fenshu[0],stu[i].fenshu[1],stu[i].fenshu[2],stu[i].avr);
fclose(fp);
}
二.实验步骤
1.将代码拷贝到c++编译器中,这里使用的是devc++。
2.将代码格式规范一下。
3.因为程序用到了文件流,所以加上”#include
4.注意到程序中的for语句中的语句是用逗号分隔的,将逗号改为分号。
5.程序中的scanf语句,输入的对象应该是一个地址,在对象前加上取地址符号&。
6.编译成功,修改后的程序代码如下:
(最后一个’}’没截到)
这个程序将结果输出到项目下的一个名为”stud.txt”的文本文件里。
程序运行情况如下:
打开”stud.txt”,发现成绩信息已经被写入文件:
至于实验要求的最后三点,
e.在scanf语句后加一个if语句判断得到的数据是否小于一百,若不是,重新输入
f.在最后加一个输出语句就行了,输出语句就跟最后一个for循环一样。
g.修改一下structstudent类型的成员就行了,程序中的for循环的变量也要改一下。
鉴于篇幅原因这里不再贴代码了。
三.实验心得
实验二使用Understand程序理解工具
一.实验目的
1.了解Understand程序理解工具的主要功能。
2.学会使用Understand理解程序代码。
二.实验环境
安装Understand的PC机一台。
三.实验内容
1、创建新工程;
2、导入程序代码;
3、导出程序对应的可视化图形;
创建新工程:
1)在GettingStarted标签页点击NewProject链接,或者在菜单栏选择>Project。
在引导程序Createaprojectfile页面,输入工程名称,指定工程文件保存的路径。
推荐将
工程文件保存到源代码所在目录的顶级目录。
如果指定路径不存在,会弹出提示窗口,向用户询问是否需要创建该目录。
2)点击Next,跳转到Language页面。
3)通过页面上的多选框为工程选择当前使用语言(详见语言类别配置),对于MicroSoftVisualC创建的C/C++/C#工程,可以选择最下面的多选框直接导入工程设置。
然后继续点击Next。
4)选择从Visual工程导入,可以看到VisualStudioFile(s)页面,否则可以直接跳转到下一步。
点击Add,弹出AddanewVisualStudiofile对话框,可以将Understand工程与VisualStudio工程进行同步。
在弹出对话框中点击…,确定VisualStudio工程文件,选择Understand分析代码需要遵循的工程设置,然后点击OK。
然后继续点击Next。
5)点击Next。
6)点击Finish。
7)选择Graphs>ProjectGraphs>UMLClassDiagram
8)右键单击函数api_new_,选择GraphicalViews>ControlFlow
9)右键单击类I,选择GraphicalViews>Declaration
四.实验心得
为了更好的理解程序,有时候图是一个很好的方法。
不仅可以把程序的逻辑直观的展示出来,而且可以方便与他人分享,很多逻辑上的问题可能代码上看不出来,但是采用图的方法就很方便了。
实验三提高程序的可维护性
一.实验目的
1.理解程序的可维护性。
2.提高程序的可维护性。
3.实现程序的维护。
二.实验环境
安装MicrosoftVisualC++的PC机一台。
三.实验内容:
两人一组,分别从三个题目中选择一题(两人不要选同一题)完成,然后由对方进行维护,包括修改程序中不合理的地方,补充注释,扩展程序功能等。
题目一:
有n个人围成一圈,顺序排号。
从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
总体思路:
用一个数组代表所有人,其中每个数的值代表这个人还在不在圈内。
(0代表已出局,1代表还在圈内)通过一个指针循环访问数组内各个成员,若数组成员值为1,则计数器+1,每当计数器加到3时,将该数组成员置0(即这个人出圈),最后指针指向的数组成员的下标就是最后留下的人。
#include
usingnamespacestd;
voidmain()
{
inti,k,m,n,num[50],*p;
printf("inputnumberofperson:
n=");
scanf("%d",&n);
p=num;
for(i=0;i *(p+i)=i+1; i=0; k=0; m=0; while(m { if(*(p+i)! =0)//判断这个号(原来的序号)是否出局 k++;//这个号没有出局,就报数,计数器加1 if(k==3)//报3的出局 { *(p+i)=0;//将出局的这个人标记 k=0;//使计数器置零,以便后面的人报数 m++;//出局人数计数器加1 } i++;//将指针后移,虽然i不是指针,但p+i就是指针了,所以i就是为指针服务的 if(i==n)//如果指针移到了尾部,则返回到头部 i=0; } //以上的循环是主要焦点,后面的就是找出最后那个人,这个好理解 while(*p==0)//用这个可以只判断所找号的前面的号(包括所找号),不用判断后面的。 p++; printf("ThelastoneisN0.%d\n",*p); system(“pause”); } 四.实验心得 编写代码的时候添加注释能提高程序的可理解性。 实验四实现程序的重构 一.实验目的 1.理解程序的重构。 2.实现效率驱动下的程序重构。 二.实验环境 安装MicrosoftVisualC++的PC机一台。 三.实验内容 实验内容: 对下列代码进行调整以提高效率。 #include"stdio.h" voidmain() { inta[100]; for(inti=0;i<100;i++) scanf("%d",&a[i]); for(i=0;i<100;i++) { if(a[i]>=80) {printf("%d\t%c\n",a[i],'A');continue;} elseif(a[i]>=70) {printf("%d\t%c\n",a[i],'B');continue;} elseif(a[i]>=60) {printf("%d\t%c\n",a[i],'C');continue;} else {printf("%d\t%c\n",a[i],'D');continue;} } } 思路: 用switch语句替代if语句 修改后的代码如下: #include usingnamespacestd; intmain() { inta[100]; intx,i; for(i=0;i<100;i++) scanf("%d",&a[i]); for(i=0;i<100;i++){ x=a[i]/10; switch(x){ case10: case9: case8: printf("%d\t%c\n",a[i],'A');break; case7: printf("%d\t%c\n",a[i],'B');break; case6: printf("%d\t%c\n",a[i],'C');break; default: printf("%d\t%c\n",a[i],'D');break; } } system("pause"); return0; } 运行结果: 四.实验心得 使用正确的合适的程序结构可以提高程序的效率。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 维护 实验 报告 yxx