Java程序设计实训周实训计划.docx
《Java程序设计实训周实训计划.docx》由会员分享,可在线阅读,更多相关《Java程序设计实训周实训计划.docx(28页珍藏版)》请在冰点文库上搜索。
Java程序设计实训周实训计划
[渤熔孩工护找岁眈信息工程糸
——nottrU]冋阪ZSIIYTJCWWAK——7*
周实训教学计划
课程名称:
Java程序设计实训
授课专业:
计算机网络
年级班级:
16级计算机网络
任课教师:
刘德强
教研室:
计算机教研室
(2017-2018学年第
学期)
实训项目
(课题)名
称
Java程序设计实训
计划学时
30
指导教师
刘德强
实训时间
第1617周
实训场地
网络实训室
实训班级
16级网络
实训目的
系统培养学生的编程开发的能力,理解系统开发的流程,熟悉当下流
行的最新技术,进一步锻炼学生的编程能力
实训重点
难点
实训重点:
Java开发的基础流程
实训难点:
java中的特性理解
教学方法
手段
多媒体讲解、演示法、以及实训练习
实训准备
确定好分组,给学生详细讲解实训任务及要求,准备jdk的环境搭建
以及网络环境配置,开发工具为eclipse
实训安全
注意事项
注意实训室设备的正确使用,以及实训室电源的使用。
实训完成后及时断电和关闭实训室。
教学内容分
述
备注
1、实训内容:
(操作规程、仪器设备性能、岗位分工、发放实训材料资料、对学生的要求
实训内容:
教师:
讲授基础级代码,学会基础逻辑。
学生:
根据讲授的内容和技术编写一个相应的系统。
学生在组内由组
长安排任务每天填写日报,日报内容包括当天的完成内容和第二天的
任务
等)
2、实训步
进度安排:
骤:
(教师
本次实训为五天,每天上午四课时,下午两个课时。
上午两个课时为
活动、学生
教师讲解当天任务,三四课时为熟悉案例代码。
活动、时间
分配等)
下午俩个课时为编写代码。
(时间可以灵活掌握)
3、教学分
困难:
析:
(实训
学生在实训当中会遇到理解能力较差,个人进度跟不上教学进度。
开
期间预计困
发过程缓慢
难及解决方
案)
解决方案:
多鼓励学生利用好课余时间,利用课余时间将实训课程内容学会
4、实训考
考核标准:
核:
(方法
1•学生的考勤占实训30%
选择与成果
评价、等级
2.学生的练习代码占实训的30%
标准等)
3•学生的作业完成情况:
(占40%)
1)各组完成情况较好,组长适当加分
2)各组完成情况较差,组长适当减分
5、实验实训报告:
(记录、完成情况等)
6、实训小结:
(实训效果、待处理问题、改进措施等)
7、基本教材及参考书
目:
基本教材:
参考书目:
PPT,知识点大纲
《Java程序设计入门》
《Java核心技术》
实训教案
教学内容
备注
任务一:
java开发环境的搭建
任务描述:
本任务需要搭建java开发的软硬件开发环境,从网络的基础设施到jdk安装以及eclipse的搭建。
任务的关键点:
1.网络设施的搭建
2.Jdk环境配置
3.Eclipse的环境的搭建
任务分析:
网络设施的搭建是学习计算机的一个必不可少的重要环节,完成
基础设施的安装与搭建是学习编程开发的第一步。
软件环境的搭建对于开发的逻辑思路有重要的意义。
环境搭建需要勤于动手。
任务实施:
1•网络设施搭建
1>制作网线,网线RJ-45接口的线序为白橙橙白绿蓝白蓝绿白棕棕,检查网线是否接通。
2>配置网络ip:
网络和Internet设置-->以太网-->网络适配器设置-->属性
-->IPv4
网关为:
10.74254
子网掩码:
255.255.255.0
2.jdk环境配置:
1>安装JDK选择安装目录安装过程中会出现两次安装提示。
第一次是安装jdk,第二次是安装jre。
建议两个都安装在同一个java文件夹中的不同文件夹中。
(不能都安装在java文件
夹的根目录下,jdk和jre安装在同一文件夹会出错)
1:
安装jdk随意选择目录只需把默认安装目录\java之前的目录修改即可
2:
安装jref更改f\java之前目录和安装jdk目录相同即可
注:
若无安装目录要求,可全默认设置。
无需做任何修改,两次均直接点下一
2>安装完JDK后配置环境变量计算机f属性f高级系统设置f咼级f环境变量
系统变量f新建JAVA_HOM量。
图1-1:
path路径
变量值填写jdk的安装目录(本人是E:
\Java\jdk170)
系统变量f寻找Path变量—编辑
在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再
输入上面的代码)如图1-1;
系统变量—新建CLASSPA变量,如图1-2
图1-2:
classpath路径
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\toolS注意最前面有一点)
系统变量配置完毕检验是否配置成功运行cmd输入java-version
(java和-version之间有空格)
若如图所示显示版本信息则说明安装和配置成功
^\Uicn^uAnnu>J«vfl^vtriion
WMinH'*
:
a/a门tl)SERuntimEnuironnent)
lav*lothttON)ClkfltUN(build2l.0-bl?
>h!
h4durT
图1-3:
运行结果
3.eclipse的安装:
在官网上下载eclipse解压缩。
设置默认开发工作环境目录。
任务二:
基础语法
任务描述:
本任务旨在训练学生对java基本语法的掌握,具体的任务关键点为:
任务关键点:
1.加密程序
2.三元运算判断奇偶数
3.精确浮点数
4.变量的互换
5.闰年的判断
任务分析:
本次任务是通过对程序的编写进一步掌握基础知识,也是对基础
知识的熟练应用。
每个分解任务都会偏重某一个知识点。
任务实施:
1.加密程序
创建Example类,在该列的主方法中创建System类的标准输入流的扫描器对象,提示用户输入一个英文的字符串或者要解密的字符串,然后通过扫描器获取用户输入的字符串,经过加密或解密后,把字符串通过错误流输出到控制台。
关键代码:
丄tji-iiva-utIL_Scfuiti&i;
publicclassSzccunple{
publies"taticvoidtx\£lin(String(Jargs)•”Scantieinscan=newScanner(System,i/j)SysteinacejiTprintInTiL'j!
|l!
ijX
Stringpfissinprd=・noTctLii):
11.1!
fifi'.ay=pHSswot'd・trAi-11'liy()
for(iiiti=0:
i1|ji**){
tti'Xii'iy[i]■(clmr)(oirfiy[i]20000}
图2-1加密程序
C:
\ProgrfmFil*s\Jftvt\jcbcl8,Q_151\bin\jiiwii询辎A—i'英文和牛或加幽申材尸
.加邂或解雪黠範1Tb.
FrccesEfini^nedwithe^i.t^ode0
图2-2加密程序结果
2.用三元运算符判断奇偶数
创建ParityChec类,在该类的主方法中创建标准输入流的扫描器对象,提示用户输入一个整数,并通过扫描器的方法来接收一个整数,通过三元运算符判断该数字与2的余数,如果余数为0,如果余数为0说明其是偶数,否则是奇数,关键代码:
:
rzjava.nil.Scaimer
I;.j1.._11一:
_一iaiaiStrict]args}{
Scannerscan=:
■*Scanner.System,j'jt)Sysieo.r.frmtln.;l\■');
.in-nunber-scan.neitLongt^;
Stringcheck-〔汕弧诜严;”E.讥.-1.Sysiex加匸pr^ntlnichecki;
】l
图2-3用三元运算符判断奇偶数
图2-5精确浮点数
非林倔讥片
軀U爭缶理.啟・Q.8999999^999^9^99忡确计M
.来U命金客SbQ.3
Pinqi^vssfinishwdwithwxiXcvdwQ
图2-6运行结果
4.变量的互换
创建VariableExchang类,在该类的主方法中创建扫描器对象接收
用户输入两个变量值,然后通过位运算中的异或运算符“A”实现两
个变量的互换,关键代码下:
inrjortjava.util.Scaiwer.
publicclas2VariablcExchange(
publicsiaiicvc.dmain(StringL]args){
Scannerscan=newScanner(Sys七己如一in)System,our.println(ii'■L\密」:
「.「「「)longA二scan,ncxtLong():
SystenLout.printingifi'门入峻前B的值”)longH-scan,nextL.on呂();
System,our.printinga-+A+\tB="'+B).
System,our.println(S&坯换.…JA—AB;
B—BA;
A—AB»
System,out.println(A=+A++B)
图2-7变量的互换
C:
\Pro^ramFiles\Java\Jdkl.8.0_15L\Liti\java请输人变量巒憤
请输入变量瞄值
A-2B-3
执行突當互换…
A=3B=2
Pfa心总finiEi&d诗ithtodEU
图2-8运行结果
5.闰年的判断
Lmportjava.util.Scanner;
publicclapsLeapVear{
publicstaticvoidmain(STring[]args)f
Scannerscan—newScannerSystem,oui.printIn1bit?
;):
longyear-scan.nextLong();
if(year%4=0&&year%100!
=0||yearM00=0){
System,outrprintIn(year+日U:
}else{
System,printIn(year+"V,'|");
图2-9闰年的判断
C:
\FrogramFlles\Java\jclAL8.0_151\b1n\java--s■-!
TntelliJIDEAcoveragerunner-—sarrpling.B.
includepatterns:
excludepsitterns;请输入个
mir是闰年
图2-10运行结果
任务三:
基础应用
任务描述:
本任务旨在训练学生对java基本语法的掌握,具体的任务关键点为:
任务关键点:
1杨辉三角
2.阶乘运算
3.终止循环体
4循环的极限
5•冒泡排序
任务分析:
本次任务是通过对程序的编写进一步掌握基础知识,也是对基础
知识的熟练应用。
每个分解任务都会偏重某一个知识点。
任务实施:
1杨辉三角
publicassYanghuiTria口呂1色;publicstaticvoidmain(String[?
args){
inttri且ng1e….=xie即int.[E]」.,■ipjJ】…—>■頻~41
//ig[j]一启;数爼第J:
for(inti-0;itriangle[il=nevint[i*l]:
划始化朗二层敷组的大小“邀Dj第二层数如
for(inij=Q;jJ++){
ifLz-0j==0Ij==triangle[_J.{
triangle[i][j]-'
}else(
triangl*?
「】]rjl-tnangl.&[i-]rjl+triangl(*[i-:
1
System,print(trianBLeLi][j]-1't'r):
f
Syston.printingJ:
图3-1杨辉三角程序
Run■YdriyiuiTtid^gk
►
t
i
■
4
i
1
II
爭
i
2
1
0
i
3
3
1
卜
e
i
4
6
4
1
fir
i
5
10
10
51
i
6
15
20
1561
Process
fInishadwithesitcode3
图3-2运行结果
2.阶乘运算
创建Example类,在该类的主方法中创建保存总和的sum变量和计
算阶乘的factorial变量,为保证计算结果的精度,这两个变量都是
r;ib!
■'c.Lnn:
rCycUtmost{
pnhl:
cst£-ticvoidmain(String[^args){
intend=Integer._Kj.!
2V-^LT
intstart--£;
]in;count-U
_oi(inti=start,i<=end,i++){
count++;
System,out.p『intln(L,e),
J
Systen:
.rPprint1n(卜『l-;i'>J:
+caunt}
图3-7循环极限
Toomuchoutputtoprocess
3.we
qwe
Cj^iE8
QWQ
■awe
qiwe
qwe
qwe
图3-8运行结果
5•冒泡排序
public-c2asBubble{
publicstaticvoidBHintString[Iargs)
inta[]-{10,23,11*56.45,26h59,28,&4u9in?
i,t^wp;
SysteuLjlr.printIn(",■'rLI;;-'3:
for(i=0;i<10;i++)(
Systom.print+');
ft>r(intj-0;,i<9;j++}:
for(i=0:
i<9-j,i*+){if(a[i]>a[i-l]){
tomp=all]:
豐a[ij二a[i+二咱
ai*1]-temp:
SystejLout,print(J
for(i"0;iCW^i*+){
System,our.print(afi
图3-9冒泡排序
C;\Pr102311丸站2&酣2S3475
排好的数组为|1011232&284556597984
Precessfinished诲ithezitcodeD
图3-10运行结果
任务四:
排序算法
任务描述:
本任务旨在训练学生对java基本语法以及算法的掌握,具体的任务关键点为:
任务关键点:
1快速排序
2选择排序
3.插入排序
4.归并排序
任务分析:
本次任务是通过对程序的编写进一步掌握基础知识,也是对基础
知识的熟练应用。
掌握各种排序的算法解法,每个分解任务都会偏重某一个知识点。
任务实施:
1.快速排序
快速排序的基本思想是:
首先选定一个轴值(就是比较的基准),将待排序记录分割成独立的两部分,左侧记录的关键码都小于或等于轴值,右侧的记录关键码都大于或等于关键码,然后在对这两部
分分别重复上述的过程,直到整个序列有序
pnh'刊:
Trian.zle\
publicstaticvoidmain(Stringrargs){
mttriangle...=ne*_nrJ[].?
rh":
维飯绡「遍历it数组第嵋
for(inti-0:
i^triangle.length:
i++);
triangleli]=ncwintLi+ll;•闵化「;_:
:
立汕Fj-1;小"迪龙第二空数组
foi'(inij-0:
jj*4){
il'{_z-0j==0j==triangle[_J.{
triangl«?
[i][j]=l;
}else(
triarjglpT11Tjl-triarglp[i~1[jl+rri^ng]f»Ci-L1Tj-1J
Systenir«?
i/Lprint(trierBLeliJ[j]+'■t);
>
SysTPTi.r.println(i,;
图4-1快速排序
kun
■Ydfig^ulTrldMigle
►
1
■
1
1
II
1
2
1
pj
1
3
3
1
L
1
4
e
4
1
1
5
10
10
51
PEL
6
15
20
1561
L
1
Process
finishedwi:
hexitcode0
图4-2运行结果
2•选择排序选择排序是一类借助“选择”进行排序的方法,其主要思想是:
每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中。
选择排序比较独特的地方是:
记录的移动次数少,本实例运行结果如图4-3:
publlcc1assSelect.
piib11cstaticvoidmain(String.1si■卑吕}{
intr[]={49,27*97,76.13,38,5,12
intindex:
Systen.口"九printIn「初昭JJ」HI
for(inti■{
System・owGDtint(rlil*):
for(inti=0;iO;i++){
index-i:
for(intj-i+1:
jif(r[J]}
if(index!
=i){
inttesnp二r[il■:
r[ij[ind^x]rLindexj=t-eEtip
System.£?
lff.printIni寸1匚2」r毁4f:
)
for(ititi=0;i<10;{
SysteniBouraprint(rLi]+";
图4-3选择排序
._."“amFilss\Jara\jdltl.8.0_151\bi:
ijui初始序列的数组为;
492755977f13S35155F排妊序数组为「
5121327364956&576盯
Frocesslinishedvithexitcode0
图4-4命令行结果
3•插入排序
插入排序是一类借助“插入”进行排序的方法,其主要思想是:
每
次将一个待排序的记录按其关键码的大小插入到一个已经排好序的
有序序列中,直到全部记录排好序:
publicclassInsert{publicstaticvoidmain(String__args)■_
intr[]-{49,27,65,97,76,13,38,5,12,56};
iritj,temp,k.;
System,out.printlnC放置初始厅:
列的数组为【");for(inti^O;i<10:
i++){
System.out.pr1nt(r_i,-J:
for(inti二亠;L、亠0:
1++){
temperEi]:
for(j=i-l:
j>-0teempj—){r[j+L]^r[j]:
I
r
r[j十1]=teoip;
>
J
System,out,printLn(\「+1作吓好的数组为;");for(inti=0;i<10;i++)(
System,out.printer_i]+v:
}
图4-5插入排序
T:
\ProgrE3mFiles\Java\jdk1.3.U_15l\bin\java畝萱初始序列的數组为:
4927就缶76133B512阴排序好的数组为.
5L213Z7饕4956657657
Processfinishedwithexitcade□
图4-6运行结果
4•归并排序法
归并排序是一种借助“归并”进行排序的方法,其实就是将两个或
两个以上的有序序列合并成一个有序的序列。
归并排序的主要思想
是将若干有序序列逐步合并成一个有序的序列:
publicclasslieigeS{
privatestaiicvoidmerge(inti[J.mtrlL],ints.ititcn,intt■■(iutjm-:
0s:
if(rti]<=r[jl)(rl[k++l-r[i++];
};
J・*t■*"L
rl[k++]=r[j++l:
1
1
1
if(i<=fli){
while(1<=di){
rlCk++]=r[i+^j:
}
whilei
rlft-H-]=r[j++]:
I
J
1
1
I
图4-7归并排序
privatestaticvoidmergePass(mti[],intrl[],mth){
inti