《Java程序设计》教案.doc
《《Java程序设计》教案.doc》由会员分享,可在线阅读,更多相关《《Java程序设计》教案.doc(133页珍藏版)》请在冰点文库上搜索。
教案
2018-2019学年第2学期
课程名称:
Java程序设计
课程代码:
适用专业:
计算机应用技术
教师姓名:
所属系部:
职称:
课时:
总学时80
使用教材:
Java程序设计项目化教程
教学单元教案
主题
任务1安装配置开发环境
序号
1
课时
2
教学手段
多媒体、板书、实训室
教学方法
讲授法、演示法、案例法
教学课型
□理论□实训√一体化□(其它)
教学目标
能力目标:
能配置典型的java开发环境、能使用java开发环境编写Java程序。
知识目标:
Java开发工具的下载、安装与使用;编写、编译和运行Java应用程序的方法;理解字节码及Java的可移植性原理。
素质目标:
接受新知识、自主学习的能力。
教学重点
JDK的下载、安装和环境配置
教学难点
命令行方式下调试程序
教学过程设计
备注
一.导入(15分钟)
Ø介绍教师个人信息、联系方式等;
Ø介绍Java程序设计课程在计算机应用技术专业中的地位;
Ø介绍Java技术的应用领域;
Ø介绍Java程序设计课程的考核等;
Ø通过潜艇大战Java游戏的案例演示,使学生对Java程序获取感性认识,激发兴趣,激发学生学习兴趣。
Ø教师活动:
PPT讲解、案例演示;学生活动:
听讲记录;时间分配:
15分钟。
二.教学内容(60分钟)
1、Java简介
(1)Java语言的工作机制,重点介绍Java虚拟机JVM;教师活动:
PPT讲解;学生活动:
听讲记录;时间分配:
5分钟。
(2)Java语言的特点,重点介绍简单、面向对象、可移植性、安全性;教师活动:
引导;学生活动:
讨论;时间分配:
5分钟。
2、JDK的安装及配置
(1)
(2)演示Path设置的步骤:
右键点击桌面上【我的电脑】,选择【属性】,在出现的属性面板中选择【高级】标签。
点击【环境变量】按钮后,打开【环境变量】面板。
点击名为Path变量,点击【编辑】按钮,在【变量值】输入框中加入jdk的bin目录。
(3)演示classPath设置的步骤:
首先看系统变量中是否有Classpath变量,如果不存在则点击【新建】按钮;如果已经存在,则选中Classpath变量后点击【编辑】按钮,在变量值中添加指定的目录。
(4)教师活动:
讲解演示;学生活动:
模仿操作、听讲记录;时间分配:
20分钟。
3、命令行方式下调试程序
详细讲解javac和java命令使用的格式;
(1)创建HelloWorld.java的源文件,
(2)设置环境变量
(3)编译:
javacHelloWorld.java
(4)运行:
javaHelloWorld
(5)教师活动:
讲解演示;学生活动:
模仿操作、听讲记录;时间分配:
10分钟。
4、Eclipse的安装、配置及应用
(1)http:
//www.eclipse.org/downloads下载Eclipse,并安装。
(2)利用Eclipse,创建HelloWorld.java源文件并编译运行。
(3)教师活动:
讲解演示;学生活动:
模仿操作、听讲记录;时间分配:
10分钟。
5、Myeclipse的安装、配置及应用
(1)
(2)利用Myeclipse,创建HelloWorld.java源文件并编译运行。
(3)教师活动:
讲解演示;学生活动:
模仿操作、听讲记录;时间分配:
10分钟。
三.总结(5分钟)
教师指出学生实践中可能出错和已经出错的地方,结合教学重点和难点,对所学知识进一步强化。
如:
Java语言区分大小写;使用“.”符号引用属性与方法;使用“.”符号分隔路径;使用“{”与“}”符号标识程序块;使用“(”与“)”符号标识方法参数。
作业布置
1、分别使用JDK、Myelcipse编写Java应用程序输出HelloWorld!
(随堂练习完成)。
教学反思
教学单元教案
主题
任务2员工薪酬计算
序号
2
课时
2
教学手段
多媒体、板书、实训室
教学方法
讲授法、演示法、案例法
教学课型
□理论□实训√一体化□(其它)
教学目标
能力目标:
能够使用Java基本语法编写简单的顺序程序。
知识目标:
标识符的定义规则;关键字的意义;基本数据类型;运算符、表达式和表达式语句;读取输入、格式化输出。
素质目标:
协调能力、团队合作的能力;接受新知识、自主学习的能力。
教学重点
Java基础语法
教学难点
标识符与关键字的区别
教学过程设计
备注
一.导入(5分钟)
介绍员工信息管理系统可以对员工薪酬进行计算。
提出本次学习的任务—员工薪酬计算。
教师活动:
PPT讲解;学生活动:
听讲记录;时间分配:
5分钟。
二.教学内容
1、子任务1—简单的员工薪酬计算(70分钟)
(1)任务预览:
编写一个Java程序,根据税前的薪酬和税率计算税后的薪酬,然后显示计算的结果。
教师活动:
PPT讲解;学生活动:
听讲记录。
(2)任务部署:
①标识符、变量和常量
Ø使用Java标示符时需要注意以下的规则:
ØJava语言是区分大小写的,因此ab和Ab是两个不同的标示符。
Ø标示符由字母、数字、下划线、美元符号组成,没有长度限制。
Ø标示符的首字符必须是字母、下划线(_)、美元符($)。
Ø标示符不能是Java关键字和保留字,但是可以包含关键字和保留字。
Ø标示符不能包含空格。
Ø标示符只能包含美元符($),不能包含@、#等其他特殊符号)
②数据类型
整型:
Øbyte:
一个byte型整数在内存中占有8位,表示范围是:
-128(-27)~127(27-1)。
Øshort:
一个short型整数在内存中占有16位,表示范围是:
-32768(-215)~32767(215-1)。
Øint:
一个int型整数在内存中占有32位,表示范围是:
-2147483648(-231)~2147483647(231-1)。
Ølong:
一个long型整数在内存中占有64位,表示范围是:
-92233720368547754775808(-263)~92233720368547754775807(263-1)
Ø字符型:
Ø字符型通常用于表示单个字符,字符常量必须以单引号括起来。
Java字符使用16位Unicode编码方式,因此Java可以支持各种语言的字符。
Ø字符常量主要有以下3种表示方式。
Ø直接通过单个字符表示,如’a’,’3’和’-’。
Ø通过转义字符表示特殊的字符常量,如’\t’,’\n’和’\b’。
Ø使用Unicode数值来表示,格式为\uXXXX,XXXX为一个16进制整数,如\u4E2D表示‘中’字。
浮点型:
Ø浮点类型用于表示带有小数的数值。
在Java中有两种浮点类型,float和double。
float代表单精度浮点数,占有4个字节;double代表双精度浮点数,占有8个字节。
Ø浮点数两种表示方式
Ø十进制数形式,例如2.24,0.32,12.0。
Ø科学计数形式,例如3.12e2(表示312)
布尔类型:
布尔类型用于表示逻辑上的“真”和“假”。
Java语言中boolean类型的变量只能是true和false两个值,不能用0或非0来代表,并且boolean变量不能与整型变量相互转换。
③运算符
²[].()(方法调用)
²!
~++--+(一元运算符)-(一元运算符)()(强制类型转换)new
²*/%
²+-
²<<>>>>>
²<<=>>=instanceof
²==!
=
²&
²^
²|
²&&
²||
²?
:
²=+=-=*=/=%=&=|=^=<<=>>=>>>=
④教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
45分钟。
(3)任务实施
讲解分析Salary.java:
①Java程序的结构框架
package包中存在类文件;
publicclass公共类;
Java程序由一个或多个独立的类组成,但其中必须有一个公有类,而且源代码文件必须与这个公有类的名字相同;
publicstaticvoidmain(String[]args)程序入口,每一个应用程序必须包含一个main()方法;
main()方法中的内容称为类体。
②利用Java基本语法实现简单的员工薪酬计算
publicclassSalary{
publicstaticvoidmain(String[]args)
{
doublesalaryBefore;
doublesalaryAfter;
doubletaxRate;
salaryBefore=5000;
taxRate=0.15;
salaryAfter=salaryBefore*(1-taxRate);
System.out.println("税前:
"+salaryBefore+"元");
System.out.println("税率:
"+taxRate*100+"%");
System.out.println("税后:
"+salaryAfter+"元");
}
}
③由于结果需要输出,又进一步引申出读取输入、格式化输出知识点,为子任务2的提出做铺垫。
④教师活动:
讲解、演示;学生活动:
模仿操作;时间分配:
10分钟。
2、子任务2—简单的员工薪酬计算
(1)任务预览:
编写一个Java程序,根据使用者的输入,然后计算税后的薪酬并显示,要求输出显示并保留到小数点后两位。
教师活动:
PPT讲解;学生活动:
听讲记录。
(2)任务部署:
①读取输入
l构造一个Scanner对象
lScannerin=newScanner(System.in);
lin.nextLine();读取一行(包含空格)
lin.next();只想读取一个单词(以空格作为分隔符)
lin.nextInt();读取一个整数
lin.nextDouble();读取一个浮点数
②格式化输出
l采用NumberFormat或其子类来对数字进行格式化
lDecimalFormatdf=newDecimalFormat("0000");
lSystem.out.println(df.format(12));
lprintf格式化输出数字或字符
③教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
10分钟。
(4)任务实施
讲解分析Salary.java:
①利用Java基本语法及读取输入、格式化输出,实现简单的员工薪酬计算:
publicclassSalary{
publicstaticvoidmain(String[]args){
doublesalaryBefore;
doublesalaryAfter;
doubletaxRate;
Scannerin=newScanner(System.in);
System.out.print("输入税前工资:
");
salaryBefore=in.nextDouble();
System.out.print("输入税率:
");
taxRate=in.nextDouble();
salaryAfter=salaryBefore*(1-taxRate);
System.out.println("税前:
"+salaryBefore+"元");
System.out.println("税率:
"+taxRate*100+"%");
System.out.println("税后:
"+salaryAfter+"元");
}
}
②教师活动:
讲解、演示;学生活动:
模仿操作;时间分配:
5分钟。
三.总结(5分钟)
学生演示、互评:
按照任务要求进行演示并互评。
教师点评:
根据学生完成任务情况进行验收点评,并提出改进,在此基础上进行任务拓展。
作业布置
1、求1+2+3+4+5*2/3+7-12的和。
2、输入一个整数,判断其被2整除的余数。
教学反思
教学单元教案
主题
任务3员工薪酬的统计
序号
3-1
课时
2
教学手段
多媒体、板书、实训室
教学方法
讲授法、演示法、案例法
教学课型
□理论□实训√一体化□(其它)
教学目标
能力目标:
能编写不同选择结构的程序;能使用不同循环结构进行编程;能利用Java数组进行编程。
知识目标:
单分支和多分支程序结构;三种循环结构;break和continue语句的使用方法;一维数组的概念、定义和使用。
素质目标:
协调能力、团队合作的能力;接受新知识、自主学习的能力。
教学重点
Java的分支语句;循环控制语句;数组的定义和使用
教学难点
区分break和continue。
教学过程设计
备注
一.导入(5分钟)
介绍实际薪酬计算时要扣除所得税,提出本次学习的任务—员工薪酬的统计。
教师活动:
PPT讲解;学生活动:
听讲记录;时间分配:
5分钟。
二.教学内容(75分钟)
1、子任务1—计算税后薪酬
(1)任务预览:
编写一个Java程序,根据税率表计算员工的薪酬,然后显示计算的结果。
教师活动:
PPT讲解;学生活动:
听讲记录。
(2)任务部署:
①条件语句
if条件语句有多种形式,最常见的有以下三种:
if(condition){
statement;
}
if(condition){
statement1;
}else{
statement2;
}
if(condition1){
statement1;
}elseif(condition2){
statement2;
}
………..
else{
statementN;
}
条件必须用小括号括起来,且condition必须是布尔型,不能是整型或浮点型。
需要某个条件为真的时候执行多条语句,可以使用块语句(blockstatement)将多条语句括起来.
switch语句:
switch(value){
casevalue1:
{
statement1;
break;
}
casevalue1:
{
statement1;
break;
}
......
casevalueN:
{
statementN;
break;
}
default:
{
defaultStatement;
}
}
使用switch时注意事项:
Øvalue的值只能是char、byte、short或int型。
Øcase语句对应的valueN值必须是常量,而且各个valueN应该不相同。
Øbreak语句用来在执行完相应的case分支语句后跳出switch语句,否则将顺序执行后面的语句。
在有些情况下,多个不同的case值要执行一组相同的操作,可以省略相应代码块的break语句。
Ødefault是可选的,当value的值与所列的valueN的值都不匹配的时候,就会执行default的代码块。
如果没有ddefault语句,则程序直接跳出switch语句,不做任何操作。
②教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
20分钟。
(3)任务实施
讲解分析CalcSalary:
①利用if条件语句,实现税后薪酬计算
publicclassSalary{
publicstaticvoidmain(String[]args)
{
doublesalaryBefore;
doublesalaryAfter;
doubletaxRate;
salaryBefore=5000;
taxRate=0.15;
salaryAfter=salaryBefore*(1-taxRate);
System.out.println("税前:
"+salaryBefore+"元");
System.out.println("税率:
"+taxRate*100+"%");
System.out.println("税后:
"+salaryAfter+"元");
}
}
②教师活动:
讲解、演示;学生活动:
模仿操作;时间分配:
20分钟。
3、子任务2—员工工资排序
(1)任务预览:
编写一个Java程序,将10个员工的薪酬,按照薪酬从小到大排序,并输出排序后的结果。
教师活动:
PPT讲解;学生活动:
听讲记录。
(2)任务部署:
①循环语句
Øwhile循环:
Øwhile(condition)statement;
Øwhile循环当条件为true的时候,则执行一条语句(也可以是一个语句块)。
如果开始的时候condition就为false,则循环体一次也不会执行。
Ødo/while循环:
Ødostatementwhile(condition);
Ødo/while循环语句至少执行一次。
Øfor循环:
Øfor(inti=1;i<=10;i++)
ØSystem.out.println(i);
Øfor循环语句是支持迭代的一种通用结构,每次迭代之后更新的计数器或类似的变量来控制迭代次数。
for语句的第一部分通常用于对计数器的初始化;第二部分给出循环继续执行的条件;第三部分指示如何更新计数器。
Ø教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
20分钟。
②跳转语句
Øbreak语句:
Øbreak语句在前面介绍swich的时候,我们用它来跳出switch语句。
在实际中我们更多的是使用它来跳出循环。
Øcontinue语句:
Ø在Java中还有一个continue语句,与break语句一样,它也可以中断正常的控制流程。
continue语句只能用在循环中,continue将控制转移到最内层循环的首部。
Øreturn语句:
Øreturn语句用在方法中,用于终止当前方法的执行,返回到调用该方法的语句处。
Øreturn[expression];
Ø教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
10分钟。
三.总结(5分钟)
学生演示、互评:
按照任务要求进行演示并互评。
教师点评:
根据学生完成任务情况进行验收点评,并提出改进,在此基础上进行任务拓展。
作业布置
1、求100~200之间的所有素数,并计算它们的和。
2、用嵌套的for循环语句改写例2-10乘法九九表程序。
教学反思
教学单元教案
主题
任务3员工薪酬的统计
序号
3-2
课时
2
教学手段
多媒体、板书、实训室
教学方法
讲授法、演示法、案例法
教学课型
□理论□实训√一体化□(其它)
教学目标
能力目标:
能编写不同选择结构的程序;能使用不同循环结构进行编程;能利用Java数组进行编程。
知识目标:
单分支和多分支程序结构;三种循环结构;break和continue语句的使用方法;一维数组的概念、定义和使用。
素质目标:
协调能力、团队合作的能力;接受新知识、自主学习的能力。
教学重点
Java的分支语句;循环控制语句;数组的定义和使用
教学难点
区分break和continue。
教学过程设计
备注
一.教学内容
1、数组
Ø数组的申明和内存的分配:
Ø数据类型[]数组名;//声明一维数组
Ø数组名=new数据类型[个数];//分配内存给数组
Ø数组中元素的表示:
Ø想要使用数组里的元素,可以利用索引来完成。
Java的数组索引编号由0开始。
如:
salary[0]代表第1个元素,salary[1]代表第2个元素,salary[9]为数组中第10个元素
Ø数组的初始化:
Ø数据类型[]数组名={初值0,初值1,…,初值n}
Ø数组排序:
ØArrays的sort方法使用的是优化的快速排序方法,要使用Arrays需要在开始的时候importjava.util.Arrays。
③教师活动:
PPT讲解、提问、演示;学生活动:
回答讨论;时间分配:
40分钟。
(3)任务实施
讲解分析SalarySort.java:
①分析任务,首先我们需要保存10个员工的薪酬,要是每个员工的薪酬都定义一个变量就太麻烦了,因此我们可以定义一个数组来存储员工的薪酬。
然后再利用前面介绍的Array的函数sort()对数组进行排序。
②利用for循环结构、sort方法、“foreach”循环,实现员工工资排序
publicclassSalarySort{
publicstaticvoidmain(String[]args)
{
int[]salary=newint[10];
for(inti=0;i