软件做业——结对编程

软件结对编程

1.项目地址

项目地址 项目地址
伙伴 201831061203
博客地址 伙伴博客

2.代码规范说明

代码规范 具体说明
函数名以及变量名 以名字的英文形式呈现,读代码便于理解函数功能,名字注意大小写,通常变量用小写,函数名用大写
代码注释 ①对代码加以注释,便于改动、查找、阅读 ②注释位置最好在被说明内容的前一行或后一行,而不是直接加在其后
代码布局 ①每一行只写一句代码 ②每一行只对一个东西进行声明③ 在不一样的定义以后加一行空白用以分开④注释位置最好在被说明内容的前一行或后一行,而不是直接加在其后⑤缩进控制在4个字符⑦在复杂的条件表达式中,用括号清楚地表示逻辑优先级

3.PSP表格

  PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 30
· Estimate · 估计这个任务须要多少时间 20 25
Development 开发 150 100
· Analysis · 需求分析 (包括学习新技术) 60 100
· Design Spec · 生成设计文档 10 10
· Design Review · 设计复审 (和同事审核设计文档) 20 10
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 10
· Design · 具体设计 120 60
· Coding · 具体编码 720 400
· Code Review · 代码复审 30 15
· Test · 测试(自我测试,修改代码,提交修改) 120 60
Reporting 报告 30 25
· Test Report · 测试报告 30 25
 · Size Measurement · 计算工做量   60  30
· Postmortem & Process Improvement Plan · 过后总结, 并提出过程改进计  30  60
  合计  1430      960     

4.复审代码

根据咱们的代码规范,我发现个人小伙伴的注释并不到位,有一些变量名的名字也不规范,就对此作了一些修改c++

5.解题思路

只学过C++,C的我,在涉及到命令行的解释是一大盲区,以前看到过某同窗写的有关C语言main函数两个参数argc、argv的文章,因而就参考着用C语言写了。
本打算先实现统计行数、单词数、字符数各个模块的功能,封装在每个函数里面,但命令行那里行不通,就利用数据结构学过的知识,用结构体来封装结点提供能够在命令行输入的选项以及单词数那些。 c++里面获取一长串的字符能够有string,以及getline(),那么c又怎么实现呢, argc是指从命令行输入的参数个数,包括固定的本文件的路径argv[0],char* argv[]是一个指针数组,index是从0开始的,0存的是本文件的绝对路径,1存的是控制台输入的第一个参数,以此类推,所以控制台输入的命令就存在argv里面。git

//功能:结构体--记录字符数和单词数
struct Couter
{
    int CharacterNum;//记录字符数
    int WordNum;//记录单词数
    int LineNum;//记录行数
};

//功能:结构体--记录单词
struct Word
{
    string ws;//存放单词
    int lengthW;//存放单词的长度
    int num;//单词出现的频率
};

//功能:计算文件中的字符数和行数
class Calcu
{public:
    int WordNum(const char s[]);
    int LineNum(const char s[]);
private:;
    Couter couter = { 0,0,0 };
};

咱们是以这个文件的内容来测试的
github

获得结果显示
算法

6.需求分析

用户的需求是变化的,咱们在文件的信息输入时应该给用户一些提示,涉及到文件中的字符、单词统计,就须要获取到文件里的内容,因而想到用数组来存放文件内容,采用const 定义数组长度,便于改变
需求分析图编程

7.算法关键

关键就是计算文件中的字符个数以及文件行数,单词个数数组

8.性能分析图&单元测试

9.心得体会&讨论图片

刚拿到题目的时候是没有啥头绪的,由于本身的能力仅限于C和C++,就去网上看了一下其余大佬的代码以及思路,编码能力要增强以及真的要多花点时间去学习一些课外的与专业有关的东西。学习同样东西不是那么容易,可是身边的竞争很强,你们都有在学习,你学会了就也能够成为你羡慕的人。
数据结构

关于GitHub
函数

相关文章
相关标签/搜索