word count
| 這個作業屬于哪個課程 | https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018 |
| 這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879 |
| 這個作業的目標 | 初步學習Git完成WordCount編程并用PSP記錄 |
| 作業正文 | http://www.rzrgm.cn/zhouhuahua/p/14603000.html |
| 參考文獻 | 《構建之法》,csdn |
- 目錄:
- 1、 Github項目地址
https://gitee.com/chefeiziman/project-c - 2、PSP表格
| PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
|---|---|---|---|
| Planning | 計劃 | ||
| ? Estimate | ? 估計這個任務需要多少時間 | 4天 | 1900 |
| Development | 開發 | ||
| ? Analysis | ? 需求分析 (包括學習新技術) | 30 | 120 |
| ? Design Spec | ? 生成設計文檔 | 20 | 20 |
| ? Design Review | ? 設計復審 | 20 | 25 |
| ? Coding Standar | ? 代碼規范 (為目前的開發制定合適的規范) | 30 | 20 |
| ? Design | ? 具體設計 | 90 | 100 |
| ? Coding | ? 具體編碼 | 960 | 1430 |
| ? Code Review | ? 代碼復審 | 30 | 45 |
| ? Test | ? 測試(自我測試,修改代碼,提交修改) | 60 | 90 |
| Reporting | 報告 | ||
| ? Test Repor | ? 測試報告 | 20 | 20 |
| ? Size Measurement | ? 計算工作量 | 10 | 10 |
| ? Postmortem & Process Improvement Plan | ? 事后總結, 并提出過程改進計劃 | 20 | 20 |
| ? 合計 | 1290 | 1900 |
- 3、解題思路描述
WordCount的需求可以概括為:對程序設計語言源文件統計字符數、單詞數、行數,統計結果以指定格式輸出到默認文件中,以及其他擴展功能,并能夠快速地處理多個文件。
可執行程序命名為:wc.exe,該程序處理用戶需求的模式為:
wc.exe [parameter] [input_file_name]
存儲統計結果的文件默認為result.txt,放在與wc.exe相同的目錄下。
- 4、代碼規范制定鏈接
[https://gitee.com/chefeiziman/project-c/blob/master/20188478/codestyle.md] - 5、設計與實現過程
- 5.1主函數:
int main(int argc,char *argv[])
{
FILE *fp;
while(1)
{
if((fp=fopen(argv[2],"r"))==NULL)
{
printf("FileNull\n\n\n");
scanf("%s%s%s",argv[0],argv[1],argv[2]);
continue;
}
else if(!strcmp(argv[1],"-w"))
countw(argv[2]);
else if(!strcmp(argv[1],"-c"))
countc(argv[2]);
else if(!strcmp(argv[1],"-l"))
countl(argv[2]);
else if(!strcmp(argv[1],"-a"))
{
count_blankline(argv[2]);
count_noteline(argv[2]);
count_codeline(argv[2]);
}
else if(!strcmp(argv[1],"-s"))
{
searchfile();
}
else
printf("NullPoint\n");
printf("\n\n");
scanf("%s%s%s",argv[0],argv[1],argv[2]);
}
return 0;
}
輸入指令分成三組,根據第二組的指令對第三組的指令文件名執行相應的操作。
- 5.2基本功能
(-c(返回文件的字符數),-s(尋找文件中的txt文件),-l( 返回文件的行數),-w(返回文件詞的數目),-a(統計空行,代碼行,注釋行)) - 6、性能改進
- 7、單元測試
通過cmd運行截圖
用來測試的a.txt和b.txt


測試結果:

- 8、異常處理說明
- 9、心路歷程與收獲
在運行代碼和測試時花費了很多時間,有不少的bug出現,要么filenull要么返回的文件詞數目不對。這次作業的基本功能全部實現,擴展功能實現一小部分,由于代碼環節薄弱,花了很多時間去改錯。測試階段里,利用不同的測試文件才會發現其中的一些容易疏忽的小錯誤,可見測試的重要和必要性。

浙公網安備 33010602011771號