Java程序设计任务驱动式教程 04章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

主编:孙修东、王永红高职高专规划示范教材北京航空航天大学出版社2/22目录任务一搭建环境(构建Java集成开发环境)任务二Java欢迎你(开发简单Java应用程序任务三小试牛刀(学习Java语言基础)任务四挑战选择(使用分支控制流程)任务五游戏人生(使用循环控制流程)任务六回归自然(创建、使用类和对象)任务七3G时代的消息传递(定义和使用类方法)任务八保护你的隐私(封装的使用)任务九子承父业(继承和多态的使用)任务十上帝万能之手(接口的使用)3/22任务十一用数组存储信息(使用数组)任务十二使用字符串进行交流(使用字符串)任务十三防患于未然(捕获并处理异常)任务十四主动出击(抛出异常)任务十五认识JavaApplet(Applet入门)任务十六丰富多彩的Applet(在Applet中播放声音和显示图像)任务十七进入Windows世界(设计图形用户界面)任务十八布局规划(使用布局管理器)任务十九事件委托处理(如何处理事件)任务二十选择之道(使用选择控件和选择事件)目录4/22任务二十一简明清晰的菜单(使用菜单和其他常用事件)任务二十二访问数据(使用JDBC连接数据库)任务二十三访问数据升级(数据库编程)任务二十四文件管理(目录与文件管理)任务二十五顺序进出之道(文件的顺序访问)任务二十六随机进出之道(文件的随机访问)任务二十七JAVA的分身术(创建和启动线程)任务二十八线程的生命周期与优先级(线程的状态与调度)任务二十九基于连接的通信(Java中的套接字Socket)任务三十基于无连接的通信(Java中的数据报编程)目录5/22任务四挑战选择(使用分支控制流程)21知识目标能力目标if条件结构;switch分支结构。掌握分支流程控制结构:if条件结构和switch分支结构。6/22内容提要4跟我做:计算运费1235实现方案代码分析必备知识动手做一做7/224.1跟我做:计算运费任务情景编制某运输公司计算运费的程序,请用if-else条件语句和switch分支语句分别实现。设:s是距离,单位为千米;w是重量,单位是吨;p是每吨每千米货物的基本运费,即运输单价;d是优惠金额的百分比;f是总运费。则该运输公司的收费标准为:s250km时,没有优惠;250km≤s500km,优惠2%;500km≤s1000km,优惠5%;1000km≤s2000km,优惠8%;2000km≤s3000km,优惠10%;3000km≤s,优惠15%。运行结果第1章目录8/22问题分析从技术角度,该程序涉及常量和变量的定义和使用、变量间的算术运算、数据类型转换(包括字符串与基本数据类型的转换)、基本的输入输出操作、if-else条件语句和switch分支语句的应用。解决步骤1.打开Eclipse,在study项目中创建包com.task04,再确定类名ComputePriceIf和ComputePriceSwitch,得到类的框架。packagecom.task04;publicclassComputePriceIf{}publicclassComputePriceSwitch{}2.定义所需要的变量。3.接收从键盘输入的数据,并将其转换成基本数据类型。第1章目录4.2实现方案9/224.根据输入数据的值和该运输公司的收费标准,分别用if-else条件语句和switch分支语句计算运费。(1)根据该运输公司的收费标准,可得到总运费f的计算公式:f=p×w×s×(1-d)(2)根据该运输公司的收费标准,可以看到,优惠的“变化点”都是250的倍数,若令c=s/250,则当c1时,表示s250,没有优惠;1≤c2时,表示250≤s500,优惠金额的百分比d=2%;2≤c4时,表示500≤s1000,优惠金额的百分比d=5%;4≤c8时,表示1000≤s2000,优惠金额的百分比d=8%;8≤c12时,表示2000≤s3000,优惠金额的百分比d=10%;c≥12时,表示s≥3000,优惠金额的百分比d=15%。5.输出运费。第1章目录4.2实现方案10/22•程序代码(1)使用if-else条件语句实现的代码如下:packagecom.task04;importjavax.swing.*;publicclassComputePriceIf{publicstaticvoidmain(String[]args){intc,s=0;doublep=0,w=0,d,f;p=Double.parseDouble(JOptionPane.showInputDialog(请输入运输公司的运输单价,newDouble(p)));w=Double.parseDouble(JOptionPane.showInputDialog(请输入要运输的货物的重量,newDouble(w)));s=Integer.parseInt(JOptionPane.showInputDialog(请输入运输的距离,newInteger(s)));if(s=3000)c=12;elsec=s/250;if(c1)d=0;elseif(c2)d=0.02;elseif(c4)d=0.05;elseif(c8)d=0.08;elseif(c12)d=0.1;elsed=0.15;f=p*w*s*(1-d);System.out.println(运输公司的运输单价为+p);System.out.println(该次运输的货物重量为+w);System.out.println(该次运输的运输距离为+s);System.out.println(该次运输的总运费为+f);}}第1章目录4.3代码分析11/224.3代码分析(2)使用switch分支语句实现的代码如下:packagecom.task04;importjavax.swing.*;publicclassComputePriceSwitch{publicstaticvoidmain(String[]args){intc,s=0;doublep=0,w=0,d,f;p=Double.parseDouble(JOptionPane.showInputDialog(请输入运输公司的运输单价,newDouble(p)));w=Double.parseDouble(JOptionPane.showInputDialog(请输入要运输的货物的重量,newDouble(w)));s=Integer.parseInt(JOptionPane.showInputDialog(请输入运输的距离,newInteger(s)));if(s=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=0.02;break;case2:case3:d=0.05;break;case4:case5:case6:case7:d=0.08;break;case8:case9:case10:case11:d=0.1;break;case12:d=0.15;break;default:d=0.15;break;}f=p*w*s*(1-d);System.out.println(运输公司的运输单价为+p);System.out.println(该次运输的货物重量为+w);System.out.println(该次运输的运输距离为+s);System.out.println(该次运输的总运费为+f);}}第1章目录12/22应用扩展(1)上面的程序没有对用户输入的数据进行有效性的判断,如果用户输入负数,可以弹出警告信息或者将用户输入的非法数据进行统一的赋0等操作,这样可以使程序更加完善。参考代码如下:if(p0){System.out.println(“您输入的运费单价是负数,请输入大于0的数”);}if(w0){System.out.println(“您输入的运输重量是负数,请输入大于0的数”);}if(s0){System.out.println(“您输入的运输距离是负数,请输入大于0的数”);}(2)4.3中的代码使用的输入方式是用对话框方式实现的输入,对话框方式还可以实现输出。Java通过javax.swing.JoptionPane类可以方便地实现向用户发出输入或输出消息。JoptionPane类提供了几个主要的输入输出方法,如下:方法showConfirmDialog():用于询问一个确认问题,如yes/no/cancel。方法showInputDialog():用于提示要求某些输入。方法showMessageDialog():告知用户某事已发生。方法showOptionDialog():上述三项的大统一。还可以使用Scanner实现数据的输入,即使用java.util.scanner类创建一个对象,Scannerreader=newScanner(System.in);借助reader对象可实现读入各种类型数据,读入方法为:nextInt():读入一个整型数据。nextFloat():读入一个单精度浮点数。nextLine():读入一个字符串。第1章目录4.3代码分析13/22参考代码如下:Scannerreader=newScanner(System.in);s=reader.nextInt();除此之外,还可以使用命令行参数接收从键盘输入的数据。(3)使用if-else条件语句实现的代码中,若if-else语句不是使用带缩进的书写格式,很难看出每个else和哪个if是一对,所以最好在每个if和else后使用一对花括号将其后的语句括起来,这样就很容易看出每个else和哪个if是一对了。参考代码如下:if(c1){d=0;}else{if(c2){d=0.02;}else{if(c4){d=0.05;}else{if(c8){d=0.08;}else{if(c12){d=0.1;}else{d=0.15;}}}}}第1章目录4.3代码分析14/224.4必备知识Java程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java语言使用“顺序结构”、“选择结构”、“循环结构”这三种基本结构(或由它们派生出来的结构)来实现程序的流程控制。4.4.1顺序结构顺序结构就是程序从上到下一行一行执行的结构,中间没有判断和跳转,直到程序结束。4.4.2条件结构条件结构提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,转去执行特定的语句。1.if条件语句if语句是使用最为普遍的条件语句,每一种编程语言都有一种或多种形式的该类语句,在编程中总是避免不了要用到它。第1章目录15/22(1)if语句的判断形式:if(条件表达式)语句;在if语句中条件表达式的值必须是boolean型的。如果条件表达式的值是非boolean型的,系统将会报错。if后面的语句可以是一条语句,或是用“{}”括起来的一组语句形成的语句体(或称为复合语句),语句体中可包含Java语言中的任何语句。if后面的语句里如果只有一个语句,就不用写成复合语句的形式,即{}可以省略不写,但为了增强程序的可读性,即使只有一条语句,也最好写成复合语句的形式。if语句的判断形式执行流程如图4-2所示。[例4-1]if条件语句的判断形式示例publicclassIfOne{publicstaticvoidmain(Stringargs[]){intx=0;if(x==1)System.out.println(“x=1”);}}第1章目录4.4必备知识16/22(2)if语句的选择形式:if(条件表达式)语句1;else语句2;if语句选择形式的执行流程如图4-3所示。如果条件表达式的值为true,则执行紧跟着的语句;如果条件表达式的值为false,则执行else后面的语句。if和else后面的语句可以是一

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功