「Java教案」顺序结构
课程目标
1.知识目标
- 能够正确使用Java顺序结构的基本语法,例如变量的声明、变量的赋值、表达式的计算、数据的输出。
- 能够正确使用顺序结构的执行规则及其在程序中的作用,解决实际问题。
2.能力目标
- 能够独立完成顺序结构程序的编写,能够调试程序并且能够优化程序。
- 能对代码进行分析,能定位程序中的逻辑错误并进行修改。
3.思政目标
- 培养严谨细致的编程习惯,强调“代码即责任”的职业意识。
- 通过团队协作完成案例,建立“分工协作、按序执行”的工匠精神。
教学内容
1.顺序结构核心概念
- 代码执行规则:Java程序是从main方法开始执行,按代码书写顺序逐行执行,无分支或循环结构。
- 代码逻辑顺序:Java程序的逻辑顺序需要符合业务逻辑,例如,先计算后输出、先定义后使用。
2.语法规则与细节
- 变量声明与初始化:
基本数据类型,例如,int、double、char等要显式初始化,否则可能报错或逻辑错误。
引用数据类型,例如,String等可直接赋值或初始化。
- 输出语句:
System.out.println():换行输出。
System.out.print():不换行输出。
重点分析
难点分析
教学活动设计
概念引入
提问学生“煮泡面”的顺序是怎样的?是先烧水在放面还是先方面在烧水?将程序执行的顺序,类比与“煮泡面”的顺序。强调程序顺序逻辑正确性是非常重要的,如果程序逻辑顺序出错可能会导致程序错误。
示例
public class RectangleArea {public static void main(String[] args) {int length = 10; // 定义变量int width = 5;int area = length * width; // 计算面积System.out.println("矩形面积:" + area); // 输出结果}
}
运行结果
矩形面积:50
说明:Java源文件名保存为“RectangleArea.java”。
案例解析
案例:计算商品总价
public class ShoppingTotal {public static void main(String[] args) {double price = 29.9; // 单价int quantity = 3; // 数量double shippingFee = 5.0; // 运费double total = price * quantity + shippingFee; // 计算总价System.out.println("商品总价:" + total + "元"); // 输出带单位}
}
运行结果
商品总价:94.69999999999999元
说明:Java源文件名保存为“ShoppingTotal.java”。·在定义变量时数据类型选择double类型用于小数。为了输出更符合日常习惯,在输出的最后添加“元”单位。
案例:温度转换
public class TemperatureConverter {public static void main(String[] args) {double celsius = 37.5; // 摄氏度double fahrenheit = celsius * 9 / 5 + 32; // 转换公式System.out.println(celsius + "℃ = " + fahrenheit + "℉"); // 输出格式}
}
运行结果
37.5℃ = 99.5℉
说明:Java源文件名保存为“TemperatureConverter.java”。
案例:计算圆的周长
public class CircleCircumference {public static void main(String[] args) {double radius = 5.0;double circumference = 2 * 3.14 * radius; // 公式:2πrSystem.out.println("圆的周长:" + circumference);}
}
运行结果
圆的周长:31.400000000000002
说明:Java源文件名保存为“CircleCircumference.java”。
案例:计算员工税后工资
public class EmployeeSalary {public static void main(String[] args) {double baseSalary = 3000; // 基本工资double bonus = 500; // 奖金double taxRate = 0.1; // 税率double salaryAfterTax = (baseSalary + bonus) * (1 - taxRate); // 计算税后工资System.out.println("税后工资:" + salaryAfterTax + "元");}
}
运行结果
税后工资:3150.0元
说明:Java源文件名保存为“EmployeeSalary.java”。
常见错误
错误:在定义变量时变量取名为total,而在使用时名字错拼totle。 → IDE会报错“找不到符号”的错误,此时需要检查变量名是否一致性。
错误:程序语句的顺序错误,如先输出再计算。 → 调整代码顺序,确保逻辑先计算后输出。
课堂练习
练习:编写程序计算三角形面积(底为6,高为4)。
public class TriangleArea {public static void main(String[] args) {double base = 6.0;double height = 4.0;double area = 0.5 * base * height; // 公式:0.5×底×高System.out.println("三角形面积:" + area);}
}
运行结果
三角形面积:12.0
说明:Java源文件名保存为“TriangleArea.java”。
练习:编写程序计算某学生三门课的平均分(成绩:85、90、78)。
public class AverageScoreCalculator {public static void main(String[] args) {// 定义三门课的成绩int score1 = 85;int score2 = 90;int score3 = 78;// 计算总分int total = score1 + score2 + score3;// 计算平均分(使用浮点除法确保精度)double average = total / 3.0;// 输出结果System.out.println("三门课成绩分别为:" + score1 + ", " + score2 + ", " + score3);System.out.println("平均分为:" + average);}
}
运行结果
三门课成绩分别为:85, 90, 78
平均分为:84.33333333333333
说明:Java源文件名保存为“AverageScoreCalculator.java”。
课后作业
作业:编写程序计算长方体体积(长、宽、高分别为3、4、5)。
public class CuboidVolumeCalculator {public static void main(String[] args) {// 定义长方体的长、宽、高double length = 3.0;double width = 4.0;double height = 5.0;// 计算体积double volume = length * width * height;// 输出结果System.out.println("长方体尺寸:");System.out.println("长:" + length + ",宽:" + width + ",高:" + height);System.out.println("体积为:" + volume);}
}
运行结果
长方体尺寸:
长:3.0,宽:4.0,高:5.0
体积为:60.0
说明:Java源文件名保存为“CuboidVolumeCalculator.java”。
作业:编写程序计算某员工工资(基本工资3000,奖金500,税率10%,社保扣除200)。
public class EmployeeSalaryAdvanced {public static void main(String[] args) {double baseSalary = 3000;double bonus = 500;double taxRate = 0.1;double socialSecurity = 200;double salaryAfterTax = (baseSalary + bonus) * (1 - taxRate) - socialSecurity;System.out.println("税后实发工资:" + salaryAfterTax + "元");}
}
运行结果
税后实发工资:2950.0元
说明:Java源文件名保存为“EmployeeSalaryAdvanced.java”。
考核设计
1.过程性考核(40%)
- 课堂练习的完成程度(20%)
- 编写代码的规范性与添加注释的规范性(10%)
- 参与小组讨论和解决问题的能力(10%)
2.终结性考核(60%)
- 理论测试(20%)
- 综合项目(40%)
理论测试:
题目:顺序结构中,若变量a未初始化直接使用,会报什么错误?
答案:编译错误(变量可能未赋值)。
题目:以下代码的输出结果是什么?
public class Test {public static void main(String[] args) {int x = 5;System.out.print(x++); // 输出?System.out.print(++x); // 输出?}
}
答案:57(x++先输出后加1后x的值+1变为6;++x先加1后输出)。
题目:以下代码是否有语法错误?若有,请指出并修正。
public class ErrorExample {public static void main(String[] args) {int y;System.out.println(y); // 错误?}
}
答案:变量y未初始化,需改为int y = 0;。
题目:以下代码是否符合规范?若不符合,请修正。
public class BadCode {public static void main(String[] args) {int a=10; int b=20; int c=a+b;System.out.println(c);}
}
答案:不符合规范,修正后:
public class GoodCode {public static void main(String[] args) {int a = 10; // 定义变量aint b = 20; // 定义变量bint c = a + b; // 计算a+bSystem.out.println("结果:" + c); // 输出结果}
}
综合项目:编写程序计算梯形面积(上底3,下底5,高4)。
public class TrapezoidAreaCalculator {public static void main(String[] args) {// 定义梯形的上底、下底和高double upperBase = 3.0;double lowerBase = 5.0;double height = 4.0;// 计算梯形面积double area = (upperBase + lowerBase) * height / 2;// 输出结果System.out.println("梯形参数:");System.out.println("上底:" + upperBase);System.out.println("下底:" + lowerBase);System.out.println("高:" + height);System.out.println("面积为:" + area);}
}
运行结果
梯形参数:
上底:3.0
下底:5.0
高:4.0
面积为:16.0
说明:Java源文件名保存为“TrapezoidAreaCalculator.java”。