1、从键盘任意输入0-9之间的任意一个数字,显示数字的电子格式
import java.util.Scanner; /* A, B, C, D 表示数字的各二进制位 a, b, c, d, e, f, g 表示 LED 的各段,为 1 时该段显示,为 0 时该段不显示 a ####### # # b f # g # ####### # # c e # # ####### d +---+---+---+---+---+ +---+---+---+---+---+---+---+ | | A | B | C | D | | a | b | c | d | e | f | g | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 1 | 0 | 0 | 0 | 1 | | 0 | 1 | 1 | 0 | 0 | 0 | 0 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 2 | 0 | 0 | 1 | 0 | | 1 | 1 | 0 | 1 | 1 | 0 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 3 | 0 | 0 | 1 | 1 | | 1 | 1 | 1 | 1 | 0 | 0 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 4 | 0 | 1 | 0 | 0 | | 0 | 1 | 1 | 0 | 0 | 1 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 5 | 0 | 1 | 0 | 1 | | 1 | 0 | 1 | 1 | 0 | 1 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 6 | 0 | 1 | 1 | 0 | | 1 | 0 | 1 | 1 | 1 | 1 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 7 | 0 | 1 | 1 | 1 | | 1 | 1 | 1 | 0 | 0 | 0 | 0 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 8 | 1 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ | 9 | 1 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | 0 | 1 | 1 | +---+---+---+---+---+ +---+---+---+---+---+---+---+ */ public class Num2LEDTest { public static void main(String[] args) { LED led = new LED(); Scanner in=new Scanner(System.in); String LEDStr=in.nextLine(); char[][] chss = led.getLED(LEDStr); LED.print(chss); } } class LED { /** * 每个 LED 的大小,可以进行调整 */ public final static int ROW = 7; public final static int COL = 7; /** * 每个 LED 的间隔 */ private final static int SEPARATOR = 1; private final static char FILL_CHAR = '#'; private final static char SPACE_CHAR = ' '; /** * 工具方法,用于输出 LED * @param chs */ public static void print(char[][] chs) { for(int i = 0; i < chs.length; i++) { for(int j = 0; j < chs[i].length; j++) { System.out.print(chs[i][j]); } System.out.println(); } } /** * 根据数字得到 LED 显示数组 * @param num * @return */ public char[][] getLED(String num) { char[] chs = num.toCharArray(); char[][][] chsss = new char[chs.length][][]; for(int i = 0; i < chs.length; i++) { chsss[i] = showLed(chs[i] - '0'); } return putManyLed(chsss); } /** * 将多个 LED 组成一排 * @param chsss * @return */ private char[][] putManyLed(char[][][] chsss) { if(chsss.length < 1) { throw new IllegalArgumentException("LED is NULL!"); } if(chsss.length == 1) { return chsss[0]; } char[][] chss = new char[ROW][chsss.length * (COL + SEPARATOR) - SEPARATOR]; for(int i = 0; i < chsss.length; i++) { int m = i * (COL + SEPARATOR); for(int j = 0; j < chsss[i].length; j++) { for(int k = 0; k < chsss[i][j].length; k++) { chss[j][m + k] = chsss[i][j][k]; } } } for(int i = 0; i < chss.length; i++) { for(int j = 0; j < chss[i].length; j++) { if(chss[i][j] != FILL_CHAR) { chss[i][j] = SPACE_CHAR; } } } return chss; } /** * * @param num * @return */ private char[][] showLed(int num) { boolean[] b = getLed(num); char[][] chs = new char[ROW][COL]; if(b[0]) for(int i = 0; i < COL; i++) chs[0][i] = FILL_CHAR; if(b[1]) for(int i = 0; i <= ROW / 2; i++) chs[i][COL - 1] = FILL_CHAR; if(b[2]) for(int i = ROW / 2; i < ROW; i++) chs[i][COL - 1] = FILL_CHAR; if(b[3]) for(int i = 0; i < COL; i++) chs[ROW - 1][i] = FILL_CHAR; if(b[4]) for(int i = ROW / 2; i < ROW; i++) chs[i][0] = FILL_CHAR; if(b[5]) for(int i = 0; i <= ROW /2; i++) chs[i][0] = FILL_CHAR; if(b[6]) for(int i = 0; i < COL; i++) chs[ROW / 2][i] = FILL_CHAR; return chs; } /** * 译码器 * * 0 * ####### * # # 1 * 5 # 6 # * ####### * # # * 4 # # 2 * ####### * 3 * * 0 表示 leds[0],若为 true 表示该 LED 显示,否则不显示 * * @param num * @return */ private boolean[] getLed(int num) { boolean a = (num & 8) >>> 3 == 1; boolean b = (num & 4) >>> 2 == 1; boolean c = (num & 2) >>> 1 == 1; boolean d = (num & 1) == 1; boolean[] leds = new boolean[7]; leds[0] = (!a & !b & !c & d) | (b & !d); leds[1] = (b & !c & d) | (b & c & !d); leds[2] = !b & c & !d; leds[3] = (b & !c & !d) | (!b & !c & d) | (b & c & d); leds[4] = d | (b & !c); leds[5] = (c & d) | (!b & c) | (!a & !b & d); leds[6] = (!a & !b & !c) | (b & c & d); for(int i = 0; i < 7; i++) { leds[i] = !leds[i]; } return leds; } }
运行截图
2、L"string"转换成_X("string")怎么实现,可利用一些文本编辑的工具。
此题求网友给出答案
3、有head1.h,head2.h,src1.cpp,src2.cpp,main.cpp怎么整合生成可执行文件xxx.exe或xxx,请写出具体步骤和编译执行过程。
我是用makefile加上gcc做的:
xxx: src1.o src2.o main.cpp
gcc xxx -o main.cpp
src1.o : head2.h src2.cpp
gcc -c src2.cpp -o src2.o
src1.o : head1.h src1.cpp
gcc -c src1.cpp -o src1.o
相关推荐
金山笔试题目很准确。金山笔试题
金山笔试题:涉及C++...及一些算法设计技术.....金山笔试题:涉及C++...及一些算法设计技术.....金山笔试题:涉及C++...及一些算法设计技术.....
金山网上笔试题,6月分,珠海金山的网上笔试题,都是些算法的
最新金山软件2011年C++工程师笔试试题
金山2010题目 测试笔试题 附上部分答案
金山软件·西山居游戏 笔试试题
金山笔试题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
金山2012校园招聘笔试题(Java方向)
金山2010校园招聘技术类Java笔试题 内容是图片形式的,看看吧,不错哦
金山 校园招聘 笔试题 自己看 金山 校园招聘 笔试题
金山软件工程师(java)笔试试题,希望各位能用得着.
金山2011年校园招聘C++笔试题 绝对真实
2014年金山WPS校招笔试题,包括选择题,部分大题,供参考
金山软件2014校园招聘你,笔试题 C++
金山2010年9月份校园招聘WPS服务端开发的笔试题,绝对真实!!
C++ 工程师 金山software 2010年校园招聘笔试题 技术类
金山软件2009笔试题,包括填空,简答和编程题
2011年最新金山软件校园招聘笔试题,java笔试题
金山软件2014校园招聘c++/ios笔试题,A卷,全部题目
金山公司最新笔试题。 这里是部分试题,对打算应聘金山的网友有很好的参考价值。