zoukankan      html  css  js  c++  java
  • 使用C#实现Morse码的输出

    一直在研读的《C语言的科学和艺术》一书中有这么一道题,涉及了string类型。但是作者给提供的库实在是不好用,因此我想改用C#开发。众所周知,C和C#的不同是:C语言是面向过程的传统编程语言,C#是面向对象的现代编程语言。尽管如此,但我认为我们仍然可以在C#中学习面向过程的思想。采用控制台应用程序,在Program类中编写代码。

    原题:

    1844年5月,Samuel F.B.Morse 用电报从美国的华盛顿发送了一条消息“What hath God wrought !”美国的巴尔的摩,从此开创了电子通信的新纪元。为了使这种通信方式只需要使用一种音符的有无就可以进行,Morse设计了一种编码系统。在这种编码系 统中,字母和其他的字符分别用长短不一的编码系列来实现,我们通常称之为点和横,在Morse编码系统中,字母表中的26个字母是用如下方法表示的:
    A . - 
    B - . . .
    C - . - .
    D - . .
    E .
    F . . - .
    G - - .
    H . . . .
    I . .
    J . - - -
    K - . -
    L . - . .
    M - -
    N - .
    O - - -
    P . - - .
    Q - - . -
    R . - .
    S …
    T – 
    U . . –
    V. . . –
    W . - -
    X - . . –
    Y - . - -
    Z - - . .

    我们很容易在程序中声明一个含有26个元素的数组.存储26个字母的Morse码。
    写一个程序,从用户处输入一个字符串,将字符串中每个字母转换成相应的Morse码,用句号表示点,用破折号表示横。用换行符来表示单词之间的空格,而忽略其中的其他标点符号。你的程序应该产生下列运行示例:

    其实仔细分析一下,程序还是非常简单的。C#实现代码如下:

     1class Program
     2{
     3    static void Main(string[] args)
     4    {
     5
     6        Console.WriteLine("This program translates a line into Morse code.");
     7        Console.Write("Enter English text:");
     8        string str = Convert.ToString(Console.ReadLine());
     9        ShowMorse(str);
    10        Console.Read();
    11    }

    12
    13    private static void ShowMorse(string input)
    14    {
    15        char[] chs=input.ToCharArray();
    16        foreach (char ch in chs)
    17        {
    18            if (ch == ' ')
    19            {
    20                Console.WriteLine();
    21            }

    22            else
    23            {
    24                ParseToMorse(ch);
    25            }

    26
    27        }

    28    }

    29
    30    private static void ParseToMorse(char ch)
    31    {
    32        string[] morses = new string[]{
    33            "._",//a
    34            "-",//b
    35            "_._.",//c
    36            "-..",//d
    37            ".",//e
    38            "..-.",//f
    39            "--.",//g
    40            ".",//h
    41           ".."//i
    42            ".---",//g
    43            "-.-",//k
    44           ".-.."//l
    45           "--"//m
    46           "-."//n
    47           "---"//o
    48           ".--."//p
    49            "--.-",//q
    50           ".-."//r
    51           ""//s
    52           "-"//t
    53           "..-"//u
    54           "-"//v
    55           ".--"//w
    56           "-..-"//x
    57           "-.--"//y
    58           "--.."//z     
    59        }
    ;
    60        Console.Write(morses[char.ToLower(ch) - 'a']);
    61        Console.Write(" ");            
    62    }

    63}



  • 相关阅读:
    ubuntu系统下Python虚拟环境的安装和使用
    jquery访问浏览器本地存储cookie,localStorage和sessionStorage
    前端笔记----jquery入门知识点总结
    jquery事件使用方法总结
    ajax和jsonp使用总结
    用python的TK模块实现猜成语游戏(附源码)
    前端笔记----类型转换display
    Java标识符
    Java的关键字
    java环境变量的配置
  • 原文地址:https://www.cnblogs.com/iPeterRex/p/1326691.html
Copyright © 2011-2022 走看看