zoukankan      html  css  js  c++  java
  • 编程作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879
    这个作业的目标 学会使用gitee并且完成词频统计编程
    学号 20188489
    其他参考文献 《构建之法》

    gitee地址
    https://gitee.com/swaggyxuan/software-engineering-20188489

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

    1.统计文件的字符数(对应输出第一行):

    只需要统计Ascii码,汉字不需考虑
    空格,水平制表符,换行符,均算字符

    2.统计文件的单词总数(对应输出第二行)

    单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
    英文字母: A-Z,a-z
    字母数字符号:A-Z, a-z,0-9
    分割符:空格,非字母数字符号

    3.统计文件的有效行数(对应输出第三行)

    任何包含非空白字符的行,都需要统计。

    4.统计文件中各单词的出现次数(对应输出接下来10行)

    最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。

    设计与实现过程:

    1.判断是否存在
    2.进行排序
    3.计算总单词数
    4.得到每一个单词以及次数, 并且记录到Map集合中

    java对文件操作的方法有很多,此处主要用了BufferedInputStream和BufferedOutputStream,利用缓冲可以加快效率和速度
    所有功能的操作都差不多:(1)读取文件信息(2)处理文件信息(3)将结果写入文件
    下面是统计字符个数的代码

        public void  CountChars() throws IOException
        {
            BufferedInputStream input= new BufferedInputStream(
                    new FileInputStream(this.input));
            BufferedOutputStream output=new BufferedOutputStream(
                    new FileOutputStream(this.output,true));
            int count=0;
            int x=-1;
            char ch;
            while((x=input.read())!=-1) //流读取完的标志是返回-1  其他时候返回的为字符的ascii值
            {
                ch=(char)x;
                if(ch!='
    '&&ch!='
    ')//换行
    和回车
    不统计为字符
                {
                    count++;
                }
            }
            input.close();
            String str=this.input+",字符数:"+count;
            output.write(str.getBytes());
            output.write("
    ".getBytes()); //回车 /r和换行/n位置不可换
            output.flush();
            output.close();
        }
    

    运行结果

    心路历程与收获

    在这次的项目中,我学习了如何用github管理代码,也学到了不少新知识。 我也接触到了PSP表格这种估计开发时间的方法,在项目开发的过程中开始有意识地估计和记录各项工作的时间。在完成Wordcount程序的开发的过程中,复习巩固了一些Java的知识,也锻炼了思考的能力。

  • 相关阅读:
    无线网络技术知识点
    中国高校计算机大赛—网络技术挑战赛
    实验二 软件工程个人项目
    实验一 软件工程准备
    2018年春季软件工程教学设计(初稿)
    2017-2018春季学期软件工程教学资源目录
    2017-2018春季学期软件工程教学纲要
    如何解决Android Studio解决DDMS真机/模拟器无法查看data目录问题
    GitHub的Windows客户端的使用教程
    2017面向对象程序设计(JAVA)课程总结
  • 原文地址:https://www.cnblogs.com/swaggy89/p/14610431.html
Copyright © 2011-2022 走看看