一、地址
Github项目地址:
https://github.com/995020892w/WordCount.git
结对伙伴作业地址:
https://www.cnblogs.com/wwcy/p/10654363.html
二、结对过程
和室友组队,一起边学边做,完成了这次结对编程作业。下面附上一张讨论图:
三、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 50 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 50 | 30 |
Development | 开发 | 600 | 560 |
· Analysis | · 需求分析 (包括学习新技术) | 40 | 60 |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 (和同事审核设计文档) | 40 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 40 | 20 |
· Design | · 具体设计 | 50 | 60 |
· Coding | · 具体编码 | 300 | 300 |
· Code Review | · 代码复审 | 50 | 30 |
· Test | · 测试(自我测试,修改代码,提交修改) | 50 | 30 |
Reporting | 报告 | 150 | 100 |
· Test Report | · 测试报告 | 50 | 50 |
· Size Measurement | · 计算工作量 | 50 | 30 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 50 | 20 |
合计 | 800 | 690 |
四、解题思路
刚开始感觉很难,在了解了项目要求后,通过讨论,最终决定用参数来实现基本功能。
五、设计实现过程
首先在这个项目设计一个主函数和一个WordCount类。
WordCount类的属性包含sFilename(文件名)、sParameter(参数)、iChar(字符数)、iWord(单词数)、iLine(总行数)。
方法有三个,Operator(判断输入参数命令是否合法),Count(统计字符数、单词数、总行数、单词出现次数)、Display(最终结果打印)。
主函数调用WordCount类的三个方法。
六、代码规范链接
详情请见伙伴博客:https://www.cnblogs.com/wwcy/p/10654363.html
七、程序性能改进
详情请见伙伴博客:https://www.cnblogs.com/wwcy/p/10654363.html
八、代码说明
设计的主函数,用来调用类方法。
以及对于输入命令在主函数中用split()函数将输入的命令符隔开,并将最后一个命令赋值给文件名变量,至于split()函数的使用可以参考下这个网址:split函数链接。
static void Main(string[] args) { WordCount word = new WordCount(); string message = ""; while (message != "exit") { message = Console.ReadLine(); string[] MessageSplit = message.Split(' '); int MLength = MessageSplit.Length; string[] sParameter = new string[MLength - 1]; for (int i = 0; i < MLength - 1; i++) { sParameter[i] = MessageSplit[i]; } string sFilename = MessageSplit[MLength - 1]; word.Operator(sParameter, sFilename); word.Count(sFilename); word.Display(); } }
设计的WordCount类的属性:
private string sFilename; //文件名 private string[] sParameter; //参数 private int iChar; //字符数 private int iWord; //单词数 private int iLine; //总行数
九、总结
感觉这次作业很难,一个人肯定做不下来,两人结对,互相讨论,共同解决问题,使得做起来不那么难,但还是遇到了许多问题,比如编码能力不足,还需要多加练习。