设计一个莫尔斯电码电报机
//设计一个电报机
//要导入的包
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFrame;
//界面设置,包括按钮,面板
public class LXCON extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JFrame f;
JPanel p1,p2,p3;
JTextField t1,t2;
Label l1= new Label("INPUT");
Label l2=new Label("OUTPUT");
JButton b1[]=new JButton[3];
String b[]= {"CLEAR","SWITCH","BEEP"};
public LXCON(){
f=new JFrame("摩尔斯电码转换器V1.1");
t1=new JTextField(35);
t2=new JTextField(35);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
f.setBounds(400, 200, 500,300);
f.add(p1,BorderLayout.NORTH);
f.add(p2,BorderLayout.SOUTH);
f.add(p3,BorderLayout.CENTER);
p3.setLayout(new GridLayout(1,3));
p1.add(t1);
p1.add(l1);
p2.add(t2);
p2.add(l2);
for(int i=0;i<3;i++) {
b1[i]=new JButton(b[i]);
p3.add(b1[i]);
b1[i].addActionListener(this);
}
//
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1[0]) {
t2.setText("");
t1.setText("");
}
else if (e.getSource()==b1[1]) {
t2.setText(mo(t1.getText()));
}
else if (e.getSource()==b1[2]) {
try {
beee(t2.getText());
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public static String mosc (String toEncode)
{
String morse = toEncode;
if (toEncode.equalsIgnoreCase("a"))
morse = ".-";
if (toEncode.equalsIgnoreCase("b"))
morse = "-...";
if (toEncode.equalsIgnoreCase("c"))
morse = "-.-.";
if (toEncode.equalsIgnoreCase("d"))
morse = "-..";
if (toEncode.equalsIgnoreCase("e"))
morse = ".";
if (toEncode.equalsIgnoreCase("f"))
morse = "..-.";
if (toEncode.equalsIgnoreCase("g"))
morse = "--.";
if (toEncode.equalsIgnoreCase("h"))
morse = "....";
if (toEncode.equalsIgnoreCase("i"))
morse = "..";
if (toEncode.equalsIgnoreCase("j"))
morse = ".---";
if (toEncode.equalsIgnoreCase("k"))
morse = "-.-";
if (toEncode.equalsIgnoreCase("l"))
morse = ".-..";
if (toEncode.equalsIgnoreCase("m"))
morse = "--";
if (toEncode.equalsIgnoreCase("n"))
morse = "-.";
if (toEncode.equalsIgnoreCase("o"))
morse = "---";
if (toEncode.equalsIgnoreCase("p"))
morse = ".--.";
if (toEncode.equalsIgnoreCase("q"))
morse = "--.-";
if (toEncode.equalsIgnoreCase("r"))
morse = ".-.";
if (toEncode.equalsIgnoreCase("s"))
morse = "...";
if (toEncode.equalsIgnoreCase("t"))
morse = "-";
if (toEncode.equalsIgnoreCase("u"))
morse = "..-";
if (toEncode.equalsIgnoreCase("v"))
morse = "...-";
if (toEncode.equalsIgnoreCase("w"))
morse = ".--";
if (toEncode.equalsIgnoreCase("x"))
morse = "-..-";
if (toEncode.equalsIgnoreCase("y"))
morse = "-.--";
if (toEncode.equalsIgnoreCase("z"))
morse = "--..";
if (toEncode.equalsIgnoreCase("0"))
morse = "-----";
if (toEncode.equalsIgnoreCase("1"))
morse = ".----";
if (toEncode.equalsIgnoreCase("2"))
morse = "..---";
if (toEncode.equalsIgnoreCase("3"))
morse = "...--";
if (toEncode.equalsIgnoreCase("4"))
morse = "....-";
if (toEncode.equalsIgnoreCase("5"))
morse = ".....";
if (toEncode.equalsIgnoreCase("6"))
morse = "-....";
if (toEncode.equalsIgnoreCase("7"))
morse = "--...";
if (toEncode.equalsIgnoreCase("8"))
morse = "---..";
if (toEncode.equalsIgnoreCase("9"))
morse = "----.";
if (toEncode.equalsIgnoreCase("."))
morse = ".-.-";
if (toEncode.equalsIgnoreCase(","))
morse = "--..--";
if (toEncode.equalsIgnoreCase("?"))
morse = "..--..";
return morse;
}
//我们输入的是字符串,所以需要利用上面的函数将字符串整体进行转换
public static String mo(String moo) {
String mo1="";
for (int i = 0; i < moo.length(); i++) {
mo1+=mosc(Character.toString(moo.charAt(i)));
}
return mo1;
}
//再加一个打哔哔声的功能,就是把莫尔斯电码打出来
@SuppressWarnings("deprecation")
public static class Player extends JFrame{
/**
*
*/
public static void bf(){
try {
URL cb;
File f = new File("C:/Users/86180/Desktop/beep_1.wav"); //引号里面的是音乐文件所在的绝对路径
cb = f.toURL();
AudioClip aau;
aau = Applet.newAudioClip(cb);//加载音频
aau.play(); //播放音频
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
//将莫斯码单个字符分析,调用上面的函数发声
public static void beee(String cod) throws InterruptedException {
for (int i = 0; i < cod.length(); i++) {
if(cod.charAt(i)=='.') {
System.out.println("beep");
Player.bf();
Thread.currentThread().sleep(100);
}
else if (cod.charAt(i)=='-') {
Thread.currentThread().sleep(300);
}
}
}
//主函数
public static void main(String[] args) {
new LXCON();
}
}
这样就完成了,试试效果如何
设计一个莫尔斯电码电报机相关推荐
- 树莓派作品2_莫尔斯电码
一.创意来源 莫尔斯电码历史悠久,我从小时候就听说过莫尔斯电码了伟大了,不过直至今日我都没有机会过过手瘾,亲手用莫尔斯电码来输出一些有意义的句子. 不过有了树莓派,一切都不成问题,只要两个按钮,就能帮 ...
- uva508 莫尔斯电码(Morse Mismatches)
首先我理解错了题意,在这篇文章找到了UVa 508 Morse Mismatches(莫尔斯电码) 这题的意思是给定一些莫尔斯编码,给定一些已知字典,给定一些编码,求解这些编码的对应原文,如果可以精确 ...
- 习题4-6 莫尔斯电码 UVa508
算法竞赛入门经典(第2版)第4章 函数和递归 习题4-6 莫尔斯电码 UVa508 感悟. 1.阅读书中题目,从网站下载英文原题,重点在看输入输出数据与格式. 2.英文的阅读量还是比较大的,莫尔斯电 ...
- 莫尔斯电码对照表_使用莫尔斯电码编码纯文本
莫尔斯电码对照表 This began as a thought experiment while waiting for patches to install on my system. 这是在等待 ...
- 莫尔斯电码(Python)
莫尔斯电码采用了短脉冲和长脉冲 (分别为点和点划线) 来编码字母和数字. 例如,字母"A"是点划线,"B"是点划线点点.如文件 Mos.txt 文件所示. A ...
- java 设计一个geometricobject类,geometricobject类
(2) Circle 类和 Rectangle 类是 GeometricObject 类的子类,其中应实现 父类的抽象方法. (3) 程序主方法中创建两个几何对象,一个圆和一个矩形,并用 ...... ...
- 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...
对于设计模式,自己很早之前就看了好多本设计模式书籍,其中一些还看了好几遍,也一直希望自己能在编码的时候把这些设计模式用上去.可是,在日常的打码中,用的最多的就是单例,其次是观察者和建造者模式 ( bu ...
- 如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!
作者 | CloudFactory 译者 | 天道酬勤 责编 | 徐威龙 出品 | AI科技大本营(ID:rgznai100) 高效的机器学习模型需要高质量的数据.训练你的机器学习模型并不是过程中的单 ...
- 如何设计一个支撑数亿用户的系统
欢迎关注方志朋的博客,回复"666"获面试宝典 要设计出一套能支撑几十亿人的系统是很困难的.对于软件架构师来说,这一直是一项很大的挑战,但是,从现在开始,看完我的文章,你就会觉得容 ...
最新文章
- 无法启动python怎么办_解决python写的windows服务不能启动的问题
- 深度学习核心技术精讲100篇(四十九)-深度学习之关联规则
- python容器数据类型_python collections 容器数据类型
- 关于代码评审的微博讨论汇集
- 转载:opencv中imshow函数运行中断的解决办法
- vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...
- Elastic-job 2.1.3 概述
- Python实战从入门到精通第二讲——类
- 009 - CSS预处理器less sass SAML SSO 单点登录 websocket socket.io
- centos 并发请求数_jmeter 实战分析并发、RPS、RT 公式换算
- Windows XP英文版安装中文语言包来解决无法显示中文的方法(转载)
- 民间股神:上海殷保华的股票操盘手奇人绝技
- 网上一好人收集的PDF制作软件大全
- php进销存源码系统开发
- 【上汽零束SOA】云管端一体化SOA软件平台系列介绍之一:产品篇
- javascript实现简单的新消息语音提醒功能
- 第2章 物联网安全基础
- pythonround18.67 1,Python语句 print(pow(-3,2), round(18.67,1), round(...
- MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)
- Python——信号量、条件变量、事件
热门文章
- 还在搞公众号互推涨粉?这个小工具助你粉丝躺增!
- Matplotlib数据可视化基础
- 【20保研】北京航空航天大学计算机学院2019年全国优秀大学生夏令营活动通知...
- centos 中英文输入法切换
- 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)...
- 设计思维引导设计实践
- 如何建立维基百科页面(Wikipedia)
- 最新pr值大于6的网站大全
- PostgreSQL do $$ DECLARE 操作
- python读音有道-Python 20行简单实现有道在线翻译的详解