有关网站建设的说说娄底工程建设有限公司网站

当前位置: 首页 > news >正文

有关网站建设的说说,娄底工程建设有限公司网站,烟台教育平台网站建设,旅游网站设计背景《C/S项目实训》实验报告 实验名称#xff1a; 基本面向对象编程-计算机基本功能实现_ 一、实验目的 通过综合实践项目#xff0c;理解Java 程序设计是如何体现面向对象编程基本思想#xff0c;掌握OOP方法#xff0c;掌握事件触发、消息响应机制。进一步巩固面向对…《C/S项目实训》实验报告 实验名称  基本面向对象编程-计算机基本功能实现_     一、实验目的 通过综合实践项目理解Java 程序设计是如何体现面向对象编程基本思想掌握OOP方法掌握事件触发、消息响应机制。进一步巩固面向对象编程基本知识和技能为C/S模式项目开发打下基础。 二、实验题目及要求 1.实验题目 运用GUI技术事件触发、消息响应机制实现一个完整综合设计项目“模拟基本的计算机程序”的设计开发开发。 2.实验要求 (1)客户体验 以组为单位分别体验不同计算机类型的计算流程以及计算的结果展现方式根据体验结果总结体验感受并根据个人用户需求提出更人性化、功能更完善的系统使得实验项目更接近实战让学生理解一切项目都来源于应用归于用户体验和使用。 三、实验步骤、结果程序代码 计算器的运行页面 源代码如下 package cacu; import java.awt.Font; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class Mycacu extends JFrame{ JTextField tfResult; //输入结果显示框 JButton btNum[],btOper[],btEqual,btPoint;//设计输入按钮分为四种数字按钮,加减乘除操作按钮,等于号按钮, 小数点按钮. boolean isNum,isOper;//设计两个布尔型变量 double firstNum,secondNum;//定义两个双精度的变量 String operStr; public void init(){ //定义各个功能输入按钮的内容 tfResultnew JTextField(); btNumnew JButton[10]; for(int i0;i9;i) btNum[i]new JButton(i); btOpernew JButton[4]; btOper[0]new JButton(); btOper[1]new JButton(-); btOper[2]new JButton(); btOper[3]new JButton(/); btEqualnew JButton(); btPointnew JButton(.); JPanel panelnew JPanel(); panel.setLayout(new GridLayout(4,4));//创建流失布局依次部署按钮 panel.add(btNum[1]); panel.add(btNum[2]); panel.add(btNum[3]); panel.add(btOper[0]); panel.add(btNum[4]); panel.add(btNum[5]); panel.add(btNum[6]); panel.add(btOper[1]); panel.add(btNum[7]); panel.add(btNum[8]); panel.add(btNum[9]); panel.add(btOper[2]); panel.add(btPoint); panel.add(btNum[0]); panel.add(btEqual); panel.add(btOper[3]); //设计窗体的显示功能 this.add(tfResult,North); this.add(panel); this.setFont(new Font(宋体,Font.BOLD,18)); this.setTitle(浩宇牌计算器); this.setSize(400,400); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //窗体居中显示 // 得到显示器屏幕的宽、高 int width Toolkit.getDefaultToolkit().getScreenSize().width; int height Toolkit.getDefaultToolkit().getScreenSize().height; // 得到窗体的宽、高 int windowsWidth this.getWidth(); int windowsHeight this.getHeight(); this.setBounds((width - windowsWidth) / 2,(height - windowsHeight) / 2, windowsWidth, windowsHeight); //注册监听 MyActLis malnew MyActLis(); for(int i0;i9;i){ btNum[i].addActionListener(mal); } for(int i0;i4;i){ btOper[i].addActionListener(mal); } btEqual.addActionListener(mal); } public static void main(String[] args) { // TODO Auto-generated method stub new Mycacu().init(); } //监听器类设计 class MyActLis implements ActionListener{ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String se.getActionCommand(); if(s.equals(0)||s.equals(1)||s.equals(2)||s.equals(3)||s.equals(4)||s.equals(5)||s.equals(6)||s.equals(7)||s.equals(8)||s.equals(9)){ isOperfalse; if(isNumfalse){ isNumtrue; tfResult.setText(s); }else{ tfResult.setText(tfResult.getText()s); } } else if(s.equals()||s.equals(-)||s.equals()||s.equals(/)){ isOpertrue; isNumfalse; firstNumDouble.parseDouble(tfResult.getText()); operStrs; } else if(s.equals()){ isNumfalse; isOperfalse; if(operStr.equals()){ secondNumDouble.parseDouble(tfResult.getText()); tfResult.setText(firstNumsecondNum); } else if(operStr.equals(-)){ secondNumDouble.parseDouble(tfResult.getText()); tfResult.setText(firstNum-secondNum); } else if(operStr.equals(*)){ secondNumDouble.parseDouble(tfResult.getText()); tfResult.setText(firstNum*secondNum); } else if(operStr.equals(/)){ if(firstNum0){ JOptionPane.showMessageDialog(Mycacu.this, 输入错误,除数不为0); //优化1数学规则除数不为0当除数为0的时候弹出 框体提示    } else if(secondNum0) { secondNumDouble.parseDouble(tfResult.getText()); tfResult.setText(secondNum); //优化2当除数为0 的时候系统输出结果为0而不是计算机当中的infinite了 } else { secondNumDouble.parseDouble(tfResult.getText()); tfResult.setText(firstNum/secondNum); } } else if(10){ firstNumDouble.parseDouble(tfResult.getText()); //取出第一个输入的数字并以文本的方式来展现出来。 tfResult.setText(firstNum); } 四、实验中的问题以及解决方案 1、 问题在实际的计算过程中出现了被除数为0计算结果出错的情况。不符合实际的数学定理以及实际的应用的过程。 解决措施利用else-if语句对其进行了多条的验证判断第一个数字是否为0要是为0则弹出提示框提示被除数不为0达到了预期的效果 解决后的运行结果截图 2、问题当只点击一个数字的时候就点击等于号程序会在展示页面没有反应出现上图的类似的状况。 解决也是借用else-if语句设置了一个我自己认为的永真条件只输出和展示一个数字的结果 解决代码截图 3、问题当出现一个不为零的数除以0的时候运算结果不清楚与实际的数学意义上的结果存在差异 解决当进行除数运算的时候判断第二个数是否为0要是为0则输出设定好的答案。 4.问题当你只输入一个数字并点击运算符号而不输入第二个数字的时候它会将当前的数字当为第二个数字 解决正在解决当中ing~~~~~ 总结 通过此次的cs项目的编程试验使我进一步了解和体会了事件响应机制的原理自己在实际的编程过程中对于Java的基本知识也有了更为深入的理解。对于功能不同的按键的归纳总结有了更为深入的了解通过功能输入键的相同可以减少所编写的代码量减少工作量通过此次的实际编程对于java的基本知识和实际的操作流程。