`

第10章 课后作业3、5

    博客分类:
  • java
阅读更多

课本《Java大学实用教程(第二版)》 耿祥义 张跃平 编著

Code:
  1. packagech10;
  2. importjava.awt.Color;
  3. importjava.awt.Dimension;
  4. importjava.awt.FlowLayout;
  5. importjava.awt.event.ActionEvent;
  6. importjava.awt.event.ActionListener;
  7. importjavax.swing.Box;
  8. importjavax.swing.JButton;
  9. importjavax.swing.JFrame;
  10. importjavax.swing.JOptionPane;
  11. importjavax.swing.JTextField;
  12. /*
  13. *
  14. *3.编写一个应用程序,设计4个按钮,分别命名为"加"、"减"、"乘"、"除";
  15. *还有3个文本框,单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。
  16. *
  17. **/
  18. publicclassCh10_3{
  19. publicstaticvoidmain(String[]args){
  20. newKey03();
  21. }
  22. }
  23. classKey03implementsActionListener{
  24. privateJButtonjb1,jb2,jb3,jb4;//4个按钮,分别命名为"加"、"减"、"乘"、"除"
  25. privateJTextFieldjt1,jt2,jt3;//3个文本框
  26. privateJFramejf;
  27. privateBoxbox1,box2,basebox;
  28. publicKey03(){
  29. jf=newJFrame("计算器v1.0");
  30. jf.setBounds(300,300,400,130);
  31. jf.setVisible(true);
  32. jf.setLayout(newFlowLayout());//两行一列
  33. jb1=newJButton("加");
  34. jb2=newJButton("减");
  35. jb3=newJButton("乘");
  36. jb4=newJButton("除");
  37. jb1.addActionListener(this);
  38. jb2.addActionListener(this);
  39. jb3.addActionListener(this);
  40. jb4.addActionListener(this);
  41. jt1=newJTextField("");
  42. jt2=newJTextField("");
  43. jt3=newJTextField("");
  44. //对文本框进行设置大小
  45. Dimensiondim2=newDimension(100,20);
  46. jt1.setPreferredSize(dim2);
  47. jt2.setPreferredSize(dim2);
  48. jt3.setPreferredSize(dim2);
  49. jt3.setEditable(false);//不允许编辑
  50. jt3.setBackground(Color.gray);
  51. box1=Box.createHorizontalBox();
  52. box1.add(jt1);
  53. box1.add(Box.createHorizontalStrut(10));
  54. box1.add(jt2);
  55. box1.add(Box.createHorizontalStrut(10));
  56. box1.add(jt3);
  57. box2=Box.createHorizontalBox();
  58. box2.add(jb1);
  59. box2.add(Box.createHorizontalStrut(10));
  60. box2.add(jb2);
  61. box2.add(Box.createHorizontalStrut(10));
  62. box2.add(jb3);
  63. box2.add(Box.createHorizontalStrut(10));
  64. box2.add(jb4);
  65. basebox=Box.createVerticalBox();
  66. basebox.add(box1);
  67. basebox.add(Box.createVerticalStrut(10));
  68. basebox.add(box2);
  69. jf.add(basebox);
  70. jf.validate();
  71. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  72. }
  73. publicvoidactionPerformed(ActionEvente){
  74. Stringtemp1=jt1.getText().trim();
  75. Stringtemp2=jt2.getText().trim();
  76. if(temp1.equals("")||temp2.equals("")){//判断是否输入为空值。
  77. JOptionPane.showMessageDialog(jf,"文本框不能为空。");
  78. }else{
  79. doublea=0,b=0;
  80. try{
  81. a=Double.parseDouble(temp1);
  82. b=Double.parseDouble(temp2);
  83. }catch(Exceptione1){
  84. JOptionPane.showMessageDialog(jf,"您输入了非法字符,请输入正确的数字。");
  85. return;//退出
  86. }
  87. if(e.getSource()==jb1){//+
  88. jt3.setText(""+(a+b));
  89. System.out.println(""+(a+b));
  90. }elseif(e.getSource()==jb2){//减
  91. jt3.setText(""+(a-b));
  92. }elseif(e.getSource()==jb3){//乘
  93. jt3.setText(""+(a*b));
  94. }elseif(e.getSource()==jb4){//除
  95. jt3.setText(""+(a/b));
  96. }
  97. }
  98. }
  99. }

运行结果:

运行结果

Code:
  1. packagech10;
  2. //编写有两个文本区的应用程序,当我们在一个文本区中输入若干个数时,另一个文本区同时对输入的数进行
  3. //求和运算并求出平均值,也就是说随着输入的变化,另一个文本区不断的变化。
  4. importjava.awt.BorderLayout;
  5. importjava.awt.GridLayout;
  6. importjava.util.Vector;
  7. importjava.util.regex.Matcher;
  8. importjava.util.regex.Pattern;
  9. importjavax.swing.JFrame;
  10. importjavax.swing.JPanel;
  11. importjavax.swing.JScrollPane;
  12. importjavax.swing.JTextArea;
  13. importjavax.swing.event.DocumentEvent;
  14. importjavax.swing.event.DocumentListener;
  15. publicclassCh10_5{
  16. publicstaticvoidmain(String[]args){
  17. newKey5();
  18. }
  19. }
  20. classKey5implementsDocumentListener{
  21. privateJFramejf;
  22. privateJTextAreajta1,jta2;
  23. privatePatternp;//模式对象
  24. privateMatcherm;//匹配对象
  25. publicKey5(){
  26. jf=newJFrame("自动求和与算平均数");
  27. jta1=newJTextArea();
  28. jta2=newJTextArea();
  29. JPaneljp=newJPanel(newGridLayout(1,2));
  30. jp.add(newJScrollPane(jta1));
  31. jp.add(newJScrollPane(jta2));
  32. jf.add(jp,BorderLayout.CENTER);
  33. jf.validate();
  34. (jta1.getDocument()).addDocumentListener(this);
  35. jf.setBounds(200,200,400,400);
  36. jf.setVisible(true);
  37. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38. }
  39. publicvoidchangedUpdate(DocumentEvente){
  40. System.out.println("2");
  41. jta2.setText(null);//置空
  42. Stringstr=jta1.getText();
  43. //[^//s//d//p{Punct}]+
  44. p=Pattern.compile("[//p{Digit}]+");//初始化模式对象
  45. m=p.matcher(str);
  46. Vector<Double>vec=newVector<Double>();//使用vector装载所匹配的对象。
  47. while(m.find()){
  48. StringgetS=m.group();
  49. vec.add(Double.parseDouble(getS));
  50. }
  51. if(vec!=null){
  52. doubleresult=0;
  53. for(inti=0;i<vec.size();i++){
  54. result+=(Double)vec.get(i);
  55. }
  56. jta2.setText(null);
  57. jta2.append("总和为:"+result+"/n");
  58. jta2.append("平均数:"+result/vec.size());
  59. }
  60. }
  61. publicvoidinsertUpdate(DocumentEvente){
  62. changedUpdate(e);
  63. }
  64. publicvoidremoveUpdate(DocumentEvente){
  65. changedUpdate(e);
  66. }
  67. }

运行结果:

运行结果2

分享到:
评论

相关推荐

    第4章课后作业的答案1

    C# 程序设计第四章课后作业答案详解 在本节中,我们将逐步解释 C# 程序设计第四章课后作业的答案,从而帮助读者更好地理解和掌握 C# 语言的基本概念和应用。 一、阶梯式测验 阶梯式测验是 C# 程序设计中的一种...

    《计算机操作系统(第四版)》第四章课后习题答案.docx

    计算机操作系统第四章习题答案 本资源共计13道题,涵盖计算机操作系统的多个方面,包括存储器管理、链接方式、动态分区分配、内存管理等。此资源可以帮助学习者更好地理解计算机操作系统的基本概念和原理。 1. 为...

    《计算机操作系统(第四版)》第三章课后习题答案.docx

    《计算机操作系统(第四版)》第三章课后习题答案 本资源摘要信息对应的文件标题是《计算机操作系统(第四版)》第三章课后习题答案.docx。下面将对该文件的内容进行详细的知识点解读和总结。 作业和作业控制块 1...

    java 第一章的课后作业

    第一个构造器为 `Student2` 对象设置基本属性,第二个构造器提供了更多的自定义选项。 ### 访问控制修饰符 访问控制修饰符用于控制类、方法或变量的可见性。在 `Student1` 类中可以看到 `private` 修饰符的使用: `...

    数值计算方法 第四章 课后作业

    《数值计算方法》第四章主要涉及的是多项式插值方法,包括拉格朗日插值、牛顿向前插值和牛顿向后插值。这些方法在数学和工程计算中广泛应用,用于通过有限个离散数据点构造一个多项式函数,以近似表示一个连续函数。...

    第4章课后作业1

    【标题】:“第4章课后作业1”讨论了计算机体系结构、MIPS汇编语言、性能比较和数据通路设计。 【描述】中的代码片段是MIPS指令,用于处理循环逻辑,涉及到位移操作、地址计算、加载、条件分支和循环控制。这段代码...

    审计(2016)第10章采购与付款循环的审计课后作业.doc

    审计(2016)第10章采购与付款循环的审计课后作业.doc

    《软件工程导论》(第 6 版)1 - 13 章课后习题详解答案,解答全面细致 涵盖多领域,包括理论讲解、案例分析及设计方法等

    它涵盖了《软件工程导论》第六版教材的前 13 章课后习题的详细答案解析。无论是用于学生课后自我检测与学习巩固,还是作为教师的教学辅助材料,都能发挥重要作用。该资源以清晰的逻辑和准确的表述,对每一道习题进行...

    ACCP6.0JAVA课后作业题(全)

    在ACCP6.0JAVA课程的学习过程中,课后作业题扮演着至关重要的角色。它不仅是对课堂知识的巩固,更是对学习者编程能力的一次次检测和提升。课后题的设计往往紧跟教学进度,从易到难,循序渐进,覆盖了Java编程语言的...

    计算机网络课后习题答案(第五章).pdf

    "计算机网络课后习题答案(第五章)" 计算机网络课后习题答案(第五章)是计算机网络课程的重要组成部分,本章节主要讨论传输层的知识点。下面是对该章节的详细解释和知识点总结: 1. 运输层的位置和作用 运输层是...

    北大青鸟6.0S2Chapter11章课后作业源码.rar

    【北大青鸟6.0 S2 Chapter11章课后作业源码.rar】这个压缩包文件,主要包含的是北大青鸟计算机教育体系中第六个版本第二学期第十一章的编程作业源代码。北大青鸟是一家知名的IT职业教育机构,其课程内容广泛且深入,...

    VB.NET 课后作业

    在"VB.NET 课后作业第二章"中,我们可能涉及到以下几个核心知识点: 1. **VB.NET基础语法**:包括变量声明、数据类型(如 Integer、String、Boolean 等)、运算符、控制结构(如 If...Then、For...Next、While......

    编译原理第2-10章课后答案

    本资源包含了《编译原理第三版》教材的第二章至第十章的课后习题答案,对于学习和深入理解编译过程具有重要价值。 1. **编译器的基本结构** - **词法分析器(Lexer)**:将源代码分解成一个个的词法单元(Token)...

    SQL北大青鸟课后作业

    作为北大青鸟课程的一部分,SQL课后作业旨在帮助学生深入理解和掌握这门语言,为未来的职业生涯奠定坚实的基础。接下来,我们将详细探讨SQL的相关知识点,通过分析这些作业的可能内容来深化理解。 1. SQL基础:SQL...

    微机原理与接口技术第4章课后作业答案PPT课件.ppt

    本节课后作业答案PPT课件涵盖了微机原理与接口技术第4章的相关知识点,包括汇编语言程序设计、数据定义语句、指令语句的执行结果、无符号双子长数之和的程序设计、测试寄存器的某一位是否为0、将二进制数转换为ASCII...

    UNIX Shell 范例精解 第14章课后作业

    在"UNIX Shell 范例精解 第14章课后作业"中,我们关注的是第四版的第14.13章节,具体涉及了从习题54到61的部分作业。由于这是一个学习过程,可能会包含一些错误,这正是自我修正和提高的机会。 首先,让我们来理解...

Global site tag (gtag.js) - Google Analytics