软件测试第二周作业(代码片段)

stephenxlc stephenxlc     2022-10-26     327

关键词:

一,github地址

https://github.com/lc-xie/WordCount

二,PSP表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 25  25

· Estimate

· 估计这个任务需要多少时间

 25   25

Development

开发

200  240

· Analysis

· 需求分析 (包括学习新技术)

 30  30

· Design Spec

· 生成设计文档

 -  -

· Design Review

· 设计复审 (和同事审核设计文档)

 -  -

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 -  -

· Design

· 具体设计

 40  40

· Coding

· 具体编码

 200 240

· Code Review

· 代码复审

 60  60

· Test

· 测试(自我测试,修改代码,提交修改)

60  100

Reporting

报告

 150  180

· Test Report

· 测试报告

 60  60

· Size Measurement

· 计算工作量

 30  20

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 60  60
 

合计

 940  1080

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三,思路

  1. 先将基本功能实现,再考虑扩展功能
  2. 实现WordCountTool工具类,这个类用于计算各种数值,将结果写入文件
  3. 实现命令行参数解析

四,程序的实现过程

程序只实现了基本功能,包含两个类,一个Main类和一个工具类。在Main类中获取输入,并将数据传入工具类进行计算,工具类有两个函数,一个用于计算单词数、行数和字符数,一个用于输出结果到文件。

五,代码

1、main函数

  第一步获取目标文件的地址

  第二步获取操作序列

  第三步获取导出结果的文件地址,若不导出则直接回车

  第四步调用工具类进行计算

import java.io.File;
import java.util.Scanner;

public class Main 

    public static void main(String[] args) 
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入目标文件地址:");
        String filePath=scanner.nextLine();
        System.out.print("请输入操作需求(以空格隔开,如:c l):");
        String[] charArr=scanner.nextLine().split(" ");
        System.out.print("若需要输出到本地文件,请输入目标文件地址,不需要请直接回车:");
        String outputFile=scanner.nextLine();
        File file=new File(outputFile);
        CountTool countTool=new CountTool();
        countTool.count(filePath);

        for (String c:charArr)
            switch (c)
                case "c":
                    System.out.println("字符数:"+countTool.charCount);
                    break;
                case "l":
                    System.out.println("行数:"+countTool.lineCount);
                    break;
                case "w":
                    System.out.println("单词数:"+countTool.wordCount);
                    break;
                default:break;
            
        

        if (file.exists())
            countTool.ouputToFile(file,charArr);
        
    

2、CountTool类

  主要存有三个计算结果的变量和两个函数

/**
 * Created by stephen on 18-3-19.
 * 统计文件的单词数,字符数,行数
 */
public class CountTool 
    private String aimFile;
    public int lineCount=0;//行数
    public int charCount=0;//字符数
    public int wordCount=0;//单词数
    
    .....

 

3、count()函数

  此函数用于计算行数、单词数和字符数

  首先判断目标文件是否存在,不存在则输出“目标文件不存在!请重新输入”并返回

  然后一行行读文件,每读一行,lineCount++;同时通过s.length计算本行的字符数,再通过遍历循环找到所有的“ ”和‘,"来判断单词数量。

  最后关闭文件读写流。

/**
     * 计算各个值
     * @param filePath 代码文件的路径
     */
    public void count(String filePath)
        try 
            File file=new File(filePath);
            if (!file.exists())
                System.out.println("目标文件不存在!请重新输入");
                return;
            
            aimFile=file.getName();

            FileInputStream fis=new FileInputStream(file);
            InputStreamReader isr=new InputStreamReader(fis, "UTF-8");
            BufferedReader br = new BufferedReader(isr);
            String s="";
            while ((s=br.readLine())!=null) 
                charCount += s.length();//字符个数就是字符长度
                //wordCount += s.split(" ").length;//split() 方法用于把一个字符串分割成字符串数组,字符串数组的长度,就是单词个数
                for (int i=1;i<s.length();i++)
                    if ((s.charAt(i)==‘ ‘&&s.charAt(i-1)!=‘ ‘&&s.charAt(i-1)!=‘,‘)||
                            (s.charAt(i)==‘,‘&&s.charAt(i-1)!=‘ ‘&&s.charAt(i-1)!=‘,‘))
                        wordCount++;
                    
                    if (s.charAt(i)!=‘ ‘&&s.charAt(i)!=‘,‘&&i==s.length()-1)wordCount++;
                
                lineCount++;//因为是按行读取,所以每次增加一即可计算出行的数目
            
            br.close();
            isr.close();
            fis.close();
        catch (IOException e)
            e.printStackTrace();
        
    

4、ouputToFile()函数

  将结果输出到指定文件

  获取结果后,遍历操作序列,将对应的数据写入

/**
     * 将数据写入文件
     * @param filePath
     * @param arr 输入的操作数组,‘o‘,‘c‘,‘w‘,‘s‘
     * @return
     */
    public boolean ouputToFile(File filePath,String[] arr)

        BufferedWriter bw=null;
        try 
            FileWriter fw = new FileWriter(filePath.getAbsoluteFile());
            bw = new BufferedWriter(fw);
        catch (IOException e)
            e.printStackTrace();
            return false;
        
        for (String c:arr)
            switch (c)
                case "c":
                    try 
                        bw.write(aimFile+",字符数:"+charCount+‘\\n‘);
                    catch (IOException e)
                        e.printStackTrace();
                        return false;
                    
                    break;
                case "l":
                    try 
                        bw.write(aimFile+",行数:"+lineCount+‘\\n‘);
                    catch (IOException e)
                        e.printStackTrace();
                        return false;
                    
                    break;
                case "w":
                    try 
                        bw.write(aimFile+",单词数:"+wordCount+‘\\n‘);
                    catch (IOException e)
                        e.printStackTrace();
                        return false;
                    
                    break;
                default:break;
            
        
        try 
            bw.close();
        catch (IOException e)
            e.printStackTrace();
        
        return true;
    

六,测试设计过程

  明天完善

 

七,参考文献

  http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html 

软件测试第二周作业wordcounter(代码片段)

Github项目地址WordCounteringithubPSP(PersonalSoftwareProcess)PSP2.1PSP阶段预估耗时实际耗时(分钟)实际耗时(分钟)Planning计划1017Estimate估计这个任务需要多少时间510Development开发545650-Analysis-需求分析(包括学习新技术)120160-DesignSpec-生... 查看详情

软件质量与测试第二周作业wordcount(代码片段)

第二周作业WordCount一、Github地址https://github.com/llag9810/Software-Quality-and-Testing-Wordcount二、PSP2.1 表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 60 25·Estimate·估计这个任务需要多少时间 30 15Dev 查看详情

软件质量测试第二周wordcount作业(代码片段)

一.github地址https://github.com/WKX121/WC二.PSPPSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 25 25·Estimate·估计这个任务需要多少时间 25  25Development开发300 340·Analysis·需求分析(包括学习新技术)&... 查看详情

软件测试第二周个人作业wordcount程序实现(代码片段)

GitHub地址:https://github.com/Guchencc/WordCount一.PSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划  ·Estimate·估计这个任务需要多少时间 300440Development开发  ·Analysis·需求分析(包括学习新技术) 20&n... 查看详情

软件工程网络15第二周作业-提出问题(代码片段)

提出问题快速通读教材《构建之法》,并参照提问模板,提出5个问题。如何提出有价值的问题?请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html,以及在互联网时代如何提问题。还有这些要点:-在每个问题后面,请说明哪一... 查看详情

20165306课下作业(第二周)

一、教材代码完成情况测试代码链接此代码作用是求和(1~5306)。二、带包的代码编译运行测试代码链接三、课后习题p161.Person.java2.两个,Person.class和Xiti.class代码链接 查看详情

《实时控制软件》第二周作业

首先制定各个变量名称入闸传感器:sensor_in;出闸传感器:sensor_out;起落杆上升:gan.raise();起落杆下降:gan.down();信号灯:light(1为绿,0为红);通行状态:A0为禁止通行,A1为允许通行;竖着写(在状态中判断事件)C代码片段cur_st... 查看详情

第二周作业wordcount(代码片段)

https://github.com/HuangDongPeng/WordCount.git1.1 PSPPSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 30 30·Estimate·估计这个任务需要多少时间 5h 12hDevelopment开发 2h 4h·Analysis·需求分析(包括学习新技 查看详情

第二周个人作业(代码片段)

 1.GitHub地址:https://github.com/YJG1997/wc2.psp表格PSP2.1表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 60 50·Estimate·估计这个任务需要多少时间 30 20Development开发 60 90·Analysis·需求分析(包括学... 查看详情

第二周个人作业wordcount(代码片段)

一、GitHub地址https://github.com/JasonLiu1105/WordCount二、PSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 20 20·Estimate·估计这个任务需要多少时间 2days 3daysDevelopment开发 1day 1day·Analysis·需求 查看详情

第二周作业wordcount(代码片段)

github项目链接https://github.com/liqia/WordCount1.项目简介对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。可执行程序命名为:wc.exe,该程序... 查看详情

《实时控制软件设计》第二周作业

 状态分析由题目描述,只有两种不同事件,一个是车辆进入,一个是车辆离开,与之对应的传感器信号,起落杆信号,通行灯信号都是一同变化,因此可以简化成两种复合状态。 代码实现 传感器头文件////Createdbyzhuha... 查看详情

第二周作业

先测试车辆的进入与进出,定义升起和落下的杆,通过杆的状态不同亮的灯也不一样,在判断车辆有无出入。代码主函数:#include"./head.h"#include<iostream>usingnamespacestd;intmain(){   GurdSystemgs;      &... 查看详情

2017-2018-220179202《网络攻防技术》第二周作业(代码片段)

一、黑客信息袁仁广,中国国家信息安全漏洞库特聘专家,北京奥运会特聘信息安全专家,现任腾讯湛泸实验室负责人。其领衔的360漏洞研究实验室被誉为“东半球最强大的白帽子军团”。他在windows系统方面的造诣,在国内应... 查看详情

软件工程第二周作业----词频统计

实验要求:统计文件中出现过的单词数目,并按数目和字典顺序排序,将结果输出到指定文件中。需要统计单词的文件名从命令行输入。 实验分工:代码编写&测试:张文杰博客编写:朱昱青 实验思路:1.在主函数中... 查看详情

第二周作业一读软件工程

谢谢邹老师给我们带来这么精彩的书,话不多说,强行提问:1.不面向用户的软件,程序员自娱自乐的项目,如何选择开发模式。2.结对编程后,由此可能造成的损失和不了后果由两人承担,具体比例怎么算。3.像微软office办公软... 查看详情

程序语言与编程实践5-;java实操2|第二周作业及思路讲解|基础知识强化考察(代码片段)

Java的第二周作业的思考总结,涉及的只是有static代码块的输出次序,面向对象的编程实战,字符串的拼接等java基本的关键的内容。是这样的,Java这门课没有给线上实验评测平台(我还专门上平台上看了看),第一周作业出得挺... 查看详情

软件工程作业第二周--例行报告

类型任务开始结束中断deltacoding重定向/输入/输出的代码9.16晚上6点9:16晚上八点半--150mincoding文件夹读文件/控制台直接读/整合9.17早上9点9:17晚上七点12点午饭/午睡到4点/晚饭,12点-4点以及五点到五点半330min安装装Git,试... 查看详情