




已阅读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年下半年黑龙江省水利厅事业单位公开招聘工作人员68人备考考试题库附答案解析
- 2025南平浦城县南浦生态工业园区开发有限公司工程项目管理人员招聘10人备考考试题库附答案解析
- 2025贵州织金县第九中学日语教师临聘备考考试题库附答案解析
- 2025年8月广东深圳市大鹏新区大鹏办事处招聘编外人员3人备考考试题库附答案解析
- 2025河北保定市涞源县招聘社区工作者32人考试参考试题及答案解析
- 2025四川绵阳三台县卫生健康局三台县医疗卫生辅助岗招募52人备考考试题库附答案解析
- 2025年某三甲医院公开招聘医疗岗位工作人员(1人)备考考试题库附答案解析
- 2026中国科学院工程热物理研究所科研部门招聘99人考试参考试题及答案解析
- 基于机器学习的阿德福韦酯费用效益预测模型研究-洞察及研究
- 运动游戏的教与学
- Module 9 great inventions Unit 3 教学设计 2024-2025学年外研版九年级英语上册
- 医院危险化学品安全管理制度
- 特殊教育《学习剪指甲》
- 投资担保合同范本7篇
- 高速公路工程项目居间费标准
- 污水处理中的养殖废水处理方法
- 兰州交通大学《高等数学》测验题库及参考答案
- 幼儿园主题网络图框架培训
- 2025年北京控股集团有限公司招聘笔试参考题库含答案解析
- 职场仪表培训
- 【MOOC】通信原理-西安邮电大学 中国大学慕课MOOC答案
评论
0/150
提交评论