• homework1


    Individual Project

      第一次作业是一个Individual Project。我自己打算用C#来完成这个作业,但是以前没有用过C#,所以先打算简单地了解一下C#,然后进行开发。

      初步计划:用两天时间了解一下C#的基本语法。

      开始写之前:在弄清楚了这个题目的需求之后,我认为这个题目主要要做这几个方面的工作。(大括号中为我计划的时间)

      1、{半个小时}要能够读取一个目录下面的所有文件以及文件夹,这一点涉及到系统的API的调用,将获得的文件名全部存储在一个ArrayList中,方便以后调用。

      2、{2个小时}能够读取每个文件,并且按照规则将确定的一行字符串划分到一个字符串数组中,将所有的字符串统计放到一个Dictionary中,在Dictionary中能够看到每个词的词频。

      3、{2个小时}将Dictionary中的内容能够按照一定的顺序排列输出。(这里完成了普通的要求)

      4、{2个小时}再次对Dictionary中的内容进行处理,能够满足extend mode。

      写好了之后:在写的过程中,发现了自己太多的问题,首先是对语言的不熟练,很多时候就是一边写程序,一边在网上搜索具体的语法知识,其次就是还没有清晰地设计出算法之前,就开始 写程序,然后写程序的过程中就一边在写,一边在想,脑袋中没有具体的思路。所以总是断断续续的。浪费了很多的时间。

      每个部分大概花的时间如下:

      1、{半个小时}这个部分就是函数的调用,只要找到了函数之后,很简单。

      2、{2个半小时}这一段主要的问题还是在于划分上面,划分的时候最开始想要能够调用系统的split函数,结果,弄了很久,都没有弄出好的结果,最后自己重新写了一个划分的函数。

      3、{4个小时}做得过程中主要一直想要对Dictionary进行排序,但是Dictionary内部的实现又是一个Hash的算法,不能够实现要求的排序的规则。后来选择了一个SortedDictionary,然后再加上一个排序,是具有相同频率的词语能够按照字典序排列。

      4、{3个小时}这个部分主要的问题就是对于具有extend的特征的word的合并,感觉不太好弄。最开始想要借用SortedDictionary的特性,对划分的词组进行合并,但是考虑不周,后来发现存在问题。就采用了一个ArrayList来完成排序的工作。

      Next:测试,修改BUG,完善程序中考虑不足地方。

  • 相关阅读:
    2019课设---基于微信小程序的食堂订餐送餐系统设计 【构思】(12)
    宝塔安装
    win10添加新建文本文档的快捷方式
    Vue底部菜单模块
    CSS渐变
    记录页面位置及进入页面时跳转位置
    PHP获取微信JS-SDK接口设置(access_token、jsapi_ticket、signature)
    添加Notepad++至右键菜单
    win10卸载XShell6报错1603
    win10我的电脑左侧快捷方式的控制
  • 原文地址:https://www.cnblogs.com/shoumu/p/2694184.html
Copyright © 2020-2023  润新知