1. 程式人生 > >軟件測試第二周

軟件測試第二周

改進 tar mea sign 單詞 判斷 老師 target har

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)等

註:由於時間水平有限,只能實現部分功能,如未能實現文件遍歷、命令行命令批處理,還請老師諒解。

軟件測試第二周