使用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#實現代碼如下:
?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}
轉載于:https://www.cnblogs.com/iPeterRex/archive/2008/11/04/1326691.html
總結
以上是生活随笔為你收集整理的使用C#实现Morse码的输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决弹出窗口固定大小及内容的问题
- 下一篇: C#中保存Gif文件设置透明无效果