已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47667-2026柔性直流输电换流阀用旁路晶闸管
- 葛根种植基地建设项目可行性研究报告
- 数智时代大学生思想政治教育分众滴灌的困境与纾解路径研究
- 人教版九年级上册英语全册详细教案(完整版)
- 2026党校结构化面试题及答案
- 2026干部建设面试题及答案大全
- 2026古巴电厂面试题及答案详解
- 2026河南医师面试题型及答案
- 2026吉林幼儿园面试题及答案
- 国际货运代理公司培训师述职报告
- 行政人事自我介绍
- 博雷顿产品介绍
- 四川水电集团招聘岗位综合能力测试客观题题库
- 支气管哮喘急性发作的紧急救护技巧
- 2026年光伏产业集团财务总监面试题及答案解析
- 煤矿职业病危害培训课件
- 2025年南充市农业科学院第二批引进高层次人才公开考核公开招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 【耳鼻喉9版】绪论和耳科学第七章 中耳炎性疾病
- 创伤性肾破裂的护理课件
- 安装断桥窗合同范本
- 水利工程维修养护费用标准
评论
0/150
提交评论