华南理工大学Java语言程序设计课堂作业复习资料
- 格式:doc
- 大小:42.00 KB
- 文档页数:25
一、选择题1、面向对象程序设计语言的三个基本特征是?(D)A.封装、接口和多态B.继承、接口和动态C.跨平台、接口和动态D.封装、继承和多态2、关于继承和实现说法正确的是?(A)A、类可以实现多个接口,接口可以继承(或扩展)多个接口B、类可以实现多个接口,接口不能继承(或扩展)多个接口C、类和接口都可以实现多个接口D、类和接口都不可以实现多个接口3、关于访问权限说法正确的是?(B)A、类定义前面可以修饰public,protected和privateB、内部类前面可以修饰public,protected和privateC、局部内部类前面可以修饰public,protected和privateD、以上说法都不正确4、类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep 前面必须用的关键词是?(B)A.classB.staticC.publicD.final5、下列关于构造方法不正确的是:(D)A.类的构造方法和类同名B.一个类可以有多个构造方法C.在实例化对象时必须调用类的构造方法D.构造方法可以和该类其他方法一样被该类对象调用6、关于匿名内部类叙述正确的是?(B)A、匿名内部类可以继承一个基类,不可以实现一个接口B、匿名内部类不可以定义构造器C、匿名内部类不能用于形参D、以上说法都不正确7、关于抽象类的叙述正确的是?(A)A.抽象类不可以实例化,或者说抽象类不能声明为对象B.抽象类就是一种特殊的接口C.抽象类的方法都是抽象方法D.抽象类的导出类一定不是抽象类8、下列选项中,用于在定义子类时声明父类名的关键字是:(C)A.interfaceB.packageC.extendsD.class9、关于访问权限,说法正确的是?(A)A、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testBB、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testBC、访问权限大小范围:public>包权限>protected>privateD、访问权限大小范围:public>包权限>private>protected10、类Car里面有个方法run(),如果直接用Car.run(),则方法run前面必须用的关键词是?(D)A.classB.finalC.publicD.static11、关于访问权限,说法正确的是?(C)A、访问权限大小范围:public>包权限>protected>privateB、访问权限大小范围:public>包权限>private>protectedC、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testBD、类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB12、关于Java语言描述正确的是?(B)A、java和C++都保留了指针B、java和C++都有三个特征:封装、继承和多态C、java的垃圾回收机制是指程序结束时系统自动回收内存D、以上说法都不正确13、如果要建立一个puter的包,叙述正确的是?(D)A、在代码中,不一定是第一句,只要是类定义前,加入package语句即可B、只需在代码中加入“package ;”一个语句C、必须在代码中加入“package ;”和“package puter;”两个语句D、只需在代码中加入“package puter;”一个语句14、不允许作为类及类成员的访问控制符是:(C)A.publicB.privateC.staticD.protected15、要导入java/awt/event下面的所有类,叙述正确的是?(C)A、import java.awt.*和import java.awt.event.*都可以B、只能是import java.awt.*C、只能是import java.awt.event.*D、import java.awt.*和import java.awt.event.*都不可以16、下列修饰符中与访问控制权限无关的是?(D)A.private B.publicC.protected D.final17、关于下面程序ThisTest.java运行结果说法正确的是:(B)public class ThisTest{public static void main(String args[]){String x="7";int y=2;int z=2;System.out.println(x+y+z);}}A.11B.722C.22D.程序有编译错误18、关于final说法正确的是?(B)A、final类的方法肯定不能被同一个包的类访问B、final类的方法能否被同一个包的类访问不是由final决定C、final方法等同于private方法D、final对象本身的引用和值都不能改变19、关于抽象类和接口叙述正确的是?(D)A、抽象类和接口都能实例化的B、抽象类不能实现接口C、抽象类方法的访问权限默认都是publicD、接口方法的访问权限默认都是public20、如果要建立一个puter的包,叙述正确的是?(A)A、只需在代码中加入“package puter;”一个语句B、只需在代码中加入“package java.scut;”一个语句C、必须在代码中加入“package java.scut;”和“package puter;”两个语句D、在代码中,不一定是第一句,只要是类定义前,加入package语句即可21、列表(List)和集合(Set)下面说法正确的是?(A)A)Set中至多只能有一个空元素B)List中至多只能有一个空元素C)List和Set都可以包含重复元素的有序集合D)List和Set都是有序集合22、导出类调用基类的构造器必须用到的关键字:(C)A.thisB.finalC.superD.static23、定义一个接口必须使用的关键字是?(C)A、publicB、classC、interfaceD、static24、字符界面下接受用户从键盘输入,需要import的包是:(C)ng包B.java.awt包C.java.io包D.java.applet包25、下面这三条语句System.out.println(“is”+100+5);System.out.println(100+5+“is”);System.out.println(“is”+(100+5));的输出结果分别是?(C)A、is1005,1005is,is1005B、is105,105is,is105C、is1005,1005is,is105D、is1005,105is,is10526、关于容器下面说法正确的是?(D)A、列表(List)和集合(Set)存放的元素都是可重复的。
面向对象复习1.以下关于抽象类和接口的说法错误的是()A、接口中的方法都必须加上public关键字。
B、在抽象类中可以没有抽象方法C、实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。
接口中的方法都不能被实现D、接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
2.下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号3下列说法正确的是()A、JAVA程序的main方法必须写在类里面B、JAVA程序中可以有多个main方法C、JAVA程序中类名必须与文件名一样D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来4.Java中,在如下所示的Test类中,共有(2)个构造方法。
public class Test{private int x;public Test(){x=35;}public void Test(double f){This.x=(int)f;}public Test(String s){}}5 变量命名规范说法正确的是(F)E、变量由字母、下划线、数字、$符号随意组成;F、变量不能以数字作为开头;G、A和a在java中是同一个变量;H、不同类型的变量,可以起相同的名字;6为一个boolean类型变量赋值时,可以使用(I)方式I、boolean = 1;J、boolean a = (9 >= 10);K、boolean a="真";L、boolean a = = false;7以下(O)不是合法的标识符M、STRINGN、x3x;O、v oidP、de$f2、表达式(11+3*8)/4%3的值是(D)A、31B、0C、1D、23、(A)表达式不可以作为循环条件A、i++;B、i>5;C、bEqual = str.equals("q");D、count = = i;4、运算符优先级别排序正确的是(C)A、由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;B、由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;C、由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;D、由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;5、以下程序的运行结果是:(B)public class Increment{public static void main(String args[]) {int a;a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);}}A.666B.667C.677D.6766、下列值不为true的表达式有(C)。
《Java程序设计》复习提纲题型:选择(24%)、填空(28%)、写出程序运行结果(20%)、把程序补充完整(10%)编程(18%)第一部分:1〜6章1.期中考试卷2.Java语言的健壮性表现在哪两方面?(见P4)3.JDK的组成pFavac.exe (编译器)W Java.exe (解释器)L_Appletviewer.exe (Applet 浏览器)Applet是嵌入到html文件中,运行于浏览器的Java类,可以读取客户端文件4.一个java源文件由1个或多个类,0个或多个接口组成。
一个源文件最多只有一个类或接口为publico5.在应用程序中,main函数所在的类一定是public。
在小程序中,由Applet派生的类称为小程序的主类,在声明时必须指定为publico6.类有哪些成员?{类变量static int a;实例变量intb;I成员函数(方法)7.类的成员有哪些访问控制符?(参考教案P9)8.完整表示静态成员有哪些方式?类名.静态成员名对象名.静态成员名9.抽象方法有何特点?最终方法有何特点?(参考教案P11)10.子类不能继承父类的构造函数,但子类构造函数可以通过super调用父类的构造函数,且super必须放在构造函数的第一行。
理解P67程序4・8。
11・Java语言的多态通过方法的()和()来实现。
理解P70程序4・9, 4-10o12.Java类在继承一个父类的同口寸,可以实现多个接口,也继承了所有接口的全部成分。
13.package语句必须作为jewa源文件的第一条语句,指明源文件所在的目录。
import语句必须放在package语句之后,类声明之前。
14.一个类使用标准类,必须在程序首部写入import语句,使用标准函数时,必须在函数名前面冠以对象名或类名。
第二部分:7〜8, 10〜11章1.熟悉try-catch-finally语句,注意理解P136程序7・22.熟悉throws子句的用法,注意理解P141程序7・6。
1. 1. Java语言的主要类库不包含以下的哪一个?()A. ngB. java.ioC. D. e答题: A. B. C. D.参考答案:D问题解析:2. 2. 关于Java类库的用途以下的说法哪个是不正确的?( )A. ng是核心类库,包含了运行Java程序必不可少的系统类。
B. java.awt包含一些实用工具。
C. java.sql含有数据库连接类。
D. java.rmi含有远程方法调用,分布式对象类。
答题: A. B. C. D.参考答案:B问题解析:3. 3. Java的每个语句以下面哪个符号作为结束符?( )A.?B. ,C. .D. #答题: A. B. C. D.参考答案:A问题解析:4. 4. Java的每个语句以下面哪个符号作为类的开始符号?( )A.?B. {C. //D. #答题: A. B. C. D.参考答案:B问题解析:5. 5. Java语言用以下面哪个关键字作为类的标识?( )A.?mportB. classC. publicD. new答题: A. B. C. D.参考答案:B问题解析:6. 6. 下面说法不正确的是?( )A. Applet程序不需要main方法。
B. Applet程序不能独立运行。
C. Applet程序不提供对播放声音的支持。
D. Applet程序只能和提供它的服务器进行通讯。
答题: A. B. C. D.参考答案:C问题解析:7. 7. 用8. 8. JDK中EXE文件的用途说明中正确的是?( )A. java.exe用于编译java源程序。
B. javac.exe用于解释applet。
C. jdb.exe用于调试java程序。
D. javap.exe用于生成文档。
答题: A. B. C. D.参考答案:C问题解析:9. 9. 运行程序helloworld.class使用的DOS命令是?() a) java helloworld.class b) java helloworld c) javac hell oworld.class d) javac helloworld答题: A. B. C. D.参考答案:B问题解析:10. 10. 编译程序test.java的操作是?( )。
1.1 指出JAVA语言的主要特点和JAVA程序的执行过程。
答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。
1.2 说出开发与运行JAVA程序的重要步骤。
答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件;(3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。
1.3 如何区分应用程序和小应用程序?答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。
1.4 说出JAVA源文件的命名规则。
答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。
1.6 JAVA语言使用什么字符集?共有多少个不同的字符?答:Java语言使用Unicode字符集,共有65535个字符。
1.7 JAVA语言标识符的命名规则是什么?(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符1.8 JAVA有那些基本数据类型,它们的常量又是如何书写的?1.9 指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
整型常量: 4)0xABCL,8)003,10)077,12)056L浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0两者都不是: 1),2),6),7),9),11)第二章运算和语句2.1 Java的字符能参加算术运算吗?可以。
华南理工大学Java语言程序设计课堂作业答案homework01 2011-02-21 13:59 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录 3. 给类添加move(), turnLeft(), pickPeeper(), putPeeper() 等方法, 并在Main中调用显示相关信息 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档Homework01 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样; () 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录; (现class文件夹在D:/目录下,控制台命令输入:javac -d D:\\class ) 3. 给类添加move(), turnLeft(), pickPeeper(),putPeeper() 等方法, 并在Main中调用显示相关信息; 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档. (现新建doc文件夹在D:\\下以存储文档,控制台输入:javadoc -d D:\\doc ) homework02 2011-02-27 22:32 修路工: 请使用分附件中的空白项目,装载sample03_holes_ 背景,修缮1st Street。
/* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; /* * Name: * Section Leader: */ public class SampleKarel extends SuperKarel {int count = 0; public void run() { // You fill in this part while(count } if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); public void changeDirection() {if (rightIsClear()){ turnRight(); } else { if (leftIsBlocked()) {} } if (rightIsBlocked()) { turnRight(); turnRight(); } turnRight(); if (rightIsBlocked()) { turnLeft(); } } public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); } count++; }} newArgs = \ public String className() { return ()[1].getCanonicalName(); } }.clas sName(); (newArgs); homework03 2011-03-07 16:07 使用之前的空白项目,装载*collect* .w 背景,收集全部的Beeper. /* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; public class CollectAllBeepers extendsSuperKarel { /** * Through the maze* @author 黄泽津*/ public void run() {collect(); while(frontIsBlocked()&&!leftIsBlocked() ){if(facingEast()) { turnLeft();move(); turnLeft(); collect(); } if(facingWest()) {turnRight(); move(); turnRight(); collect(); }} } private void collect() {while(beepersPresent()){pick Beeper();} if(frontIsBlocked()) {return;} else move();collect();} public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); newArgs = \public String className() { return ()[1].getCanonicalName();} }.className(); (newArgs);} }homework04 迷宫收集2011-03-13 21:47 创建迷宫world并放置一定的Beeper,装载该World后,收集全部的Beeper, 发送时请携带该world地图int count = 0; public void run() { //You fill in this part while(count judgeAndPick(); if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); }public void changeDirection() {if (rightIsClear()) { turnRight(); } else { if (leftIsBlocked()) { turnLeft(); } } turnLeft(); }public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); count++; } homework05 迷宫收集2011-03-26 21:54 1. 从文件中构造二维世界, 文件为文本模式文件, 字符’0’ ‘1’组成 2. 构造该世界最下方地平面处的路面曲线, 以简单直观的方式在文本中打印, 路面可用’*’表示3. 可将Ship, Person的行进路线以以简单直观的方式在各自独立的文本中打印, 行进路线可用’*’表示/** * */ package map; import *; import *; /** * @author guhonglueying * */ // map 生成方法之从文件中读取public class FileMap extends SubMap {} catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { } charArr[i] = (); try {FileReader fr = new FileReader(s[0]); BufferedReader bw = new BufferedReader(fr); while ((str = ()) != null) { (()); } // 重写父类create方法,用于从文件中读取新地图public void create(String... s) { String str = null; Stack stk= new Stack(); } } /** * */ package map; /** * @author guhonglueying * */ // map生成方法之程序中定义map public class SimpleMap extends SubMap { // 重写父类create方法,用来从程序中创建新地图} /** * */ package map; } charArr = new char {{ ‘0’, ‘0’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’ }, { ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’ },}; { ‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘0’, ‘1’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘0’ }, { ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’ } public void create(String... s) { /** * @author guhonglueying * */ // 生成map的抽象类,用来定义map的一些public属性和方法public abstract class SubMap {} /** * */package map; public void setCol(int col) { } = col; int row; int col; char charArr; public void setRow(int row) { = row; } public int getRow() { return row; } public int getCol() { } return col; // 抽象方法,在子类中实现新地图生成的不同实现public abstract void create(String... s); public char getMap() {} = ; = charArr[0].length; return charArr; import *; import *; /** * @author guhonglueying * */ // map生成方法之从标准输入流获取public class SystemInMap extends SubMap {InputStreamReader isr = new InputStreamReader(); BufferedReader bw = new BufferedReader(isr);(\请用以下字符输入一方形地图:\\n1-墙,0-路,@-入口,#-出口\\n每次输入一行回车,输入E结束\} } while ((str = ()) != null) { if ((\ }break; } (()); // 重写父类create方法,用于从命令操作符中读取新地图public void create(String... s) {String str = null; Stack stk = new Stack(); try { } catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { charArr[i] = (); } /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现person的走迷宫过程public class Person extends SubObjectMovable {} public void Maze(char ch) { (\ } h = new Helper(ch); (); (, 2); /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现ship的走迷宫过程public class Ship extends SubObjectMovable {public void Maze(char ch) { (\/** * */ package util; /** * @author guhonglueying * */ public class Node {public Node(int x, int y) { = x; = y; } public int getX() { } return x; private int x; private int y; public Node() { } public void setX(int x) { = x; } public int getY() { return y; } public void setY(int y) { } public boolean equals(Object o) { if (!(o instanceof Node)) = y; } } return false; Node n = (Node) o; return == x && == y; public String toString() { } return x + \ /** * */ package test; import map.*; import objectmovable.*; /** * @author guhonglueying * */ public class TestMaze {/** *@param args */ // 主函数,程序入口public static void main(String args) {} //多态实现:三种方式创建迷宫SubMap sm = new SimpleMap(); (); char c = (); //多态实现不同物体的走迷宫过程SubObjectMovable iom = new Ship(); (c); } homework07 文件处理2011-04-08 22:19 1. 读文件, 添加或去掉行号后写回 2. 统计一个文件中的词个数(请注意中文) package sample; import *; public class AddRowNum {// // // // // // // // // // (\(\(\(\(\(\(\(\return; try { /** 开启两个文件, 分别读写*/ BufferedReader reader = new BufferedReader(new FileReader(\ BufferedWriter writer = new BufferedWriter( new FileWriter(\/** 首先取得总行数, 然后逐行添加写回*/ int nRowNum = 0; String strOneLine = null; while (() != null) { }nRowNum++; public static void main(String args) { (); String formator = (\nRowNum = 0; reader = new BufferedReader( new FileReader(\while ((strOneLine = ()) != null) { ((\ %s\\n\++nRowNum, strOneLine)); }} package sample; import *; public class CountWords {public static void main(String args) {String fileName = \try {BufferedReader reader = new BufferedReader(newFileReader(fileName)); int NumberCount = 0; int LetterCount = 0; int ChineseCharacterCount = 0; int a = -1; } (new File(\ (); (); new File(\new File(\} catch (FileNotFoundException e) { (\找不到指定文件\} catch (IOException e) { (\文件读写错误\} Character c; while ((a = ()) != -1){ c = (char) a; if ((c)) { NumberCount++;} else if (‘\一’ ChineseCharacterCount++; } else if ((c)) { LetterCount++; } } (); (\文件\共包含:(\数字:\字母:\ + LetterCount + \汉字:\/** 林启敏*/ (); reader = new BufferedReader(new FileReader(\boolean isWordStart = false; int count = 0; char oneChar = new char[1]; while ((oneChar) != -1) { if (oneChar[0] == ‘.’} } || oneChar[0] == ‘,’ || oneChar[0] == ‘ ‘) { if(isWordStart) { } isWordStart = false; count++; \ else { } isWordStart = true; (\} catch (FileNotFoundException e) { (\找不到指定文件\} catch (IOException e) {} } } (\文件读写错误\homework08 html 2011-04-11 16:24 1. 使用Html实现登录页面, 需提供身份证号码, Email等相关信息 2. 在提交时, 使用JavaScript 做校验, 如果失败, 则提示注册者. 用户注册页面用户注册页面注册成功页面.oneColFixCtrHdr #container { width: 780px; background: #FFFFFF; margin: 0 auto; border: 1px solid #000000; text-align: left; } .oneColFixCtrHdr #header { background: #DDDDDD; padding: 0 10px 0 20px; } .oneColFixCtrHdr #header h1 { margin: 0; padding: 10px 0; } .oneColFixCtrHdr #mainContent { padding: 0 20px; background: #FFFFFF; font-weight: bold;} .oneColFixCtrHdr #footer { padding: 0 10px; background:#DDDDDD; } .oneColFixCtrHdr #footer p { margin: 0; padding: 10px 0; } --> 注册成功!下面自动转入首页...... homework09 Swing 2011-04-17 22:26 1. 使用Swing实现之前Html登录页面, 需提供身份证号码, Email等相关信息 2. 同样在提交时, 程序内部做校验, 失败则提示下相关信息. package homework09; import *; import *; import *; import *; import *; public class LoginWindow { public static void main(String args) {LoginFrame login = new LoginFrame();(\用户注册界面\(480,360); (null); (_ON_CLOSE);(true); } } class LoginFrame extends JFrame { public LoginFrame() { Font defaultFont = new Font(\微软雅黑\ Container loginCon = getContentPane(); LoginPanel panel = new LoginPanel(); TitledBorder inputPanelBorder = newTitledBorder(\基本资料\(defaultFont); (inputPanelBorder);(panel); } } class LoginPanel extends JPanel { JTextField nameField,phoneField,emailField,idCardFi eld; JPasswordField passField,repassField; JButton submit,reset; public LoginPanel() { BorderLayout layout = new BorderLayout();setLayout(layout); nameField = new JTextField(10); (()); passField = new JPasswordField(8); (());repassField = new JPasswordField(8); (()); phoneField = new JTextField(12); (());emailField = new JTextField(14); (()); idCardField = new JTextField(12); (());submit = new JButton(\提交\reset = new JButton(\重置\ Box horizontalBox1 = ();Box horizontalBox2 = ();BoxhorizontalBox3 = ();Box horizontalBox4 = ();Box horizontalBox5 = ();Box horizontalBox6 = ();Box horizontalBox7 = ();((35)); (new JLabel(\用户名:\((12)); (nameField); ((10));(new JLabel(\长度为8至16\(new JLabel(\设置密码:\((12)); (passField); ((10));(new JLabel(\长度至少为6\((30)); (new JLabel(\重复密码:\((12)); (repassField); ((10));(new JLabel(\两次输入必须一致\ ((60));(new JLabel(\电话号码:\ ((12));(phoneField);((10)); (new JLabel(\座机或电话号码\(new JLabel(\邮箱地址:\((12));(emailField); ((20));(new JLabel(\身份证信息:\((12));(idCardField);((52)); (submit); ((20)); (reset); Box verticalBox = (); (horizontalBox1); ((14)); (horizontalBox2); ((14)); (horizontalBox3); ((14)); (horizontalBox4); ((14)); (horizontalBox5); ((14)); (horizontalBox6); ((18)); (horizontalBox7);add(verticalBox);(new ActionListener() {public void actionPerformed(ActionEvent e) {submit(); } }); (new ActionListener() {public void actionPerformed(ActionEvent e) {} reset(); } }); void submit() { String phoneRe = \ String emailRe = \String idCardRe = \\Pattern phonePat = (phoneRe); Pattern emailPat = (emailRe); Pattern idCardPat = (idCardRe); Matcher phoneMat = (()); MatcheremailMat = (()); Matcher idCardMat = (()); String error = \ if(().equals(\ error = \用户名不能为空!\} else if(().length()16) { error = \用户名长度不符合要求!\} else if(().equals(\ error = \密码不能为空!\} else if(().length()else if(!().equals(())) { error = \两次输入的密码不一致!\} else if(().equals(\ error = \电话号码不能为空!\} else if(!()) { error = \电话号码格式不正确!\} else if(().equals(\ error = \邮箱地址不能为空!\} else if(!()) { error = \邮件地址格式不正确!\} else if(().equals(\ error = \身份证信息不能为空!\} else if(!()) { error =\身份证格式不正确!\}} if((\ } else (null, error, \消息提示\ _MESSAGE); (null, \注册成功!\消息提示\ _MESSAGE); reset(); void reset() {} } homework10 container 2011-04-24 22:461. 使用数组构建栈Stack(FILO) (null); (null); (null); (null); (null); (null);2. 对比Java提供的Stack, 两者有啥区别3. 使用Stack栈实现\行编辑器\设立一个输入行冲区, 接受用户逐行的输入, 处理后回显正确的信息逐行处理过程如下: 有两个特殊字符用来修改该行的错误信息, ‘#’表示之前一个字符错误, 请删除, ‘@’表示之前字符全部错误, 请删除前面的全部示例: whli##ilr#e(s#*s) -> while(*s) outcha@putchar(*s=#++); -> putchar(*s++); package mystack; /** * @author 电子商务一班俞国峰200930671251 */ public class MyStack {//currentSize用来记录当前栈中元素个数private int currentSize; private Object Mylist; //构造函数,创建空栈public MyStack(){ Mylist = new Object[10]; currentSize = 0; } //当数组长度不够时,增加数组长度public void enLargeSize() {} Object tempList = new Object[ * 2]; (Mylist, 0, tempList, 0, ); Mylist = tempList; //判断栈是否为空public boolean empty() { } return currentSize == 0; //入栈public void push(Object o) { if (currentSize >= ) { enLargeSize(); }} //出栈,返回栈顶元素public Object pop() {} //获取栈顶元素public Object peek() { if (currentSize == 0) {} } return null; if (currentSize == 0) { return null; } currentSize--; if (currentSize + 1 >= ) { enLargeSize(); } return Mylist[currentSize + 1]; Mylist[currentSize] = new Object(); Mylist[currentSize] = o; currentSize++;return Mylist[currentSize - 1]; //获取栈大小,返回栈中元素个数public int getSize() { } return currentSize; //清空栈public void clearAll() { } //重载toString(),以字符串形式返回栈中元素@Override public String toString() { Mylist = new Object[10]; currentSize = 0; } } String tempString = \for (int i = 0; i return tempString; package mystack; /** * @author 电子商务一班俞国峰200930671251 */ import *; public class testMyStack {public static void main(String args) {MyStack msk = new MyStack(); Scanner sc = new Scanner(); String input = \(\ \\nYou may enter in: enter ‘exit’ or ‘EXIT’ to exit!\ (\example: outcha@putchar(*s=#++);\(\ while (!(input =()).equalsIgnoreCase(\ char charr = (); (\for (int i = 0; i (charr[i]); switch (charr[i]) { case ‘#’:(); break; case ‘@’: (); break; } } } } } default : (charr[i]); break; (\(\ homework11 多线程和网络通信2011-05-07 21:59 1. 实现UDP模式的客户端和服务器端通信 2. 使用两个线程: 一个线程负责发送消息, 一个线程负责收取并发送消息,两线程间使用LinkedList共享数据package _yu_guo_feng; /* * @author 电子商务一班俞国峰200930671251 * * 功能:c/s结构,实现基于UDP的聊天功能* 说明:先开启服务器,再接入客户端* 未完善:服务器多开异常处理,下线提醒*/ import *; import *; import *; import *; import *; import *; public class Server extends JFrame {privatestatic final long serialVersionUID = 3497147855119919874L; private JTextArea jta; //保存当前用户private LinkedList sclient; private DatagramSocket socket; private DatagramPacket sendPacket, recevicedPacket; private byte buf; //日期处理private SimpleDateFormat sdf; public static void main(String args) { } new Server(); public Server() { String introduction QQ 730= 寝室版\ + \欢迎使用腾讯=================\\n\ + \+ \使用说明:\\n\+ \运行服务器\\n\+ \接入客户端(可接入多个)\\n\+ \功能:上线提醒、群聊和私聊\\n\ + \作者:电子商务一班——俞国峰——200930671251========\\n\ + \ try { socket = new DatagramSocket(8888); } catch (SocketException e) { ();jta =new JTextArea(introduction); ((new ImageIcon(\(\腾讯QQ 730寝室版——服务器\(jta, ); (400, 300); (false); (_ON_CLOSE); (null); (true); sclient = new LinkedList(); //指定时间表示模式sdf = new SimpleDateFormat(\。
007 ---习题集Java程序设计课程习题集第1章Java语言概述1、Java源程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名有什么规定?2、应用程序和小应用程序的主要区别是什么?3、开发与运行应用程序需要经过哪些主要步骤和过程?4、安装JDK之后如何设置JDK系统的PATH,CLASSPATH?他们的作用是什么?5、Java语言特点是什么?6、分别用JDK、GEL和Eclipse编写能输出“Hello World!”的Java应用程序。
第2章数据类型及其运算1.试分析基本数据类型和引用数据类型的基本特点?2.请使用异或运算符^, 实现两个整数的交换。
3.编程序,显示螺旋方阵:1 2 3 412 13 14 511 16 15 610 9 8 74.下列哪个是合法的标识符:( )。
A、a=bB、_HelloC、2ndD、Chong qing5.下列哪些是合法的标识符()。
A、newB、classC、intD、const26.如果定义有变量double d1, d2=4.0则下列说法正确的是:A、变量d1,d2均初始化为4.0B、变量d1没有初始化,d2初始化为4.0C、变量d1,d2均未初始化D、变量d2没有初始化,d1初始化为4.07.判断题:所有的变量在使用前都必须进行初始化。
()8.内部数据类型byte的取值范围是:( )A、0~65, 535B、(-128)~127C、(-32,768)~32,767D、(-256)~2559.下列哪些是不能通过编译的语句:()A、int i = 32;B、float f = 45.0;C、double d = 45.0;D、char a=‘c’;10.判断题:Java中数据类型的长度与具体使用的机器相关。
()11.如果定义有double x;float y;int m,则表达式x*y-m的类型为():A、doubleB、floatC、intD、short12.如果定义有short s;byte b;char c,则表达式s*b+c的类型为():A、charB、shortC、intD、byte13.已知int i= 2147483647; ++i;则i的值等于多少()A -2147483648B 2147483647C 214748364814.已知byte i= 127; ++i;则i的值等于多少()A -128B 127C 12815.已知byte i= 127; i=i+1;这两行语句能否编译成功?()16.执行以下程序段int a=5,b; b=++a*3后b的值为:()A、17B、18C、16D、1517.如果x=3,y=5,则表达式x|y的值为:()A、15B、8C、1D、718.如果int a=3,b=2,则执行a*=b+8后a的值为:()A、20B、14C、30D、1619.若所用变量都已正确定义,以下选项中,非法的表达式是:()A、a!=4||b==1B、'a'%3C、'a'=1/2D、'A'+3220.设有定义语句int a[]={1,1,2}; 则以下对此语句的叙述错误的是( )。
Java期末考试范围:1—5章考试题型:一、简答题(50分)二、程序改错题(20分)三、编程题(30分)复习内容:简答:1.2java开发环境的构建(1) JDK下载(2) JDK安装(3) 设置环境变量①打开“我的电脑”→“属性”→“高级”→“环境变量”→“系统变量”②设置变量:Path=<原Path>;<bin的安装>(4) 环境测试1.3 java应用程序流程使用一个文字编辑器,编写源文件。
使用java编译器,编译源文件得到字节码文件。
运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。
1.4 java applet与应用程序的区别Applet就是使用Java语言编写的一段代码,它可以在浏览器环境中运行。
它与Application的区别主要在于其执行方式的不同。
application 是从其中的main() 方法开始运行的,而Applet 是在浏览器中运行的,必须创建一个HTML 文件,通过编写HTML 语言代码告诉浏览器载入何种Applet 以及如何运行。
3.1 类与继承与对象的概念和作用①类与继承:概念继承就是一个新的类拥有全部被继承类的成员变量和方法。
作用通过新类对原有类的继承,既可以扩充旧的程序模块功能以适应新的用户需求,也可以满足新的应用系统的功能要求。
从而既可以大大方便原有系统的功能扩充,也可以大大加快新系统的开发速度。
②类与对象概念类是对象的抽象,而对象是类的具体实例。
作用3.2 面向对象各特性的概念和作用(1)封装性(信息隐藏)。
概念:将过程和数据包围起来,对数据访问只能通过已定义的界面作用:信息隐藏,是保证软件部件具有优良的模块性的基础。
通过对象的封装,实现了模块化和信息隐藏。
通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏(2)继承性。
概念:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
复习题一、选择题1、在J2EE中,test.jsp文件中有如下一行代码:<jsp:useBean id=”user” scope=”___” type=”erBean”/>在使user对象可以作用于( D )整个应用程序。
A) page B) request C) session D) application2、在J2EE中,在一个JSP文件中,有表达式<%=2+3%>,它将输出(B )。
A) 2+3 B) 5 C) 23 D) 不会输出,因为表达式是错误的3、在J2EE实现企业级应用开发中,( A )是描述标记库的XML文档。
A) TLD文件b) DTD文件C) WAR文件D) EAR文件4、在JSP中,( A )动作用于将请求转发到其他的JSP页面。
A) forward B) include C) useBean D) setProperty5、要设计一个大型的基于多层体系结构的WEB应用系统,系统界面基于HTML和XML,该系统要不断的进行版本升级(即日后维护,二次需求开发等任务量较大),要达成这些目标,最适合的开发模式是( C )。
A) DAO B) V alue Object C) MVC D) Proxy6、在J2EE中,重定向到另一个页面,以下( C )语句是正确的。
A) request.sendRedirect();B) request.sendRedirect();C) response.sendRedirect();D) response.sendRedirect();7、某JSP程序中声明使用Javabean的语句如下:<JSP:userBean id=”user”class=”er” scope=”page”/>要取出该javaBean中loginName的属性值,以下语句正确的是( C ) 。
A) <jsp:getProperty name=”user” property=”loginName”/>b) <jsp:getProperty id=”user” //>C) <%=user.getLoginName()%>D) <%=user.getProperty(“loginName”)%>8、在J2ee中,在JSP中想要使用user包中的User 类,则以下写法正确的是( ) 。
华南理工大学Java语言程序设计课堂作业答案homework01 2011-02-21 13:59 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录 3. 给类添加move(), turnLeft(), pickPeeper(), putPeeper() 等方法, 并在Main中调用显示相关信息 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档Homework01 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样; () 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录; (现class文件夹在D:/目录下,控制台命令输入:javac -d D:\\class ) 3. 给类添加move(), turnLeft(), pickPeeper(),putPeeper() 等方法, 并在Main中调用显示相关信息; 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档. (现新建doc文件夹在D:\\下以存储文档,控制台输入:javadoc -d D:\\doc ) homework02 2011-02-27 22:32 修路工: 请使用分附件中的空白项目,装载sample03_holes_ 背景,修缮1st Street。
/* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; /* * Name: * Section Leader: */ public class SampleKarel extends SuperKarel {int count = 0; public void run() { // You fill in this part while(count } if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); public void changeDirection() {if (rightIsClear()){ turnRight(); } else { if (leftIsBlocked()) {} } if (rightIsBlocked()) { turnRight(); turnRight(); } turnRight(); if (rightIsBlocked()) { turnLeft(); } } public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); } count++; }} newArgs = \ public String className() { return ()[1].getCanonicalName(); } }.clas sName(); (newArgs); homework03 2011-03-07 16:07 使用之前的空白项目,装载*collect* .w 背景,收集全部的Beeper. /* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; public class CollectAllBeepers extendsSuperKarel { /** * Through the maze* @author 黄泽津*/ public void run() {collect(); while(frontIsBlocked()&&!leftIsBlocked() ){if(facingEast()) { turnLeft();move(); turnLeft(); collect(); } if(facingWest()) {turnRight(); move(); turnRight(); collect(); }} } private void collect() {while(beepersPresent()){pick Beeper();} if(frontIsBlocked()) {return;} else move();collect();} public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); newArgs = \public String className() { return ()[1].getCanonicalName();} }.className(); (newArgs);} }homework04 迷宫收集2011-03-13 21:47 创建迷宫world并放置一定的Beeper,装载该World后,收集全部的Beeper, 发送时请携带该world地图int count = 0; public void run() { //You fill in this part while(count judgeAndPick(); if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); }public void changeDirection() {if (rightIsClear()) { turnRight(); } else { if (leftIsBlocked()) { turnLeft(); } } turnLeft(); }public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); count++; } homework05 迷宫收集2011-03-26 21:54 1. 从文件中构造二维世界, 文件为文本模式文件, 字符’0’ ‘1’组成 2. 构造该世界最下方地平面处的路面曲线, 以简单直观的方式在文本中打印, 路面可用’*’表示3. 可将Ship, Person的行进路线以以简单直观的方式在各自独立的文本中打印, 行进路线可用’*’表示/** * */ package map; import *; import *; /** * @author guhonglueying * */ // map 生成方法之从文件中读取public class extends SubMap {} catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { } charArr[i] = (); try {fr = new (s[0]); BufferedReader bw = new BufferedReader(fr); while ((str = ()) != null) { (()); } // 重写父类create方法,用于从文件中读取新地图public void create(String... s) { String str = null; Stack stk = newStack(); } } /** * */ package map; /** * @author guhonglueying * */ // map生成方法之程序中定义map public class SimpleMap extends SubMap { // 重写父类create方法,用来从程序中创建新地图} /** * */ package map; } charArr = new char {{ ‘0’, ‘0’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’ }, { ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’ },}; { ‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘0’, ‘1’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘0’ }, { ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’ } public void create(String... s) { /** * @author guhonglueying * */ // 生成map的抽象类,用来定义map的一些public属性和方法public abstract class SubMap {} /** * */package map; public void setCol(int col) { } = col; int row; int col; char charArr; public void setRow(int row) { = row; } public int getRow() { return row; } public int getCol() { } return col; // 抽象方法,在子类中实现新地图生成的不同实现public abstract void create(String... s); public char getMap() {} = ; = charArr[0].length; return charArr; import *; import *; /** * @author guhonglueying * */ // map生成方法之从标准输入流获取public class SystemInMap extends SubMap {InputStreamReader isr = new InputStreamReader(); BufferedReader bw = new BufferedReader(isr);(\请用以下字符输入一方形地图:\\n1-墙,0-路,@-入口,#-出口\\n每次输入一行回车,输入E结束\} } while ((str = ()) != null) { if ((\ }break; } (()); // 重写父类create方法,用于从命令操作符中读取新地图public void create(String... s) {String str = null; Stack stk = new Stack(); try { } catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { charArr[i] = (); } /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现person的走迷宫过程public class Person extends SubObjectMovable {} public void Maze(char ch) { (\ } h = new Helper(ch); (); (, 2); /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现ship的走迷宫过程public class Ship extends SubObjectMovable {public void Maze(char ch) { (\/** * */ package util; /** * @author guhonglueying * */ public class Node {public Node(int x, int y) { = x; = y; } public int getX() { } return x; private int x; private int y; public Node() { } public void setX(int x) { = x; } public int getY() { return y; } public void setY(int y) { } public boolean equals(Object o) { if (!(o instanceof Node)) = y; } } return false; Node n = (Node) o; return == x && == y; public String toString() { } return x + \ /** * */ package test; import map.*; import objectmovable.*; /** * @author guhonglueying * */ public class TestMaze {/** *@param args */ // 主函数,程序入口public static void main(String args) {} //多态实现:三种方式创建迷宫SubMap sm = new SimpleMap(); (); char c = (); //多态实现不同物体的走迷宫过程SubObjectMovable iom = new Ship(); (c); } homework07 文件处理2011-04-08 22:19 1. 读文件, 添加或去掉行号后写回 2. 统计一个文件中的词个数(请注意中文) package sample; import *; public class AddRowNum {// // // // // // // // // // (\(\(\(\(\(\(\(\return; try { /** 开启两个文件, 分别读写*/ BufferedReader reader = new BufferedReader(new (\ BufferedWriter writer = new BufferedWriter( new (\/** 首先取得总行数, 然后逐行添加写回*/ int nRowNum = 0; String strOneLine = null; while (() != null) { }nRowNum++; public static void main(String args) { (); String formator = (\nRowNum = 0; reader = new BufferedReader( new (\while ((strOneLine = ()) != null) { ((\ %s\\n\++nRowNum, strOneLine)); }} package sample; import *; public class CountWords {public static void main(String args) {String = \try {BufferedReader reader = new BufferedReader(new ()); int NumberCount = 0; int LetterCount = 0; int ChineseCharacterCount = 0; int a = -1; } (new File(\ (); (); new File(\new File(\} catch ( e) { (\找不到指定文件\} catch (IOException e) { (\文件读写错误\} Character c; while ((a = ()) != -1) { c = (char) a; if ((c)) { NumberCount++;} else if(‘\一’ ChineseCharacterCount++; } else if ((c)) { LetterCount++; } } (); (\文件\共包含:(\数字:\字母:\ + LetterCount + \汉字:\/** 林启敏*/ (); reader = new BufferedReader(new (\boolean isWordStart = false; int count = 0; char oneChar = new char[1]; while ((oneChar) != -1) { if (oneChar[0] == ‘.’} } || oneChar[0] == ‘,’ || oneChar[0] == ‘ ‘) { if(isWordStart) { } isWordStart = false; count++; \ else { } isWordStart = true; (\} catch ( e) { (\找不到指定文件\} catch (IOException e) {} } } (\文件读写错误\homework08 html 2011-04-11 16:24 1. 使用Html实现登录页面, 需提供身份证号码, Email等相关信息 2. 在提交时, 使用JavaScript 做校验, 如果失败, 则提示注册者.用户注册页面用户注册页面注册成功页面.oneColFixCtrHdr #container { width: 780px; background: #FFFFFF; margin: 0 auto; border: 1px solid #000000; text-align: left; } .oneColFixCtrHdr #header { background: #DDDDDD; padding: 0 10px 0 20px; } .oneColFixCtrHdr #header h1 { margin: 0; padding: 10px 0; } .oneColFixCtrHdr #mainContent { padding: 0 20px; background: #FFFFFF; font-weight: bold;} .oneColFixCtrHdr #footer { padding: 0 10px; background:#DDDDDD; } .oneColF ixCtrHdr #footer p { margin: 0; padding: 10px 0; } --> 注册成功!下面自动转入首页...... homework09 Swing 2011-04-17 22:26 1. 使用Swing实现之前Html登录页面, 需提供身份证号码, Email等相关信息 2. 同样在提交时, 程序内部做校验, 失败则提示下相关信息. package homework09; import *; import *; import *; import *; import *; public class LoginWindow { public static void main(String args) {LoginFrame login = new LoginFrame();(\用户注册界面\(480,360); (null); (_ON_CLOSE);(true); } } class LoginFrame extends JFrame { public LoginFrame() { Font defaultFont = new Font(\微软雅黑\ Container loginCon = getContentPane(); LoginPanel panel = new LoginPanel(); TitledBorder inputPanelBorder = new TitledBorder(\基本资料\(defaultFont); (inputPanelBorder);(panel); } } class LoginPanel extends JPanel{ JTextField nameField,phoneField,emailField,idCardFi eld; JPasswordField passField,repassField; JButton submit,reset; public LoginPanel() { BorderLayout layout = new BorderLayout();setLayout(layout); nameField = new JTextField(10); (()); passField = new JPasswordField(8); (());repassField = new JPasswordField(8); (()); phoneField = new JTextField(12); (());emailField = new JTextField(14); (()); idCardField = new JTextField(12); (());submit = new JButton(\提交\reset = new JButton(\重置\ Box horizontalBox1 = ();Box horizontalBox2 = ();Box horizontalBox3 = ();Box horizontalBox4 = ();Box horizontalBox5 = ();BoxhorizontalBox6 = ();Box horizontalBox7 = ();((35)); (new JLabel(\用户名:\((12)); (nameField); ((10));(new JLabel(\长度为8至16\(new JLabel(\设置密码:\((12)); (passField); ((10));(new JLabel(\长度至少为6\((30)); (new JLabel(\重复密码:\((12)); (repassField); ((10));(new JLabel(\两次输入必须一致\ ((60));(new JLabel(\电话号码:\ ((12));(phoneField);((10)); (new JLabel(\座机或电话号码\(new JLabel(\邮箱地址:\((12));(emailField); ((20));(new JLabel(\身份证信息:\((12));(idCardField); ((52)); (submit); ((20)); (reset); Box verticalBox = (); (horizontalBox1); ((14));(horizontalBox2); ((14)); (horizontalBox3); ((14)); (horizontalBox4); ((14)); (horizontalBox5); ((14)); (horizontalBox6); ((18)); (horizontalBox7);add(verticalBox);(new ActionListener() {public void actionPerformed(ActionEvent e) {submit(); } }); (new ActionListener() {public void actionPerformed(ActionEvent e) {} reset(); } }); void submit() { String phoneRe = \ String emailRe = \String idCardRe = \\Pattern phonePat = (phoneRe); Pattern emailPat = (emailRe); Pattern idCardPat = (idCardRe); Matcher phoneMat = (()); Matcher emailMat = (()); Matcher idCardMat = (()); String error = \ if(().equals(\ error = \用户名不能为空!\} elseif(().length()16) { error = \用户名长度不符合要求!\} else if(().equals(\ error = \密码不能为空!\} else if(().length()else if(!().equals(())) { error = \两次输入的密码不一致!\} else if(().equals(\ error = \电话号码不能为空!\} else if(!()) { error = \电话号码格式不正确!\} else if(().equals(\ error = \邮箱地址不能为空!\} else if(!()) { error = \邮件地址格式不正确!\} else if(().equals(\ error = \身份证信息不能为空!\} else if(!()) { error =\身份证格式不正确!\}} if((\ } else (null, error, \消息提示\ _MESSAGE); (null, \注册成功!\消息提示\ _MESSAGE); reset(); void reset() {} } homework10 container 2011-04-24 22:46 1. 使用数组构建栈Stack(FILO) (null); (null); (null); (null); (null); (null);2. 对比Java提供的Stack, 两者有啥区别3. 使用Stack栈实现\行编辑器\设立一个输入行冲区, 接受用户逐行的输入, 处理后回显正确的信息逐行处理过程如下: 有两个特殊字符用来修改该行的错误信息, ‘#’表示之前一个字符错误, 请删除, ‘@’表示之前字符全部错误, 请删除前面的全部示例: whli##ilr#e(s#*s) -> while(*s) outcha@putchar(*s=#++); -> putchar(*s++); package mystack; /** * @author 电子商务一班俞国峰 2 */ public class MyStack {//currentSize用来记录当前栈中元素个数private int currentSize; private Object Mylist; //构造函数,创建空栈public MyStack() { Mylist = new Object[10]; currentSize = 0; } //当数组长度不够时,增加数组长度public void enLargeSize() {} ObjecttempList = new Object[ * 2]; (Mylist, 0, tempList, 0, ); Mylist = tempList; //判断栈是否为空public boolean empty() { } return currentSize == 0; //入栈public void push(Object o) { if (currentSize >= ) { enLargeSize(); }} //出栈,返回栈顶元素public Object pop() {} //获取栈顶元素public Object peek() { if (currentSize == 0) {} } return null; if (currentSize == 0) { return null; } currentSize--; if (currentSize + 1 >= ) { enLargeSize(); } return Mylist[currentSize + 1]; Mylist[currentSize] = new Object(); Mylist[currentSize] = o; currentSize++; return Mylist[currentSize - 1]; //获取栈大小,返回栈中元素个数public int getSize() { } return currentSize; //清空栈public void clearAll() { }//重载toString(),以字符串形式返回栈中元素@Override public String toString() { Mylist = new Object[10]; currentSize = 0; } } String tempString = \for (int i = 0; i return tempString; package mystack; /** * @author 电子商务一班俞国峰 2 */ import *; public class testMyStack {public static void main(String args) {MyStack msk = new MyStack(); Scanner sc = new Scanner(); String input = \(\ \\nYou may enter in: enter ‘exit’ or ‘EXIT’ to exit!\ (\example: outcha@putchar(*s=#++);\(\ while (!(input = ()).equalsIgnoreCase(\ char charr = (); (\for (int i = 0; i (charr[i]); switch (charr[i]) { case ‘#’:(); break; case ‘@’: (); break; } } } }} default : (charr[i]); break; (\(\ homework11 多线程和网络通信2011-05-07 21:59 1. 实现UDP模式的客户端和服务器端通信 2. 使用两个线程: 一个线程负责发送消息, 一个线程负责收取并发送消息,两线程间使用LinkedList共享数据package _yu_guo_feng; /* * @author 电子商务一班俞国峰2 * * 功能:c/s结构,实现基于UDP的聊天功能* 说明:先开启服务器,再接入客户端* 未完善:服务器多开异常处理,下线提醒*/ import *; import *; import *; import *; import *; import *; public class Server extends JFrame {private static final long serialVersionUID = 34979874L; private JTextArea jta; //保存当前用户private LinkedList sclient; private DatagramSocket socket; privateDatagramPacket sendPacket, recevicedPacket; private byte buf; //日期处理private SimpleDateFormat sdf; public static void main(String args) { } new Server(); public Server() { String introduction QQ 730= 寝室版\ + \欢迎使用腾讯=================\\n\ + \+ \使用说明:\\n\+ \运行服务器\\n\+ \接入客户端(可接入多个)\\n\+ \功能:上线提醒、群聊和私聊\\n\ + \作者:电子商务一班——俞国峰——2========\\n\ + \ try { socket = new DatagramSocket(8888); } catch (SocketException e) { ();jta = new JTextArea(introduction); ((new ImageIcon(\(\腾讯QQ 730寝室版——服务器\(jta, ); (400, 300); (false); (_ON_CLOSE); (null); (true); sclient = new LinkedList(); //指定时间表示模式sdf = new SimpleDateFormat(\。
华南理工大学Java语言程序设计课堂作业答案homework01 2011-02-21 13:59 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录 3. 给类添加move(), turnLeft(), pickPeeper(), putPeeper() 等方法, 并在Main中调用显示相关信息 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档Homework01 1. 编写一个类(控制台), 输入你的名字, 回车后, 向屏幕输出信息\欢迎你, ***\类似字样; () 2. 使用命令行模式编译,执行该程序, 将class文件指定输出到class目录; (现class文件夹在D:/目录下,控制台命令输入:javac -d D:\\class ) 3. 给类添加move(), turnLeft(), pickPeeper(),putPeeper() 等方法, 并在Main中调用显示相关信息; 4. 给类和各方法添加注释, 并使用javadoc指令输出代码文档. (现新建doc文件夹在D:\\下以存储文档,控制台输入:javadoc -d D:\\doc ) homework02 2011-02-27 22:32 修路工: 请使用分附件中的空白项目,装载sample03_holes_ 背景,修缮1st Street。
/* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; /* * Name: * Section Leader: */ public class SampleKarel extends SuperKarel {int count = 0; public void run() { // You fill in this part while(count } if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); public void changeDirection() {if (rightIsClear()){ turnRight(); } else { if (leftIsBlocked()) {} } if (rightIsBlocked()) { turnRight(); turnRight(); } turnRight(); if (rightIsBlocked()) { turnLeft(); } } public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); } count++; }} newArgs = \ public String className() { return ()[1].getCanonicalName(); } }.clas sName(); (newArgs); homework03 2011-03-07 16:07 使用之前的空白项目,装载*collect* .w 背景,收集全部的Beeper. /* * File: * -------------------------- * The SampleKarel subclass as it appears here does nothing. */ import *; public class CollectAllBeepers extendsSuperKarel { /** * Through the maze* @author 黄泽津*/ public void run() {collect(); while(frontIsBlocked()&&!leftIsBlocked() ){if(facingEast()) { turnLeft();move(); turnLeft(); collect(); } if(facingWest()) {turnRight(); move(); turnRight(); collect(); }} } private void collect() {while(beepersPresent()){pick Beeper();} if(frontIsBlocked()) {return;} else move();collect();} public static void main(String args) { String newArgs = new String[ + 1]; (args, 0, newArgs, 0, ); newArgs = \public String className() { return ()[1].getCanonicalName();} }.className(); (newArgs);} }homework04 迷宫收集2011-03-13 21:47 创建迷宫world并放置一定的Beeper,装载该World后,收集全部的Beeper, 发送时请携带该world地图int count = 0; public void run() { //You fill in this part while(count judgeAndPick(); if (frontIsBlocked() || rightIsClear()) { changeDirection(); } move(); }public void changeDirection() {if (rightIsClear()) { turnRight(); } else { if (leftIsBlocked()) { turnLeft(); } } turnLeft(); }public void judgeAndPick() {} if (beepersPresent()) { pickBeeper(); count++; } homework05 迷宫收集2011-03-26 21:54 1. 从文件中构造二维世界, 文件为文本模式文件, 字符’0’ ‘1’组成 2. 构造该世界最下方地平面处的路面曲线, 以简单直观的方式在文本中打印, 路面可用’*’表示3. 可将Ship, Person的行进路线以以简单直观的方式在各自独立的文本中打印, 行进路线可用’*’表示/** * */ package map; import *; import *; /** * @author guhonglueying * */ // map 生成方法之从文件中读取public class extends SubMap {} catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { } charArr[i] = (); try {fr = new (s[0]); BufferedReader bw = new BufferedReader(fr); while ((str = ()) != null) { (()); } // 重写父类create方法,用于从文件中读取新地图public void create(String... s) { String str = null; Stack stk = newStack(); } } /** * */ package map; /** * @author guhonglueying * */ // map生成方法之程序中定义map public class SimpleMap extends SubMap { // 重写父类create方法,用来从程序中创建新地图} /** * */ package map; } charArr = new char {{ ‘0’, ‘0’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’ }, { ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’ },}; { ‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘0’, ‘1’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’ }, { ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘1’, ‘0’, ‘0’ }, { ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘1’ }, { ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘1’, ‘0’, ‘0’ } public void create(String... s) { /** * @author guhonglueying * */ // 生成map的抽象类,用来定义map的一些public属性和方法public abstract class SubMap {} /** * */package map; public void setCol(int col) { } = col; int row; int col; char charArr; public void setRow(int row) { = row; } public int getRow() { return row; } public int getCol() { } return col; // 抽象方法,在子类中实现新地图生成的不同实现public abstract void create(String... s); public char getMap() {} = ; = charArr[0].length; return charArr; import *; import *; /** * @author guhonglueying * */ // map生成方法之从标准输入流获取public class SystemInMap extends SubMap {InputStreamReader isr = new InputStreamReader(); BufferedReader bw = new BufferedReader(isr);(\请用以下字符输入一方形地图:\\n1-墙,0-路,@-入口,#-出口\\n每次输入一行回车,输入E结束\} } while ((str = ()) != null) { if ((\ }break; } (()); // 重写父类create方法,用于从命令操作符中读取新地图public void create(String... s) {String str = null; Stack stk = new Stack(); try { } catch (IOException e) { (); } charArr = new char[()]; for (int i = - 1; i > -1; i--) { charArr[i] = (); } /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现person的走迷宫过程public class Person extends SubObjectMovable {} public void Maze(char ch) { (\ } h = new Helper(ch); (); (, 2); /** * */ package objectmovable; import util.*; /** * @author guhonglueying * */ // 实现ship的走迷宫过程public class Ship extends SubObjectMovable {public void Maze(char ch) { (\/** * */ package util; /** * @author guhonglueying * */ public class Node {public Node(int x, int y) { = x; = y; } public int getX() { } return x; private int x; private int y; public Node() { } public void setX(int x) { = x; } public int getY() { return y; } public void setY(int y) { } public boolean equals(Object o) { if (!(o instanceof Node)) = y; } } return false; Node n = (Node) o; return == x && == y; public String toString() { } return x + \ /** * */ package test; import map.*; import objectmovable.*; /** * @author guhonglueying * */ public class TestMaze {/** *@param args */ // 主函数,程序入口public static void main(String args) {} //多态实现:三种方式创建迷宫SubMap sm = new SimpleMap(); (); char c = (); //多态实现不同物体的走迷宫过程SubObjectMovable iom = new Ship(); (c); } homework07 文件处理2011-04-08 22:19 1. 读文件, 添加或去掉行号后写回 2. 统计一个文件中的词个数(请注意中文) package sample; import *; public class AddRowNum {// // // // // // // // // // (\(\(\(\(\(\(\(\return; try { /** 开启两个文件, 分别读写*/ BufferedReader reader = new BufferedReader(new (\ BufferedWriter writer = new BufferedWriter( new (\/** 首先取得总行数, 然后逐行添加写回*/ int nRowNum = 0; String strOneLine = null; while (() != null) { }nRowNum++; public static void main(String args) { (); String formator = (\nRowNum = 0; reader = new BufferedReader( new (\while ((strOneLine = ()) != null) { ((\ %s\\n\++nRowNum, strOneLine)); }} package sample; import *; public class CountWords {public static void main(String args) {String = \try {BufferedReader reader = new BufferedReader(new ()); int NumberCount = 0; int LetterCount = 0; int ChineseCharacterCount = 0; int a = -1; } (new File(\ (); (); new File(\new File(\} catch ( e) { (\找不到指定文件\} catch (IOException e) { (\文件读写错误\} Character c; while ((a = ()) != -1) { c = (char) a; if ((c)) { NumberCount++;} else if(‘\一’ ChineseCharacterCount++; } else if ((c)) { LetterCount++; } } (); (\文件\共包含:(\数字:\字母:\ + LetterCount + \汉字:\/** 林启敏*/ (); reader = new BufferedReader(new (\boolean isWordStart = false; int count = 0; char oneChar = new char[1]; while ((oneChar) != -1) { if (oneChar[0] == ‘.’} } || oneChar[0] == ‘,’ || oneChar[0] == ‘ ‘) { if(isWordStart) { } isWordStart = false; count++; \ else { } isWordStart = true; (\} catch ( e) { (\找不到指定文件\} catch (IOException e) {} } } (\文件读写错误\homework08 html 2011-04-11 16:24 1. 使用Html实现登录页面, 需提供身份证号码, Email等相关信息 2. 在提交时, 使用JavaScript 做校验, 如果失败, 则提示注册者.用户注册页面用户注册页面注册成功页面.oneColFixCtrHdr #container { width: 780px; background: #FFFFFF; margin: 0 auto; border: 1px solid #000000; text-align: left; } .oneColFixCtrHdr #header { background: #DDDDDD; padding: 0 10px 0 20px; } .oneColFixCtrHdr #header h1 { margin: 0; padding: 10px 0; } .oneColFixCtrHdr #mainContent { padding: 0 20px; background: #FFFFFF; font-weight: bold;} .oneColFixCtrHdr #footer { padding: 0 10px; background:#DDDDDD; } .oneColF ixCtrHdr #footer p { margin: 0; padding: 10px 0; } --> 注册成功!下面自动转入首页...... homework09 Swing 2011-04-17 22:26 1. 使用Swing实现之前Html登录页面, 需提供身份证号码, Email等相关信息 2. 同样在提交时, 程序内部做校验, 失败则提示下相关信息. package homework09; import *; import *; import *; import *; import *; public class LoginWindow { public static void main(String args) {LoginFrame login = new LoginFrame();(\用户注册界面\(480,360); (null); (_ON_CLOSE);(true); } } class LoginFrame extends JFrame { public LoginFrame() { Font defaultFont = new Font(\微软雅黑\ Container loginCon = getContentPane(); LoginPanel panel = new LoginPanel(); TitledBorder inputPanelBorder = new TitledBorder(\基本资料\(defaultFont); (inputPanelBorder);(panel); } } class LoginPanel extends JPanel{ JTextField nameField,phoneField,emailField,idCardFi eld; JPasswordField passField,repassField; JButton submit,reset; public LoginPanel() { BorderLayout layout = new BorderLayout();setLayout(layout); nameField = new JTextField(10); (()); passField = new JPasswordField(8); (());repassField = new JPasswordField(8); (()); phoneField = new JTextField(12); (());emailField = new JTextField(14); (()); idCardField = new JTextField(12); (());submit = new JButton(\提交\reset = new JButton(\重置\ Box horizontalBox1 = ();Box horizontalBox2 = ();Box horizontalBox3 = ();Box horizontalBox4 = ();Box horizontalBox5 = ();BoxhorizontalBox6 = ();Box horizontalBox7 = ();((35)); (new JLabel(\用户名:\((12)); (nameField); ((10));(new JLabel(\长度为8至16\(new JLabel(\设置密码:\((12)); (passField); ((10));(new JLabel(\长度至少为6\((30)); (new JLabel(\重复密码:\((12)); (repassField); ((10));(new JLabel(\两次输入必须一致\ ((60));(new JLabel(\电话号码:\ ((12));(phoneField);((10)); (new JLabel(\座机或电话号码\(new JLabel(\邮箱地址:\((12));(emailField); ((20));(new JLabel(\身份证信息:\((12));(idCardField); ((52)); (submit); ((20)); (reset); Box verticalBox = (); (horizontalBox1); ((14));(horizontalBox2); ((14)); (horizontalBox3); ((14)); (horizontalBox4); ((14)); (horizontalBox5); ((14)); (horizontalBox6); ((18)); (horizontalBox7);add(verticalBox);(new ActionListener() {public void actionPerformed(ActionEvent e) {submit(); } }); (new ActionListener() {public void actionPerformed(ActionEvent e) {} reset(); } }); void submit() { String phoneRe = \ String emailRe = \String idCardRe = \\Pattern phonePat = (phoneRe); Pattern emailPat = (emailRe); Pattern idCardPat = (idCardRe); Matcher phoneMat = (()); Matcher emailMat = (()); Matcher idCardMat = (()); String error = \ if(().equals(\ error = \用户名不能为空!\} elseif(().length()16) { error = \用户名长度不符合要求!\} else if(().equals(\ error = \密码不能为空!\} else if(().length()else if(!().equals(())) { error = \两次输入的密码不一致!\} else if(().equals(\ error = \电话号码不能为空!\} else if(!()) { error = \电话号码格式不正确!\} else if(().equals(\ error = \邮箱地址不能为空!\} else if(!()) { error = \邮件地址格式不正确!\} else if(().equals(\ error = \身份证信息不能为空!\} else if(!()) { error =\身份证格式不正确!\}} if((\ } else (null, error, \消息提示\ _MESSAGE); (null, \注册成功!\消息提示\ _MESSAGE); reset(); void reset() {} } homework10 container 2011-04-24 22:46 1. 使用数组构建栈Stack(FILO) (null); (null); (null); (null); (null); (null);2. 对比Java提供的Stack, 两者有啥区别3. 使用Stack栈实现\行编辑器\设立一个输入行冲区, 接受用户逐行的输入, 处理后回显正确的信息逐行处理过程如下: 有两个特殊字符用来修改该行的错误信息, ‘#’表示之前一个字符错误, 请删除, ‘@’表示之前字符全部错误, 请删除前面的全部示例: whli##ilr#e(s#*s) -> while(*s) outcha@putchar(*s=#++); -> putchar(*s++); package mystack; /** * @author 电子商务一班俞国峰 2 */ public class MyStack {//currentSize用来记录当前栈中元素个数private int currentSize; private Object Mylist; //构造函数,创建空栈public MyStack() { Mylist = new Object[10]; currentSize = 0; } //当数组长度不够时,增加数组长度public void enLargeSize() {} ObjecttempList = new Object[ * 2]; (Mylist, 0, tempList, 0, ); Mylist = tempList; //判断栈是否为空public boolean empty() { } return currentSize == 0; //入栈public void push(Object o) { if (currentSize >= ) { enLargeSize(); }} //出栈,返回栈顶元素public Object pop() {} //获取栈顶元素public Object peek() { if (currentSize == 0) {} } return null; if (currentSize == 0) { return null; } currentSize--; if (currentSize + 1 >= ) { enLargeSize(); } return Mylist[currentSize + 1]; Mylist[currentSize] = new Object(); Mylist[currentSize] = o; currentSize++; return Mylist[currentSize - 1]; //获取栈大小,返回栈中元素个数public int getSize() { } return currentSize; //清空栈public void clearAll() { }//重载toString(),以字符串形式返回栈中元素@Override public String toString() { Mylist = new Object[10]; currentSize = 0; } } String tempString = \for (int i = 0; i return tempString; package mystack; /** * @author 电子商务一班俞国峰 2 */ import *; public class testMyStack {public static void main(String args) {MyStack msk = new MyStack(); Scanner sc = new Scanner(); String input = \(\ \\nYou may enter in: enter ‘exit’ or ‘EXIT’ to exit!\ (\example: outcha@putchar(*s=#++);\(\ while (!(input = ()).equalsIgnoreCase(\ char charr = (); (\for (int i = 0; i (charr[i]); switch (charr[i]) { case ‘#’:(); break; case ‘@’: (); break; } } } }} default : (charr[i]); break; (\(\ homework11 多线程和网络通信2011-05-07 21:59 1. 实现UDP模式的客户端和服务器端通信 2. 使用两个线程: 一个线程负责发送消息, 一个线程负责收取并发送消息,两线程间使用LinkedList共享数据package _yu_guo_feng; /* * @author 电子商务一班俞国峰2 * * 功能:c/s结构,实现基于UDP的聊天功能* 说明:先开启服务器,再接入客户端* 未完善:服务器多开异常处理,下线提醒*/ import *; import *; import *; import *; import *; import *; public class Server extends JFrame {private static final long serialVersionUID = 34979874L; private JTextArea jta; //保存当前用户private LinkedList sclient; private DatagramSocket socket; privateDatagramPacket sendPacket, recevicedPacket; private byte buf; //日期处理private SimpleDateFormat sdf; public static void main(String args) { } new Server(); public Server() { String introduction QQ 730= 寝室版\ + \欢迎使用腾讯=================\\n\ + \+ \使用说明:\\n\+ \运行服务器\\n\+ \接入客户端(可接入多个)\\n\+ \功能:上线提醒、群聊和私聊\\n\ + \作者:电子商务一班——俞国峰——2========\\n\ + \ try { socket = new DatagramSocket(8888); } catch (SocketException e) { ();jta = new JTextArea(introduction); ((new ImageIcon(\(\腾讯QQ 730寝室版——服务器\(jta, ); (400, 300); (false); (_ON_CLOSE); (null); (true); sclient = new LinkedList(); //指定时间表示模式sdf = new SimpleDateFormat(\。