单元设计单元5 Java语言高级程序设计.docx
- 文档编号:662952
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:27
- 大小:22.18KB
单元设计单元5 Java语言高级程序设计.docx
《单元设计单元5 Java语言高级程序设计.docx》由会员分享,可在线阅读,更多相关《单元设计单元5 Java语言高级程序设计.docx(27页珍藏版)》请在冰点文库上搜索。
单元设计单元5Java语言高级程序设计
《Java程序设计》课程教学单元设计
单元5Java语言高级程序设计
授课教师:
Java语言课程组
授课班级:
单元总学时:
22
教学条件
软件开发平台、投影设备、广播软件
教学素材
参考教材、课件、授课录像
教学目标设计
知识目标:
(1)掌握文件和目录的概念以及对象的创建;
(2)掌握不同输入输出流的分类和对象的创建;
(3)理解线程和进程的区分;
(4)掌握线程的概念、创建和运行机制;
(5)掌握线程的作用和实现步骤;
(6)掌握线程优先级、互斥、解锁的概念和解决方法;
(7)掌握Socket和ServerSocket类的作用和创建过程;
(8)掌握DatagramPacket类中的方法和对象的创建过程。
(9)掌握JDBC访问数据库所用的类和方法。
能力目标:
(1)能会使用Java语言对文件进行处理;
(2)运用不同输入输出流对文件进行操作;
(3)应用线程概念掌握线程在CPU中的运行方式;
(4)能会使用线程完成多对一的客户端程序编写;
(5)能会使用优先级和同步技术解决死锁;
(6)运用TCP协议来编写一个面向连接的网络通信程序;
(7)应用Socket类与ServerSocket类完成客户端和服务器端程序设计;
(8)应用DatagramPacket类完成应用程序之间建立传送数据报的通信连接;
(9)能会使用JDBC技术连接数据库并对数据库中的数据进行增删查改的操作。
重点:
(1)文件的创建和读取过程;
(2)线程的创建和启动;
(3)使用Socket接口完成网络传输过程。
(4)使用JDBC读写数据库
难点:
(1)使用各种输入输出流来接收和读取数据;
(2)利用线程解决互斥和解锁等问题;
(3)Socket接口中TCP和UDP传输形式。
教学内容设计
任务一:
文件管理程序设计;
任务二:
Java源程序行号添加程序设计;
任务三:
飘动字幕动画程序设计;
任务四:
学生成绩读写程序设计;
任务五:
网络聊天程序设计;
任务六:
无连接网络聊天程序设计;
任务七:
员工数据管理程序设计。
教学过程设计
任务一:
文件管理程序设计(文件与目录管理)(2课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
只要运行在计算机上的软件都需要读写硬盘上文件进行处理,Java也提供了文件处理类和方法。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.Java的文件和目录概念;
2.文件的创建;
3.文件类的方法。
教学目标:
1.使用Java的文件类来管理硬盘和内存中的文件。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
编写文件管理程序,可通过文件选择对话框选择路径,输入文件名创建文件,或通过文件选择对话框删除选中的文件,或者查看选中文件的属性。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
通过菜单实现功能选择,通过JFileChooser实现文件选择,通过File类实现文件的创建、删除和查看。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.输入/输出流与java.io包;
2.File类;
3.JFileChooser类。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.定义类FileManager继承JFrame实现ActionListener接口;
2.在FileManager类的构造方法中定义菜单;
3.在actionPerformed方法中实现文件创建、删除和查看功能;
4.main方法中创建FileManager类对象。
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
文件创建方式和目录建立过程。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
1.编写一个程序,用于显示当前目录下的文件和目录信息,类似于Dos中的dir命令。
2.在c:
\test文件夹下创建一个文件example.txt,然后列出该文件的绝对路径、上一级目录以及该文件的最后修改时间和文件大小。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
创建目录:
c:
\123并创建一个文件a.txt,向该文件中3次写入字符串“Howareyou!
”。
-
分组学习
提交作业
教学过程设计
任务二:
Java源程序行号添加程序设计(文件的访问)(2课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
当文件创建在计算机的硬盘中,那么下一步将是对文件的访问。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.FileReader和FileWriter文件;
2.流的操作过程。
教学目标:
1.掌握文件的顺序访问方式。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
编写一个程序将源文件另存为其他的文件,并为每一行代码在前面添加行号。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
使用BufferedReader从文件中逐行读入Java源文件中的代码,在每行代码前加上行号后,使用PrintWriter逐行将代码写入新文件。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.输入输出流操作一般步骤;
2.InputStream和OutputStream;
3.FileInputStream和FileOutputStream类;
4.DataInputStream和DataOutPutStream类;
5.BufferedInputStream和BufferedOutPutStream类;
6.Reader和Writer类。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.定义类InsertLineNumber
2.编写open方法,将源代码文件内容读入字符串strFinal对象中
3.编写saveAs方法,从strFinal对象中逐行读出代码,增加行号并写入新文件中
4.在main方法中创建InsertLineNumber类对象,调用open、saveAs方法
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
文件流的分类和使用。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
编写一个程序,将几个Java类型的数据写到一个文件中,并读出来。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
编写一个程序读取他自己的源代码并在控制台中输出。
-
分组学习
提交作业
教学过程设计
任务三:
飘动字幕动画程序设计(创建和启动线程)(2课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
在很多情况下设计中要求我们的程序能够每隔一段时间就运行一次,需要Java引入线程的概念。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.线程的Thread类;
2.时间的Calendar和SimpleDateFormat类。
教学目标:
1.会使用Thread类创建一个多线程应用程序。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
运用Java多线程技术编写一个简单的动画,运行程序时窗口会显示一个飘动的字幕,每隔1秒字幕会自动改变显示的位置,先自左向右移动,到达窗口右边界时,再改变为自右向左移动。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
在窗口中,通过JLabel显示一行文字,通过启动一个线程,在线程中每隔一秒改变一次JLabel对象的位置可实现字幕飘动的动画效果。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.线程概念;
2.用Thread类创建线程;
3.用Runnable接口创建线程。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.创建一个主类MovingText继承JFrame实现Runnable接口
2.在主类MovingText构造方法中创建显示JLabel对象,创建线程对象并启动线程
3.实现Runnable接口的run方法,使用sleep方法休眠一秒,然后修改JLabel对象位置
4.在main方法中实例化MovingText
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
如何使用Thread类来创建和开启一个线程。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
运用Java多线程技术,通过实现Runnable接口来编写一个电子时钟的应用程序,运行时每隔一秒种自动刷新显示当前日期和当前时间。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
编写一个程序,用继承Thread类的方法,由main()主线程创建两个新线程,每一个线程输出从1-20后结束退出,每输出一个数后注意要休眠1秒。
分组学习
提交作业
教学过程设计
任务四:
学生成绩读写程序设计(线程生命周期与优先级)(2课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
线程创建后,每隔一段时间就进入运行状态,多线程完成任务时将会存在几个线程在不同的生命周期里反复切换的问题,也就会存在同一时刻会有多个线程抢占资源问题,那么就需要对线程优先顺序进行定义。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.线程的状态;
2.线程的优先级;
3.线程的通信。
教学目标:
1.掌握线程的5种状态,并能控制线程状态;
2.掌握线程调度优先级,能够解决多线程之间数据同步问题。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
程序中有两个线程,一个负责写学生成绩数据,一个负责读取和显示学生成绩数据。
为了清楚,一个学生有20门课的成绩,写线程写入的每门课的成绩都和其学号相同。
如果读线程发现成绩和学号不一致的情况,则说明出现了共享数据读写不一致的问题,利用线程同步机制解决共享数据读写不一致的问题。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
同步块和同步方法都可以解决共享数据保护的问题。
如果代码都是自己写的,尽可能使用同步方法。
如果调用别人写好的、自己无法修改的非同步方法,就只能将调用语句放在同步块中了。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.线程的5种状态;
2.线程的优先级;
3.线程的同步。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.先定义StudentScore类,只提供数据定义,不提供访问方法;
2.分别定义WriteScore和ReadScore线程类,实现在同步块中的成绩写和读;
3.main方法中创建并启动两个线程测试方案一的有效性;
4.修改StudentScore类定义,通过增加两个同步方法readScore和writeScore实现数据封装;
5.修改WriteScore和ReadScore线程类代码,通过调用同步方法readScore和writeScore实现数据读写;
6.运行程序测试方案二的有效性。
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
线程的状态转换条件,解决同步和死锁的问题。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
编写一个仓库的进货与销售同步控制的线程实例。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
用Synchronized方法编写一个“带锁定的售票线程”。
分组学习
提交作业
教学过程设计
任务五:
网络聊天程序设计(套接字Socket)(4课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
互联网的发展让机器之间可以自由的互相连接,要想使计算机之间数据产出相互调用和处理,那么Java也必须提供一组类来完成网络通信。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.TCP/IP协议和端口的概念;
2.Socket和ServerSocket类。
教学目标:
1.能使用Socket类与ServerSocket类创建客户端程序,并实现客户端程序与服务器端程序的信息交换。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
运用Java的套接字编写一个多人网络聊天程序。
可以实现聊天记录的保存和查看。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
综合运用流、线程和Socket实现网络聊天程序,并实现聊天记录的存储。
ChatServer是服务端程序,应当先于客户端程序运行,可接受多个客户端连接。
ChatClient是客户端程序,负责将用户输入文本发送到服务端并显示从服务端转发过来的其他客户端发送的消息。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.TCP/IP和端口基本概念;
2.Socket编程。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.定义Client类实现Runnable接口,作为客户端代理,实际上是在服务器为每个客户端创建一个单独的通信线程;
2.定义ChatServer类,等待客户的连接请求,用列表clients保存客户端代理,每次和一个客户端建立连接,创建一个代理对象放入列表clients中;
3.定义ChatClient类继承JFrame,实现客户端界面,与服务器建立连接,接收用户输入发送给服务器并显示服务器发送来的信息。
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
Socket编程中服务器端和客户端的连接过程。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
用Socket实现客户和服务器交互的典型C/S结构的聊天程序。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
编写一个简单的基于TCP协议的聊天程序,要求采用图形用户界面,允许服务器与客户端在同台机器上。
分组学习
提交作业
教学过程设计
任务六:
无连接网络聊天程序设计(无连接通信数据报编程)(2课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
任务五中我们使用了TCP协议来完成网络通讯,但是在计算机网络技术中还有一类连接时UDP,也就是无连接通信需要使用Java语言来解决。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.UDP协议的概念;
2.数据报发送和接收。
教学目标:
1.能使用DatagramPacket类创建数据报对象并在应用程序之间建立传送数据报的通讯连接。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
编写一款UDP协议实现聊天工具。
运行两个实例,设置对方IP地址和端口号即可实现网络聊天。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
可以创建一个类UdpDialogFrame,既可以作为信息发送端,又可以作为信息接收端。
程序运行时,显示本机IP地址和所用端口号。
允许用户输入信息发送目标的IP地址和端口号。
在线程体中接收数据包,在TextListener接口的文本变化事件处理方法中发送数据包。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.UDP数据报协议;
2.InetAddress类;
3.基于UDP通信的基本模式。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.定义类UdpDialogFrame继承Frame实现TextListener,Runnable接口;
2.在UdpDialogFrame类的构造方法中构造窗口界面,启动数据接收线程;
3.在textValueChanged方法中发送信息;
4.在run方法中接收并显示信息;
5.创建主类UdpDemo,创建UdpDialogFrame类对象。
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
使用UDP协议编写通信的过程与上个任务的TCP协议的区别和优缺点。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
编写两个简单的UDP程序,在一台计算机上由一个程序负责发送数据,另一程序负责接收数据,接收程序的端口号位9008,发送端的端口由系统分配。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
使用InetAddress类编写一个程序,程序的功能是获取本地主机的域名和IP地址。
分组学习
提交作业
教学过程设计
任务七:
员工数据管理程序设计(使用JDBC连接数据库)(4课时)
主要步骤
教学内容
教学方法
教学手段
师生活动
引入
软件系统中必须有数据的存储,在任务一中可以使用文件来进行存储,但是当遇到数据量大,数据类型复杂的时候就需要使用数据库来进行存储,如何让Java程序能和数据库产生通信,就需要引入JDBC技术。
教师运行程序
教师启发
-
教师:
演示
学生:
思考
告知
(教学内容、
教学目的)
教学内容:
1.数据库JDBC技术简介;
2.Statement和PreparedStatement对象使用;
3.Java实现数据库增删查改操作的方法和步骤。
教学目标:
1.能使用JDBC技术进行数据库的增删查改操作。
教师启发
讲解
课件演示
教师:
讲授
学生:
思考
任务简介
员工管理系统中,需要建立员工表emp,字段有员工编号(empno)、姓名(ename)、工作(job)、经理编号(mgr)、雇佣日期(hiredate)、工资(sal)、提成(comm)、部门编号(deptno)。
现要求使用JDBC连接数据库,能够根据员工编号查询、添加、修改、删除员工记录。
讨论归纳
课件演示
教师:
讲授
学生:
思考
任务分析
OracleDBConnection类完成数据库连接、关闭功能,以及结果集ResultSet和Statement资源的释放操作。
EmployeeDAO类实现了员工表访问功能,提供了对员工数据进行增删查改操作的方法。
EmployeeBiz类模拟了员工管理系统的业务操作,通过调用EmployeeDAO类,完成了员工数据的增删查改。
教师演示
课件演示
小组讨论
教师:
讲解演示
学生:
思考
参与发言
分组讨论
支撑知识
1.JDBC的作用和框架结构;
2.JDBC驱动程序和编程步骤;
3.使用JDBC驱动程序编程;
4.JDBC应用模型;
5.实体类和辅助类编写;
6.数据访问层和业务逻辑层。
讨论归纳
课件演示
教师:
演示
学生:
思考
任务实施
1.编写实体类Employee实现员工数据的封装;
2.编写OracleDBConnection类完成数据库连接、关闭等功能。
3.编写EmployeeDAO类实现了员工表访问功能;
4.编写EmployeeBiz类模拟了员工管理系统的业务操作。
动手实践
分组实践
教师:
讲解指导
学生:
小组讨论
动手实践
分享交流
使用JDBC连接数据库,能够根据查询并显示所有记录,并能进行增删查改操作。
个别演示
分组讨论
教师:
总结
学生:
演示
分享交流
课堂实训
实训1:
在BBS中有数据库bbs,表明为news,表中字段有序号、标题名称、作者、创建时间,再用JDBC连接数据库,查询显示所有记录。
实训2:
建立一个企业数据库,建立员工表和字段,编写程序实现:
①新来4个员工;②将所有员工的工资增加10%;③按照由高到低顺序显示所有员工信息;④一个员工离职,从数据库中删除该员工信息。
动手实践
分组实践
教师:
任务布置
学生:
小组讨论
动手实践
课后作业
超市对大客户进行管理,采用SQL数据库。
对含有多个字段的客户表进行①使用JDBC创建数据库连接;②对数据库进行有针对性的增删查改。
分组学习
提交作业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单元设计单元5 Java语言高级程序设计 单元 设计 Java 语言 高级 程序设计