zoukankan      html  css  js  c++  java
  • WC-第二次作业

    WordCount 第二次作业

    码云地址:https://gitee.com/lgcj1218/WordCount/tree/master

    一.解题思路

    本次作业采用的c#语言 按功能分为了三个类 ,计算字符数,计算单词数,计算行数。然后在主程序中new三个类,当需要进行着三个功能时就调用其中的函数。

    二.代码说明

    1.主程序(包含输出文件的方法)

     1 static void Main(string[] args)
     2         {
     3             string cmd = "";
     4             while (cmd != "leave")
     5             {               
     6                 int i;
     7                 int charCount, wordCount, lineCount;
     8                 string testFile;
     9                 string outFile;
    10                 Console.Write("wc.exe ");
    11                 cmd = Console.ReadLine();
    12                 string[] arrMessSplit = cmd.Split(' ');
    13                 List<string> arrParameter = new List<string>();
    14                 for (i = 0; i < arrMessSplit.Length; i++)
    15                 {
    16                     arrParameter.Add(arrMessSplit[i]);
    17                 }
    18                 bool isOut = false;
    19                 for (i = 0; i < arrMessSplit.Length - 1; i++)
    20                 {
    21 
    22                     if (arrParameter[i] == "-o")
    23                     {
    24                         isOut = true;
    25                     }
    26                 }
    27 
    28                 CharCount cc = new CharCount();
    29                 WordCount wc = new WordCount();
    30                 LineCount lc = new LineCount();
    31                 if (isOut)
    32                 {
    33                     testFile = arrParameter[arrParameter.Count - 3];
    34                     for (i = 0; i < arrMessSplit.Length - 1; i++)
    35                     {
    36                         if (arrParameter[i] == "-c")
    37                         {
    38                             cc.CC(testFile);
    39                         }
    40                         if (arrParameter[i] == "-w")
    41                         {
    42                             wc.WC(testFile);
    43                         }
    44                         if (arrParameter[i] == "-l")
    45                         {
    46                             lc.LC(testFile);
    47                         }
    48                     }
    49                     outFile = arrParameter[arrParameter.Count - 1];
    50                     FileStream fs = new FileStream(outFile, FileMode.Create);
    51                     StreamWriter sw = new StreamWriter(fs);
    52                     sw.Write("{0},charCount:{1}
    ", testFile, cc.charCount);
    53                     sw.Write("{0},wordCount:{1}
    ", testFile, wc.wordCount);
    54                     sw.Write("{0},lineCount:{1}
    ", testFile, lc.lineCount);
    55                     sw.Flush();
    56                     sw.Close();
    57                     fs.Close();
    58                     Console.WriteLine("WriteToFile:{0}", outFile);
    59                 }
    60                 else
    61                 {
    62                     testFile = arrParameter[arrParameter.Count - 1];
    63                     for (i = 0; i < arrMessSplit.Length - 1; i++)
    64                     {
    65                         if (arrParameter[i] == "-c")
    66                         {
    67                             cc.CC(testFile);
    68                         }
    69 
    70                         if (arrParameter[i] == "-w")
    71                         {
    72                             wc.WC(testFile);
    73                         }
    74 
    75                         if (arrParameter[i] == "-l")
    76                         {
    77                             lc.LC(testFile);
    78                         }
    79                     }
    80                 }
    81                 Console.ReadLine();
    82             }
    83         }
    84     }
    85 }
    program

    2.计算字符数的类

     1 class CharCount
     2     {
     3 
     4        public  string testFile;
     5         public int charCount = 0;
     6         public void CC(string testFile)
     7         {
     8 
     9             int nChar;
    10             char[] symbol = { ' ', ',' };
    11             FileStream file = new FileStream(testFile, FileMode.Open, FileAccess.Read, FileShare.Read);
    12             StreamReader sr = new StreamReader(file);
    13             while ((nChar = sr.Read()) != -1)
    14             {
    15                 charCount++;
    16             }
    17             Console.WriteLine("{0},charCount:{1}", testFile, charCount);
    18         }
    19     }
    charcount

    3.计算单词数的类

     1   class WordCount
     2     {
     3        public  string testFile;
     4         public  int wordCount=0;
     5         public void WC(string testFile)
     6         {
     7             
     8                 int nChar;          
     9                 char[] divide = { ' ', ',' };                                            
    10                 FileStream file = new FileStream(testFile, FileMode.Open,FileAccess.Read, FileShare.Read);
    11                 StreamReader sr = new StreamReader(file);
    12             while ((nChar = sr.Read()) != -1)
    13             {
    14                 foreach (char c in divide)
    15                 {
    16                     if (nChar == (int)c)
    17                     {
    18                         wordCount++;
    19                     }
    20                 }            
    21             }
    22             wordCount++;
    23             Console.WriteLine("{0},wordCount:{1}", testFile, wordCount);
    24         }
    25     }
    wordcount

    4.计算行数的类

     1  class LineCount
     2     {
     3        public  string testFile;
     4         public int lineCount = 0;
     5         public void LC(string testFile)
     6         {
     7 
     8             int nChar;
     9             char[] divide = { ' ', ',' };
    10             FileStream file = new FileStream(testFile, FileMode.Open, FileAccess.Read, FileShare.Read);
    11             StreamReader sr = new StreamReader(file);
    12             while ((nChar = sr.Read()) != -1)
    13             {
    14                 if (nChar == '
    ')
    15                 {
    16                     lineCount++; 
    17                 }
    18             }
    19             lineCount++;      
    20             Console.WriteLine("{0},lineCount:{1}", testFile, lineCount);
    21         }
    22     }
    linecount

    三.测试设计过程

    1.测试写入文件

    2.测试计算字符,单词和行数的功能

  • 相关阅读:
    Class Loading Deadlocks
    Find out your Java heap memory size
    ZookeeperGettingStarted
    ZooKeeper的Znode剖析
    nginx+iis实现负载均衡
    ubuntu 18.04下svn的安装与基本命令
    在ubuntu中如何向U盘复制粘贴文件 Read-only file system
    Ubuntu16.04下安装破解secureCRT和secureFX的操作记录
    securecrt8注册码
    Doris FE负载均衡配置
  • 原文地址:https://www.cnblogs.com/hechunhang/p/9695490.html
Copyright © 2011-2022 走看看