课程设计说明书 NO.1
Java简单计算器课程设计 1.功能描述 本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格,clear表示初始化,在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。 2.方案论证 2.1概要设计 2.1.1自定义类说明 ********************************************************** 类名: This_number_too_big 作用: 自定义的异常类,用来处理计算结果溢出 2进制转十进制在线计算器 继承的父类: Exception类 实现的接口: 没有 ********************************************************** class This_number_too_big extends Exception { }//自定义的一个结果溢出异常类 ********************************************************** 类名: Jsp2003 作用: 主类 继承的父类: Frame类 实现的接口: ItemListener类,ActionListener类 ********************************************************** class Jsp2003 extends Frame implements ItemListener,ActionListener { public int number=0,length=18; |
沈 阳 大 学
课程设计说明书 NO.2
//number是用来记录输入的数字个数, //length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制 public char mark='n'; //设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’ public double data=0; //设置运算数据为零 public char ch; //用来临时存放所按按钮的第一个字符 public boolean Refresh=false; //设置lab是否要在输入数据的时候刷新,初始为否 2.1.2主要方法说明://用来处理按了运算符后的计算- public void js() throws This_number_too_big //指定由method抛出异常 {if (mark=='n') //没有运算符 {mark=ch; //,则设置运算符为刚刚输入的字符, data=Double.Text());//则设置运算数据为lab的值 Refresh=true;//则设置下一次输入的时候要刷新lab } else //如果采用的是连续运算(即没有使用‘=’号)则运行下面的语句 {switch (mark) //根据运算符计算结果,并把结果保存到data { case '+': data+=Double.Text()); break; case '-': data-=Double.Text()); break; case '*': data*=Double.Text()); break; case '/': data/=Double.Text()); break;} lab.String(data)); //显示运算结果 mark=ch;//设置运算符为刚刚按下的运算符 Refresh=true;//则设置下一次输入的时候要刷新lab Text().length();//设置输入的字符个数 |
沈 阳 大 学
课程设计说明书 NO.3
// System.out.Text());//用来调试用的 if (data>Double.MAX_VALUE) //如果data超过double类型的最大值则抛出自定义的一个异常类 {throw new This_number_too_big(); } } }//end js() method public void enter()//处理输入字符 {if(Refresh==true) //如果已经设置了 运算符则在下一次输入数据的时候要把以前lab的内容清除掉 {lab.setText("0"); number=0; Refresh=false;} Text().charAt(0)=='0'&& Text().length()==1) //如果lab的内容为0则,lab的内容将被所输入的字符代替, //否则直接在lab的内容后面加上所输入的字符 {lab.String(ch)); number++;} else if(number<length) {number++;lab.Text()+ch);} }//end enter() method //八进制或十六进制转换成十进制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++) |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论