java实现NRZ Encoding,javanrzencoding,NRZ Encoding
分享于 点击 17112 次 点评:33
java实现NRZ Encoding,javanrzencoding,NRZ Encoding
NRZ Encoding
package nrz;import java.applet.*;import java.awt.*;import java.util.Scanner;public class NRZ extends Applet { private static final long serialVersionUID = 1L; int w, h, EX, EY; public void init() { w = Integer.parseInt(getParameter("width")); h = Integer.parseInt(getParameter("height")); EY = (int) ((h - 30) / 2); EX = (int) ((w - 30) / 4); } final static int n = 1000; public void paint(Graphics g) { int y = h / 2; g.setColor(Color.black); g.drawLine(0, y, w, y);// 画出X轴 g.drawLine(10, 0, 10, h);// 画出Y轴 g.drawLine(w - 10, y - 10, w, y); g.drawLine(w - 10, y + 10, w, y);// 画X轴的箭头 g.drawLine(10, 0, 0, 10); g.drawLine(10, 0, 20, 10);// 画Y轴的箭头 int lenx, leny; lenx = (w - 30) / 10; leny = (h - 30) / 10; int Int = 1; for (int i = 0; i < 10; i++) { g.drawLine(10 + i * lenx, y, 10 + i * lenx, y - 10); } for (int i = 1; i < 10; i++) { String ss = String.valueOf(Int); // double类型转换为String类型 g.drawString(ss, 10 + i * lenx - 3, y + 20); Int = Int + 1; }// 画X轴坐标 Int = 1; for (int i = 1; i < 2; i++) { Int = Int + 1; g.drawString("+V", 20, y - 3 * leny); g.drawString("-V", 20, y + 3 * leny + 10); }// 画Y轴坐标 g.drawString("0", 10 + 2, y + 20); g.drawString("X", w - 10, y - 20); g.drawString("Y", 30, 10); g.setColor(Color.red); g.setColor(Color.red); System.out .println("Please enter a string of 0s & 1s as a signal with space between every two numbers:"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String[] s = str.split(" "); Integer[] c = new Integer[s.length]; for (int p = 0; p <= s.length; p++) { c[p] = Integer.parseInt(s[p]); System.out.println(c[p]); int k = (int) Math.pow(-1, c[p]); g.drawLine(10 + p * lenx, y + 3 * leny * k, 10 + (p + 1) * lenx, y + 3 * leny * k); } new NRZ(); }}
用户点评