编写一个java/swing程序,它可以执行十进制到二进制和二进制到十进制转换。 230
求问。。编写一个java/swing程序,它可以执行十进制到二进制和二进制到十进制转换。如图框架的上半部分允许用户输入一个十进制数。当按下“转换”按钮时,将显示二进制等价...
求问。。编写一个java/swing程序,它可以执行十进制到二进制和二进制到十进制转换。如图框架的上半部分允许用户输入一个十进制数。当按下“转换”按钮时,将显示二进制等价数。框架的下半部分从二进制转换为十进制。您的程序需要在0-255范围内处理数字,如果输入的值超出该范围,则提供适当的反馈。对于转换,您需要为number/base转换编写自己的方法(例如,不要使用可用的内置函数……自己写)。您的框架应该与以下内容类似:
public static boolean checkTen(Integer num){
if(num<0){
System.out.println("数字小于0,不符要求,请重新输入:");
Integer in=Integer.valueOf(new Scanner(System.in).nextLine());
checkTen(in);
}
return true;
}
public static boolean checkBinary(String binary){
for(int i=0;i<binary.length();i++){
char in=binary.charAt(i);
if(!(in=='0' || in=='1')){
System.out.println("二进制种不能出现0和1以外的数字,请重新输入:");
String cin=new Scanner(System.in).nextLine();
checkBinary(cin);
}
}
return true;
}
public static void main(String[] args) {
System.out.println("请输入一个十进制数:");
String in=new Scanner(System.in).nextLine();
Integer num =Integer.valueOf(in);
if(checkTen(num)){
System.out.println("转换为二进制:"+Integer.toBinaryString(num));
}
System.out.println("请输入一个二进制数字:");
String binary=new Scanner(System.in).nextLine();
if(checkBinary(binary)){
System.out.println("转换为十进制:"+Integer.valueOf(binary, 2).toString());
}
} 展开
public static boolean checkTen(Integer num){
if(num<0){
System.out.println("数字小于0,不符要求,请重新输入:");
Integer in=Integer.valueOf(new Scanner(System.in).nextLine());
checkTen(in);
}
return true;
}
public static boolean checkBinary(String binary){
for(int i=0;i<binary.length();i++){
char in=binary.charAt(i);
if(!(in=='0' || in=='1')){
System.out.println("二进制种不能出现0和1以外的数字,请重新输入:");
String cin=new Scanner(System.in).nextLine();
checkBinary(cin);
}
}
return true;
}
public static void main(String[] args) {
System.out.println("请输入一个十进制数:");
String in=new Scanner(System.in).nextLine();
Integer num =Integer.valueOf(in);
if(checkTen(num)){
System.out.println("转换为二进制:"+Integer.toBinaryString(num));
}
System.out.println("请输入一个二进制数字:");
String binary=new Scanner(System.in).nextLine();
if(checkBinary(binary)){
System.out.println("转换为十进制:"+Integer.valueOf(binary, 2).toString());
}
} 展开
展开全部
给你写好了 懒得下swing控件 手写了一个 临时写的有点乱
十转二用内置函数 二转十是自己写的过程 你也可以仿照我的写法把十转二改成过程
package erjinzhi;
import java.awt.*;
import java.awt.event.*;
public class erjinzhi_test extends Frame implements ActionListener{
Button tentotwo;
Button twototen;
Label l1;
Label l2;
Label l3;
Label l4;
Label l5;
TextField ten;
TextField two;
TextField ten1;
TextField two1;
Panel shang;
Panel zhong;
Panel xia;
Panel shang1;
Panel shang2;
Panel shang3;
Panel xia1;
Panel xia2;
Panel xia3;
public erjinzhi_test(){
tentotwo = new Button("十进制转二进制");
twototen = new Button("二进制转十进制");
ten = new TextField();
two = new TextField();
ten1 = new TextField();
two1 = new TextField();
l1 = new Label("十进制");
l2 = new Label("二进制");
l3 = new Label("进制转换工具");
l4 = new Label("十进制");
l5 = new Label("二进制");
shang = new Panel(new GridLayout(3,1));
shang1 = new Panel(new GridLayout(1,2));
shang1.add(l1);
shang1.add(ten);
shang.add(shang1);
shang3 = new Panel();
shang3.add(tentotwo);
shang.add(shang3);
shang2 = new Panel(new GridLayout(1,2));
shang2.add(l2);
shang2.add(two);
shang.add(shang2);
this.add(shang,BorderLayout.NORTH);
zhong = new Panel();
zhong.add(l3);
this.add(zhong,BorderLayout.CENTER);
xia = new Panel(new GridLayout(3,1));
xia1 = new Panel(new GridLayout(1,2));
xia1.add(l5);
xia1.add(two1);
xia.add(xia1);
xia3 = new Panel();
xia3.add(twototen);
xia.add(xia3);
xia2 = new Panel(new GridLayout(1,2));
xia2.add(l4);
xia2.add(ten1);
xia.add(xia2);
this.add(xia,BorderLayout.SOUTH);
this.setResizable(false);
this.setSize(280, 260);
this.setLocation(350, 100);
this.setTitle("进制转换工具");
this.setVisible(true);
tentotwo.addActionListener(this);
twototen.addActionListener(this);
}
public static void main(String[] args) {
new erjinzhi_test();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==tentotwo){
int number =Integer.parseInt(ten.getText());
two.setText(Integer.toBinaryString(number));
}
if(e.getSource()==twototen){
String str = two1.getText();
String st[] = new String[str.length()];
st = str.split("");
int len =str.length();
int sum=0;
int t=1;
for(int i=len;i>=1;i--){
int s =Integer.parseInt(st[i])*t;
t=t*2;
sum=s+sum;
}
String summ=sum+"";
ten1.setText(summ);
}
}
}
追问
麻烦您能再整理一下么,我不太会,这个程序后半截运行不出来,还有窗口无法关闭,我在问题里加了一段代码是互相转换的,能帮忙按题意改一下吗。谢谢了。
追答
你的是用内置函数,你题目不是说不可以用内置函数吗?我还特意写了个过程,要是用内置函数那就太简单了。 你还要不要改,改就回复一下,不好意思周末没上网。
窗口无法关闭是因为没写右上角的关闭按钮,自己添加一下,一句代码的事。
2018-06-06 · 知道合伙人互联网行家
关注
展开全部
作如下修改 即可
import javax.swing.JOptionPane;
public class test01 {
public static void main(String sgs[]) {
String num = JOptionPane.showInputDialog("请输入要转换的数字:");
int number = Integer.parseInt(num);
System.out.println("该数的二进制数值为:");
int sum;
String result = "";
for (int i = number; i >= 1; i /= 2) {
if (i % 2 == 0) {
sum = 0;
} else {
sum = 1;
}
result = sum + result;
}
System.out.print(result);
}
import javax.swing.JOptionPane;
public class test01 {
public static void main(String sgs[]) {
String num = JOptionPane.showInputDialog("请输入要转换的数字:");
int number = Integer.parseInt(num);
System.out.println("该数的二进制数值为:");
int sum;
String result = "";
for (int i = number; i >= 1; i /= 2) {
if (i % 2 == 0) {
sum = 0;
} else {
sum = 1;
}
result = sum + result;
}
System.out.print(result);
}
追问
我在问题里加了一段代码是互相转换的,能帮忙按题意改一下吗。谢谢了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前几天用C#做了个类似的项目,不过我是转16进制的,有个convert这个转,你试试看java有没有
string b = 25;
string a =Convert.ToString(b, 16);
Console.WriteLine(+a);
string b = 25;
string a =Convert.ToString(b, 16);
Console.WriteLine(+a);
更多追问追答
追问
看样子是不能直接使用,而且java里不能string b = 25, 只能int
追答
大致是这么写,int什么都可以的,只要你有convert。你试试int吧,我也没记得具体怎么写,自己多琢磨下就OK了。记得采纳哦
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个作业要求是翻译过来的,看着这么别扭
更多追问追答
追问
是的
追答
你在国外吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询