软件维护实验报告yxx.docx

上传人:b****1 文档编号:1357504 上传时间:2023-04-30 格式:DOCX 页数:14 大小:420.44KB
下载 相关 举报
软件维护实验报告yxx.docx_第1页
第1页 / 共14页
软件维护实验报告yxx.docx_第2页
第2页 / 共14页
软件维护实验报告yxx.docx_第3页
第3页 / 共14页
软件维护实验报告yxx.docx_第4页
第4页 / 共14页
软件维护实验报告yxx.docx_第5页
第5页 / 共14页
软件维护实验报告yxx.docx_第6页
第6页 / 共14页
软件维护实验报告yxx.docx_第7页
第7页 / 共14页
软件维护实验报告yxx.docx_第8页
第8页 / 共14页
软件维护实验报告yxx.docx_第9页
第9页 / 共14页
软件维护实验报告yxx.docx_第10页
第10页 / 共14页
软件维护实验报告yxx.docx_第11页
第11页 / 共14页
软件维护实验报告yxx.docx_第12页
第12页 / 共14页
软件维护实验报告yxx.docx_第13页
第13页 / 共14页
软件维护实验报告yxx.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件维护实验报告yxx.docx

《软件维护实验报告yxx.docx》由会员分享,可在线阅读,更多相关《软件维护实验报告yxx.docx(14页珍藏版)》请在冰点文库上搜索。

软件维护实验报告yxx.docx

软件维护实验报告yxx

软件维护实验报告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);

这个程序将结果输出到项目下的一个名为”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链接,或者在菜单栏选择File>New>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_file_operator,选择GraphicalViews>ControlFlow

9)右键单击类IFileOperator,选择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;

}

运行结果:

四.实验心得

使用正确的合适的程序结构可以提高程序的效率。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2