软件测试第二周

Posted hwx1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试第二周相关的知识,希望对你有一定的参考价值。

github地址:https://github.com/WhaterverYouCall/rjcshomework

 

PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
Planing 计划    
Estimate 估计任务所需时间 730 910
Development 开发 40 40
Analysis 需求分析 10 10
Design Spec 生成设计文档 10 10
Design Review 设计复审(和同事审核设计文档) 10 10
Coding Standard 代码规范(为目前的开发制定合适的规范) 10 10
Design 具体设计 60 60
Coding 具体编码 360 480
Code Review 代码复审 30 30
Test 测试(自我测试、修改代码、提交修改) 120 180
Reporting 报告 20 20
Test Report 测试报告 20 20
Size Measurement 计算工作量 10 10
Postmortem&Process Improvement 事后总结,并提出改进计划 30 30
  合计 730 910

 

解题思路

按照老师所给的功能模块(基础、扩展、高级)由简到难对问题进行解决,使用较为熟悉的C++进行编程

程序实现过程

分析函数:读取文件第一个字符开始进行判断,并开始统计字符数等。

(1)字符数:读一次便将字符数参数加一。

(2)行数:出现\n则行数参数加一

(3)单词数:出现,或空格则单词参数加一

(4)注释行数:出现\则为注释行

(5)空行:开头为\n则为空行

最后在主函数中输入文件路径后,调用输出结果。

代码说明

文件内容分析:

analyse()

void analyse()
{
while((c=fgetc(file))!=EOF)
{
chars++;
if (((c<=‘z‘)&&(c>=‘a‘))||((c<=‘Z‘)&&(c>=‘A‘))||((c>=‘0‘)&&(c<=‘9‘)))
{
words++;
while((c=fgetc(file))!=EOF)
{
chars++;
if (((c<=‘z‘)&&(c>=‘a‘))||((c<=‘Z‘)&&(c>=‘A‘))||((c>=‘0‘)&&(c<=‘9‘)))
{
}
else if (c==‘\n‘)
{
s[lines]=3;
lines++;
break;
}
else if ((c==‘,‘)||(c==‘ ‘))
break;//判断单词,有空格或者逗号或者换行则停止
else
{
symbols++;
break;
}//判断运算符号,不是单词的即为符号
}
}
else if (c==‘/‘)
{
if ((c=fgetc(file))==‘/‘)
{
symbols+=2;
s[lines]=2;
fseek(file,-1L,SEEK_CUR);
}//判断注释行
}
else if (c==‘\n‘)
{
if (s[lines]!=2)
s[lines]=1;
lines++;
}
else if (c==‘ ‘)
{
}
else
symbols++;
}
if (s[lines]!=2)
s[lines]=1;

}//分析所有字符数、单词数、行数及行类的函数

主函数

{
char name[50];
int a,i,j;
int m=0,n=0,q=0;
cout<<"输入源文件名:";
for(;;)
{
cin>>name;
if((file=fopen(name,"r"))!=NULL)
break;
else
cout<<"文件路径错误!";
}
analyse();
fclose(file);
for (i=1;i<=lines;i++)
{
if (s[i]==1)
{
m++;
cout<<"第"<<i<<"行为代码行"<<endl;
}
else if (s[i]==2)
{
n++ ;
cout<<"第"<<i<<"行为注释行"<<endl;
}
else if(s[i]==3)
{
q++;
cout<<"第"<<i<<"行为空行"<<endl;
}
}
cout<<"字符数:"<<chars<<endl;
cout<<"单词数:"<<words<<endl;
cout<<"行数 :"<<lines<<endl;
cout<<"符号数:"<<symbols<<endl;
cout<<"代码行数:"<<m<<endl;
cout<<"注释行数:"<<n<<endl;

system("pause");
return 0;
}

其中使用了与文件调用相关的函数fopen()fgetc(file)等

 

注:由于时间水平有限,只能实现部分功能,如未能实现文件遍历、命令行命令批处理,还请老师谅解。

以上是关于软件测试第二周的主要内容,如果未能解决你的问题,请参考以下文章

软件测试第二周

软件测试第二周作业

软件测试第二周作业 WordCounter

软件质量与测试第二周作业 WordCount

第二周学习总结

第二周作业