您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第2章java程序设计教案
1课堂教学教案教师姓名:*****课程名称:Java程序设计授课时数:2第2次课授课课题第2章Java概述教学目标了解Java语言特点,理解Application和Applet两种Java应用程序的运行原理和方法。掌握在JDK环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。教学重点掌握JAVA语言的基本语法特点,熟悉JAVA开发环境教学难点Java语言的特点教学方法项目驱动,案例教学,一体化课堂;板书+多媒体。教学过程参考附录2课堂小结重点掌握JAVA语言的基本开发环境,能够熟练使用Eclipse课外拓展类名第一个字母大写PhoneCard方法名第一个字母小写getBalance()变量名第一个字母小写cardNumber各标识名内含单词首字母大写课后作业注意要求学生定时完成主干课程的网上章节测试1.标示符和关键字在定义和使用方面有何区别?【答】定义方面:标示符是用户定义的、以字母开头的字母数字序列,关键字是由Java语言定义的、具有特定含义的英文单词。使用方面:标示符用于命名变量、常量、类、对象等元素,每一个关键字都有特定的含义,不能被赋予别的含义。2.Java语言的基本数据类型有哪些?引用数据类型有哪些?【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface)3.试分析基本数据类型与引用数据类型的主要特点,并说明使用这两种变2量有哪些差别?【答】基本数据类型的变量保存数据值,而引用数据类型的变量保存地址。5.程序中为什么需要常量和变量?声明常量或变量时,为什么必须给出其所属的数据类型?【答】在程序中使用的数据大多需要经常变化,用常量值表示显然不够,因此每一种算法语言都提供常量和变量来存储数据。为了确定常量或变量的数据性质、取值范围、以及它们占用的内存单元的字节数和它们参加的合法运算和操作。6.什么是变量的作用域,声明变量时,如何确定变量的作用域?【答】变量的作用域是指其作用范围。变量声明的位置决定了它的作用域7.设i是一个整数类型变量,写出下列问题对应的表达式?判断i为奇数或偶数;【答】i%2==0//取值为true时是偶数,否则是奇数判断i的值是否在0~9之间;【答】(i0)&&(i9)8.设ch是一个字符变量,写出下列问题对应的表达式判断ch是一个十进制的数字字符判断ch是一个十六进制的数字字符判断ch是一个大写字母判断ch是一个英文字母,不论大写和小写如何将一个十进制的数字字符ch转换成对应的整数类型值如何将一个十六进制的数字字符ch转换成对应的整数类型值9.说明for、while、和do-while三种循环语句的特点和区别?While语句的特点:“先判断后执行”,当条件满足时执行循环体Do-while语句的特点:“先执行后判断”,先执行循环体再判断条件是否满足For语句的特点:“先判断后执行”,但for语句将循环控制变量初始值、循环条件和变量的变化规律都以表达式形式写在循环体之前。3附录22.1Java开发环境Java虚拟机执行Java程序动态性异常处理多线程JDKJDK的安装与设置1.安装JDK2.设置环境变量:设置Path和Classpath两个环境变量Java源程序结构Package&&importpublicclass或interfaceclass&&interfaceMyEclipse集成开发环境JAVA集成开发工具(将课本第十章介绍的Eclipse开发环境的使用提前介绍,详细内容参照PPT10JAVA虚拟机执行JAVA程序的流程2.2Java语言的特点simple简单●object-oriented纯面向对象distributed分布式●interpreted解释型robust健壮性●secure安全性architecture-neutral结构中立portable可移植性●high-performance高性能multi-threaded多线程●dynamic动态42.3Java程序的几种类型Application“Java应用程序”是可以独立运行的Java程序。由Java解释器控制执行。Applet“Java小程序”不能独立运行,而是被嵌入到Web页中。由Java兼容浏览器控制执行。2.4Java应用程序编译(字符界面)1.Application例1显示字符串的Application应用程序2.Applet例12显示字符串的Applet应用程序编程题:10.分别用for,while,do-while三种循环语句计算一个正数的阶乘(1)for(i=1,i=10,i++){intSum=1;Sum=Sum*i;}(2)inti=1;while(i=10){intSum=1;Sum=Sum*i;i++;}inti=Sum=1;do{Sum=Sum*i;i++;}while(i=10);11.输出以下数字的形式;(1)0000011101220123〖解答〗采用二重循环的程序如下。publicclassPhalanx{publicstaticvoidmain(Stringargs[]){intn=4;//阶数for(inti=0;in;i++){for(intj=0;jn;j++)System.out.print(+((ij)?i:j));System.out.println();}}}(2)输出下列形式的数字三角阵(当n=4时)。11215123211234321〖解答〗采用二重循环的程序如下。publicclassTower{publicstaticvoidmain(Stringargs[]){intn=4;//行数for(inti=1;i=n;i++){for(intj=1;j=n-i;j++)//前导空格System.out.print();for(intj=1;j=i;j++)System.out.print(+j);for(intj=i-1;j0;j--)System.out.print(+j);System.out.println();}}}12.下列程序希望用for语句求出1~n累加和并显示,请问程序有错误吗?错在哪里?输出结果i和s的值分别是多少?inti=1,n=10,s=0;for(i=1,i=n,i++);s+=i;System.out.pointln(“Sum=1+……+”+n+”=”+s);有错误,正确的如下inti=1,n=10,s=0;for(i=1,i=n,i++)s+=i;System.out.pointln(“Sum=1+……+”+n+”=”+s);13.编程验证哥德巴赫猜想。哥德巴赫猜想:(1)任何大于2的偶数都可以表示为2个素数之和,如16=3+13,16=5+11(2)任何大于5的奇数都可以表示为3个素数之和,如11=2+2+7,11=3+3+5〖解答〗程序如下。publicclassGoldbach{staticfinalintMAX=30;//数据范围staticint[]prime=null;//存放素数的一维数组staticintnumber;//素数个数,即数组的实际元素个数publicGoldbach(intn)//输出n的哥德巴赫算式{if(prime==null)init();if(n%2==0)//偶数{inti=0;while(inumber&&prime[i]=n/2){if(isPrime(n-prime[i]))System.out.print(n+=+prime[i]+++(n-prime[i])+);i++;}}6else//奇数{inti=0;while(inumber&&prime[i]=n/3){intj=i;//如果j=0,则会出现重复的算式while(jnumber&&prime[j]=n/3){if(isPrime(n-prime[i]-prime[j]))System.out.print(n+=+prime[i]+++prime[j]+++(n-prime[i]-prime[j])+);j++;}i++;}}System.out.println();}publicstaticvoidinit()//初始化数组,筛选法求素数{prime=newint[30];prime[0]=2;//已知的最小素数number=1;//素数个数inti=1;//下一个素数应存放的数组下标位置intk=3;//从最小奇数开始测试,所有偶数不需测试do{intj=0;while((jnumber)&&(k%prime[j]!=0))//用已知素数prime[j]测试kj++;if(j==number)//k是素数{prime[i]=k;//将k添加到数组prime中i++;number++;}k+=2;//测试下一个奇数是否是素数}while(kMAX);output();}publicstaticvoidoutput()//输出素数{System.out.println(Allprimesin2~+MAX+are:);for(inti=0;inumber;i++){System.out.print(+prime[i]);if((i+1)%10==0)System.out.println();//每行写10个数}System.out.println(\nnumber=+number);}publicstaticbooleanisPrime(intk)//判断k是否为素数,即在prime中查找k值{booleanyes=false;inti=0;while(!yes&&i=number&&prime[i]=k)if(prime[i]==k)yes=true;elsei++;7returnyes;}publicstaticvoidmain(Stringargs[]){for(inti=4;iGoldbach.MAX;i+=2)newGoldbach(i);for(inti=7;iGoldbach.MAX;i+=2)newGoldbach(i);}}程序运行结果如下:Allprimesin2~30are:2357111317192329number=10偶数4=2+26=3+38=3+510=3+710=5+512=5+714=3+1114=7+716=3+1316=5+1118=5+1318=7+1120=3+1720=7+1322=3+1922=5+1722=11+1124=5+1924=7+1724=11+1326=3+2326=7+1926=13+1328=5+2328=11+17奇数7=2+2+39=2+2+59=3+3+311=2+2+711=3+3+513=3+3+715=2+2+1115=3+5+715=5+5+517=2+2+1317=3+3+1117=5+5+719=3+3+1319=3+5+1121=2+2+1721=3+5+1321=3+7+1121=5+5+1121=7+7+723=2+2+1923=3+3+1723=3+7+1323=5+5+1323=5+7+1125=3+3+1925=3+5+1725=5+7+1325=7+7+1127=2+2+2327=3+5+1927=3+7+1727=5+5+1727=7+7+1329=3+3+2329=3+7+1929=5+5+1929=5+7+17不能有重复表达式,例如19=3+3+1319=3+5+1119=5+3+1121=2+2+1721=3+5+1321=3+7+1121=5+3+1321=5+5+1121=7+3+1121=7+7+714.Java的数组比C++的数组有哪些优越之处?8【答】Java语言不支持C++的指针类型,
本文标题:第2章java程序设计教案
链接地址:https://www.777doc.com/doc-2246724 .html