使用C#实现Morse码的输出
一直在研讀的《C語言的科學(xué)和藝術(shù)》一書中有這么一道題,涉及了string類型。但是作者給提供的庫實(shí)在是不好用,因此我想改用C#開發(fā)。眾所周知,C和C#的不同是:C語言是面向過程的傳統(tǒng)編程語言,C#是面向?qū)ο蟮默F(xiàn)代編程語言。盡管如此,但我認(rèn)為我們?nèi)匀豢梢栽贑#中學(xué)習(xí)面向過程的思想。采用控制臺(tái)應(yīng)用程序,在Program類中編寫代碼。
原題:
1844年5月,Samuel F.B.Morse 用電報(bào)從美國的華盛頓發(fā)送了一條消息“What hath God wrought !”美國的巴爾的摩,從此開創(chuàng)了電子通信的新紀(jì)元。為了使這種通信方式只需要使用一種音符的有無就可以進(jìn)行,Morse設(shè)計(jì)了一種編碼系統(tǒng)。在這種編碼系 統(tǒng)中,字母和其他的字符分別用長短不一的編碼系列來實(shí)現(xiàn),我們通常稱之為點(diǎn)和橫,在Morse編碼系統(tǒng)中,字母表中的26個(gè)字母是用如下方法表示的:
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 - - . .
我們很容易在程序中聲明一個(gè)含有26個(gè)元素的數(shù)組.存儲(chǔ)26個(gè)字母的Morse碼。
寫一個(gè)程序,從用戶處輸入一個(gè)字符串,將字符串中每個(gè)字母轉(zhuǎn)換成相應(yīng)的Morse碼,用句號(hào)表示點(diǎn),用破折號(hào)表示橫。用換行符來表示單詞之間的空格,而忽略其中的其他標(biāo)點(diǎn)符號(hào)。你的程序應(yīng)該產(chǎn)生下列運(yùn)行示例:
?
其實(shí)仔細(xì)分析一下,程序還是非常簡單的。C#實(shí)現(xiàn)代碼如下:
?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}
轉(zhuǎn)載于:https://www.cnblogs.com/iPeterRex/archive/2008/11/04/1326691.html
總結(jié)
以上是生活随笔為你收集整理的使用C#实现Morse码的输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决弹出窗口固定大小及内容的问题
- 下一篇: 小赢卡贷证件号码被占用是什么意思