Java打印程序设计
- 格式:doc
- 大小:32.50 KB
- 文档页数:22
《Java程序设计》教学大纲1 课程的基本描述课程名称Java语言程序设计Java Program Language课程性质专业基础课适用专业计算机科学与技术、软件工程、网络工程等参考教材Java 程序设计教程(慕课版)(第 2 版).张仁伟.人民邮电出版社。
总学时60学时考核方式期末上机考试(开卷考试)+课程作业,其中期末考试占50%,课程作业占50%本课程讲解Java语言的基本词法、语法、常用基础类和面向对象技术,除此以外,还要讲授程序设计要求、技能、方法和技巧,讲授分析问题和解决问题的方法,讲授算法的基本概念与应用。
Java语言基本内容包括基本数据类型、语句、类与对象、子类与继承、接口与实现、内部类与异常类、常用实用类、输入输出流、Java多线程机制、Java网络编程、泛型与集合框架、组件及事件处理、JDBC数据库操作。
2 教学定位通过本课程的学习,使学生获得JA V A语言程序设计的基本概念、方法和技巧,掌握JA V A 语言的语法,运用JA V A语言编写并调试通过能解决一定规模实际问题的程序,使学生受到程序设计基本功的严格训练,培养学生良好的程序设计风格和严密的逻辑思维能力,提高分析问题解决问题以及实际动手能力,为后续课程的学习以及为今后设计开发各种软件打下良好的基础。
2.1 课程教学目标1.能运用Java语言的基本词法、语法和常用类库等面向对象知识分析计算机复杂工程问题;2.能运用Java面向对象原理,借助相应资源,分析影响问题求解因素,并获得结论;3.能运用Java语言完成计算机系统或软件模块的设计。
2.2 课程的主要特点Java语言程序设计是一门专业基础课程。
课程内容包括语言的基本语法(词法和语法)、面向对象技术和常用基础类。
学生首先要切实掌握语言的基本语法,只有掌握了基本语法才有可能灵活运用语言,是具备程序设计能力的基础;Java语言本身是面向对象的语言,学生应很好地掌握面向对象技术,以便于理解面向对象的设计方法,并能用面向对象技术分析、设计软件系统;通过语言的学习,能够理解算法的概念,并能使用基本的、常用的算法解决信息处理问题;在学习语言的过程中,培养学生的编程能力,以利于学生终身学习。
全国计算机等级考试二级 java 语言程序设计Java语言程序设计是全国计算机等级考试二级中的重要科目之一,涉及到了Java语言的基础知识、面向对象编程、常用数据结构和算法等内容。
通过学习和掌握Java语言程序设计,可以提高编程能力,为日后的软件开发工作打下坚实的基础。
首先,Java语言程序设计涉及到的基础知识包括数据类型、运算符、流程控制语句等。
学习者需要了解Java语言中的基本数据类型,如整型、浮点型、字符型、布尔型等,以及如何声明变量、进行运算和输出结果。
此外,掌握流程控制语句如if语句、switch语句、循环语句等,能够帮助程序实现不同的逻辑控制,使程序更加灵活和高效。
其次,面向对象编程是Java语言的重要特点之一,也是考试中的重点内容。
学习者需要了解类和对象的概念,掌握面向对象的三大特性:封装、继承、多态。
通过实例化对象、调用对象的方法、编写类的构造方法等操作,能够更好地理解面向对象编程的思想,设计出结构清晰、功能完善的程序。
另外,Java语言程序设计还涉及到常用的数据结构和算法。
学习者需要掌握数组、链表、栈、队列等数据结构的定义和操作,了解它们的特点和适用场景。
在算法方面,需要熟悉常见的排序算法、查找算法、递归算法等,能够灵活运用这些算法解决实际问题,提高程序的效率和性能。
总的来说,全国计算机等级考试二级的Java语言程序设计是一门涵盖广泛、内容丰富的考试科目,需要学习者在掌握语法基础的同时,注重实际应用和综合能力的培养。
通过系统的学习和练习,不断提升编程能力和解决问题的能力,相信能够顺利通过考试,取得优异的成绩。
希望考生能够认真对待这门科目,努力学习,取得理想的成绩,为今后的发展打下坚实的基础。
实验一 Java实验环境的建立一、实验目的1.掌握Java编程环境的搭建过程;2.掌握Jcreator pro软件的使用方法;3.能使用Java doc文档。
二、实验内容1.下载并安装JDK1.6,配置JDK环境变量;2.下载Javadoc压缩包并解压在JDK安装路径下;3.下载Jcreator pro 4.0并安装和配置使用环境;4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){System.out.println("Hello Java!");}}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){g.drawString("Hello!",30,30);}}三、试验要求1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二 Java语言程序设计训练一、实验目的:1.输入、输出操作实现原理和方法2.掌握程序流程控制的实现方法3.掌握数组的定义和操作方法二、实验内容1.计算 Result=1!+2!+3!+ (10)public class TestJieC{public static void main(String arg[]){long result=1;for(int i=1;i<=10;i++){ result=i*result;result+=result;}System.out.println(" "+result);}}2.计算1---50之间所有素数的和。
Java语言程序设计
教案
系部
教研室
课程名称Java语言程序设计适用班级
主讲教师
职称
课程基本信息
课程类型:计算机科学与技术专业与软件工程专业的专业必修课
课程教学总时数:48
教材:《Java语言程序设计》第4版,清华大学出版社
教学内容:本课程主要介绍Java编程技术,涉及具体内容包括面向对象编程方法,图形界面设计和事件接口处理,多线程并行运算,网络编程基础和数据库连接技术,异常错误处理机制等。
要求学生具有掌握Java语言和面向对象思想,并具有使用Java类库编写J2SE应用程序的能力。
课程的目的和任务:本课程是一门帮助学生掌握面向对象程序设计思想的基础性课程。
该课程一般在第二学年第一学期开设,以理论教学为主,配合一定的随堂实验环节。
通过本课程的教学,使学生能够初步运用Java技术和基本开发工具进行计算机程序设计。
培养学生用面向对象程序设计思想进行编程,启发学生的创新意识,提高学生在软件设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。
课程特点:实践性较强,需要理论联系实际。
考核方式:课程考核最终成绩采用百分制,具体由以下几个部分组成:
平时成绩:以作业、实验为评分内容,占总成绩20%;
考勤成绩:以课堂考勤为评分内容,占总成绩10%;
期中成绩:闭卷考试,占总成绩30%;
期末成绩:闭卷考试,占总成绩40%。
成绩必须达到60分以上才能取得本门课程学分。
java web程序设计实验报告Java Web程序设计实验报告一、引言Java Web程序设计是计算机科学与技术专业中的重要课程之一。
本实验报告旨在总结和分析我在Java Web程序设计实验中的学习和实践经验。
二、实验目的本次实验的主要目的是通过设计和实现一个简单的Java Web应用程序,加深对Java Web技术的理解和应用能力。
具体实验要求包括:使用Java Servlet和JSP 技术实现一个简单的用户注册和登录系统,能够完成用户信息的录入、存储和验证。
三、实验过程1. 环境搭建在开始实验前,我首先搭建了Java Web开发环境。
我选择了Eclipse作为开发工具,并安装了Tomcat服务器作为Web容器。
同时,我还配置了MySQL数据库,用于存储用户信息。
2. 项目结构设计在开始编写代码前,我先设计了项目的结构。
我将项目划分为不同的模块,包括用户注册、用户登录、数据库操作等。
这样可以使代码结构清晰,便于维护和扩展。
3. 用户注册功能实现我首先实现了用户注册功能。
通过编写一个Servlet,我接收用户提交的注册信息,并进行验证和存储。
同时,我还编写了一个JSP页面,用于展示注册表单和提示用户注册结果。
4. 用户登录功能实现接下来,我实现了用户登录功能。
同样通过一个Servlet,我接收用户提交的登录信息,并进行验证。
如果验证通过,我将用户信息存储在Session中,以便后续使用。
同时,我还编写了一个JSP页面,用于展示登录表单和提示用户登录结果。
5. 数据库操作为了存储和验证用户信息,我使用了MySQL数据库。
通过编写Java代码,我实现了与数据库的连接和操作。
包括创建用户表、插入用户信息、查询用户信息等。
6. 测试和调试在完成代码编写后,我进行了测试和调试。
我模拟了用户注册和登录的场景,确保功能的正确性和稳定性。
同时,我还进行了性能测试,以确保系统能够处理大量用户请求。
四、实验结果与分析通过本次实验,我成功实现了一个简单的Java Web应用程序。
附一、实验报告填写方法附1.1 实验开发环境1.硬件:Intel P42.4G/256M/40G PC机一套;2.软件:Windows XP+j2sdk1.5.0+JCreator Pro3.1.0+(MS Access 2000)附1.2实验过程要求1.在上课的同时,将每个实验预习的每个例题直接完成在实验指导书上;2.在实验之前,将实验要求的程序写在草稿本上;3.每次实验之前需要把实验指导书和写有程序的草稿纸带上,以备检查,否则不能进入实验室。
4.实验过程中,不能做与实验无关的事情(如:打游戏、看其他书籍),否则本次实验成绩记0分,在遇到问题的时候举手提问,同学之间交流的声音不可太大。
附1.3实验报告内容填写1.第1页:填写(1)实验目的、(2)实验要求2.第2页~第3页:填写(3)实验程序源代码3.第4页:填写(4)实验运行结果、(5)实验总结实验一:Java基础程序设计Java程序设计语言同大多数程序设计语言一样,具有一些基本特性。
本节实验主要练习Java编程语言的这些基本特性,如Java中的简单数据类型,运算符和表达式,这是学习Java语言必须经过的基础阶段。
掌握了本节实验所讲述的内容后,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型和运算符。
学好Java语言必须具备扎实的语言基础,这对后续学习是很有必要的。
Java程序通过控制语句来执行程序流,完成一定的任务。
程序流是由若干个语句组成的,语句可以是单一的一条语句,也可以是用大括号{}括起来的一个复合语句。
Java中的控制语句主要有分支语句(if-else,switch).循环语句(while,do-while,for)与程序转移有关的跳转语句(break,continue,return)。
本节实验将学习如何控制程序的流程,使程序实现不同功能。
1.1实验目的:1.掌握Java语言的数据类型。
2.掌握Java语言的运算符和表达式。
课题名称项目2:购物清单打印计划学时12课时内容分析学做任何事情,都要打好基础。
同样地,要掌握并熟练使用Java语言,必须充分了解Java语言中的基础知识。
本项目将针对Java的基本语法、Java中的变量、运算符进行详细地讲解。
教学目标及基本要求要求学生掌握Java的基本语法、掌握Java中常量和变量的使用、掌握变量的作用域、掌握变量的类型转换。
重点及措施教学重点:变量的作用域。
难点及措施教学难点:短路与和与运算的区别,短路或和或运算的区别。
教学方式“做,学,教”三位一体教学。
教学过程第一,二,三课时(Java代码的基本格式、注释、标识符、关键字和常量)Java代码的基本格式●Java中的代码分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。
每条功能执行语句的最后都必须用分号(;)结束。
●Java语言是严格区分大小写的。
●在编写程序代码时,尽量做到整齐、美观、层次清晰,使用代码保持一种良好的格式,提高可读性。
Java中的注释✧单行注释单行注释是对程序中的某一行代码进行解释,用符号“//”表示。
“//”后面为被注释的内容,具体示例如下:int c = 10; // 定义一个整型变量✧多行注释多行注释以符号“/*”开头,以符号“*/”结尾,具体示例如下:/* int c = 10;int x = 5; */✧文档注释以“/**”开头,并在注释内容末尾以“*/”结束。
文档注释是对代码的解释说明,可以使用javadoc命令将文档注释提取出来生成帮助文档。
Java中的标识符✧什么是标识符在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
✧定义标识符的规则●包名所有字母一律小写。
例如:cn.itcast.test。
●类名和接口名每个单词的首字母都要大写。
例如:ArrayList、Iterator●常量名字母都大写,单词之间用下划线连接。
java程序设计第三版答案Java程序设计第三版是一本广泛用于教学和自学的Java语言教材,由Y. Daniel Liang所著。
这本书涵盖了Java编程的基础知识和高级概念,包括数据类型、控制结构、类和对象、继承、接口、异常处理、集合框架、多线程、输入输出流、网络编程等。
以下是一些可能的练习题答案和解析,但请注意,具体答案可能因版本和题目的不同而有所差异。
第一章:Java入门练习题1:编写一个Java程序,打印出“Hello, World!”。
答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```解析:这个程序定义了一个名为`HelloWorld`的公共类,其中包含一个`main`方法,这是Java程序的入口点。
`System.out.println`用于在控制台打印文本。
第二章:数据类型、运算符和表达式练习题2:计算并打印出以下表达式的值:`(5 + 3.14) * 2 - 7 / 2`答案:```javapublic class ExpressionEvaluation {public static void main(String[] args) {double result = (5 + 3.14) * 2 - 7 / 2;System.out.println(result);}}```解析:在Java中,算术运算符的优先级是加法和减法低于乘法和除法。
因此,表达式首先计算括号内的加法和乘法,然后执行除法,最后进行减法。
第三章:控制语句练习题3:编写一个程序,使用for循环打印出1到10的整数。
答案:```javapublic class ForLoopExample {public static void main(String[] args) {for (int i = 1; i <= 10; i++) {System.out.println(i);}}}```解析:`for`循环由三个部分组成:初始化表达式、条件表达式和迭代表达式。
Java打印程序设计1 前言在我们的实际工作中,经常需要实现打印功能。
但由于历史原因,Java提供的打印功能一直都比较弱。
实际上最初的jdk根本不支持打印,直到jdk1.1才引入了很轻量的打印支持。
所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。
实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮的打印模式的开端,该打印模式与Java2D图形包充分结合成一体。
更令人鼓舞的是,新发布的jdk1.4则提供了一套完整的"Java 打印服务 API" (Java Print Service API),它对已有的打印功能是积极的补充。
利用它,我们可以实现大部分实际应用需求,包括打印文字、图形、文件及打印预览等等。
本文将通过一个具体的程序实例来说明如何设计Java打印程序以实现这些功能,并对不同版本的实现方法进行分析比较,希望大家能从中获取一些有益的提示。
2 Java中的打印2.1 Java的打印APIJava的打印API主要存在于java.awt.print包中。
而jdk1.4新增的类则主要存在于javax.print包及其相应的子包javax.print.event和javax.print.attribute中。
其中javax.print包中主要包含打印服务的相关类,而javax.print.event则包含打印事件的相关定义,javax.print.attribute则包括打印服务的可用属性列表等。
2.2 如何实现打印要产生一个打印,至少需要考虑两条:需要一个打印服务对象。
这可通过三种方式实现:在jdk1.4之前的版本,必须要实现java.awt.print.Printable接口或通过Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;在jdk1.4中则可以通过javax.print.PrintSerivceLookup来查找定位一个打印服务对象。
需要开始一个打印工作。
这也有几种实现方法:在jdk1.4之前可以通过java.awt.print.PrintJob(jdk1.1提供的,现在已经很少用了)调用print或printAll方法开始打印工作;也可以通过java.awt.print.PrinterJob的printDialog显示打印对话框,然后通过print方法开始打印;在jdk1.4中则可以通过javax.print.ServiceUI 的printDialog显示打印对话框,然后调用print方法开始一个打印工作。
2.3 打印机对话框2.3.1 Printable的打印对话框开始打印工作之前,可以通过PrinterJob.printDialog来显示一个打印对话框。
它给用户一个机会以选择应该打印的页码范围,并可供用户改变打印设置。
它是一个本地对话框。
事实上,当从一个Printable对象进行一个打印工作时,打印对象并不知道需要打印多少页。
它只是不停地调用print方法。
只要print方法返回Printable.PAGE_EXISTS值,打印工作就不停地产生打印页,直到print方法返回Printable.NO_SUCH_PAGE时,打印工作才停止。
由于打印工作只有在打印完成后才进行准确的页数计算,所以在对话框上的页码范围是尚未初始化的[1,9999]。
我们可以通过构建一个java.awt.print.Book对象传递给打印对象;也可以通过指定的格式计算需要打印的页数并传递给打印对象,使其准确地知道要打印多少页。
2.3.2 ServiceUI的打印对话框与Printable的对话框不同的是,在jdk1.4提供ServiceUI的打印机对话框的缺省行为已经用新的 API 更改了:缺省情况下对话框不显示。
我们必须使用ServiceUI类调用printDialog方法创建如下所示的打印对话框。
3 Java打印程序设计实例3.1 打印文本3.1.1 应用场景假设我们需要打印一个窗体的某个文本编辑域(可能只有几行,也可能包含多页)的内容,并且每页最多打印54行,如何实现呢?3.1.2 解决方法基本思路如下:首先我们需要实现Printable接口,然后按照每页最多54行的格式计算共需要打印多少页,当打印文本的按钮被点击时,执行相应的打印动作。
打印文本的具体操作可通过Graphics2D的drawString方法来实现。
1、实现Printable接口/*Graphic指明打印的图形环境;PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英寸的1/72,1英寸为25.4毫米。
A4纸大致为595×842点);page指明页号*/public int print(Graphics g, PageFormat pf, int page) throws PrinterException {Graphics2D g2 = (Graphics2D)g;g2.setPaint(Color.black); //设置打印颜色为黑色if (page >= PAGES) //当打印页号大于需要打印的总页数时,打印工作结束return Printable.NO_SUCH_PAGE;g2.translate(pf.getImageableX(), pf.getImageableY());//转换坐标,确定打印边界drawCurrentPageText(g2, pf, page); //打印当前页文本return Printable.PAGE_EXISTS; //存在打印页时,继续打印工作}/*打印指定页号的具体文本内容*/private void drawCurrentPageText(Graphics2D g2, PageFormat pf, int page) { String s = getDrawText(printStr)[page]; //获取当前页的待打印文本内容 //获取默认字体及相应的尺寸FontRenderContext context = g2.getFontRenderContext();Font f = area.getFont();String drawText;float ascent = 16; //给定字符点阵int k, i = f.getSize(), lines = 0;while(s.length() > 0 && lines < 54) //每页限定在54行以内{k = s.indexOf('\n'); //获取每一个回车符的位置if (k != -1) //存在回车符{lines += 1; //计算行数drawText = s.substring(0, k); //获取每一行文本g2.drawString(drawText, 0, ascent); //具体打印每一行文本,同时走纸移位 if (s.substring(k + 1).length() > 0) {s = s.substring(k + 1); //截取尚未打印的文本ascent += i;}}else //不存在回车符{lines += 1; //计算行数drawText = s; //获取每一行文本g2.drawString(drawText, 0, ascent); //具体打印每一行文本,同时走纸移位 s = ""; //文本已结束}}}/*将打印目标文本按页存放为字符串数组*/public String[] getDrawText(String s) {String[] drawText = new String[PAGES]; //根据页数初始化数组 for (int i = 0; i < PAGES; i++)drawText[i] = ""; //数组元素初始化为空字符串int k, suffix = 0, lines = 0;while (s.length() > 0) {if (lines < 54) //不够一页时{k = s.indexOf('\n');if (k != -1) //存在回车符{lines += 1; //行数累加//计算该页的具体文本内容,存放到相应下标的数组元素 drawText[suffix] = drawText[suffix] + s.substring(0, k + 1);if (s.substring(k + 1).length() > 0)s = s.substring(k + 1);}else{lines += 1; //行数累加//将文本内容存放到相应的数组元素 drawText[suffix] = drawText[suffix] + s; s = "";}}else //已满一页时{lines = 0; //行数统计清零suffix++; //数组下标加1}}return drawText;}2、计算需要打印的总页数public int getPagesCount(String curStr) {int page = 0;int position, count = 0;String str = curStr;while(str.length() > 0) //文本尚未计算完毕{position = str.indexOf('\n'); //计算回车符的位置count += 1; //统计行数if (position != -1)str = str.substring(position + 1); //截取尚未计算的文本 elsestr = ""; //文本已计算完毕}if (count > 0)page = count / 54 + 1; //以总行数除以54获取总页数 return page; //返回需打印的总页数}3.1、以jdk1.4以前的版本实现打印动作按钮监听,并完成具体的打印操作private void printTextAction() {printStr = area.getText().trim(); //获取需要打印的目标文本if (printStr != null && printStr.length() > 0) //当打印内容不为空时{PAGES = getPagesCount(printStr); //获取打印总页数PrinterJob myPrtJob = PrinterJob.getPrinterJob(); //获取默认打印作业PageFormat pageFormat = myPrtJob.defaultPage(); //获取默认打印页面格式 myPrtJob.setPrintable(this, pageFormat); //设置打印工作if (myPrtJob.printDialog()) //显示打印对话框{try {myPrtJob.print(); //进行每一页的具体打印操作}catch(PrinterException pe) {pe.printStackTrace();}}}else { //如果打印内容为空时,提示用户打印将取消JOptionPane.showConfirmDialog(null, "Sorry, Printer Job is Empty, Print Cancelled!", "Empty", JOptionPane.DEF AULT_OPTION, JOptionPane.WARNING_MESSAGE);}}3.2、以jdk1.4新版本提供的API实现打印动作按钮监听,并完成具体的打印操作private void printText2Action() {printFlag = 0; //打印标志清零printStr = area.getText().trim();//获取需要打印的目标文本if (printStr != null && printStr.length() > 0) //当打印内容不为空时{PAGES = getPagesCount(printStr); //获取打印总页数//指定打印输出格式DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;//定位默认的打印服务PrintService printService = PrintServiceLookup.lookupDefaultPrintService(); //创建打印作业DocPrintJob job = printService.createPrintJob();//设置打印属性PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();DocAttributeSet das = new HashDocAttributeSet();//指定打印内容Doc doc = new SimpleDoc(this, flavor, das);//不显示打印对话框,直接进行打印工作try {job.print(doc, pras); //进行每一页的具体打印操作}catch(PrintException pe) {pe.printStackTrace();}}else { //如果打印内容为空时,提示用户打印将取消JOptionPane.showConfirmDialog(null, "Sorry, Printer Job is Empty, Print Cancelled!", "Empty", JOptionPane.DEF AULT_OPTION, JOptionPane.WARNING_MESSAGE);}}3.2 打印预览3.2.1应用场景大多少商业应用都需要提供打印预览机制,它可以让我们在屏幕上看到页面,这样就不会因为不喜欢的打印结果而浪费纸张。