JSP程序设计与项目实训教程_第2版_课后习题和参考答案

合集下载

jsp程序设计教程课后习题答案

jsp程序设计教程课后习题答案

jsp程序设计教程课后习题答案JSP程序设计教程课后习题答案在学习JSP程序设计的过程中,课后习题是非常重要的一部分,通过完成习题可以巩固所学的知识,并且提升自己的编程能力。

本文将为大家提供一些常见JSP程序设计课后习题的答案,希望能够对大家的学习有所帮助。

一、基础题1. 编写一个JSP页面,实现一个简单的计算器功能,用户输入两个数字和一个操作符(+、-、*、/),页面输出计算结果。

```jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>计算器</title></head><body><form action="" method="post"><input type="text" name="num1" placeholder="请输入第一个数字"><br> <input type="text" name="num2" placeholder="请输入第二个数字"><br> <input type="text" name="operator" placeholder="请输入操作符"><br><input type="submit" value="计算"></form><%-- 获取用户输入的数字和操作符 --%><% int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator");%><%-- 根据操作符进行计算 --%><% double result = 0;if(operator.equals("+")){result = num1 + num2;} else if(operator.equals("-")){result = num1 - num2;} else if(operator.equals("*")){result = num1 * num2;} else if(operator.equals("/")){result = num1 / num2;}%><%-- 输出计算结果 --%><h1>计算结果: <%= result %> </h1></body></html>```2. 编写一个JSP页面,实现一个简单的登录功能,用户输入用户名和密码,页面判断是否登录成功。

JSP应用与开发技术第二版课后练习题含答案

JSP应用与开发技术第二版课后练习题含答案

JSP应用与开发技术第二版课后练习题含答案前言JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术。

它允许Java代码和特定JSP标记混合在一起,从而实现了动态生成HTML、XML等网页文件的功能。

JSP应用与开发技术是JSP的入门教材,本书包括了大量的案例和练习,本文将重点介绍课后练习题,并提供答案供参考。

课后练习题1. 什么是JSP?列举JSP的优点和缺点。

答案:JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许Java代码和特定JSP标记混合在一起,从而实现了动态生成HTML、XML等网页文件的功能。

以下是JSP的优点:•可以结合Java代码实现动态网页生成,具有高度的灵活性;•基于Java技术,具有跨平台、安全性高、能与其他开发技术互通等优点;•模板化的编写方式,提高了代码的可读性和维护性;•可以方便地与Java Web框架集成。

以下是JSP的缺点:•JSP容易出现逻辑与视图耦合的问题;•JSP中可能存在HTML、CSS等前端技术和Java代码的混合,不利于前后端分离;•JSP代码较为复杂,不利于开发效率。

2. 请列举JSP的指令。

答案:JSP有三种指令,分别是page指令、include指令和taglib指令。

•page指令:定义网页的属性和导入相关包;•include指令:用于把其他文件(例如HTML、JSP等)包含进当前的文件中;•taglib指令:用于导入标签库,方便重用标签。

3. 请列举JSP中的注释标记。

答案:注释标记是JSP中的一种特殊标识符,用于标记JSP页面中的注释信息。

JSP中的注释标记分为两种:•HTML注释:<!–这是HTML注释– >•Java注释:<%–这是Java注释–%>4. 请列举JSP中的一些隐含对象,并简要介绍其作用。

答案:JSP中的隐含对象是指可以直接在JSP代码中访问的默认对象,不需要进行任何声明和初始化操作。

JavaScript前端开发程序设计项目式教程(第2版)习题答案

JavaScript前端开发程序设计项目式教程(第2版)习题答案

项目2一、填空题1、数值型、字符串型、布尔型2.、var3、关系赋值4、单引号和双引号5、101 100 102 102 更正为101 100 101 101二、选择题BBDCD ACDB项目3一、填空题1、顺序语句、分支语句、循环语句2、continue3、switch4、105、do while二、选择题C BCAC ABDAD 第1题更正为A项目4一、填空题1、function2、script3、true false4、参数返回值5、函数嵌套6、return7、全局局部8、形式参数形参实际参数实参9、任意10、正确二、选择题D B DAC ADDCC 第2题更正为C项目5一、填空题1、new2、Object3、Function4、点5、继承多态封装6、prototype二、选择题DBCABCCDB项目6一、填空题1、集合2、childNodes children firstChildfirstElementChild lastChild lastElementChild3、all4、setTimeout()5、document.getElementsByName()6、document.getElementById()7、clearInternal()8、元素节点9、window二、选择题DCC项目7一、填空题1、close()2、confirm()3、History4、showTime,10005、window二、选择题CA B CC ABA 第3题原来是B更正为C项目8一、填空题1、onkeyup onkeypress onkeydown2、keyCode3、keydown keypress keyup4、type5、AltKey二、选择题DCBAB CCACA CC项目9一、填空题1、XMLHttpRequest2、onreadystatechange3、getRequstHeader()4、Content-Type5、status二、选择题BAACBC。

《JavaScript 程序设计基础教程(第2版)》习题答案

《JavaScript 程序设计基础教程(第2版)》习题答案
9)将一个<p>段落的内嵌样式设置为与样式规格“p{...}”效果相同
ex.htm
m
第九章
一、判断题
1)对2)对3)错4)错5)对
6)对7)错8)错9)对10)错
11)错12)错13)错14)错15)对
二、单选题
1)B2)C3)A4)C5)A
6)D7)C8)D9)B10)C
5)对 与VBscript相比,javascript的优势在于它不仅使用于IE浏览器,也适用于其他浏览器。
6)错7)对8)错9)错10)错
11)错12)错13)错14)错15)对
二、单选题
1)C2)C3)C4)B5)A
6)B7)B8)C9)C10)D
11)D12)A13)C14)D15)A
16)C17)D18)B19)B20)C
4)设计一个含有表单的页面,并且在表单上放置一个文本框,当鼠标在页面上移动时,鼠标坐标将显示在这个文本框中。
ex.htm
5)设计一个表单,可以让用户输入姓名年龄职业,并验证。
ex.htm
6)是浏览该页面的窗口总是出现在其他页面的前面。
ex.htm
第十章
1) 设计一个页面,页面中有一个垂直滚动显示的文字条。
ex.htm
3)编写一个判断某个非负整数是否能够同时被3、5、7整除的函数,然后在页面上输出1~1000所有能满足这些条件的整数,并要求每行显示6个这样的数。
ex.htm
4)在页面上编程输出100~1000的所有素数,并要求每行显示6个数。
ex.htm
5)编写一个非递归函数Factorial(n),计算12!-10!的 结果。
* * * * *
ex.htm
7)有些三位数x,被4除余2,被7除余3,被9除余5,请求出这些数。

jsp程序设计(第2版)习题解答,含题目资料

jsp程序设计(第2版)习题解答,含题目资料

习题一1.怎么启动和关闭Tomcat服务器答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK。

3.怎样访问Web服务目录子目录中的JSP页面答:Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。

浏览器的地址栏中键入:http://IP:8080/Web目录名字/子目录名字/JSP页面。

4.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。

习题二1.“<%!”和“%>”之间声明的变量与“<%”和“%>”之间声明的变量与有何不同答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。

所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。

运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java 程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。

当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。

2.如果有两个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?答:两次。

5.请编写一个简单的JSP页面,显示大写英文字母表。

答:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><%for(char c='A';c<='Z';c++){out.print(" "+c);}%></BODY></HTML>6.请简单叙述include指令标记和include动作标记的不同。

JSP程序设计课后习题答案

JSP程序设计课后习题答案

JSP程序设计课后习题答案第⼀章 JSP概述1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?JSP的全称是Java Server Pages。

优点:跨平台、分离静态内容和动态内容、可重复使⽤的组件、沿⽤了Java Servlet的所有功能、具有预编译性。

共同点:可以在页⾯中加⼊脚本代码来⽣成动态内容。

1-2 JSP中可重复使⽤的组件有哪些?JavaBean组件、JSP的标准标签和⾃定义标签。

1-3 什么是JSP的预编译特征?预编译是JSP的另⼀个重要的特性。

JSP页⾯在被服务器执⾏前,都是已经被编译好的,并且通常只进⾏⼀次编译,即在JSP页⾯被第⼀次请求时进⾏编译,在后续的请求中如果JSP页⾯没有被修改过,服务器只需要直接调⽤这些已经被编译好的代码,这⼤⼤提⾼了访问速度。

1-4 开发JSP程序需要具备哪些开发环境?Web浏览器、Web服务器、JDK开发⼯具包以及数据库。

1-5 在成功安装JDK后,需要配置哪些环境变量?JAVA_HOME变量、Path变量、CLASSPATH变量1-6 Tomcat的默认端⼝、⽤户名和密码分别是什么?端⼝为“8080”、⽤户名为“admin”、密码为空。

1-7 本章介绍的⽤来开发JSP程序的开发⼯具是什么?Eclipse1-8 开发JSP程序可采⽤哪⼏种开发模式?分别介绍它们的优缺点。

单纯的JSP页⾯编程:优点:通过应⽤JSP中的脚本标志,可直接在JSP页⾯中实现各种功能。

缺点:⼤部分的Java代码与HTML代码混淆在⼀起,给程序的维护和调试带来很多的困难。

JSP+JavaBean编程优点:jsp与javabean的结合,使web程序更加的直观,使⽤简单,不⽤于后台进⾏交互,直接在前端处理业务逻辑,更快速。

缺点:性能不好,jsp作为web的前端程序包含了太多的业务逻辑,给前端jsp造成了压⼒。

不便于维护。

JSP+Servlet+JavaBean编程优点:能够更好的实现表⽰层,逻辑层和数据访问层的分离。

《Visual Basic程序设计教程(第2版)》课后部分编程题参考答案

《Visual Basic程序设计教程(第2版)》课后部分编程题参考答案

第1章1. 按要求设置窗体属性2.在窗体上建立一个标签Label1。

程序代码如下:Private Sub Form_Click()Label1.Caption = "你单击了窗体"End SubPrivate Sub Form_DblClick()Label1.Caption = "你双击了窗体"End Sub3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。

两个文本框的Text属性均为空。

Private Sub Command1_Click()Dim x As Singlex = Val(Text1.Text)Text2.Text = 15 * xEnd Sub第2章1~3题:按要求完成操作练习。

4. Private Sub Command1_Click() '"最大化"按钮Form1.WindowState = 2 '最大化End SubPrivate Sub Command2_Click() '"还原"按钮Form1.WindowState = 0 '还原End SubPrivate Sub Command3_Click() '"最小化"按钮Form1.WindowState = 1 '最小化End Sub5.在窗体上建立三个文本框Text1(第一个数)、Text2(第二个数)、Text3(计算结果)和一个命令按钮Command1(“计算”)。

Private Sub Command1_Click()Dim x As SingleDim y As Singlex = Val(Text1.Text)y = Val(Text2.Text)Text3.Text = x * x + y * yEnd Sub6. 在窗体上建立两个文本框Text1(输入一串字符)、Text2(输出结果)和一个命令按钮Command1。

《Visual Basic程序设计教程(第2版)》课后部分编程题参考答案

《Visual Basic程序设计教程(第2版)》课后部分编程题参考答案

第1章1.按要求设置窗体属性2.在窗体上建立一个标签Label1。

程序代码如下:Private Sub Form_Click()Label1.Caption="你单击了窗体"End SubPrivate Sub Form_DblClick()Label1.Caption="你双击了窗体"End Sub3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。

两个文本框的Text属性均为空。

Private Sub Command1_Click()Dim x As Singlex=Val(Text1.Text)Text2.Text=15*xEnd Sub第2章1~3题:按要求完成操作练习。

4.Private Sub Command1_Click()'"最大化"按钮Form1.WindowState=2'最大化End SubPrivate Sub Command2_Click()'"还原"按钮Form1.WindowState=0'还原End SubPrivate Sub Command3_Click()'"最小化"按钮Form1.WindowState=1'最小化End Sub5.在窗体上建立三个文本框Text1(第一个数)、Text2(第二个数)、Text3(计算结果)和一个命令按钮Command1(“计算”)。

Private Sub Command1_Click()Dim x As SingleDim y As Singlex=Val(Text1.Text)y=Val(Text2.Text)Text3.Text=x*x+y*yEnd Sub6.在窗体上建立两个文本框Text1(输入一串字符)、Text2(输出结果)和一个命令按钮Command1。

JSP程序设计与项目实训教程_第2版_课后习题和参考答案

JSP程序设计与项目实训教程_第2版_课后习题和参考答案

第1章Web技术简介1.7 习题1.7.1 选择题1. Web技术的设想于哪一年提出()。

A.1954年B.1969年C.1989年D.1990年2. JSP页面在第一次运行时被JSP引擎转化为()。

A.HTML文件B.CGI文件C.CSS文件D.Servlet文件3. JavaEE体系中Web层技术是()。

A.HTMLB.JavaBeanC.EJBD.JSP参考答案:1.C 2.D 3.D1.7.2 填空题1.当前主流的三大动态Web开发技术是:PHP、ASP/和______________。

2. JSP的两种体系结构是:______________和______________。

3. JSP开发Web站点的主要方式有:直接JSP、JSP+JavaBean、______________、______________和SSH。

参考答案:1.JSP2.JSP Model1和JSP Model23.JSP+JavaBean+Servlet、J2EE/JavaEE1.7.3 简答题1. 简述JSP的工作原理。

答:所有的JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要是由JSP引擎来完成。

当第一次运行一个JSP页面时,JSP引擎要完成以下操作:●将JSP文件翻译成Servlet文件,Servlet文件是Java应用程序。

●JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件(.class文件)。

●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。

●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。

由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。

当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。

JSP程序设计 第02章习题答案

JSP程序设计 第02章习题答案
–1–
ԛ 08 Ⴣ JSP ‫؃‬ᅙᄉಭ ๽ඕӓ̣
˄3˅೼ Java ⿟ᑣЁˈབᵰ䳔㽕ᶤϾব䞣ǃ೼Փ⫼Пࠡᖙ乏䖯㸠ໄᯢˈ㗠 JavaScript ϡᖙ џ‫ܜ‬ໄᯢህৃҹՓ⫼ব䞣DŽ
˄4˅JavaScript ᰃϔ辵ጠܹ䇁㿔ˈᅗ䗮䖛೼ HTML ᭛ᴀЁՓ⫼བϟ‫ܗ‬㋴䖯㸠ࣙ৿˖
<script></script>
2ˊՓ⫼䍙䫒᥹Ёⱘџӊ‫ܗ‬㋴ᰃાϾ˛
ㄨḜ˖ 䍙䫒᥹<a>‫ܗ‬㋴Ёⱘџӊᰃ“onclickāџӊˈ⫼᠋ऩߏ哴ᷛᎺ䬂ᯊথ⫳˄བᵰে䬂гᣝ ϟ߭ϡӮথ⫳˅DŽᔧ⫼᠋ⱘ⛺⚍೼ᣝ䪂Ϟˈᑊᣝಲ䔺䬂ˈৠḋӮ㾺থ䆹џӊDŽ
3ˊㅔ䗄 JavaScript Ёˈব䞣ੑৡⱘ㾘߭DŽ
ㄨḜ˖ ব䞣ੑৡ䳔㽕䙉ᅜҹϟ 5 Ͼ㾘߭˖ ˄1˅ব䞣ੑৡᖙ乏ҹϔϾ㣅᭛ᄫ↡៪ᰃϟߦ㒓Ўᓔ༈ˈгህᰃব䞣ৡ㄀ϔᄫヺᖙ乏ᰃ A ࠄ Z ៪ a ࠄ z П䯈ⱘᄫ↡ˈ៪ᰃ“_āDŽ ˄2˅ব䞣ৡ䭓ᑺ೼ 0~255 ᄫヺП䯈DŽ ˄3˅䰸њ佪ᄫヺˈ݊ҪᄫヺৃҹՓ⫼ӏԩᄫヺǃ᭄ᄫ៪ϟߦ㒓ˈԚϡ㛑Փ⫼ぎḐDŽ ˄4˅ϡ㛑Փ⫼ JavaScript ⫼ⱘֱ⬭ᄫDŽ ˄5˅ϡ㛑Փ⫼ JavaScript ⱘ䖤ㅫヺDŽ
–3–
ԛ 08 Ⴣ JSP ‫؃‬ᅙᄉಭ ๽ඕӓ̣
<td>⫼᠋ৡ˖</td> <td><input type="text" name="username"></td> </tr> <tr> <td>ᆚⷕ˖</td> <td><input type="password" name="password"></td> </tr> <tr> <td>⹂䅸˖</td> <td><input type="password" name="repassword"></td> </tr> <tr> <td>⫼᠋ⳳᅲྦྷৡ˖</td> <td><input type="text" name="realname"></td> </tr> <tr> <td>ᗻ߿˖</td> <td>

程序设计第二版习题答案

程序设计第二版习题答案

程序设计第二版习题答案程序设计第二版习题答案在学习编程的过程中,我们经常会遇到一些难题和疑惑。

而《程序设计第二版》这本书,作为一本经典的编程教材,为我们提供了丰富的习题。

在这篇文章中,我将为大家提供一些《程序设计第二版》习题的答案,希望能够帮助大家更好地理解和掌握编程知识。

第一章:引论1. 编程是什么?答案:编程是将问题转化为计算机可以理解和执行的指令的过程。

通过编程,我们可以利用计算机解决各种实际问题。

2. 什么是计算机程序?答案:计算机程序是一系列指令的集合,用于告诉计算机如何执行任务。

程序可以包含条件判断、循环、函数等结构,以实现特定的功能。

第二章:C++基础知识1. 什么是变量?答案:变量是用于存储数据的一块内存空间。

在C++中,我们可以通过声明变量来指定变量的类型和名称,然后可以对其进行赋值和操作。

2. 如何定义一个整型变量并赋初值为10?答案:可以使用以下代码来定义一个整型变量并赋初值为10:int num = 10;第三章:控制结构1. 什么是条件语句?答案:条件语句用于根据条件的真假来执行不同的代码块。

在C++中,常用的条件语句有if语句和switch语句。

2. 如何使用if语句判断一个数是否为正数?答案:可以使用以下代码来判断一个数是否为正数:if (num > 0) {cout << "该数为正数" << endl;} else {cout << "该数不为正数" << endl;}第四章:函数1. 什么是函数?答案:函数是一段封装了特定功能的代码块,可以通过函数名和参数来调用执行。

函数可以提高代码的可读性和重用性。

2. 如何定义一个函数来计算两个数的和?答案:可以使用以下代码来定义一个函数来计算两个数的和:int sum(int a, int b) {return a + b;}第五章:数组和指针1. 什么是数组?答案:数组是一种用于存储多个相同类型元素的数据结构。

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

Java程序设计教程与实训(第2版)习题参考答案(1-9章)

各章参考答案(1-9章)第一章【习题内容】1. Java语言有哪些特点?2.简述Java的运行机制。

3.简述Java应用程序的开发过程。

4.在计算机上安装、配置Java运行环境,并编辑运行本章中的例程。

【参考答案】1.面向对象、语法简单、平台无关性、安全性、分布式应用、多线程2. Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。

Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。

在运行Java 程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,JVM把不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。

3.(1)安装JDK(2)配置环境变量(3)使用记事本编写java源文件(4)使用javac 编译java源文件(5)使用java运行java程序。

4.略。

第二章【习题内容】1. 现有语句:String s = "Example"; 则下面哪些语句是合法语句?A. s >>> = 3;B. s[3] = "x";C. int i = s.length();D. String t = "For " + s;E. s = s + 10;2.下面哪些是Java保留字?A. runB. defaultC. implementD. import3.下面声明float变量的语句合法的有:A. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;4.以下哪两个表达式是等价的:A. 3/2B. 3<2C. 3*4D. 3<<2E. 3*2^2F. 3<<<25.分析下列程序的执行结果:(1)public class TestA{public static void main(String args[]){int i = oxFFFFFFF1;int j = ~i;System.out.println("j=" + j);}}(2)public class TestB{public static void main(String[] args){System.out.println(6 ^ 3);}}(3)public class FooBar{public static void main(String[] args){int i = 0, j = 5;tp:for(; ; i++){for( ; ; --j)if(i > j)break tp;}System.out.println("i=" + i + ",j=" + j);}}(4)public class TestC{public static void main(String[] args){int i = 1, j = 10;do{if(i++ > --j)continue;}while(i < 5);System.out.println("i=" + i + " j=" + j);}}【参考答案】1. C、D、E2.B、D3.A、D、F4.C、D5.(1)j=14(2)5(3)i=0,j=-1(4)i=5 j=6第三章【习题内容】1.什么叫引用类型,对象是引用类型吗?2.Java的访问限定修饰符有几种,各自的访问权限是什么?3.什么是类成员,什么是实例成员?它们之间有什么区别?4.如何创建自己的包,如何引入包?5.下面哪一个是类Myclass的构造方法?class Myclass{public void Myclass(){}public static Myclass(){}public Myclass(){}public static void Myclass(){}}6.设计一个动物类,它包含动物的基本属性,例如名称、身长、重量等,并设计相应的动作,例如跑、跳、走等。

《Visual Basic程序设计教程(第2版)》习题参考答案

《Visual Basic程序设计教程(第2版)》习题参考答案

《Visual Basic程序设计教程》(第2版)林卓然编著电子工业出版社2007年7月出版习题1一、单选题1.D 2.D 3.B 4.B 5.C 6.A7.A 8.A 9.B 10.B 11.B 12.B二、多选题1.ADE 2.AB 3.BCDE 4.CD 5.CE三、填空题1.属性,方法,事件 2.解释,编译 3.设计,运行,中断 4.Command2_Click 5.中央,代码 6.MyForm.frm 7.(1)Cmd1_Click(),(2)Txt1.Text="VB语言程序设计"习题2一、单选题1.(1)A,(2)C 2.A 3.B 4.B 5.B 6.D 7.B 8.A 9.A 10.B 11.B 12.A 13.B二、多选题1.BD 2.CD 3. AD三、填空题1.(1) (2+x*y)/(2–y*y) (2) a^2–3*a*b/(3+a)(3) x^(3/8)+Sqr(y^2+4*a^2a/(x+y^3))2.Int(50+6*Rnd)3.(1)138, (2)3, (3)214, (4) 70, (5) "45", (6)04. "系统管理数据库"习题3一、单选题1.C 2.B 3.B 4.D 5.B 6.C 7.B 8.D 9.C 10.(1)A, (2)C 11.A 12.B 13.D 14.B二、多选题1.AC 2.ABF 3.BE三、填空题1.$000,124 2.Label1.Caption="a*b=" 3.Height,Width4.2 5.Text1.SetFocus6.Multiline, ScrollBars, 2 7.24,2423习题4一、单选题1.C 2.B 3.C 4.C 5.D 6.B 7.(1)D,(2)A,(3)B 二、多选题1.ABCFGHJ 2.BE 3.CDE 4.AE三、填空题1.60000 2.O&pen 3.(1) "0" To "9";(2) "a" To "z", "A" To "Z";(3) Else习题5一、单选题1.B 2.(1)D,(2)C 3.A 4.(1)B,(2)C,(3)B 5.B 6.B 二、填空题1.(1) 4次,n=13;(2) 3次,n=8;(3) 3次,n=27;(4) 1次,n=12 2.227 3.0 4.Style 5.下拉列表框6.AddItem,RemoveItem或Clear 7.(1)ItemA,(2) ItemD,(3) ItemD,(4) ItemA习题6一、单选题1.D 2.A 3.B 4.C 5.C 6.A 7.(1)D (2)A (3)B 二、多选题1.AD 2.CD三、填空题1.二, 12; 1, 3; -1, 22. 0 1 2 31 0 1 22 1 0 13 2 1 03. Name, Index 4.(1) 0 To Index, (2)Val(Text1(k).Text)习题7一、单选题1.B 2.C 3.B 4.B 5.C 6.D 7.A 8.C 9.D 10.C 二、填空题1.EF 2.(1)14,(2) 2,(3)10 3.(1)10,(2)28,(3)6,(4) 64.(1)Power(x,n-1)*x,(2)Power = x习题8一、单选题1.B 2.D 3.D 4.A 5.B 6.D 7.A8.(1)D,(2)D 9.B 10.A 11.D二、填空题1. Get, Put2.(1) Open "Myfile3.txt" For Output(2) Write #1, StNo, StMb (3) Close #13. (1) Open " Myfile3.txt" For Input As #1 (2) EOF(1)(3) Input #1, StNo, StMb习题9单选题1.B 2.D 3.D 4.B 5.A 6.A习题10一、单选题1.C 2.(1)A,(2)C 3.C 4.A 5.(1)A,(2)D 6.A 7.D 8.B 9.D二、填空题1.(1)Change,(2)Value,(3)Scroll,(4)Value2.Circle(Scale.Width/2,Scale.Height/2),10003.(1) P1.Picture ,(2) P2.Picture,(3) P2.Picture = P3.Picture4.KeyDown,KeyPress,KeyUp 5.MouseDown,MouseUP6.菜单编辑器,顶;PopUpMenu7.(1) Button.Index (2) BackColor = RGB(255, 0, 0)(3) BackColor = RGB(0, 255, 0) (4) BackColor = RGB(0, 0, 255)8.(1)DragMode, (2)1,(3)0 9.(1)Action, (2)4, (3)ShowFont10.(1)KeyPress, (2)Cls, (3)CurrentY = Y, (4) Button=1习题11一、单选题1.C 2.C 3.A 4.D 5.A 6.D 7.D 8.C9.D 10.D 11.C 12.A 13.B二、填空题1.Select 职工号,基本工资 From 工资表 Where 基本工资>5002.Update 职工表 Set 姓名="伍小明" Where 职工号="00018"3.Select 学籍表.班号,Avg(成绩表.英语) From 成绩表,学籍表 Where 学籍表.学号=成绩表.学号 Group By 学籍表.班号4.Update 工资表 Set 基本工资=基本工资+1005.Delete From 工资表 Where 基本工资<2006.Insert Into 学籍表(学号,姓名,性别,年龄,班号) Values("951009","林东生","男",20,"31")(完)。

Java程序设计教程与实训(第2版):实训参考答案

Java程序设计教程与实训(第2版):实训参考答案

实训参考答案【实训内容】见第十章。

【参考答案】10.1 //////////////////////////////////////////////////////////public class Exer10_1{public static void main(String [] args){//System.out.print("Hello "); //第一次运行//System.out.print("Hello \n"); //第二次运行System.out.print("Hello\n李明"); //第二次运行也可以这样写//System.out.print("李明");}}10.2 //////////////////////////////////////////////////////////public class Exer10_2 {public static void main (String args[ ]) {char chinaWord='你', japanWord='ぁ';int p1=20328,p2=12358;System.out.println("汉字\'你\'字在unicode表中的顺序位置:"+(int)chinaWord);System.out.println("日语\'ぁ\'字在unicode表中的顺序位置:"+(int)japanWord);System.out.println("unicode表中第20328位置上的字符是:"+(char)p1);System.out.println("unicode表中第12358位置上的字符是:"+(char)p2);}}10.3(1) //////////////////////////////////////////////////////////public class Exer10_3_1{public static void main(String[] args){int val1=5;int val2=6;int result=0;char op='-';switch(op){case '+' :result=val1+val2;break;case '-' :result=val1-val2;break;case '*' :result=val1*val2;break;case '/' :result=val1/val2;break;case '%' :result=val1%val2;default :System.out.println("没有找到匹配的操作符");}System.out.println("计算结果为:"+val1+op+val2+"="+result);}}(2) //////////////////////////////////////////////////////////class Exer10_3_2{public static void main(String args[]) {int sum=0,i,j;for( i=1;i<=50;i++){ //计算1+3+5+7+9…if(i%2==0){continue;}sum=sum+i;}System.out.println("sum="+sum);for( j=2;j<=50;j++){ //求50以内的素数for( i=2;i<=j/2;i++){if(j%i==0){break;}}if(i>j/2){System.out.println(""+j+"是素数");}}}}10.4 /////////////////////////////////////public class Exer10_4 {public static void main(String args[]) {System.out.println(dengcha(3));System.out.println(dengcha(5));System.out.println(dengcha(10));}public static int dengcha(int n) {return 1+(n-1)*4;}}10.5 ///////////////////////////////class Computer {private String pc_name; //计算机品牌private String pc_color; //计算机颜色private String pc_type; //CPU型号private String pc_ram; //内存容量private String pc_harddisk; //硬盘容量private int pc_price; //价格private String pc_state; //工作状态public Computer() //默认构造函数,不带参数{ pc_name=""; //计算机品牌pc_color=""; //计算机颜色pc_type=""; //CPU型号pc_ram=""; //内存容量pc_harddisk=""; //硬盘容量pc_price=0; //价格pc_state=""; //计算机状态}public Computer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//带参数的构造函数{ pc_name=aname; //计算机品牌初值pc_color=acolor; //计算机颜色初值pc_type=atype; //CPU型号初值pc_ram=aram; //内存容量初值pc_harddisk=aharddisk; //硬盘容量初值pc_price=aprice; //价格初值pc_state=astate; //计算机状态初值}void setcomputer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//设置属性值的方法{ pc_name=aname; //计算机品牌pc_color=acolor; //计算机颜色pc_type=atype; //CPU型号pc_ram=aram; //内存容量pc_harddisk=aharddisk; //硬盘容量pc_price=aprice; //价格pc_state=astate; //计算机状态}void setstate(String astate) //设置状态属性的方法{ pc_state=astate;}void setram(String aram) //设置内存属性的方法{ pc_ram=aram;}public String pc_open() //定义计算机打开的方法{ setstate("打开");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println(" * ");System.out.println(" * * * ");System.out.println("* * * * *");System.out.println("-------------------");return pc_state;}public String pc_close() //定义计算机关闭的方法{ setstate("关闭");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("请稍后,正在关闭计算机");System.out.println("-------------------");return pc_state;}public String pc_hitch() //定义计算机挂起的方法{ setstate("挂起");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("启动计算机请按Ctrl+Alt+Delete键");System.out.println("-------------------");return pc_state;}void printcomputer() //输出的方法{ if(pc_price>0)System.out.println("计算机品牌:"+pc_name+" 颜色:"+pc_color+" CPU型号:"+pc_type+" 内存容量:"+pc_ram+"\n硬盘容量:"+pc_harddisk+" 价格:"+pc_price+" 工作状态:"+pc_state);elseSystem.out.println("计算机品牌: 未知"+" 工作状态:"+pc_state);System.out.println("---------------------------------");}}class Mycomputer {public static void main(String[] args) {Computer stu1=new Computer(); //创建计算机类的对象stu1;//调用方法setcomputer设置计算机信息stu1.setcomputer("Dell","黑","PentiumⅣ","256k","20G",7096," 良好");stu1.printcomputer(); //输出计算机的信息Computer stu2=new Computer(); //创建计算机类的对象stu2;stu2.setcomputer("联想","黑","PentiumⅣ","512k","40G",7296," 良好");stu2.printcomputer(); //输出计算机的信息stu1.pc_open();stu2.pc_close();stu1.pc_hitch();stu2.setram("1024");stu1.printcomputer(); //输出计算机的信息stu2.printcomputer(); //输出计算机的信息Computer stu3=new Computer();stu3.setstate("打开");stu3.printcomputer(); //输出计算机的信息}}10.6 //////////////////////////////////package mypackage.factorial;class Factorial{private int n;public Factorial(int n){this.n=n;}private boolean testN(int n){if (n>=0){return true;}else{System.out.println("请输入非负数!");return false;}}public int Factorial(int n) {if (n==0) return 1;return n*Factorial(n-1);}public void print(){if (testN(n)) System.out.println(n+"!="+Factorial(n));}}////////////////////////////////////////////////////////////////////package mypackage.test;import mypackage.factorial.Factorial;class TestFactorial {public static void main(String [] args) {int n=Integer.parseInt(args[0]);Factorial f=new Factorial(n);f.print();}}10.7(1) //////////////////////////////////////////////////////////class Employee {int id;private String name;public void setId(int id) {this.id=id;}public void setName(String name) {=name;}}class Manager extends Employee{public void setId(byte id){this.id=id;}private int departmentID;public void setDepartmentID(int id) {departmentID=id;}}public class ExtendsExam1 {public static void main(String [] args) {Employee e=new Manager();}}(2) //////////////////////////////////////////////////////////class A{static int a=10;static int id=1;static String go(){return "20";}public static String fun(){return "20";}}class B extends A{}public class ExtendsExam2{public static void main(String [] args) {Employee e=new Manager();System.out.println("B.a="+B.a);System.out.println("B.id="+B.id);System.out.println("B.go()="+B.go());System.out.println("B.fun="+B.fun());}}(3) //////////////////////////////////////////////////////////class SuperClass {int x;SuperClass( ) {x=3;System.out.println("in SuperClass : x=" +x);}void doSomething( ){System.out.println(" in SuperClass.doSomething()");}}class SubClass extends SuperClass{int x;SubClass( ) {super( );x=5;System.out.println(" in SubClass :x=" +x);}void doSomething( ) {super.doSomething( );System.out.println(" in SubClass.doSomething()");System.out.println(" super.x="+super.x+" sub.x="+x);}}public class ExtendsExam3 {public static void main(String args[]) {SubClass sub=new SubClass();sub.doSomething();}}10.8(1) //////////////////////////////////////////////////////////class MethodOverload{void receive(int i) {System.out.println("excuted receive(int i)");}void receive(int x, int y) {System.out.println("excuted receive(int x, int y)");}void receive(double d) {System.out.println("excuted receive(double d)");}void receive(String s) {System.out.println("excuted receive(String s)");}}public class MethodOverloadExam1 {public static void main(String args[]) {MethodOverload mo=new MethodOverload();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive("very interesting, isn’t it?");}}(2) //////////////////////////////////////////////////////////public class xEmployee { //一个构造函数使用另一个构造函数的某方面效果String name;int salary;public xEmployee(String s, int n) {name = s;salary = n;}public xEmployee(String s){this(s, 0);//……// this调用必须作为构造方法中第一个语句}public xEmployee(int n){this("Unknown", n);//……// this调用必须作为构造方法中第一个语句}public xEmployee(){this( "Unknown" );//……// this调用必须作为构造方法中第一个语句}public static void main(String [] args) {xEmployee s1=new xEmployee ("欧阳振国",5200);xEmployee s2=new xEmployee ("欧阳振国");xEmployee s3=new xEmployee (6000);xEmployee s4=new xEmployee ();System.out.println( +"---"+s1.salary);System.out.println( +"---"+s2.salary);System.out.println( +"---"+s3.salary);System.out.println( +"---"+s4.salary);}}(3) //////////////////////////////////////////////////////// 错误原因:SubClass中的fun() 无法覆盖SuperClass中的fun(),被覆盖的方法为final ////////////////////////////////////////////////////////////class SuperClass {int i=1;public final int fun() {return 1;}public void go() {System.out.println(fun());}}class SubClass extends SuperClass {int i=2;public int fun() {return 2;}}public class MethodOverrideExma{public static void main(String [] args) {SuperClass s=new SubClass();s.go();}}10.9(1) ///////////////////////////////////////////////interface A{}interface B{}interface C extends A{}interface D extends A,B,C{}(2) ///////////////////////////////////////////////interface V olume{double calculateV olume();}class Circle implements V olume{double r;public Circle(double r){this.r=r;}public double calculateV olume(){return 3.14*r*r*r;}}class Rectangle implements V olume{double l,w,h;public Rectangle(double l,double w,double h){this.l=l;this.w=w;this.h=h;}public double calculateV olume(){return l*w*h;}}class Test{public static void main (String [] args){Circle c=new Circle(2);System.out.println ("球的体积额为:"+c.calculateV olume());Rectangle r=new Rectangle(1,2,3);System.out.println ("长方体的体积为:"+r.calculateV olume());}}10.10 ///////////////////////////////////////////////class Employee{String name;int number;int age;int salary;public Employee(String name,int number,int age,int salary){ =name;this.number=number;this.age=age;this.salary=salary;}}class EmployeeTest{static Employee [] e=new Employee[5];public static int average(String type){int sum=0;for (int i=0;i<e.length;i++){if (type.equals("age")) sum=sum+e[i].age;if (type.equals("salary")) sum=sum+e[i].salary;}return sum/e.length;}public static int minimum(String type){int min=0;if (type.equals("age")){min=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age<min) min=e[i].age;}}if (type.equals("salary")){min=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary<min) min=e[i].salary;}}return min;}public static int maximum(String type){int max=0;if (type.equals("age")){max=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age>max) max=e[i].age;}}if (type.equals("salary")){max=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary>max) max=e[i].salary;}}return max;}public static void main(String [] args){e[0]=new Employee("张三",1,25,1500);e[1]=new Employee("李四",2,30,2800);e[2]=new Employee("王五",3,45,4500);e[3]=new Employee("刘六",4,28,2400);e[4]=new Employee("赵七",5,32,3000);if (args.length==2){if (args[0].equals("age")){ if(args[1].equals("min")) {System.out.println("最小年龄是"+minimum("age"));}else if(args[1].equals("max")) {System.out.println("最大年龄是"+maximum("age"));}else if(args[1].equals("avg")) {System.out.println("平均年龄是"+average("age"));}elseSystem.out.println("输入不正确,请正确输入!");}else if(args[0].equals("salary")){if(args[1].equals("min") ) {System.out.println("最低工资是"+minimum("salary"));}else if(args[1].equals("max")) {System.out.println("最高工资是"+maximum("salary"));}else if (args[1].equals("avg")) {System.out.println("平均工资是"+average("salary"));}elseSystem.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}}10.11(1)///////////////////////////////////////////////class Exer10_11_1{public static void main (String [] args){String s1=args[0];String s2=args[1];if(s1.equals(s2)){System.out.println ("s1==s2");}else if(pareTo(s2)>0){System.out.println ("s1>s2");}else{System.out.println ("s1<s2");}}}(2)///////////////////////////////////////////////class Exer10_11_2{public static void main (String [] args){StringBuffer s=new StringBuffer("Hello java!");System.out.println ("原始字符串:"+s);s=s.replace(6,s.length(),"world!");System.out.println ("替换后:"+s);s=s.insert(6,"new ");System.out.println ("插入后:"+s);s=s.delete(6,10);System.out.println ("删除后:"+s);s=s.append(" Hello java!");System.out.println ("追加后:"+s);s=s.reverse();System.out.println ("翻转后:"+s);}}10.12(1)///////////////////////////////////////////////class Exer10_12_1{public static void main (String [] args){try {String s=args[0];}//此处可能产生的异常类,应该为ArrayIndexOutOfBoundsExceptioncatch (NumberFormatException ex) {System.out.println ("格式转换错误!");}}}// 使用如下的方式之一,可以捕获并处理异常// catch (ArrayIndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (IndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (Exception ex) {// System.out.println ("格式转换错误!");// }//ng.Object// ng.Throwable// ng.Exception// ng.RuntimeException// ng.IndexOutOfBoundsException// ng.ArrayIndexOutOfBoundsException(2)//////////////////////////////////////////////////class Exer10_12_2{public static void main (String [] args){try {int i=Integer.parseInt(args[0]);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}}}(3)//////////////////////////////////////////////////class Exer10_12_3{public static void main (String [] args){try {//System.exit(0); //在此处执行System.exit()方法,finally块无法执行String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");System.exit(0);//如果出现IndexOutOfBoundsException异常,会执行System.exit()方法//则finally块无法执行//return;}catch (NumberFormatException ex) {System.out.println ("请输入整数!");return;//如果出现NumberFormatException异常,会执行finally块}finally {System.out.println ("执行finally块!");}}}(4)//////////////////////////////////////////////////class Exer10_12_4{public static void main (String [] args){try {String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}catch(Exception ex){System.out.println ("产生其他异常!");}}}(5)//////////////////////////////////////////////////class Exer10_12_5{public static int getInt(String s) throws NumberFormatException{for(int i=0;i<s.length();i++){if(s.charAt(i)<'0' || s.charAt(i)>'9'){throw new NumberFormatException("请输入数值型数据!");}}int i=Integer.parseInt(s);return i;}public static void main (String [] args){try {String s=args[0];int i=getInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println (ex.getMessage());}catch(Exception ex){System.out.println ("产生其他异常!");}}}10.13 //////////////////////////////////////////////////import java.io.*;import java.util.*;class Exer10_13{public static void main (String [] args){String dir;String cdate,size,name;int filecount=0,dircount=0;long allsize=0,longsize=0;try{dir=args[0]; //dir是已定义的String对象}catch(ArrayIndexOutOfBoundsException e){dir="./"; //考虑没有参数传入时,dir的值是当前目录}File f=new File(dir);if(!f.exists()){System.out.println("文件或目录不存在!");System.exit(0);}if(f.isFile()){long l=stModified();Date date=new Date(l);cdate=date.toLocaleString();long len =f.length();allsize+=len;name=f.getName();filecount++;System.out.println (cdate+" "+len+" "+name);}else{File [] list=f.listFiles();for(int i=0;i<list.length;i++){if(list[i].isDirectory()){long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();name=list[i].getName();dircount++;System.out.println (cdate+"\t<DIR>\t\t\t\t"+name);}else{long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();long len =list[i].length();allsize+=len;name=list[i].getName();filecount++;System.out.println (cdate+"\t\t\t"+len+"\t\t"+name);}}}longsize=allsize/1024;System.out.println ("\n"+filecount+"个文件"+longsize+"个字节");System.out.println (dircount+"个文件夹");}}10.14 //////////////////////////////////////////////////import java.io.*;class Exer10_14{static FileInputStream fis;static FileOutputStream fos;public static void main (String [] args){String source=args[0];String dest=args[1];int size=0,i=0;try {fis=new FileInputStream(source);fos=new FileOutputStream(dest);byte[] b=new byte[255];while((i=fis.read(b))!=-1){System.out.println (new String (b,0,i));size+=i;fos.write(b);}fis.close();fos.close();System.out.println ("复制文件完毕!共"+size+"字节!");}catch (Exception ex) {ex.printStackTrace();}finally { }}}10.15 //////////////////////////////////////////////////import java.io.*;class Exer10_15{public static void main (String [] args){try {int n=Integer.parseInt(args[0]);RandomAccessFile ra=new RandomAccessFile("student.dat","r");if(n*19>ra.length()) {System.out.println("记录号超出范围!");return;}ra.seek((n-1)*19);String sno=Integer.toString(ra.readInt());String name=ra.readUTF();int age=ra.readInt();char grade=ra.readChar();boolean sex=ra.readBoolean();System.out.println (sno+"\t"+name+"\t"+age+"\t"+grade+"\t"+sex);ra.close();} catch (Exception ex) {System.out.println ("产生错误!");System.out.println (ex.getMessage());}finally { }}}10.16 //////////////////////////////////////////////////(1)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_1 extends JFrame{JButton [] button;public Exer10_16_1(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_1();}}(2)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_2 extends JFrame{JButton [] button;public Exer10_16_2(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);}this.getContentPane().setLayout(new BorderLayout());this.getContentPane().add(button[0],BorderLayout.NORTH);this.getContentPane().add(button[1],BorderLayout.WEST);this.getContentPane().add(button[2],BorderLayout.CENTER);this.getContentPane().add(button[3],BorderLayout.SOUTH);this.getContentPane().add(button[4],BorderLayout.EAST);this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_2();}}(3)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_3 extends JFrame{JButton [] button;public Exer10_16_3(){button =new JButton[13];this.getContentPane().setLayout(new GridLayout(4,4));// this.getContentPane().setLayout(new GridLayout(3,5));// this.getContentPane().setLayout(new GridLayout(5,3));// this.getContentPane().setLayout(new GridLayout(13,0));// this.getContentPane().setLayout(new GridLayout(0,13));for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_3();}}10.17(1)//////////////////////////////////////////////////import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Exer10_17_1 extends JFrame{JTextArea text=new JTextArea(15,20);JTextField tx=new JTextField(10);JButton button=new JButton("发送");public Exer10_17_1(){this.getContentPane().setLayout(new FlowLayout());this.getContentPane().add(text);this.getContentPane().add(tx);this.getContentPane().add(button);tx.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER){send();}}});button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){send();}});this.setSize(300,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}private void send(){text.append(tx.getText()+"\n");}public static void main (String [] args){new Exer10_17_1();}}(2)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;public class Exer10_17_2 extends JFrame{Exer10_17_2(){this.setSize(300,350);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public void paint(Graphics g){int x,y,i;g.drawLine(10,40,300,40); //从(10,40)开始到(300,40)画一条黑色直线g.setColor(Color.red);g.drawRect(10,50,50,30); //在(10,50)到(50,30)处画一个红色的矩形框g.drawOval(100,50,40,40); //在(100,50)处画一个半径为40的红色的圆形g.setColor(Color.blue);g.fillOval(170,50,90,40); //在(170,50)处画一个宽为90,高为40的蓝色的实心椭圆g.setColor(Color.pink); //绘制字符串Font fo=new Font("楷体_GB2312",Font.ITALIC|Font.BOLD,32);g.setFont(fo);g.drawString("我们都很快乐!",10,130);Image im=null; //显示图片im=getToolkit().getImage("b.jpg");g.drawImage(im,10,170,200,160,this);}public static void main(String args[]){new Exer10_17_2();}}(3)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Exer10_17_3 extends JFrame implements ActionListener{ // 类EventExample实现ActionListener接口,成为事件监听器JPanel p;JPanel p1;JTextField number;JTextField name;JTextField age;JTextArea summary;JButton ok;JButton cancel;public Exer10_17_3 (){super("ActionEvent事件演示示例");p=new JPanel();p1=new JPanel();number=new JTextField (5);name=new JTextField (18);age=new JTextField ("20");summary=new JTextArea("请在此输入个人简介!",4,20);ok=new JButton("确定");ok.addActionListener(this); //注册,添加监听器cancel=new JButton("取消");cancel.addActionListener(this); //注册,添加监听器p.add(new Label("学号:"));p.add(number);p.add(new Label("姓名:"));p.add(name);p.add(new Label("年龄:"));p.add(age);p.add(new Label("个人简介:"));p1.add(ok);p1.add(cancel);this.getContentPane().add(p,BorderLayout.NORTH);this.getContentPane().add(summary);this.getContentPane().add(p1,BorderLayout.SOUTH);this.setSize(600,300);this.setV isible(true);}public void actionPerformed(ActionEvent e){ //重写接口中的全部方法if ((JButton)e.getSource()==ok){ //判断是否为ok按钮发生的事件summary.setText("你输入的学号是:"+number.getText()+" 姓名是:"+name.getText()+" 年龄是:"+age.getText());}else{number.setText("");name.setText("");age.setText("");summary.setText("");}}public static void main(String [] args){new Exer10_17_3 ();}}10.18 ///////////////////////////////////////////////////*操作数据库程序DataBaseOperator.java*/import java.sql.*;class DataBaseOperator{static Connection stucn;static Statement stust;static ResultSet sturs;public static boolean ConnDB(String DSName,String UserName,String Password){ //连接数据库boolean ConnOk=false;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println ("数据库驱动程序加载成功......");stucn=DriverManager.getConnection("jdbc:odbc:"+DSName,UserName,Password);ConnOk=true;System.out.println ("数据库连接成功......");}catch (Exception ex) {System.out.println ("数据库连接失败......");}return ConnOk;}public static boolean searchTable(String SQLString){ //查询数据。

jsp大学实用教程第二版课后答案

jsp大学实用教程第二版课后答案

jsp大学实用教程第二版课后答案【篇一:jsp 实用教程(第二版)程序源代码】class=txt>清华大学出版社(耿祥义张跃平编著)程序源代码建议使用文档结构图浏览使用word菜单→视图→文档结构图)(选择摘要jsp是一种动态网页技术标准,利用这一技术可以建立安全、跨平台的先进动态网站。

本书是一本实用教程,配备了大量的例题,叙述详细,通俗易懂,便于自学,特别注重结合实例讲解一些难点和关键技术。

全书共分10章,内容包括jsp简介、jsp语法、内置对象、jsp与javabean、文件操作、数据库操作、javaservlet、mvc设计模式、jsp中使用xml等重要内容。

本书所有知识都结合具体实例进行介绍.力求详略得当,突出jsp在开发web动态网站方面的强大功能,使读者快速掌握和运用jsp的编程技巧。

本书不仅可以作为大学计算机及相关专业的选修课教材,也适合自学者及网站开发人员参考使用。

前言本书是《jsp实用教程》的第二版,继续保留原教材的特点——注重教材的可读性和实用性,许多例题都经过精心的考虑,即能帮助理解知识,同时又具有启发性。

在第二版中增加了xml和mvc模式在web设计中的应用,对全书章节的先后顺序和部分例题的内容做了调整。

第1章介绍jsp重要性,对tomcat服务器的安装与配置给予了详细介绍。

第2章讲解jsp页面的基本构成、常用的jsp标记。

第3章讲解内置对象,特别强调了这些内置对象在jsp应用开发中的重要性,结合实例使读者掌握内置对象的用法。

第4章是jsp技术中很重要的内容,即怎样使用javabean分离数据的显示和处理,这一章讲解了许多有一定应用价值的例子。

第5章主要讲解怎样使用java中的输入输出流实现文件的读写操作,在实例上特别强调怎样使用javabean实现文件的读写操作。

第6章涉及的内容是数据库,也是web应用开发的非常重要的一部分内容,特别介绍了各种数据库的连接方式。

第7章讲解javaservlet,对servlet对象的运行原理给予了细致的讲解,许多例子都是大多数web开发中经常使用的模块。

PHP程序设计与应用实践教程(第2版)每章思考与练习参考答案

PHP程序设计与应用实践教程(第2版)每章思考与练习参考答案

思考与练习参考答案第1章PHP概述与开发环境搭建1.简述B/S模式软件的优缺点。

(1)客户端只浏览器即可运行,维护成本比较低。

(2)客户机只负贲数据结果的显示,数据处理事务都交给了服务器,客户端的负荷较小。

(3)系统维护时,不需考虑客户端的可移植性。

(4)所有的客户端Ul风格统一,培训成本低。

(5)系统的安全性要求相比于CS架构要低一些。

2.理解并简述PHP页面的运行原理。

当用户通过浏览器向服务器发出访问PHP页面的请求,服务器接收到该请求后,对页面文件中程序进行以下处理:标准的HTM1.编码会被直接送到客户机浏览器上,而内嵌PHP程序则先祓APaChe解释运行,涉及数据读写时,联系数据库(MySQ1.)完成;再把运行的结果以HTM1.编码的形式发送到客户机的浏览器上。

如果是标准输出的话,输出信息也将作为标准的HTM1.编码被送至浏览器。

第2章:变量与常量(一)选择题1-7:BBBBABC8、ACD9、ABCD10、ACD(二)填空题(1)64 6,123 (2)1 24 (3)523(4)<?php$C=$A;$A=$B;$B=$C:?>第3章:数据类型与运算表达式(一)单项选择题1-5:BBBBD6-10:CBBDB(二)判断题1-5:FFTFF(三)简答题1、$A++是先将变量A增加1,然后在将值赋值给原来的变量A;++$A是先返回变量A的当前值,然后再将变量A的当前值增加1。

2、(int)$A:(integer)$A;intvaI($A):settype($A,"int");3、(1) $n*($n+1)*($n+2)/$X/$Y或$n*($n+1)*($n+2)/(SX*SY)(2) $A+1/$X/$Y/$Y或$A+1/($X*$Y*$Y)第4章:程序控制结构(一)单选题1-5:DADDC(二)填空题υ_2_ 2、一成绩合格成绩中等一第5章:函数一、选择题1-5:DCBCB二、填空题1、x=3,y=8,z=6,r=482、x=4,y=8,z=6,r=33、x=4,y=8,z=6,r=54、 8、16、5、KOmOK第6章:字符串处理一、选择题1-5:CCCCC二、填空题1、student2、HelIoworId,-13、ThiSiSabk4、C5、0第7章:数组一、选择题1-5:CCABB6-1O I BBBDB二、填空题1、girl2、Array([12]=>2[13]=>3[αx w]=>4)第8章:面向对象程序设计一、选择题1-5:BACBB6-10:CCCBB二、填空题1、封装、继承、多态2、 class、extends3、 interface、implements4、 autoload()5、 final第9章:PHP与HTM1.数据交互一、选择题1-5:CAABC二、填空题(1) GETPOST(2) $_GET[1A4](3) GET(4) $_FI1.ES['pies'][*name,]第10章:SESSION与COOKIE一、选择题1-5:BAAAB第11章:图形图像处理1-5:CAACD第12章:文件系统一、选择题1-5:CCBCA二、基础知识(填空题)1,uniink() 2、rmdir() 3、fteIIO4、copy(u files∖∖ 1.txt,',,'backup∖∖ 2.txt")5、rename()第13章:PHP与MYSQ1.数据库(1) mysqlinumfieldsO(2) _10_(3) 56(4) mysqlinumr。

第11章个人信息管理系统案例-JSP程序设计实训与案例教程(第2版)-马军霞-清华大学出版社

第11章个人信息管理系统案例-JSP程序设计实训与案例教程(第2版)-马军霞-清华大学出版社

6
11.1 MVC 设计模式
2.模型 ❖ 模型(Model)就是业务流程/状态的处理以及业务规则的
制定 ❖ 业务流程的处理过程对其它层来说是黑箱操作,模型接受
视图请求的数据,并返回最终的处理结果 ❖ 业务模型的设计可以说是MVC最主要的核心。目前流行的
EJB模型就是一个典型的应用例子,它从应用技术实现的 角度对模型做了进一步的划分 ❖ MVC设计模式告诉我们,把应用的模型按一定的规则抽取 出来,抽取的层次很重要抽象与具体不能隔得太远,也不 能太近 ❖ MVC并没有提供模型的设计方法,而只告诉你应该组织管 理这些模型,以便于模型的重构和提高重用性 ❖ 用对象编程来做比喻,MVC定义了一个顶级类,告诉它的 子类你只能做这些,但没法限制你能做这些。这点对编程 的开发人员非常重要。
❖ 个人信息管理系统可以内置于握在手掌上的数字助理器中, 以提供电子名片、便条、行程管理等功能
❖ 本实训项目基于B/S设计,也可以发布到网上,用户可以随 时存取个人信息
❖ 用户可以在系统中任意添加、修改、删除个人数据,包括个 人的基本信息、个人通讯录、日程安排、个人文件管理等。
2021年4月8日
10
10.2.1 通过Servlet获取表单中的数据
10.2.2 重定向与转发及其应用实例
10.3 项目实训
10.4 课外阅读(互联网的发展史)
2021年4月8日
3
第11章 个人信息管理系统案例
❖ 学习目的与要求: 主要目的:综合运用前面章节相关概念与原理,设计和 开发一个基于MVC模式的个人信息管理系统(Personal Information Management System,PIMS) 通过本案例的训练可以进一步提高项目开发实践能力 要求:能够通过本案例的开发了解案例开发的基本过程 以及熟练运用前10章所学知识设计常规Web应用系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章Web技术简介1.7 习题1.7.1 选择题1. Web技术的设想于哪一年提出()。

A.1954年B.1969年C.1989年D.1990年2. JSP页面在第一次运行时被JSP引擎转化为()。

A.HTML文件B.CGI文件C.CSS文件D.Servlet文件3. JavaEE体系中Web层技术是()。

A.HTMLB.JavaBeanC.EJBD.JSP参考答案:1.C 2.D 3.D1.7.2 填空题1.当前主流的三大动态Web开发技术是:PHP、ASP/和______________。

2. JSP的两种体系结构是:______________和______________。

3. JSP开发Web站点的主要方式有:直接JSP、JSP+JavaBean、______________、______________和SSH。

参考答案:1.JSP2.JSP Model1和JSP Model23.JSP+JavaBean+Servlet、J2EE/JavaEE1.7.3 简答题1. 简述JSP的工作原理。

答:所有的JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要是由JSP引擎来完成。

当第一次运行一个JSP页面时,JSP引擎要完成以下操作:●将JSP文件翻译成Servlet文件,Servlet文件是Java应用程序。

●JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件(.class文件)。

●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。

●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。

由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。

当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。

2. 简述JSP两种体系结构。

答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。

Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。

这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。

尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。

不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。

尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。

从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。

Model2体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。

它吸取了两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。

Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页面传给请求者。

在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,从Servlet中提取动态内容插入静态模板。

分离了显示和内容,明确了角色的定义以及实现了开发者与网页设计者的分开。

项目越复杂,使用Model 2体系结构的优势就越突出。

3. 简述JSP开发Web站点的主要方式。

答:JSP开发Web站点的主要方式有:(1)直接使用JSP(2)JSP+JavaBean(3)JSP+JavaBean+Servlet(4)J2EE/JavaEE开发模型(5)SSH开发框架1.7.4 实验题略第2章JSP常用开发环境介绍略第3章HTML与CSS简介3.7 习题3.7.1 选择题1. 用来换行的标签是()。

A.<p>B.<br>C.<hr>D.<pre>2. 用来建立有序列表的标签是()。

A.<ol></ol>B.<ul></ul>C.<dl></dl>D.<il></il>3. 用来插入图片的标签是()。

A.<img>B.<image>C.<bgsound>D.<table>4. css文件的扩展名为()。

A.docB.textC.htmlD.css参考答案:1.B 2.A 3.A 4.D3.7.2 填空题1. HTML文档的扩展名是______________或______________,它们是可供浏览器解释浏览的网页文件格式。

2. 在HTML中加入CSS的方法主要有______________、______________和______________。

3. HTML文档分为文档头和______________两部分。

4. 常用的列表分为有______________、______________和自定义列表。

5. 表单一般由______________、______________和______________组成。

6. ______________是一种能够有效描述信息的组织形式,由行、列和单元格组成。

参考答案:1.html或htm2.嵌入式样式表、内联式样式表和外联式样式表3.文档体4.有序列表和无序列表5.表单标签、表单域和表单按钮6.表格3.7.3 简答题1. 简述什么是HTML,有哪些基本标签。

答:HTML(Hypertext Markup Language)即超文本标记语言或超文本链接语言,是一种用来制作超文本文档的简单标记语言,它不是一种真正的编程语言,只是一种标记符。

通过一些约定的标签符号对文件的内容进行标注,指出内容的输出格式。

当用户浏览WWW 信息时,浏览器会自动解释这些标签的含义,并按照一定的格式在屏幕上显示这些被标记的信息。

基本标签有<html>、<head>、<title>、<body>等。

2. 简述什么是CSS。

答:CSS(级联样式表)是一种设计网页样式的工具,借助CSS的强大功能,网页将在你丰富的想象力下千变万化。

CSS是W3C为弥补HTML在显示属性设定上的不足而制定的一套扩展样式标准,其重新定义了HTML中文字显示样式,并增加了一些新的概念,如类、层等,可以实现对文字重叠、定位等。

CSS还允许将样式定义单独存储在样式文件中,将显示的内容和显示的样式定义分离,使我们在保持HTML简单明了的初衷的同时能够对页面的布局施加更多的控制,避免代码的冗余,使网页体积更小,下载更快。

另外,也可以将多个网页链接到同一个样式文件,从而为整个网站提供一个统一、通用的外观,同时也使多个具有相同样式表的网页可以简单快速的同时更新。

3. 简述CSS中定义样式表的几种方式。

答:(1)通过HTML标签定义样式表(2)使用id定义样式表(3)使用class定义样式表4. 简述在HTML中加入CSS中的几种方式。

答:(1)嵌入式样式表(2)内联式样式表(3)外联式样式表3.7.4 实验题略第4章通讯资费管理系统项目实训略第5章JSP基础知识5.9 习题5.9.1 选择题1. 对JSP中的HTML注释叙述正确的是()。

A. 发布网页时看不到,在源文件中也看不到B. 发布网页时看不到,在源文件中能看到C. 发布网页时能看到,在源文件中看不到D. 发布网页时能看到,在源文件中也能看到2. JSP支持的语言是()。

A.C语言B.C++语言C.C#语言D. Java语言3. 在同一个JSP页面中page指令的属性可以使用多次的是()。

A.importB.sessionC.extends4. 用于获取Bean属性的动作是()。

A.<jsp:useBean>B.<jsp:getProperty>C.<jsp:setProperty>D.<jsp:forward>5. 用于为其它动作传送参数的动作是()。

A.<jsp:include>B.<jsp:plugin>C.<jsp:param>D.<jsp:useBean>参考答案:1.B 2.D 3.A 4.B 5.C5.9.2 填空题1. JSP标记都是以_________或__________开头,以_________或__________结尾的。

2. JSP页面就是在__________或____________代码中嵌入Java语法或JSP元素。

3. JSP的指令描述______________转换成JSP服务器所能执行的Java代码的控制信息,用于指定整个JSP页面的相关信息,并设置JSP页面的相关属性。

4. JSP程序中的注释有:_________、__________和__________注释。

5. JSP表达式常用在:______________、生成动态链接地址和动态指定form表单处理页面。

参考答案:1.“<%”或“<jsp”,“%>”或“>”2.HTML或XML3.文件4.隐藏注释、HTML注释和Java语言注释5.向页面输出内容5.9.3 简答题1. 简述JSP程序中3种注释的异同。

答:隐藏注释也是JSP的标准注释,写在JSP程序中,在发布网页时完全被忽略,不发给客户,当希望隐藏JSP程序的注释时是很有用的,其格式为:<%-- comment --%>。

HTML注释,在发布网页时可以在浏览器源文件窗口中看到HTML注释,其格式为:<!-- comment [ <%= expression %> ] -->。

在JSP程序中,也遵循Java语言本身的注释规则对代码进行注释,这样的注释和隐藏注释相似,在发布网页时完全忽略,在浏览器的源文件窗口中也看不到注释内容,其格式为:<%/*comment*/%>。

2. 简述page指令、include指令和taglib指令的作用。

答:page 指令用来定义JSP文件中的全局属性,它描述了与页面相关的一些信息,其作用域为它所在JSP页面和其包含的文件。

include指令用于在JSP编译时,为页面插入一个静态文件,如JSP页面、HTML页面、文本文件或是一段Java程序。

taglib指令用来指定页面中使用的标签库以及其自定义标签的前缀。

相关文档
最新文档