《Java语言编程基础教案.docx》由会员分享,可在线阅读,更多相关《Java语言编程基础教案.docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java程序设计基础课程教案系 部:课程代码:计算机科学与技术系XXXXX课程名称:Java程序设计基础课程小组成员:XXXXX第七讲教学周第8周节次第25、 26节章节内容程序的执行顺序及循环语句授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他()主要内容与教学目的:for循环重点:for循环的执行过程难点:for循环的设计课堂教学组织:1.形式:for(表达式1 ;表达式2 ;表达式3)循环体;)2.执行过程:举例:int i,sum=O;for(i=l;i=100;i+)sum+=i;3、for循环的其它形式说明1:可以省略循环起始条件(表达式1),但须保留分号;这时在
2、for之前就得赋值 给循环变量;2、表达式2 一般不可省略,否则为无限循环3、表达式3(条件变化制约)亦可省略,但在循环体中须有语句修改循环变量;以使循环条 件在某一时刻为假而结束循环。4、若同时省略表达式1 (循环起始条件),表达式3(条件变化制约),则相当于while(条 件表达式)语句。5、三个表达式均省略即for(;)语句则相当于while(l)语句.6、表达式1、表达式3可以是逗号表达式,以使循环变量值在修改时可以对其它变量 赋值。7、循环条件可以是关系表达式,也可以是数值表达式或字符表达式。只要值M.即执 行循环体.8、for用while代替的流程拟提问题:把ppt上例子在自己的机
3、器上调试成功。课后作业:用for循环打印九九乘法表。注:每两节课(80分钟)为一讲,每讲必须填写此表。第八讲教学周第8周节次第15、 16节章节内容For循环语句实验授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他()主要内容与教学目的:强化代码练习熟悉for循环结构重占 八、for循环结构应用难点:for循环语句控制课堂教学组织:1.求解 1+2+3+100int sum = 0;for(int i=l;i=100;i+)sum += i;)2.实现冒泡排序int a= al,a2,an;int i,j,temp;for(i= 1, ia. length ;i+)一趟排序f
4、or(j=l ;j=a. length-i;j+)相邻数比较,不符合顺序则交换temp=aj-1 ;aj-l=aj;aj=temp;)拟提问题:for循环可以为我们做那些事情?课后作业:打印杨辉三角注:每两节课(80分钟)为一讲,每讲必须填写此表。第九讲教学周第9周节次章节内容条件语句与关系运算授课方式理论课(V )讨论课() 实验课(V) 习题课() 其他()第17、 18节主要内容与教学目的:if语句switch语句重占,if语句switch语句难点:if语句的嵌套课堂教学组织:Lif的三种形式形式1if(表达式)语句A功能:当表达式值为true时,执行语句A,否则不执行语句A.形式2 i
5、f(表达式)语句A else语句B功能:表达式为true时执行语句A否则表达式,执行语句B形式3if(表达式1)语句1else if (表达式2)语句2else if (表达式3)语句3 else if(表达式n) 语句nelse 语句 n+l例1输入两个实数,按代数值由小到大次序输出这两个数。2、switch语句开关语句switch (表达式) case常量表达式1:case常量表达式2:switch (表达式) case常量表达式1:case常量表达式2:语句序列1; break;语句序列2; break;case常量表达式n:case常量表达式n:语句序列n; break;default
6、:语句序列n+l;)例:根据成绩等级打印百分数段.拟提问题:有一函数,编一程序,输入一个X值,输出y值switch(x0)(case ? :y=-1 ;break;case ? switch(x=O)(case ? :y=O;break;case ? :y=l;break;)课后作业:编写程序,由键盘输入星期编号,输出相应的英文单词,写到作业本上。注:每两节课(80分钟)为一讲,每讲必须填写此表。第十讲教学周第9周节次第19、20节章节内容循环控制授课方式 理论课(V)讨论课() 实验课(V) 习题课() 其他() 主要内容与教学目的:while循环重点:循环应用难点:循环控制课堂教学组织:1
7、 .与if构成循环.例1:求1到100的和2、while 语句形式:while (表达式)语句执行过程:先判断表达式的值。若则执行其后面的语句,否则while执行完毕。例while (i50)System.out.println(a+”大于 50”);if(a40)System.out.println(a+“大于 40n);if(a30)System.outprintln(a+”大于 30n);练习2双分支ifif(a50)System.out.println(a+”大于 50”);elseSystem.out.println(a+“小于 50”);练习3多分支ifif(a50)System.
8、out.println(a+“大于 50”);else if( a40)System.out.println(a+”大于 40 小于 50);elseSystem.out.println(a+“小于 40);练习 4 switch计算学生们在一次考试中每个不同的字母级成绩的数目。练习5 while计算5个学生在一次考试中每个不同的字母级成绩的数目。第一讲注:每两节课(80分钟)为一讲,每讲必须填写此表。教学周第5周节次第1、2节章节内容建立编程环境授课方式理论课(J )讨论课()实验课(J ) 习题课()其他()主要内容与教学目的:1 .课程的总体介绍2 .计算机程序演示3 .安装和设置编程环
9、境重点:安装和设置编程环境难点:设置Path与Classpath路径。课堂教学组织:1 .课程的总体介绍2 .计算机程序演示3 .安装 L6JDK4 .设置Path与Classpath路径5 .测试编程环境是否设置成功拟提问题:设置编程环境需要设置那些环境变量?课后作业:重设编程环境拟提问题:将练习4改写成多分支if实现形如:if(?)else if(?)else if(?)else课后作业:逐一运行PPT讲稿上的每个例子程序。注:每两节课(80分钟)为一讲,每讲必须填写此表。第十二讲教学周第10周节次第23、24节章节内容do while 循环授课方式理论课(V )讨论课() 实验课(V )
10、 习题课() 其他()主要内容与教学目的:do while 循环重点:do while循环的执行过程难点:do while循环和while循环的比较课堂教学组织:1 .形式:do(循环体(语句序列) while(条件表达式);2 .执行过程:先执行语句,再判表达式的值,若M,再执行语句,否则结束循环 例求1到100的和int i, sum=0;i=l;do sum=sum+i;i+;)while (i b ? 1 : 0的值为。3)表达式(a = 10) 15的值为 o4)请写出从标准输入设备输入一个整数值并将它存放在变量a中的语 句:O指出下面每个语句中的错误,并改正这些错误。1) int
11、c=l , product=l;while( c v = 5 )product * = c;+c;2)if( gender = 1)S ys tem. out . print ln( Woman);else;System.out.println(Man);3)int z = 100;while ( z 0)sum += z;读程序,写结果1)代码:运行结果:int x = 1, total = 0, y; while(x 100时结束。final double PI = 3.14159;int r;double area;for (r=l; r100) break ; System. out.
12、 printlnCarea=,+ area);2、continue 语句功能:结束本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循 环的判定。举例:问题:编写程序,打印100200中不能被3整除的数。int n;for (n=100; n=200; n+)if(n%3!=0)System.out.println(n);3、循环的嵌套三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉嵌套循环的执行流程拟提问题:1、打印*号图形oW 0 * *中。* * * * 李2、输出一张乘法口诀表课后作业:如何编程输出下侧图形?I塞亭* *塞* W*注:每两节课(80分
13、钟)为一讲,每讲必须填写此表。第十五讲3打印空心菱形图形* *教学周第12周节次第29、30节章节内容循环结构举例授课方式理论课(V )讨论课() 实验课(V) 习题课() 其他()主要内容与教学目的:熟悉循环结构重点:循环的应用难点:循环的控制课堂教学组织:1、打印菱形图形。* * * *1* *T*1* * *2、打印出1000内的所有完全立方数()public static void main(String args)int n = 1;/如果该数字没有超过1000,执行循环体while(n*n*n = 1000)System.out.println(n*n*n);n+;)System.
14、out.printlnCt1000 内的立方数有 + (n-1) +”个)* * * * *拟提问题:求1000内的所有完全立方数,要求用循环实现。课后作业:运行ppt上每个实例。第十六讲课堂教学组织:教学周第12周节次第31、32节章节内容结构化程序设计授课方式理论课(J)讨论课() 实验课() 习题课() 其他()主要内容与教学目的:结构化程序设计思想重点:结构化程序设计思想难点:理清以模块化设计为中心1 .什么是结构化程序设计,为什么要使用结构化程序设计结构化程序的概念:1) 首先是从以往编程过程中无限制地使用转移语句而提出的。2) .转移语句可以使程序的控制流程强制性的转向程序的任一处
15、,一个程序 中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无 章,容易出错。3) .是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象 这种结构和风格的程序是不允许出现的。2 .结构化程序设计方法.自顶向下.逐步细化.模块化设计1 .结构化编码1) .结构化程序设计是以模块化设计为中心,将待开发的软件系统划分 为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确, 为设计一些较大的软件打下了良好的基础。2) .由于模块相互独立,因此在设计其中一个模块时,不会受到其它模 块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。3) .按照结构化程序设
16、计的观点,任何算法功能都可以通过由程序模块 组成的三种基本程序结构的组合:顺序结构、选择结构和循环结构来实现。4) .结构化程序设计的基本思想是采用咱顶向下,逐步求精”的程序设 计方法和“单入口单出口 ”的控制结构。拟提问题:什么是结构化程序设计?它包括那些语言?课后作业:谈谈自己对结构化程序设计的理解?注:每两节课(80分钟)为一讲,每讲必须填写此表。第二讲注:每两节课(80分钟)为一讲,每讲必须填写此表。教学周第5周节次第3、4节章节内容Java语言的概述授课方式理论课(V )讨论课() 实验课(J ) 习题课() 其他()主要内容与教学目的:L计算机程序与程序语言2. Java语言的发展
17、3. Java语言程序剖析4. 编写Java语言程序的过程重点:1. Java语言特点难点:1.编程第一个Java程序课堂教学组织:1、程序设计语言的分类机器语言、汇编语言、高级语言2、Java语言发展概况的介绍Java语言是由Sun公司开发的一门开源语言,是当今的一门主流开发语言。3、Java语言与其它编程语言的比较Java语言是一种跨平台,安全性较高的语言,易于学习。4、编写第一个HeUo World程序带学生用记事本写出第一个Java小程序,在控制台上输出Hello World r拟提问题:Java语言的特点课后作业:编与程序:在控制台输出* Hello Java *字样!第十七讲主要内
18、容与教学目的:教学周第13周节次第33、 34节章节内容程序流程图授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他()程序顺序结构流程图程序选择结构流程图重占 八、选择结构流程图难点:从流程图看程序流程课堂教学组织:1.常用的流程图符号:输入处理判断起止符流程线2、顺序结构:3、选择结构拟提问题:程序的流程有那几种?课后作业:画出顺序结构与选择结构流程图注:每两节课(80分钟)为一讲,每讲必须填写此表。第十八讲int x, y;if (x0) y=-l;教学周第13周节次第35、36节章节内容程序条件流程结构授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他(
19、)主要内容与教学目的:if语句switch语句重占if语句switch语句难点:if语句的嵌套课堂教学组织:Lif的三种形式形式1if(表达式)语句A功能:当表达式值非。时,执行语句A否则不执行语句A形式2 if(表达式)语句A else语句B功能:表达式为非0,执行语句A表达式为0,执行语句B形式3if(表达式1)语句1else if (表达式2)语句2else if (表达式3)语句3 else if(表达式n)语句nelse 语句 n+l例1输入两个实数,按代数值由小到大次序输出这两个数。2、if语句的嵌套例:main ()else if (x= =0) y=0;else y=l;Sys
20、tem.out.println(x=+x+y=+y);3、switch语句开关语句switch (表达式)语句序列1; break;语句序列2; break; 语句序列n; break;语句序列n+1语句序列1; break;语句序列2; break; 语句序列n; break;语句序列n+1语句序列1; break;语句序列2; break; 语句序列n; break;语句序列n+1 case常量表达式1:case常量表达式2: case常量表达式n:default:)例:根据成绩等级打印百分数段.拟提问题:有一方法,编一程序,输入一个x值,输出y值switch(x0)(case ? :y=
21、-1 ;break;case ? switch(x=0)(case ? :y=0;break;case ? :y=l;break;课后作业:编写程序,由键盘输入星期编号,输出相应的英文单词,写到作业本上。注:每两节课(80分钟)为一讲,每讲必须填写此表。第十九讲X 3 =0例4.定义一个数组,并使用循环来赋值数组元素教学周第14周节次第37、38节章节内容数组授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他()主要内容与教学目的: 一维数组的定义 一维数组元素 一维数组初始化 数组基本应用重点:一维数组的定义 一维数组元素难点:数组的应用课堂教学组织:1、一维数组定义一组相关
22、的内存位置,具有相同的名称和类型。一维数组定义的一般格式:类型名数组名常量表达式;2、一维数组元素数组分量又称数组元素,其表示的一般格式:数组名整型表达式数组元素又称下标变量,同简单变量一样具有地址和值属性。数组元素地址的一般表 示:&数组名整型表达式A3、数组初始化格式:类型名 数组名常量表达式上值,值值;注意事项:(1)只能给元素逐个赋值,不能给数组整体赋值;(2)如给全部元素赋值,可以不给出数组元素的个数;(3)如给部分数组元素赋值,当中值的个数少于元素个数时,只给前面部分元素赋 值,其它元素默认为零。例1.数组定义定义一个名为a的单精度实型一维数组,长度为4。例2.数组定义定义一个名为
23、a的单精度实型一维数组,长度为4,并将所有元素的初值设置为零。例3.数组元素设有下列数据定义语句,则数组元素Xi的值是(? )oint i=3, x4= 1,2,3 );拟提问题:输入10个学生的成绩,耍求用数组实现。课后作业:输入10个学生的成绩,求最高分、最低分、总分和平均分。注:每两节课(80分钟)为一讲,每讲必须填写此表。第二十讲教学周第14周节次第39、40节章节内容数组习题课授课方式理论课(V)讨论课() 实验课(V) 习题课() 其他()主要内容与教学目的:数组的基本概念和简单应用重点:数组的引用难点:数组下标越界课堂教学组织:1、若有以下a数组,数组元素a0a9中的值为:9,
24、4, 12, 8, 2, 10, 7, 5, 1, 3。(1)对该数组进行定义并赋以上初值的语句是?(2)该数组中可用的最小下标值是?最大下标值是?(3)该数组中下标最小的元素名字是?它的值是?(4)该数组中下标最大的元素的名字是?它的值是?(5)该数组的元素中,数值最小的元素的下标值是?数值最大的元素的下标值是?2编程有一个数组A 10,现查询一个数,如果数组中有该数,则输出其位置序号,否则输 出提示“没有该数,。分析:依次取出数组的每个元素,逐一比较。3、编程将一个数组的值按逆序重新存放,例如,原来的顺序为:8、6、5、4,要求改为4、5、6、8o分析:下标为0的元素与下标为n-1的元素交
25、换位置,下标为i的元素与下标为n-i-1的元素 交换位置。循环控制变量并非从0变化到n,这样每个元素交换两次后,数组又将恢 复到原来的顺序。所以,循环控制变量应从0变化到n/2。4、用选择法对10个整数按升序排序int i,j,min,temp;static int aN=5,4,3,2,1,9,8,7,60;System.out.print(nnThe array is:nH); /* 输出数组元素 */for (i=0;iN;i+)System.out.println(ai);for(i=0;iN-l;i+)/* 排序操作 */ min = 0;for (j=i+l;jaj) min =j
26、; temp=amin; amin=aj; aj=temp ;/* 数据交换 */)System.out.print(nnThe sorted numbers: nH); /* 输出排序结果 */for (i=0;i long上述各种整型所占内存单元数及取值范围不同,程序举例1:整型变量的定义和使用求两个整数的和。3、整型数据的溢出。拟提问题:为什么要定义不同类型的整变量?通常我们是怎么根据实际情况定义不同的整型变量?课后作业:设计一个类型,里面包含有常量及四种整型变量。注:每两节课(80分钟)为一讲,每讲必须填写此表。第二十一讲教学周第15周节次第41、42节章节内容给数组元素排序授课方式理
27、论课(V)讨论课() 实验课(V) 习题课() 其他()主要内容与教学目的:初步了解程序的算法重点:冒泡排序法难点:排序算法课堂教学组织:1、选择排序 public static void main(String args)int 止7,4,0,625,1;int i , j ,k ,temp;System.out.printin(排序前数组元素:”);for(i=0;ia.length;i+)System. out.println(ai+);)for(i=0,ia.length;i+) k=i;找到最小的下标,记入K中for(j=i+l ;ja.length;j+)if(ajak)k=j;)
28、将最小的数和第i个数交换temp=ai;ai=ak;ak=temp;System.out.printin(排序后数组元素:”);for(i=0;ia. length; i+)System.out.println(ai+n *);2、冒泡排序int a= al,a2,an;int i,j,temp;for(i= 1 ,ia. length ;i+) 一趟排序for(j= 1 ;j=a.length-i;j+) 相邻数比较,不符合顺序则交换if(aUlaU-l)temp=aj-l;aj-l=aj;aj=temp;)3.插入排序:void insertSort(Datatype a,int n)fo
29、r(i=2;in;i+)a0=ai;while()aj+l=aj;j二M;)aj-M=aO;)拟提问题:你所知道有那些排序方法课后作业:调试运行ppt上每个例子注:每两节课(80分钟)为一讲,每讲必须填写此表。第二十二讲return 0;)public void makeSearch()教学周第15周节次第43、44节章节内容在数组中查找给定的元素授课方式理论课(J )讨论课() 实验课(J ) 习题课() 其他()主要内容与教学目的:熟悉数组中值的查找方法重点:顺序查找难点:二分查找课堂教学组织:1、顺序查找:顾名思义,顺序查找就是从一端起查找,直到找到所查的元素为止,不要求原来 的原来的数
30、值有序。如果是用数组存储数值,则从数组的第一个元素开始依次比较是否是要查找的数, 若找到,则记录下标,若到末尾仍然没有,则为没有找到。2.二分查找:在数据是有效的情况下,二分查找是一个效率很高的查找方法。二分查找采用的是分治法。二分查找要求数据有序,每次选择的数组中间的那个 数与要查找的数比较。public int search(int low,int high,int a,int x) int mid;while(lowx) high二mid-1;else low=mid+l;)(int a10= 1,2,3,4,5,6,7,8,9,10);int x = 8;/*x是欲查找的数*/x=se
31、arch(0,9,a,x);if(x0&xy) return x;else return y;)public void chooseMax()(int a,b,c;c=max(a,b);System.out. println(c=+c);)(1)方法的类型即方法值的类型。例如,方法max是int型的也就是方法值是int型的。(2)省略了类型说明的方法式int型的。(3)return语句中表达式的值一般应与函数类型一致。(4)如果不一致,则需要进行类型转换。只有数值型数据可以进行自动类型转换,以方 法类型为准。如果方法中没有使用return语句,说明该函数不需要返回值(表示一个过程),可以用 v
32、oid做类型说明。3、方法的调用一般形式:方法名(实参表列)说明:(1)如果调用无参函数,实参表列可以忽略,但括号不能省。(2)实参的个数和形参一般相等。(3)实参与形参的类型应一一对应,必要时使用类型转换。分析下面程序的执行过程public float iabs(float x)(return x0?x:-x;)pubic void makeiabs()(float x-1.2,y;y=iabs(2*x);Sy s tem. out. print ln(x=+x+y= +y);)拟提问题:1、以下正确的描述是()建立方法的目的之一是:A提高程序的执行效率B提高程序的可读性C减少程序的篇幅D减
33、少程序文件所占的内存2、以下正确的方法定义格式是:A public double fun(int x,int y)B public double fun(int x int y) C public double fun(int x,int y)D public double fun(int x,y)课后作业:调试运行ppt上每个实例。注:每两节课(80分钟)为一讲,每讲必须填写此表。第二十四讲教学周第16周节次第47、48节章节内容方法习题课授课方式理论课()讨论课() 实验课(J) 习题课() 其他()主要内容与教学目的: 方法的应用重点:方法的调用难点:方法调用的执行过程课堂教学组织:1、
34、分析下面程序的执行结果,并上机验证。pubic void increment() int x=0;x+=l;System.otu.printlnCx=,+x);)public void makelncrement() increment();increment();increment();)执行结果:1 1 12、分析下面程序的执行结果,并上机验证 pubic void fun(int i,int j)(int x=7;System.otu.println(i=+i+ j=+j+ x=+x);)public void makeFun()(int i=2,j=7,x=5;fun(j,6);Sys
35、tem.otu.println(i=+i+ j=+j+ x=+x);)执行结果:i=7; j=6; x=7i=2; j=7; x=53、以下程序的功能是根据输入的“y”(“Y)与“n”(N”),在屏幕上分别显示出“This is YES” 与 “This is NO”,请填空。public void yesno(char ch)switch(ch)(case y:case,Y:System.out.println(YES); break;case h:case N:System.out.println(NO)public void dealYesNo()(char ch;yesno(ch);)4、已有方法pow,现要求取消变量i后pow方法的功能不变。请填空。 修改前的pow方法:public int pow(int x,int y)(int i,j= 1;for(i=l;i=i;y-)j=j*x;return j;)5、分析下面程序的执行结果,并上机验证int a=3,b=5;public int max(int a,int b)(int c;c=ab?a:b;return c;)public void chooseMax()第四讲
限制150内