面向对象-教案(第6讲).doc
PAGE5
《面向对象程序设计》教案
第6讲
教学对象
计算机科学技术专业
授课内容
3.6案例学习:打印输出若干素数
3.7案例研究:求最大公约数
课程标准
教学目标
(一)知识目标
掌握Java各种循环结构
(二)能力目标
1.能够掌握java语言语法、流程控制等专业基础知识
2.能够掌握软件开发工具如开发平台、测试平台、配置管理软件和项目管理软件的使用方法
教学方法
课前预习、课堂讲授、课堂和课后练习。
学时及分配(第1学时50分钟)
课堂讲授20分钟
课堂练习30分钟
3.6案例学习:打印输出若干素数
3.7案例研究:求最大公约数
学时及分配(第2学时50分钟)
课堂讲授20分钟
课堂练习30分钟
编程实践
知识点分析
重点:
掌握Java各种循环结构,包括while循环、do-while循环和for循环。
难点:
for循环
教学过程设计
内容
方式
问题导入
上一次课学习了循环结构:while循环、do-while循环、for循环。
一般情况下,一个循环结构包含四部分内容:
(1)初始化部分:设置循环开始时变量初值。
(2)循环条件:一般是一个布尔表达式,当表达式值为true时执行循环体,为false时退出循环。
(3)迭代部分:改变变量的状态。
(4)循环体:需要重复执行的代码。
内容要点
3.6案例学习:打印输出若干素数
1.问题描述
素数(primenumber)又称质数,有无限个,在计算机密码学中有重要应用。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数。编写程序计算并输出前50个素数,每行输出10个。
2.设计思路
该案例的设计思路主要如下:
(1)要输出50个素数,首先用while循环对素数计数(用count变量)。
(2)要判断的数number从2开始,这里用一个for循环。根据定义,使用从2开始的数(divisor)去除要判断的数,如果直到divisor=number-1仍不能整除,则number就是一个素数。
(3)打印输出素数。为了输出美观,可以使用格式化输出方法,这里使用了System类的printf()方法,它可以对输出数据进行格式化。
3.代码实现
计算并输出前50个素数的代码如程序3-13所示。
【程序3-13】PrimeNumber.java
packagecom.boda.xy;
publicclassPrimeNumber{
publicstaticvoidmain(String[]args){
intcount=0;//记录素数个数
intnumber=2;
booleanisPrime;
System.out.printf(前50个素数如下:%n);
while(count50){
isPrime=true;
for(intdivisor=2;divisornumber;divisor++){
判断number是否是素数,若循环结束number仍不能被divisor整除,则number是一个素数。
判断number是否是素数,
若循环结束number仍不能被divisor整除,
则number是一个素数。
isPrime=false;
break;
}
}
if(isPrime){
如果number是素数,计数器加1,并打印素数count++;
如果number是素数,计数器加1,并打印素数
if(count%10==0)
格式化输出。System.out.printf(%5d%n,number);
格式化输出。
else
System.out.printf(%5d,number);
}
判断下一个数number++;
判断下一个数
}
}
}
3.7案例研究:求最大公约数
1.问题描述
两个整数的最大公约数(GreatestCommonDivisor,GCD)是能够同时被两个数整除的最大整数。例如,4和2的最大公约数是2,16和24的最大公约数是8。
编写程序,要求从键盘输入两个整数,程序计算并输出这两个