《Java语言程序设计》期末复习
2005.6.
一、课程说明
《Java语言程序设计》是电大相关专业专科生的一门必修课程。
1、考核对象:电大专科生。
2、考核方式:闭卷。本课程采用形成性考试与终结性考试(期末考试)相结合的考试方式。
3、命题依据:本课程依据课程的教学大纲要求命题组织考核。
文字参考教材:JavaScript程序设计基础教程,阮文江编著,人民邮电出版社。
电子参考教材:http://210.38.42.1/83493031/java/javaindex.htm
二、考试说明
课程总成绩的记分方法:形成性考核成绩占总成绩的20%,终结性考试成绩占总成绩的80%。
课程总成绩按百分制记分,60分为合格。
1、试题类型及试卷结构
试题题型有:
填空题(每空2分,共20分);
简答题(每题10分,共40分)
编程应用题(每题10分,共40分)。
2、考试形式
采用闭卷笔试,答题时限120分钟。
三、复习要点
了解:JavaScript与Java、C、VBScript等的区别
理解:数据类型、运算符和表达式、程序流程、控制语句、公共函数、自定义函数等的概念。
掌握:对象与事件驱动的概念;事件的响应;页面元素的控制;简单应用程序开发。
四、复习内容提要
1.JavaScript 的标记格式
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,
可嵌入在标准的HTML语言中的任意地方,基本的标记格式为:
格式1:
<script language="JavaScript">
(JavaScript代码)
</script>
格式2:
<script language="JavaScript" src="javascript.js"></script>
其中,javascript.js是包含JavaScript 代码的文本文件(此文件通常用“.js”作扩展名)。
在浏览器的地址栏中也可执行 JavaScript 语句,其格式为:
javascript:<JavaScript语句>
在HTML链接中的格式为:
<a href="javascript:<JavaScript语句>">...</a>
2.数据类型
字符类型(使用单引号“'”或双引号“"”)、数值类型(整数和浮点数)、
逻辑类型(true或false)、对象类型、null。
3.变量的命名
(1)变量名必须由字母(大小写均可)或下划线“_”或一个美元符“$”开头。
后继字符可以是字母、数字、下划线或美元符。
(2)变量名不能包含空格。
(3)JavaScript对大小写是有区别的。
(4)不能使用JavaScript中的关键字作为变量。
4.运算符
类型 | 运算符 | 功能 |
赋值运算符 | = | 给表达式或变量赋值 |
算术类 | + | 算术加或字符串连接 |
- | 算术减 | |
* | 算术乘 | |
/ | 算术除 | |
% | 算术求模 | |
++ | 自加 | |
-- | 自减 | |
- | 取负 | |
逻辑类 | = = | 等于 |
! = | 不等于 | |
< | 小于 | |
<= | 小于等于 | |
> | 大于 | |
>= | 大于等于 | |
! | 逻辑非 | |
&& | 逻辑与 | |
|| | 逻辑或 | |
? | 条件运算符 |
5.控制结构
由于JavaScript语言是基于Java语言的,而Java语言又是基于C语言的,
所以语句控制结构基本上与C语言相同。在JavaScript中:
用于条件控制的语句有两种形式:简单的if语句和完整的if...else...语句
处理循环的语句有:for、for...in、while、do...while
用于分支控制的语句是:switch...case
break语句:结束当前的for、while循环,退出循环体,把程序的控制权交给下一条JavaScript语句。
continue语句:结束当前的for、while循环,并开始下一条循环。
6.日期对象
Date对象要创建实例才能使用,创建Date对象实例的方法有:
var myDate = new Date();
var myDate = new Date(日期);
Date对象的常用方法有:
getYear()、getMonth()、getDate()、getDay()、getHours()、getMintes()、getSeconds()、
getMilliseccondes、setYear()、setMonth()、setDate()、setDay()、setHours()、
setMintes()、setSeconds()、setMilliseccondes()等。
7.数学函数对象
Math对象用于各种算术计算。Math对象只能直接使用,不能创建对象实例。
Math对象的标准常数属性:
·E —— 2.71828
·LN10 ——以E为底,10的对数(ln10=2.302585)
·LN2 ——以E为底,2的对数(ln2=0.693147)
·LOG10E ——以10为底,E的对数(0.43429448)
·LOG2E ——以2为底,E的对数(1.442695)
·PI —— 3.1415926535898
·SQRT1_2 —— 1/2的平方根(0.70710678)
·SQRT2 —— 2的平方根(1.41421356)
Math对象的常用方法(函数)有:
·abs() —— 绝对值
·sin()、cos()、asin()、acos() —— 正弦、余弦、反正弦、反余弦
·tan()、atan() —— 正切、反正切
·round() —— 四舍五入
·floor() —— 取整
·sqrt() —— 平方根
·pow() —— 乘方
·random() —— 随机产生一个0-1之间的小数
·max() —— 最大值
·min() —— 最小值
8.字符串对象
除了fromCharCode()方法外,String对象必须先创建字符串对象实例,
才能引用String对象的属性和方法。创建String对象的方法有:
var myS = "字符串";
var myS = new String("字符串");
String对象有一个属性:length。属性值为字符串的字符个数,即字符串的长度。
String对象的方法主要用于有关字符串在Web页面中的显示、字体大小、字体颜色、
字符的搜索以及字符大小写转换等等。String对象常用的方法有:
indexOf(c,n) —— 从第n个字符开始查找第一次出现c的位置。参数n缺省时为0,找不到时返回-1
lastIndexOf(c,n) —— 从第n个字符开始查找最后一次出现c的位置
substring(start,end) —— 返回从start开始到end的全部字符
charAt(n) —— 返回第n个字符
charCodeAt(n) —— 返回第n个字符的字符编码
toLowerCase() —— 转换为小写
toUpperCase() —— 转换为大写
fromCharCode(n) —— 返回字符编码为n的字符
bold() —— 字体以粗体方式显示
fontcolor(color) —— 设置字体颜色
fontsize(size) —— 设置字体大小
italics() —— 以斜体字方式显示
9.响应事件
常用的鼠标事件有:
onClick —— 单击鼠标
onDblClick —— 双击鼠标
onMouseDown —— 按下鼠标键
onMouseUp —— 松开鼠标键
onMouseMove —— 移动鼠标
onMouseOver —— 鼠标移入对象
onMouseOut —— 鼠标移出对象
常用的键盘事件有:
onKeyPress —— 按了键盘按键
onKeyDown —— 按下键盘按键
onKeyUP —— 松开键盘按键
检测和响应一个事件的脚本称为事件处理程序,通常该程序被定义成一个函数。
指定事件处理程序的常用方法有:
(1)在HTML标记内定义,如:<p onMouseOver="mymes();">....</p>
(2)使用JavaScrip语句定义,如:document.onmouseover=mymes;
10.事件对象
event对象是一个特殊对象,通过event对象的属性可以获得所发生的事件的信息。
event对象的常用属性有:
type —— 事件的类型,如:mouseover
button —— 鼠标按键,1-左键,2-右键
clientX、clientY —— 鼠标在文档可视区域中的坐标
offsetX、offsetY —— 鼠标在对象中的坐标
keyCode —— 键盘按键的ASCII码
ctrlKey —— 是否按下Ctrl键(true 或 false)
altKey —— 是否按下Alt键(true 或 false)
shiftKey —— 是否按下Shift键(true 或 false)
returnValue —— 是否响应事件(true 或 false)
11.动画制作
使用JavaScript制作动画,其基本原理是:通过脚本来改变页面中对象的属性,
如对象的位置、大小、颜色等,从而实现动画效果。通常有文字动画、图形动画、图像动画等。
要制作文字动画的文本常放在标记a、p、span内,或放于层中,使其成为页面元素或页面对象。
形动画一般是使用若干层,利用不同层有不同属性来实现如烟花之类的动画。
而图像动画通常是将图片放于层中(或作为层的背景),通过改变层的属性使图片移动、变形。
12.文档对象模型
DOM(文档对象模型,Document Object Model)是
W3C(万维网联盟,Wordl Wide Web Consortium)制订发布的标准,是DHTML技术之一,
目前有DOM level 0、DOM level 1、DOM level 2、DOM level 3 等技术规范。
DHTML(Dynamic Hyper Text Markup Language)就是一种在网页下载到浏览器后能随时改变内容、
排版格式以及对页面对象进行操作的技术,
主要包含有:客户端的脚本语言、文档对象模型DOM、层叠样式表CSS(Cascading Style Sheets)等。
文档对象(document)是窗口对象(window)的子对象,
窗口对象包括:document、history、location、evert等子对象。
13.窗口对象
window对象常用的属性有:
closed —— 窗口是否已关闭(true或false)
defaultStatus —— 默认的窗口状态栏信息
dialogHeight、dialogWidth —— 网页对话框的大小
dialogLeft、dialogTop —— 网页对话框的位置
status —— 窗口状态栏信息
window对象常用的方法有:
alert() —— 显示信息对话框
clearIntelval() —— 清除定时器
clearTimeout() —— 清除延时命令
close() —— 关闭窗口
confirm() —— 显示确认对话框
open() —— 打开窗口
prompt() —— 显示输入对话框
setInterval() —— 设置定时器
setTimeout() —— 设置延时执行语句
showModalDialog() —— 显示网页对话框
14.document对象
document对象的常用属性有:
bgColor —— 背景颜色
cookie —— 客户机cookie
fgColor —— 前景颜色
location —— 完整的文档地址
title —— 文档的标题
URL —— 同location
document对象最常用的方法是: write()或者writeln(),用于向文档写入信息,
但是,不能使用该方法在已经被载入的网页中写入新内容,
且包含该方法的脚本必须放在文档的<body>和</body>之间。
15.页面对象
页面元素(或对象)常用的属性有:
style(对象的格式)、innerText(对象内的文本)、innerHTM(对象内的超文本)等。
页面元素(或对象)的style属性也是一个对象,常用的属性有:
fontFamily —— 文本字体
fontSize —— 文本字号
fontStyle —— 斜体(italic)
color —— 文本颜色
textAlign —— 文本对齐方式(left、right、center、justify)
position —— 对象定位方式(absolute、static、relative)
left、top —— 对象位置(返回字符串,如:"100px")
pixelLeft、pixelTop —— 对象位置(返回数值,如:100)
width、height —— 对象大小(返回字符串,如:"200px")
pixelWidth、pixelHeight —— 对象大小(返回数值,如:200)
visibility —— 对象是否可见(visible、hidden)
backgroundColor —— 背景颜色
backgroundImage —— 背景图像
16.表单对象
form对象的常用属性有:
name —— 表单名称
action —— 表单的提交地址
method —— 表单的提交方法
length —— 表单所含元素的数目
form对象的方法:
reset() —— 重置表单
submit() —— 提交表单
form对象的事件:
onSubmit —— 当表单提交时(如果事件处理程序返回false将阻止表单的提交)
onReset —— 当表单重置时(如果事件处理程序返回false将阻止表单的重置)
form对象常用的元素有:
Submit 提交按钮对象,由“<input type="submit">指定。
Reset 重置按钮对象,由“<input type="reset">”指定。
Button 按钮对象,由“<input type="button">”指定。
Checkbox 复选框对象,由“<input type="checkbox">”指定。
Radio 单选按钮对象,由“<input type="radio">”指定。
Text 文本域对象,由“<input type="text">”指定。
Password 密码域对象,由“<input type="password">”指定。
Textarea 多行文本域对象,由“<textarea>”指定。
每个表单元素都有属性,
如:name(元素名称)、 value(元素的值)、 checked(是否被选中)等,以及相应的方法,
如:blur()从对象中移走焦点、focus()让对象获得焦点、click()模拟鼠标点击该对象。
同时,表单元素也能响应鼠标和键盘事件,如:onClick、onChange、onKeyPress、onFocus、onBlur等等。
表单数据的校验通常有两种方法:
(1)在表单提交前校验。使用onSubit指定表单提交事件处理程序,
如果允许提交表单,程序返回True,否则返回False。
(2)当表单元素失去焦点时校验。使用onBlur指定表单元素失去焦点时的事件处理程序。
17.公共函数
eval(e) —— 返回表达式e的值。如果表达式e中包含有JavaScript命令,这些命令会被执行。
escape(c) —— 常规字符串转换为URL编码的字符串
unescape(c) —— URL编码的字符串转换为常规字符串
parseFloat(c) —— 转换为浮点数
parseInt(c) —— 转换为整数
toString(n) —— 转换为n进制数(字符串)
五、综合练习
(一)填空题
1.写出下面数学代数式的JavaScript表达式。
(1) | a+b | _______________________________________ |
c+d |
(2)sin(x+30°) ____________________________________(P101)
(3) | x | 开平方_________________________________(P101) |
a+2 |
(4)x的12方 + 10的18方_____________________________(P39倒3)(P101)
2.设a=3,b=7,x="abce计算机abcde",t=true,求下面各式的值。
(1)Math.floor(b/a) __________________(P101)
(2)x.substring(a,b) __________________(P104)
(3)x.charAt(a) __________________(P104)
(4)String.fromCharCode(a*b+44) __________________(返回字符编码为n的字符)
(5)x.toUpperCase() __________________(P104)
(6)Math.round(b/2) __________________(P101)
(7)x.indexOf("ce") __________________(查找第一次出现“ce”的位置)
(8)x.length __________________(P104)
(9)b>a && t __________________(P46)
(10)t ? a : b __________________(P49)
(二)简答题
1. JavaScript有哪些数据类型?(P39-5)
2. 如何创建Date对象?Date对象有哪能些常用方法?(P102倒12)
3. 简单比较Date对象、Math对象及String对象的异同?(P100)(P101)(P104)
4. 用JavaScript在网页上实现动画的原理是什么?(P11-20)
5. 解释:HTML、DHTML、CSS、DOM、W3C
(P11-4、17、25)(P142-5)(P111-9)
W3C:万维网联盟,促进网络演进,保证共同使用的共同协议。
6. write()是什么对象的方法,如何使用?(P126)
7. 表单对象有哪些常用元素?(P33)
8. 常用的鼠标事件和键盘事件有哪些?(P113)(P117)
常用的鼠标事件有:
onClick —— 单击鼠标
onDblClick —— 双击鼠标
onMouseDown —— 按下鼠标键
onMouseUp —— 松开鼠标键
onMouseMove —— 移动鼠标
onMouseOver —— 鼠标移入对象
onMouseOut —— 鼠标移出对象
常用的键盘事件有:
onKeyPress —— 按了键盘按键
onKeyDown —— 按下键盘按键
onKeyUP —— 松开键盘按键
(三)编程题
1.用for语句编程序求:
(1)求 1、4、7、…… 331等差数列的和。S=1+4+7+……+331
(2)求 1!、2!、…… 20!阶乘的和。M=1!+2!+3!+ …… +20!
2.由用户输入两个数,如果第一个数能被第二个数整除,显示“YES”,否则显示“NO”。
要求:如果输入的内容不是数值,给出提示,并让用户重新输入。
3.页面上某段的HTML描述为:
<p>当前时间:<span id="dt"></span></p>
编写程序在该段中显示一个实时时钟,只包括时分秒,当时分秒不足两位时,前面补0。
4.随机产生一个20到60间的整数并显示,直到该数为40时,程序结束。
5.分别编写具有下面功能的自定义函数。
(1)删除字符串的所有空格。function trim(s)
(2)判断一个数是否是整数。function isint(n)
(3)求字符串的反序字符串。function uord(s)
(4)随机产生一种颜色代码。function mcolor()
6.页面上有一图片,HTML描述如下:
<body onKeyPress="mvpic();">
<div id="pic" style="position:absolute; left:50px; top:50px;
width:100px; height:80px; z-index:1; background-image: url(duck.gif); "></div>
</body>
编写程序,使按键盘的数字键8、2、4、6时可对图片进行上、下、左、右移动。
7.页面上有两段文字,HTML描述如下:
<p>这是第一段</p>
<p>这是第二段</p>
请修改其HTML描述,并编写相应的程序,使鼠标点击某一段时,该段隐藏,另一段显示。
8.一个表单有姓名和电话号码两个文本域,其HTML描述如下:
<form name="form1" method="post" action="data.asp" onSubmit="return vf();">
姓名<input type="text" name="xm">
电话<input type="text" name="dh">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</form>
要求这两项内容都要填写,且电话号码必须是8位以上的数字。请编写相应的表单检验程序。
六、综合练习参考答案
(一)填空题
1.
(1) (a+b)/(c+d)
(2) Math.sin(x+30*Math.PI/180)
(3) Math.sqrt(x /(a+2))
(4) Math.pow(x,12)+ 1E18
2.
(1)2 (2)e计算机 (3)e (4)A (5)ABCE计算机ABCDE
(6)4 (7)2 (8)12 (9)true (10)3
(二)简答题
1. JavaScript有哪些数据类型?
2. 如何创建Date对象?Date对象有哪能些常用方法?
3. 简单比较Date对象、Math对象及String对象的异同?
4. 用JavaScript在网页上实现动画的原理是什么?
5. 解释:HTML、DHTML、CSS、DOM、W3C
6. write()是什么对象的方法,如何使用?
7. 表单对象有哪些常用元素?
8. 常用的鼠标事件和键盘事件有哪能些?
(三)编程题
1.
(1)求 1、4、7、……331 等差数列的和。
for (i=1,s=0;i<=331;i+=3) s+=i;
alert("1+4+7+......+331=" + s);
(2)求 1!、2!、…… 20!阶乘的和。
for (i=1,n=1,m=0;i<21;i++){
n=n*i;
m=m+n;
}
alert("1!+2!+3!+......+20!=" + m);
2.判断用户输入的两个数能否整除。
while (1){
x=parseFloat(prompt("请输入第一个数:"));
if (Math.abs(x)>0) break;
alert("输入无效,请重新输入!");
}while (1){
y=parseFloat(prompt("请输入第二个数:"));
if (Math.abs(y)>0) break;
alert("输入无效,请重新输入!");
}
if (x%y = = 0)
alert("YES");
else
alert("NO");
3.显示时钟。
setInterval("tt()",1000);
function tt(){
d = new Date();
h = d.getHours();
m = d.getMinutes();
s = d.getSeconds();
t = ((h<10)?("0"+h):h) + ":" + ((m<10)?("0"+m):m) + ":" + ((s<10)?("0"+s):s);
dt.innerHTML = t;
}
4.显示20到60间的随机整数。
i=0;
do{
i++;
x=Math.floor(Math.random()*41+20);
alert("第"+i+"个数是:"+x);
}while (x!=40)
5.
//(1)删除字符串的所有空格。例如:ab cd ef ---- abcdef
function trim(s){
var c=""
for (var i=0;i<s.length;i++){
var c0=s.charAt(i);
if (c0!=" " && c0!=" ") c+=c0;
}
return c;
}
//(2)判断一个数是否是整数。例如:2、2.5。
function isint(n){
if (Math.floor(n) = = n)
return true;
else
return false;
}
//(3)求字符串的反序字符串。例如:abcdef ---- fedcba。
function uord(s){
var c="";
for (var i=s.length-1;i>=0;i--){
var c0=s.charAt(i);
c+=c0;
}
return c;
}
//(4)随机产生一种颜色代码。方法1
function mcolor(){
var c="#"; //颜色代码:#RRGGBB(P151)
for (var i=1;i<=6;i++){ //循环产生6个颜色代码
var n=Math.floor(Math.random()*16); //产生0到15的随机数
n=(n<10) ? n : String.fromCharCode(n+55); //转换成十六进制:0、1、……9、A、B、C、D、E、F
c+=n;
}
return c;
}
//(4)随机产生一种颜色代码。方法2
function mcolor2(){
var m=0xFFFFFF + 1;
var n=Math.floor(Math.random()*m);
c="000000" + n.toString(16);
return c.substring(c.length-6);
}
6.按键盘移动图片。
function mvpic(){
var n=String.fromCharCode(event.keyCode);
switch (n) {
case "8":
pic.style.pixelTop--;
break;
case "2":
pic.style.pixelTop++;
break;
case "4":
pic.style.pixelLeft--;
break;
case "6":
pic.style.pixelLeft++;
break;
}
}
7.隐藏、显示段落。
HTML描述修改为:
<p id="p1" onClick="hv();">这是第一段</p>
<p id="p2" onClick="hv();">这是第二段</p>
程序如下:
function hv(){
if (p1.style.visibility=="visible"){
p1.style.visibility="hidden";
p2.style.visibility="visible";
}else{
p1.style.visibility="visible";
p2.style.visibility="hidden";
}
}
8.检验电话号码必须是8位以上的数字。
function vf(){
if (document.form1.xm.value==""){
alert("姓名不能为空!");
return false;
}
var tel=document.form1.dh.value;
for (var i=0;i<tel.length;i++){
var c=tel.charAt(i);
if (c<"0" || c>"9") break;
}
if (i<8){
alert("电话号码必须是8位以上的数字!");
return false;
}
return true;
}