博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程第二次作业
阅读量:6072 次
发布时间:2019-06-20

本文共 2846 字,大约阅读时间需要 9 分钟。

功能1: 小文件输入。本功能实现的难点是输入的问题,如何读txt文件,但真正的问题是自己花了很多时间也没有实现词频的整齐对其。

1234800-20170919024208665-1242901324.png

if (args.Length == 2){    string path = "C:\\Users\\Administrator\\Desktop\\" + args[1];    string txt = my.ReadFile(path);    my.myfunc1(txt);}

功能2: 支持命令行输入英文作品的文件名。这里我也实现的不好,感觉问题蛮多的,像输出格式,排序方法,还需要进一步修改调试

1234800-20170919025055353-533908514.png

string pth = "C:\\Users\\Administrator\\Desktop\\" + args[0] + ".txt";string tx = my.ReadFile(pth);my.myfunc1(tx);break;

功能3:支持命令行输入存储有英文作品文件的目录名,批量统计。这个作业我还在寻找bug,现在最大的问题如图所示,还需慢慢编译。

1234800-20170919025712400-143470787.png

case "folder":    string text = "";    DirectoryInfo fold = new DirectoryInfo("C:\\Users\\Administrator\\Desktop\\folder");    foreach (FileInfo file in fold.GetFiles("*.txt"))    {        //Console.WriteLine(file.DirectoryName);        text += my.ReadFile(file.DirectoryName);    }    my.myfunc1(text);    break;

核心代码如下:

class WordF    {        public void myfunc1(string txt)        {                        //定义一个字符数组            char[] c = { ' ', ',', '.', '?', '!', ':', ';', '\'', '\"' };            //分隔字符串后产生的字符串数组            string[] S = txt.Split(c);            //建立哈希表            Hashtable ha = new Hashtable();            for (int i = 0; i < S.Length; i++)            {                //判断文本是否进入                if (ha.ContainsKey(S[i]))                {                    ha[S[i]] = (int)ha[S[i]] + 1;                }                else                {                    ha.Add(S[i], 1);                }            }            int ans = 0;            foreach (DictionaryEntry de in ha)            {                ans = ans + (int)de.Value;            }            Console.WriteLine("Total: " + ans);                       //遍历哈希表            //foreach (DictionaryEntry de in ha)            //{            //    //输出            //    Console.WriteLine(de.Key + ":" + de.Value);            //}            string[] keys = new string[ha.Count];            double[] values = new double[ha.Count];            ha.Keys.CopyTo(keys, 0);            ha.Values.CopyTo(values, 0);            Array.Sort(values, keys);            int len = 10;            if (values.Length < 10)            {                len = values.Length;                for (int i = len - 1; i >= 0; i--)                {                    Console.WriteLine(keys[i] + ": " + values[i]);                }            }            else             {                for (int i = len - 1; i >= 0; i--)                {                    Console.WriteLine(keys[i] + ": " + values[i]);                }            }        }                public string ReadFile(string file)        {            string readLine;            FileStream fs = new FileStream(file, FileMode.Open);            StreamReader sr = new StreamReader(fs);            readLine = sr.ReadToEnd();            sr.Close();            fs.Close();            return readLine;        }    }

本周PSP

1234800-20170919030211603-1256555786.png

代码及版本控制:

转载于:https://www.cnblogs.com/liuyaoze/p/7546143.html

你可能感兴趣的文章
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
Gallery循环滑动
查看>>
Sql与C#中日期格式转换总结
查看>>
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>
Thread Safety in Java(java中的线程安全)
查看>>
WPF 降低.net framework到4.0
查看>>
数据管理DMS 全量SQL诊断:你的SQL是健康的蓝色,还是危险的红色?
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>