--------------------------------------------------------------------------------------------------------
//八进制或十辣进制转换成十进制I
public String goto_10(String s,long l)
//参数s: 是要转换的字符串,由于输入的控制,保证了字符串的合法性;
//参数l: 使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16;
{ String str=s; //用来转换的字符串
long j=l; //表示进制
long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权
char cha;//临时记录要转换的字符
for(int i=1;i<=str.length();i++)
{ cha=str.charAt(str.length()-i);
switch(cha)
{ case '1': lg=lg+1*jing;break;
case '2': lg=lg+2*jing;break;
case '3': lg=lg+3*jing;break;
case '4': lg=lg+4*jing;break;
case '5': lg=lg+5*jing;break;
case '6': lg=lg+6*jing;break;
case '7': lg=lg+7*jing;break;
case '8': lg=lg+8*jing;break;
case '9': lg=lg+9*jing;break;
case 'A': lg=lg+10*jing;break;
case 'B': lg=lg+11*jing;break;
case 'C': lg=lg+12*jing;break;
case 'D': lg=lg+13*jing;break;
case 'E': lg=lg+14*jing;break;
case 'F': lg=lg+15*jing;break;}
jing*=j; //位权升一级,为下次使用做好准备
}
return Long.toString(lg);
}//end String goto_10() method
}
(2)程序流程图
三、详细设计
import java.awt.*;
import java.awt.event.*;
class This_number_too_big extends Exception
{}//自定义的一个结果溢出异常类
class Jsp2003 extends Frame implements ItemListener,ActionListener {
public Jsp2003() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
}
static Jsp2003 mainFrame = new Jsp2003();
static Label lab=new Label("0");
static Panel pnl1=new Panel(new GridLayout(4,3,3,3));
static Panel pnl2=new Panel(new GridLayout(4,1,3,3));
static Panel pnl3=new Panel(new GridLayout(1,2,3,3));
static Panel pnl4=new Panel(new GridLayout(6,1,3,3));
static Button bt9=new Button("9");
static Button bt8=new Button("8");
static Button bt7=new Button("7");
static Button bt6=new Button("6");
static Button bt5=new Button("5");
static Button bt4=new Button("4");
static Button bt3=new Button("3");
static Button bt2=new Button("2");
static Button bt1=new Button("1");
static Button bt0=new Button("0");
static Button btdot=new Button(".");
static Button btequ=new Button("=");
static Button btadd=new Button("+");
static Button btsub=new Button("-");
static Button btmul=new Button("*");
static Button btdev=new Button("/");
static Button btA=new Button("A");
static Button btB=new Button("B");
static Button btC=new Button("C");
static Button btD=new Button("D");
static Button btE=new Button("E");
static Button btF=new Button("F");
static Checkbox ckb8=new Checkbox("八进制");
static Checkbox ckb10=new Checkbox("十进制");
static Checkbox ckb16=new Checkbox("十辣进制");
static Button btc=new Button("clear");
static Button btt=new Button("backspace");
public int number=0,length=18;
//number是用来记录输入的数字个数,length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制
public char mark='n'; //设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’
public double data=0; //设置运算数据为零
public char ch; //用来临时存放所按按钮的第一个字符
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页