欢迎来到天天文库
浏览记录
ID:9039423
大小:224.50 KB
页数:9页
时间:2018-04-15
《数据结构实验四则运算-邹家运》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、中南林业科技大学涉外学院实验报告课题一课程名称数据结构年级系部2010级理工系专业班级计算机科学与技术1班学生姓名邹家运学号20107994任课教师余波2011年12月课题一:有理数的四则运算1.需求分析:a.设计一个可进行有理数运算的演示程序b.实现二个有理数的相加,相减,相乘,相除,以及求分子或求分母的运算,数据有用户自己定义。c.测试数据用由用户自己定义。2.概要设计:为了实现这个功能,本程序充分利用了拆分字符的函数,根据用户点击的按钮不同进行不同的拆分。3.详细设计:3.1所需要的开发环境:java语言,windows7,eclipse,jdk1.63
2、.2在java中提供了split函数用来分隔字符,这样看来就变得简单了。4.实验分析:这个实验中,把计算的类型分成二种情况,一种是计算非分数的,一种是计算分数的。计算非分数运算:首先获取文本输入框里的表达式,再根据里面包含的运算符号,把表达式分成二个部分,再根据运算符号计算结果。计算分数运算:首先获取文本输入框里的表达式,再根据里面包含的运算符号,把表达式分成二个部分,这里因为是分数,所以把这二个部分每个部分又要分别分成二个部分,这样我们就得到了这二个分数的分子,分母,再做相应的运算,化简结果。4.1*特别声明*:在做分子除法运算的时候,这个程序里面用“!”作
3、为其运算符,这样的话就利于分隔了,例如4/3!8/9;原因:因为进行分数除法运算时我们如果按“/”分隔表达式的话,这样不好处理,例如1/3/4/5,这样如果用”/”分隔就会出错。5.实现代码:importjava.awt.*;importjavax.swing.*;importjava.awt.Event;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassJiSuanQiextendsJFrameimplementsActionListener{//编
4、写界面JPaneljp1,jp2,jp3;JButtonjb1,jb2,jb3;JTextFieldjt;publicstaticvoidmain(String[]args){newJiSuanQi();}publicJiSuanQi(){jp1=newJPanel();jp2=newJPanel();jt=newJTextField(15);jb1=newJButton("计算非分数");jb1.addActionListener(this);jb2=newJButton("计算分数");jb2.addActionListener(this);jb3=new
5、JButton("取消");jb3.addActionListener(this);jp1.add(jt);jp2.add(jb1);jp2.add(jb2);jp2.add(jb3);this.setLayout(newGridLayout(2,1));this.add(jp1);this.add(jp2);this.pack();this.setLocation(500,200);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepubli
6、cvoidactionPerformed(ActionEvente){Stringst=jt.getText();try{//处理非分数计算if(e.getSource()==jb1){if(st.contains("+")){//如果文本框中包含“+“Stringnums[]=st.split("\+",2);//以“+“分隔成二个部分Floatnum1=Float.parseFloat(nums[0]);Floatnum2=Float.parseFloat(nums[1]);jt.setText((num1+num2)+"");}if(st.contai
7、ns("-")){Stringnums[]=st.split("\-",2);Floatnum1=Float.parseFloat(nums[0]);Floatnum2=Float.parseFloat(nums[1]);jt.setText((num1-num2)+"");}if(st.contains("*")){Stringnums[]=st.split("\*",2);Floatnum1=Float.parseFloat(nums[0]);Floatnum2=Float.parseFloat(nums[1]);jt.setText((num1*nu
8、m2)+"");}if(st.cont
此文档下载收益归作者所有