




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南林业科技大学涉外学院 实 验 报 告 课题一课程名称 数据结构 年级系部 2010级理工系 专业班级 计算机科学与技术1班学生姓名 邹家运 学号 20107994 任课教师 余波 2011年12月课题一:有理数的四则运算 1. 需求分析:a.设计一个可进行有理数运算的演示程序 b. 实现二个有理数的相加,相减,相乘,相除,以及求分子或求分母的运算,数据有用户自己定义。 c.测试数据用由用户自己定义。 2. 概要设计:为了实现这个功能,本程序充分利用了拆分字符的函数,根据用户点击的按钮不同进行不同的拆分。 3. 详细设计:3.1 所需要的开发环境:java语言,windows7,eclipse,jdk1.63.2 在java中提供了split函数用来分隔字符,这样看来就变得简单了。4.实验分析:这个实验中,把计算的类型分成二种情况,一种是计算非分数的,一种是计算分数的。计算非分数运算:首先获取文本输入框里的表达式,再根据里面包含的运算符号,把表达式分成二个部分,再根据运算符号计算结果。计算分数运算:首先获取文本输入框里的表达式,再根据里面包含的运算符号,把表达式分成二个部分,这里因为是分数,所以把这二个部分每个部分又要分别分成二个部分,这样我们就得到了这二个分数的分子,分母,再做相应的运算,化简结果。4.1*特别声明*:在做分子除法运算的时候,这个程序里面用“!”作为其运算符,这样的话就利于分隔了,例如4/3!8/9;原因:因为进行分数除法运算时我们如果按“/”分隔表达式的话,这样不好处理,例如1/3/4/5,这样如果用”/”分隔就会出错。 5. 实现代码:import java.awt.*;import javax.swing.*;import java.awt.Event;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class JiSuanQi extends JFrame implements ActionListener /编写界面JPanel jp1,jp2,jp3;JButton jb1,jb2,jb3;JTextField jt;public static void main(String args) new JiSuanQi();public JiSuanQi()jp1=new JPanel();jp2=new JPanel();jt=new JTextField(15);jb1=new JButton(计算非分数);jb1.addActionListener(this);jb2=new JButton(计算分数);jb2.addActionListener(this);jb3=new JButton(取消);jb3.addActionListener(this); jp1.add(jt); jp2.add(jb1); jp2.add(jb2); jp2.add(jb3); this.setLayout(new GridLayout(2,1); this.add(jp1); this.add(jp2); this.pack(); this.setLocation(500,200); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Overridepublic void actionPerformed(ActionEvent e) String st=jt.getText(); try /处理非分数计算 if(e.getSource()=jb1) if(st.contains(+)/如果文本框中包含“+“ String nums=st.split(+,2);/以“+“分隔成二个部分 Float num1= Float.parseFloat(nums0); Float num2= Float.parseFloat(nums1); jt.setText(num1+num2)+); if(st.contains(-) String nums=st.split(-,2); Float num1= Float.parseFloat(nums0); Float num2= Float.parseFloat(nums1); jt.setText(num1-num2)+); if(st.contains(*) String nums=st.split(*,2); Float num1= Float.parseFloat(nums0); Float num2= Float.parseFloat(nums1); jt.setText(num1*num2)+); if(st.contains(/) String nums=st.split(/,2); Float num1= Float.parseFloat(nums0); Float num2= Float.parseFloat(nums1); jt.setText(num1/num2)+); catch (Exception e2) JOptionPane.showMessageDialog(this, 您的输入有误!);try /处理分数计算if(e.getSource()=jb2)if(st.contains(+)String nums=st.split(+,2);/拆分分数,得到四个部分String fen1=nums0.split(/,2);String fen2=nums1.split(/,2);int fenz1=Integer.parseInt(fen10);/第一个分数的分子int fenm1=Integer.parseInt(fen11);/第一个分数的分母int fenz2=Integer.parseInt(fen20); /第二个分数的分子int fenm2=Integer.parseInt(fen21); /第二个分数的分子int r1=fenz1*fenm2+fenz2*fenm1;int x=r1;int r2=fenm2*fenm1;int y=r2;/化简结果int r=x%y;while(r!=0)x=y;y=r;r=x%y;jt.setText(r1/y+/+r2/y);if(st.contains(-)String nums=st.split(-,2);String fen1=nums0.split(/,2);String fen2=nums1.split(/,2);int fenz1=Integer.parseInt(fen10);int fenm1=Integer.parseInt(fen11);int fenz2=Integer.parseInt(fen20);int fenm2=Integer.parseInt(fen21);int r1=fenz1*fenm2-fenz2*fenm1;int x=r1;int r2=fenm2*fenm1;int y=r2;int r=x%y;while(r!=0)x=y;y=r;r=x%y;jt.setText(r1/y+/+r2/y);if(st.contains(*)String nums=st.split(*,2);String fen1=nums0.split(/,2);String fen2=nums1.split(/,2);int fenz1=Integer.parseInt(fen10);int fenm1=Integer.parseInt(fen11);int fenz2=Integer.parseInt(fen20);int fenm2=Integer.parseInt(fen21);int r1=fenz1*fenz2;int x=r1;int r2=fenm2*fenm1;int y=r2;int r=x%y;while(r!=0)x=y;y=r;r=x%y;jt.setText(r1/y+/+r2/y);if(st.contains(!)String nums=st.split(!,2);String fen1=nums0.split(/,2);String fen2=nums1.split(/,2);int fenz1=Integer.parseInt(fen10);int fenm1=Integer.parseInt(fen11);int fenz2=Integer.parseInt(fen20);int fenm2=Integer.parseInt(fen21);int r1=fenz1*fenm2;int x=r1;int r2=fenm1*fenz2;int y=r2;int r=x%y;while(r!=0)x=y;y=r;r=x%y;jt.setText(r1/y+/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学教师聘用合同
- 失根的兰花课件
- 银行试题及答案
- 银行食堂考试题及答案
- 核反应堆堆芯冷却剂化学成分监测技术合同
- 核反应堆堆芯控制棒位置监测合同
- 银行入职试题及答案
- 核反应堆堆芯核物理实验专利合同
- 银行风险考试题目及答案
- 考古面试题目及答案
- 2025年北京高考语文试卷试题真题及答案详解(精校打印版)
- 窗帘实施方案(3篇)
- 产品试验管理制度
- 2025-2030中国神经控制行业市场发展趋势与前景展望战略研究报告
- 2025年山东高考英语试题及答案
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 2025年安徽省邮政行业职业技能大赛(快件处理员赛项)备赛试题库(含答案)
- 2025安徽医科大学辅导员考试试题及答案
- 2025-2030年中国电动轮椅行业市场现状供需分析及投资评估规划分析研究报告
- 计件工资协议书
- 孕产妇围产保健技能竞赛题库
评论
0/150
提交评论