Java面向对象软件开发(巩固与提高) - 图文

更新时间:2024-03-19 04:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java面向对象 软件开发

姚骏屏、汪卫星 主编 李再友、何桂兰、陈俟伶副主编

参编:张红实、刘飞、刘志强、谭登超、张正龙、张安荣

1

第1章 面向对象开发基本概念 ................................................................................... 9

1.1 类 ......................................................................................................................... 错误!未定义书签。 1.1.1 什么是类 ..................................................................................................... 错误!未定义书签。 1.1.2 如何创建类 ................................................................................................. 错误!未定义书签。 1.2对象 ...................................................................................................................... 错误!未定义书签。 1.2.1 什么是对象 ................................................................................................. 错误!未定义书签。 1.2.2 对象与类的关系 ......................................................................................... 错误!未定义书签。 1.2.3 如何创建对象 ............................................................................................. 错误!未定义书签。 1.2.4 如何访问对象成员 ..................................................................................... 错误!未定义书签。

? 巩固与提高 ............................................................................................ 9

第2章 面向对象开发特点 ......................................................................................... 11

2.1封装 ...................................................................................................................... 错误!未定义书签。 2.1.1 类的封装性 ................................................................................................. 错误!未定义书签。 2.1.2 Java中的包 .................................................................................................. 错误!未定义书签。 2.1.3 类及类成员的访问权限 .............................................................................. 错误!未定义书签。 2.1.4类的构造方法 .............................................................................................. 错误!未定义书签。 2.1.5 this关键字.................................................................................................... 错误!未定义书签。 2.1.6 static静态成员 ............................................................................................. 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

2.2 继承 ..................................................................................................................... 错误!未定义书签。 2.2.1 类的继承性 ................................................................................................. 错误!未定义书签。 2.2.2 类继承的实现 ............................................................................................. 错误!未定义书签。 2.2.3 成员的覆盖 ................................................................................................. 错误!未定义书签。 2.2.4 super关键字 ................................................................................................. 错误!未定义书签。 2.2.5派生类的初始化 .......................................................................................... 错误!未定义书签。 2.2.6 对象之间的类型转换.................................................................................. 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

2.3 多态 ..................................................................................................................... 错误!未定义书签。 2.3.1重载 .............................................................................................................. 错误!未定义书签。 2.3.2 重写 ............................................................................................................. 错误!未定义书签。

2

工作实施 .......................................................... 错误!未定义书签。

?

巩固与提高 ........................................................................................... 11

第3章 面向对象设计思想 ........................................................................................ 15

3.1 抽象 ..................................................................................................................... 错误!未定义书签。 3.1.1 抽象类 ......................................................................................................... 错误!未定义书签。 3.1.2 ........................................................................................................................... 最终类 ....................................................................................................................................... 错误!未定义书签。

工作实施 .......................................................................................... 错误!未定义书签。

3.2 接口 ..................................................................................................................... 错误!未定义书签。 3.2.1接口的定义 .................................................................................................. 错误!未定义书签。 3.2.2接口的实现 .................................................................................................. 错误!未定义书签。 3.2.3接口的继承 .................................................................................................. 错误!未定义书签。 3.2.4 实现多接口 ................................................................................................. 错误!未定义书签。

工作实施 .......................................................................................... 错误!未定义书签。

? 巩固与提高 .......................................................................................... 15

第4章 面向对象开发常用类 .................................................................................... 18

4.1 String与StringBuffer .......................................................................................... 错误!未定义书签。 4.1.1字符串类型类 .............................................................................................. 错误!未定义书签。 4.1.2数据类型类 .................................................................................................. 错误!未定义书签。 4.1.3 数学(Math)类 ......................................................................................... 错误!未定义书签。 4.1.4 随机数处理(Random)类 ........................................................................ 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

4.2 Set接口及其实现类 ............................................................................................ 错误!未定义书签。 4.2.1 集合框架概述 ............................................................................................. 错误!未定义书签。 4.2.2 Collection接口 ............................................................................................. 错误!未定义书签。 4.2.3规则集Set和它的常用实现类 .................................................................... 错误!未定义书签。

3

工作实施 .......................................................... 错误!未定义书签。

4.3 List接口及其实现类 ........................................................................................... 错误!未定义书签。 4.3.1线性存储结构 .............................................................................................. 错误!未定义书签。 4.3.2 ArrayList与LinkedList ................................................................................ 错误!未定义书签。 4.3.3向量类Vector ............................................................................................... 错误!未定义书签。 4.3.4 栈Stack ....................................................................................................... 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

4.4 Map接口及其实现类 .......................................................................................... 错误!未定义书签。 4.4.1Map接口 ....................................................................................................... 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

4.5异常处理类 .......................................................................................................... 错误!未定义书签。 10.4.1 Java异常处理机制 .................................................................................... 错误!未定义书签。 10.4.2 Java中的异常类 ........................................................................................ 错误!未定义书签。

巩固与提高 .................................................................................... 错误!未定义书签。 第5章 项目需求分析 ............................................................................................... 23

5.1用例图 .................................................................................................................. 错误!未定义书签。 5.1.1 系统角色与用例分析.................................................................................. 错误!未定义书签。 5.1.2 角色与用例之间的关系 .............................................................................. 错误!未定义书签。 5.1.3 角色与角色之间的关系 .............................................................................. 错误!未定义书签。 5.1.4 用例之间的关系 ......................................................................................... 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

巩固与提高 ................................................................................................................ 25 第6章 项目开发环境搭建 ........................................................................................ 36

4

6.1安装MySql .......................................................................................................... 错误!未定义书签。 6.2 安装MySQL-Front ............................................................................................. 错误!未定义书签。 6.3 使用MySQL-Front管理数据库 ........................................................................ 错误!未定义书签。 6.3.1 连接数据库服务器 ..................................................................................... 错误!未定义书签。 6.3.2 创建数据库与创建数据表 .......................................................................... 错误!未定义书签。 6.3.3 管理表中数据 ............................................................................................. 错误!未定义书签。

巩固与提高 ................................................................................................................ 36 第7章 概要设计与数据库设计 ................................................................................. 38

7.1 系统概要设计 ..................................................................................................... 错误!未定义书签。 7.2 数据库设计 ......................................................................................................... 错误!未定义书签。

巩固与提高 ................................................................................................................ 38 第8章 JDBC方式连接数据库 ................................................................................. 39

8.1 JDBC驱动及配置 ............................................................................................... 错误!未定义书签。 8.1.1 JDBC引入.................................................................................................... 错误!未定义书签。 8.1.2 配置JDBC驱动包 ...................................................................................... 错误!未定义书签。 8.2 JDBC基本开发引导 ........................................................................................... 错误!未定义书签。

工作实施 .......................................................... 错误!未定义书签。

巩固与提高 ................................................................................................................ 39 第9章 单元测试 ...................................................................................................... 40

6.1 什么是单元测试 ............................................................................................ 错误!未定义书签。 6.2 单元测试的目的 ............................................................................................ 错误!未定义书签。 6.3 JUnit框架 ........................................................................................................ 错误!未定义书签。

工作实施 .......................................................................... 错误!未定义书签。

巩固与提高 ................................................................................................................ 40 第10章 项目编码实现 ............................................................................................. 42

10.1高内聚低耦合的项目结构 ................................................................................ 错误!未定义书签。

5

第2章 面向对象开发特点

巩固与提高

1、 选择题

(1) 对于构造方法,下列叙述不正确的是( )。

A、构造方法是类的一种特殊方法,它的方法名必须与类名相同。 B、构造方法的返回类型只能是void型。

C、构造方法的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造方法。

(2) 在Java中,一个类可同时定义多个同名的方法,这些方法的参数个数、参数类型或参数顺序有所不相同,返回的值也可以不相同。这种面向对象程序特性称为( )。 A、隐藏 B、覆盖 C、多态 D、Java不支持此特性

(3)下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( ) A、public B、private C、static D、final

(4)下面关于java中类的说法哪个是不正确的( )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句 B、构造函数是类中的特殊方法

C、类一定要声明为public的,才可以执行 D、一个java文件中可以有多个class定义 (5)下述哪些说法是不正确的?( ) A、实例变量是类的成员变量。

B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建

D、方法变量在使用之前必须初始化 (6)下列哪些说法是正确的?( ) A、 Java 语言只允许单一继承 B、 Java 语言只允许实现一个接口

C、 Java 语言不允许同时继承一个类并实现一个接口 D、 Java 语言的单一继承使得代码书写更简明清晰 (7)下面对构造方法的不正确描述是( )。 A、 构造方法的方法名必须与类名相同

B、 构造方法可以有参数,所以也可以有返回值 C、 构造方法可以重载 D、 构造方法可以设置参数

(8)关于类的静态成员的不正确描述是( )。 A、静态成员不属于对象,是类的共享成员

11

B、静态数据成员要在类外定义和初始化

C、静态成员方法不拥有this关键字,需要通过类参数访问对象成员 D、只有静态成员方法可以操作静态数据成员 (9)下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y {...} D、class x {...}

(10)有一个类A,以下为其构造方法的声明,其中正确的是( )。 A、void A(int x){...} B、public A(int x){...} C、 public a(int x){...} D、 static A(int x){...}

(11)设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( )。 A、 void X(int k ){ i=k; } B、 X(int k ){ i=k; } C、 X(int m, int n ){ i=m; j=n; } D、 X( ){i=0;j=0; }

(12)JAVA语言中,在类定义时使用final关键字修饰,是指这个类( ) A 、不能被继承 B、 在子类方法中不能被调用 C 、能被别的程序自由调用 D 、不能被子类的方法覆盖 (13)下列选项中,用于定义子类时声明父类名的关键字是( ) A 、 interface B、 package C 、 extends D 、 class

(14) 构造方法名必须与______相同,它没有返回值,用户不能直接调用它,只能通过new调用。( )。

A、类名 B、对象名 C、包名 D、变量名 (15)下列修饰符可以用于定义类的是( )

A、 private B、 static C 、abstract D 、protected (16)用于定义类成员的访问控制权的一组关键字是( ) A 、class, float, double, public B、 float , boolean ,int , long C、 char , extends , float , double D、 public ,private ,protected (17)方法的重载是指( )

A、两个或两个以上的方法取相同的方法名,但是参数的个数或类型不同

B、两个以上的方法去相同的名字和具有相同参数个数,但形参的类型可以不同 C、两个以上的方法名字不同,但形参的个数或类型相同

D、两个以上的方法取相同的方法名,但方法的返回值类型相同 (18) 定义主类的类头时可以使用的访问控制符有哪些?( )

A、 public B、protected C、final D、private

(19)关于被私有保护访问控制符 private protected 修饰的成员变量,以下说法正确的是( )

A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类

的子类

B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问

(20)运行下面程序,选择正确的输出结果为( )。

12

public class Cat{ String name;

public void show(){

System.out.print(\Cat\); }

public static void main(String args[]){

Cat c=new Tiger( ); c.show(); } }

class Tiger extends Cat{ public void show( ){

System.out.print(\Tiger\); } }

A、Cat B、Tiger C、Cat Tiger D、Tiger Cat

2、判断题 (1)所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是对象。( )

(2)静态初始化器是构造方法之前加上static修饰符。( )

(3)在定义一个类的时候,若想让类中的成员不能在类的外部访问,则必须在成员前面加上private修饰符。( )

(4)类的静态成员属于类所有,实例成员属于对象所有。( ) (5)最终类不能派生子类,最终方法不能被重写。( )

(6)重载方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。重载的多个方法必须返回相同的数据类型。( ) (7)访问修饰符:类中限定为public的成员可以被所有的类访问。( ) (8)类中先定位private的成员只能被这个类本身访问。同一个类的不同对象可以访问对方的private域变量或调用对方的域方法,这是因为访问保护控制在对象的级别上,而不是类的级别上。( )

(9)类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中和不同包中的子类),以及同一个包中的其他类访问。( )

(10)用private protected修饰的成员可以被该类本身访问,也可以被该类的所有子类访问。( ) 3、填空题

(1) 引用父类中的成员变量用_________;引用当前的类或对象的成员变量用________。. (2)Java中类成员的限定词有以下几种:private, public, _________、 _________。其中,_________的限定的范围最大。

(3)被关键字_________修饰的方法是不能被当前类的子类重新定义的方法。

(4)当类未用访问权限修饰符(public 或private)修饰时,java语言默认此类的访问权

13

限是__________ 。

(5)在Java程序中,通过类的定义只能实现_____ 重继承,但通过接口的定义可以实现______ 重继承关系。

(6)子类重新定义一个与从父类那里继承来的域变量完全相同的变量,这种面向对象程序

设计特性称为域的__________。

(7)如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这

个变量__________了父类的同名变量。

(8) 如果子类中的某个方法的名字、返回值类型和__________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。 (9)Java语言中用于表示类间继承的关键字是___________。

(10) Java语言中,表示一个类不能再被继承的关键字是___________。

4、操作题

(1)设计一个盒子类Box,它有长、宽、高三个私有成员属性,包含无参数和有参数的构造方法,分别实现设置和获取属性的setter和getter方法,以及求盒子体积的公有方法。其中,构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。再编写一个主类BoxTest,在其主方法main()中创建若干个Box对象,输出其长、宽、高及其体积的值。

(2)定义com.bean包,将习题(1)定义的Box类放入com.bean中;定义com.test包,将主类BoxTest放入com.test包中,在main()中导入com.bean包,使用Box类输出长方形的长、宽、高及其体积的值。

(3)定义一个动物类Animal,有动物类型属性type和动物发声的方法sound();定义基于动物类的狗类Dog和猫类Cat,这两个类都要求覆盖父类的发声方法;定义AnimalDemo类,声明一个Animal对象,分别创建一个Dog、Cat类的对象,然后通过Animal对象来访问Dog、Cat类对象的sound()方法。

(4)设计一个表示二维平面上圆的类Circle,有表示圆半径的protected类型的成员变量radius、获取和设置radius值的public方法、计算圆面积的public方法。设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量height、获取和设置height值的public方法、计算圆柱体体积的public方法。建立若干个Cylinder对象,输出其半径、高及其体积的值。要求:

A、每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。

B、子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。

(5)利用多态,设计一个相应的方法,用来计算正方体体积、长方体体积、圆柱体和圆锥体体积。

14

第3章 面向对象设计思想

巩固与提高

1、 选择题

(1)关于抽象类的说法下面哪一种是正确的?( ) A、抽象类可以继承非抽象类 B、抽象类不能实例化对象 C、抽象类必须包含抽象方法

D、继承抽象类的子类必须实现父类中的抽象方法 (2)关于接口的说法下面哪些是正确的?( ) A、在接口中不能定义变量

B、在接口中可以定义非抽象方法

C、在接口中定义的方法都是publie 、abstract D、接口可以实现多继承

(3)关于final的说法下面哪些是正确的?( ) A、final修饰的类可以被继承

B、final修饰的方法不能被子类继承

C、final修饰的成员变量一旦初始化,就不能修改 D、final修饰的方法在子类可以被重写

(4)下列选项中,定义抽象类的关键字是( )。

A、interface B、implements C、 abstract D、 class (5)下列选项中,定义最终类的关键字是( )。

A、interface B、 implements C、 abstract D、 final (6)下列选项中,用于定义接口的关键字是( )。

A、interface B、 implements C、 abstract D、 class

(7)现有类A和接口B,以下描述中表示类A实现接口B的语句是( )。 A、 class A implements B B、 class B implements A C、 class A extends B D、 class B extends A (8)关于抽象类正确的是( )

A、抽象类中不可以有非抽象方法。

B、某个非抽象类的父类是抽象类,则这个子类不一定重载父类所有的抽象方法。 C、不能用抽象类去创建对象。 D、接口和抽象类是同一个概念。 (9)下面选项正确的是( ) A、抽象类可以有构造方法。 B、接口可以有构造方法。

15

}

}

public static void increment(Count c , int times){ c.count++; }

times++;

class Count{

public int count; Count(int c){ } Count(){

count =1; count =c;

} }

4、运行类C的输出结果是:____________________________。 class A{ } }

class B extends A{ }

public class C{ }

5、阅读下列程序写出输出结果:____________________________。 class A {

String s=\ void show(){

System.out.println(s);

21

public A(){

System.out.println(\

public B(){ }

System.out.println(\

public static void main(String[] args) { }

B b = new B();

} }

class B extends A{ String s=\ void show(){

System.out.println(s); } }

public class TypeConvert{

public static void main(String args[]){ B b1;

B b2=new B();

A a1,a2; a1=(A)b2; a2=b2;

System.out.println(a1.s); a1.show();

System.out.println(a2.s); a2.show(); b1=(B)a1;

System.out.println(b1.s); b1.show();

System.out.println(b2.s); b2.show(); } }

四、编程题(共20分)

1、设计一个时间类MyTime,包含一个构造方法,3个私有成员变量hour、minute、second以及它们相应的setter和getter方法,再加上一个转换成“XX时:XX分:XX秒”格式字符串的方法toString。

2、设计一个日期类MyDate,包含一个构造方法,3个私有成员变量year、month、day以及它们相应的setter和getter方法,再加上一个转换成“XXXX年XX月XX日” 格式字符串的方法toString。

3、设计一个FullTime类,包含一个MyTime类型的私有成员变量time以及与之相对应的setter和getter方法;一个MyDate类型的成员变量date以及与之相对应的setter和getter方法,一个构造方法,再加上一个转换成“XXXX年XX月XX日XX时:XX分:XX秒” 格式字符串的方法toString。

4、假设当前时间为2009年12月10日9点30分45秒,编写一个程序,用FullTime类设置时间为以上时间,并打印。

22

第4章 面向对象开发常用类

巩固与提高

1、选择题:

(1)下列哪些内容是异常的含义?( ) A、 程序的语法错 B、 程序编译或运行中所发生的异常事件 C、 程序预先定义好的异常事件 D 、程序编译错误

(2) 自定义的异常类可从下列哪个类继承?( ) A、 Error类 B、 AWTError C、 VirtualMachineError D、 Exception及其子集

(3)当方法遇到异常又不知如何处理时,下列哪种做法是正确的?( ) A、 捕获异常 B、 抛出异常 C、 声明异常 D、 嵌套异常 (4)如要抛出异常,应用下列哪种子句?( ) A、 catch B、 throw C、 try D、 finally (5) 对于catch子句的排列,下列哪种是正确的?( ) A、 父类在先,子类在后 B、 子类在先,父类在后

C、 有继承关系的异常不能在同一个try程序段内 D、 先有子类,其他如何排列都无关 (6) 如何将字符串转换为数值?( )

A、利用字符串对象的toString方法将字符串转换为数值

B、利用数值类的parseInt,parseDouble等方法将字符串直接转换为数值 C、利用数值类的静态方法valueOf将字符串转换为数值 D、利用数值类的静态方法intValue将字符串转换为数值 (7)下面有关集合的说法错误的是( ) A、Collection是集合层次中的根接口

23

B、List是可以包含重复的元素,是一个有序的集合 C、Set中不能包含重复的元素

D、Map中存储的是key-value对,可以包含重复的key,可以有重复的value (8)根据下列语句判断哪些表达式返回true( ) String s=\String t=\char c[]={'h','e','l','l','o'};

A、s.equals(t); B、t.equals(c); C、 s=t; D、 t==c; (9)下面哪一个是声明5个String对象的数组?( ) A、 char str[]; B、 char str[][]; C、 String str[]=new String[5]; D、String str[5]; (10)不是用于数据结构的类是( )

A、Stack类 B、 LinkedList类 C、 Vector类 D、Math类 2、编程题:

(1)用键盘向控制台输入一个E-mail地址(如:lee_java@126.com),分析该地址,获 取并输出域名(如:“126.com”)(要求:不使用StringTokenizer类,只使用String类的方法来完成)。

(2)随机生成10个100以内的整数,然后按从小到大排列打印出来。

(3)创建一个教师类Teacher,其属性有教师号teacherId、姓名name、性别sex和薪水salary;再声明三个教师对象并赋值;然后依次用Set、List、Map集合来实现对教师对象数据的存储,并输出相应教师信息。

(4)有一种数叫回文数,正读反读都一样,如12321便是一个回文数。编写一个程序,从命令行参数得到一个整数,判断该数是不是回文数。

(5)假如某项工作对身高要求较严,需要在170cm到180cm之间,如过超出范围都不符合要求。试自定义两个异常类,当应聘人员不在要求范围内将有太高或太矮的异常抛出。 (6)生成20个1到10之间的随机数存放在一个数组中,将数组元素依次取出,如果是奇数则将该数进栈,如果是偶数且栈不为空,则将栈顶元素出栈。如栈为空,将该数忽略。最后,看栈中还有多少个数,并将这些数打印出来。

24

第5章 项目需求分析

巩固与提高

1、选择题

(1) 下列哪个图形表示角色( )

A B C (2) 下列哪个图形表示A是B的泛化(A继承于B)关系

<>

D

AB

AB

AB

A<B>

A B C D

(3) include关系是( )

A、 扩展关系 B、 包含关系 C、 泛化关系 D、 继承关系 (4) 以下选项中是对系统静态结构的图形表示,描绘的是系统的静态模型的是( )。

A、数据流图 B、状态图 C、类图 D、时序图

(5) 在UML提供的图中,( )用于描述系统与外部系统及用户之间的交互; A、用例图 B、类图 C、对象图 D、部署图 (6) 下列关于UML叙述正确的是( )。

A、UML是一种语言,语言的使用者不能对其扩展 B、UML仅是一组图形的集合

C、UML仅适用于系统的分析与设计阶段 D、UML是独立于软件开发过程的

(7) ( )用于按时间顺序描述对象间的交互。 A、网络图 B、状态图 C、协作图 D、序列图 (8) 面向对象分析与设计,简称( )。

A、OOA B、OOD C、OOC D、OOAD

(9) 现有两个用例UC1和UC2,其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是( )。

A、 include B、 extend C、generalize D、 call (10) 协作图主要描述对象间的交互与连接,它( )。

25

A、能够表示消息的顺序和嵌套关系

B、能够表示消息的顺序关系,但不能表示消息的嵌套关系 C、能够表示消息的嵌套关系,但不能表示消息的顺序关系 D、既不能表示消息的顺序关系,也不能表示消息的嵌套关系

(11) 软件可行性研究实质上是要进行一次( )需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、 深入的 (12) 软件开发的需求活动,其主要任务是( )。

A、 给出软件解决方案 B、 给出系统模块结构

C、 定义模块算法 D、 定义需求并建立系统模型 (13) 需求分析阶段的研究对象是( )。

A、 用户要求 B、 分析员要求 C、 系统要求 D、 软硬件要求

(14) 需求分析阶段结束后,应交出的文档中应该包括( )。(多项选择) A、数据流图 B、数据字典 C、简明的算法描述 D、项目的经费预算 (15) 需求分析最终结果是产生( )

A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告

2、填空题

(1)软件=________+________。

(2)软件生存周期一般可分为系统工程、________、________、________、测试、运行与维护阶段。

(3)在瀑布模型中,将软件开发划分为若干个时期,软件项目的可行性研究一般被归属于________。

(4) 需求分析的基本任务是准确的回答________。 (5) 需求分析应交付的主要文档是________。

(6)软件模块独立性的两个定性度量标准是________和________。

(7)为使用流程图描述结构和程序,限制流程图有五种基本的控制结构________、________、________、until循环、多情况型选择。

(8)一个模块直接调用的模块数目称为模块的________,一个模块被多少上级模块直接调用称为模块的________。

(9)用例图包括________、________两种元素。

(10)去图书馆借书,当你延期归还书以后要缴罚款,那么还书和缴罚款这两个用例是

________关系?

3、判断题

(1) 耦合是指一个模块内各个元素彼此结合的紧密程度。( ) (2) 在软件设计中应该尽量设计紧密耦合的系统。( ) (3) 概要设计阶段完成的主要文档是概要设计说明书。( ) (4) 可行性研究的最根本的任务是对以后的行动方针提出建议。( ) (5) 可行性研究的结果有可能将软件开发项目否定。( )

(6) 可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。( ) (7) 软件是一种逻辑实体,而不是具体的物理实体。( ) (8) 软件工程是开发、运行、维护和修复软件的系统方法。( )

26

(9) 螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示,( ) (10) 在软件开发中,采用原型系统策略的主要困难是时间问题。( )

27

单元测试(二)

一、选择题(每小题2分,共50分)

1、一个对象的生命周期分( )3个阶段。 A)使用、生成和清除 B)清除、使用和生成 C)生成、使用和清除 D)生成、清除和使用 2、下列能表示字符串sl长度的是( )。

A)sl.length() B)sl.length C)sl.size D)sl.size() 3、随机类型类Random类来自于( )包。

A) java.awt B) java.util C) java.lang D) java.io 4、用来导入已定义好的类或包的语句是( )。 A)main B)import C)public class D)class 5、StringBuffer类字符串对象的长度是( )。

A)固定 B)必须小于16个字符 C)可变 D)必须大于16个字符 6、欲构造ArrayList类的一个实例,此类实现了List接口,下列( )语句是正确的。

A)ArrayList myList=new Object( ); B)List myList=new ArrayList( ); C)ArrayList myList=new List( ); D)List myList=new List( );

7、下列常见的系统定义的异常中,哪个是输入输出异常?( ) A)ClassNotFoundException B)IOException

C)FileNotFoundException D)UnknownHostException

8、顺序执行下列程序语句后,则b的值是( )。 String a=\

String b=a.substring(0,2);

A)Hello B)Hel C)He D)null 9、阅读下列程序: public class ConcatTest{

28

public static void main(String[]args){ String str1 = \ String str2 = \ String str3 = strl.concat(str2); System.out.println(str3); } }

程序的运行结果是:( )。

A)abc B)ABC C)abdABC D)ABCabc

10、设i、j、k为类School中定义的int型成员变量名,下列类School的构造方法中不正确的是( )。

A) School( int m){ ... } B) void School( int m){ ... } C) School( int m, int n){ ... } D) School( int h,int m,int n){ ... }

11、为了调用超类的构造方法,可以使用( )关键字后跟包含该超类所需参数的一对圆括号。

A)superclass B)superconstructor C)super D)以上答案都不对 12、设 ClassA为已定义的类名,下列声明ClassA类的对象ca的语句中正确的是( )。

A)public ClassA ca=new ClassA( ); B) public ClassA ca=ClassA( ); C) ClassA ca=new class( ); D) ca ClassA;

13、在类的定义中,通过使用( )关键字可创建一个现有类的子类。 A)extends B)implements C)inherits D)modifies 14、Java中所有的类都是通过直接或间接地继承( )类得到的。

A)java.lang.Object B)java.lang.Class C)任意类 D)以上答案都不对 15、类Test1定义如下: public class Test1{

public float aMethod(float a,float b){ } _________________________ }

将以下哪种方法插入上面程序中划下横线处是不合法的。( ) A)public float aMethod(float a, float b,float c){ } B)public float aMethod(float c,float d){ } C)public int aMethod(int a, int b){ } D)public int aMethod(int a,int b,int c){ }

29

16、如果创建的一个子类覆盖一个父类public方法,则对该方法可以使用哪些修饰符修饰?( )

A)public B)public 和protected

C)privite D)任意修饰符都可以,由系统随机选取 17、下列哪个选项的Java源文件代码片段是不正确的?( ) A)package testpackage; public class Test{ } B)import java.io.*; package testpackage; public class Test{ } C)import java.io.*; class Person{ } public class Test{ } D)import java.io.*; import java.awt.*; public class Test{ }

18、Java语言的类间的继承关系是( )。 A)单继承

B)多继承 C)单继承和多继承 D)不能继承

19、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是( )。 A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问

20、用private声明的类成员,其最大的访问范围是( )。

A)本类 B)本包中的所有类 C)所有包中的子类 D)所有包中的全部类

21、下面对Java继承机制描述错误的是:( )。 A)声明子类时用extends关键字 B)继承是面向对象的一个重要特征 C)Java中类支持多重继承

D)继承时子类可以添加自己的方法

22、对关键字super的用法描述正确的是:( )。

A)用来调用父类的构造方法 B)用来调用父类中被重写的方法

30

第6章 项目开发环境搭建

巩固与提高

1、选择题

(1) SQL语言是( )的语言,轻易学习 。

A、过程化 B、非过程化 C、格式化 D、 导航式

(2) SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是( ) 。

A、 SELECT B、 INSERT C、 UPDATE D、 DELETE (3) SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能( )。

A、 数据查询 B、 数据操纵 C、 数据定义 D、 数据控制 (4) SQL语言中,删除一个视图的命令是( )。

A、DELETE B、DROP C、CLEAR D、REMOVE (5)若要在基本表S中增加一列CN(课程名),可用( )。 A、ADD TABLE S(CN CHAR(8))

B、ADD TABLE S ALTER(CN CHAR(8)) C、ALTER TABLE S ADD(CN CHAR(8)) D、ALTER TABLE S (ADD CN CHAR(8)) (6) 学生关系模式 S( S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是( )。 A、 DELETE Age from S B、 ALTER TABLE S DROP Age C、 UPDATE S Age D、 ALTER TABLE S ?Age? (7) 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( )。 A、 S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’

B、 S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’ C、 SAGE in>=20 and CNAME in ‘ACCESS’ D、 SAGE>=20 and CNAME=’ ACCESS’

(8) 设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入S中,则可用( )。 A、 ADD

INTO S

36

VALUES(’张二’,’化学’,’80’) B、 INSERT INTO S

VALUES(’张二’,’化学’,’80’) C、 ADD INTO S

VALUES(’张二’,’化学’,80) D、 INSERT INTO S

VALUES(’张二’,’化学’,80) (9)在SQL语言中,子查询是( ) 。 A、 返回单表中数据子集的查询语言 B、 选取多表中字段子集的查询语句 C、 选取单表中字段子集的查询语句

D、 嵌入到另一个查询语句之中的查询语句 (10)有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SEX是性别, C#是课程号,CNAME是课程名称。要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是( )。

A、S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’数据库’ B、S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’数据库’ C、.SEX ’男’ and CNAME ’ 数据库’ D、S.SEX=’男’ and CNAME=’ 数据库’ D、(’201132’,NULL,86,’ ’) 2、操作题

创建一个学校数据库(School),并创建一张班级信息表(classInfo)、其属性有班级号(id)、班级名称(className)、班级人数(students),并将你所知道的你学校的几个 班级的相关信息添加到该表中。

37

第7章 概要设计与数据库设计

巩固与提高

一、操作题

1、有一个软件系统需要管理学生信息,学生信息包括学号、姓名、性别、班级,请针对该系统所需要设计E-R图,并根据E-R图做出数据库表。

2、第1题中另外要求管理班级信息,班级信息包括班级代号、班级类型、班级辅导员、班级名称,那么又该如何设计E-R图,并思考学生和班级之间存在着什么样的关系,该怎么体现这样的关系?

3、假设要为某超市建立一个商品管理系统。其中用到两个表:商品表(商品编号,名称,提供商编号,数量,单价,进货日期,其中商品编号值惟一,非空,商品名称和提供商编号非空)和提供商表(提供商编号,名称,所在地,联系人,联系电话,其中提供商编号值惟一,非空,名称非空)。请针对该系统所需要设计E-R图,并根据E-R图做出数据库表。

38

第8章 JDBC方式连接数据库

巩固与提高

1、 填空题

(1) java在连接MySql数据库时,需要导入一个驱动工具包是:________________ .。 (2) 在遍历数据表内容时,可以通过__________方法把当前的指针自动向下移动一位。 (3) 在向数据库发送sql语句时,要使用___________类声明一个sql语句对象。 (4) 连接MySql时,加载数据库驱动的语句是__________________________________。 (5) 在java源文件中进行数据库操作时,在文件头要导入_______________包。

(6) 在连接数据库的时候,为了获取本机的IP地址,常用的代码是_____________或

者_________________。 (7) 在获取数据表内容的时候,将指针移动到此 ResultSet 对象的指定行编号的方法是

_______________。

(8) 在获取数据表内容的时候,将指针移动到此 ResultSet 对象的第一行的方法是

_______________。

(9) 在获取数据表内容的时候, 获取当前行编号的方法是_______________。

(10) 在获取数据表内容的时候, 判断指针是否位于此 ResultSet 对象的第一行的方

法是 _______________, 判断指针是否位于此 ResultSet 对象的最后一行的方法是 _______________。 2、简答题

(1) 什么是数据库? 什么是DBMS? 什么是DBS?

(2) 当前常用的数据库系统有哪些?最流行、使用最广泛的是哪一种?什么是RDB? (3) 什么是JDBC?它与ODBC有什么关系?JDBC有哪些优点? (4) 试论述JDBC连接数据库的过程。

3、编程题

(1) 假设MySql数据库中有test数据库中的student表,该表中的字段为id,name,试编写一个程序,读出表中所有记录。

(2) 假设某学校有一个学生成绩管理系统。其中用到一张表,表名为student(有学生学号、姓名、语文、数学、英语和政治等字段)。设计一个程序把同学们的总成绩按从高到低排列出来。

39

第9章 单元测试 巩固与提高

1、选择题

(1) 下列说法正确的是:( ) A、测试仅仅是软件开发过程的一个阶段 B、我们可以做到百分百完善的测试

C、尽早开始测试是降低成本、提高质量的好方法 D、测试自动化可以帮助我们解决所有问题 (2) 下列属于黑盒测试方法的是( )。

A、程序控制流分析 B、错误推测法 C、数据流分析 D、域测试 (3) 以下不属于应用系统中的缺陷类型的是( )。 A、没有正确记录的需求

B、错误的程序编码

C、错误的程序结构或指令 D、错误的编码工具操作习惯 (4) 软件错误中最普遍的三种错误是( )。 A、 需求错误、集成错误、系统结构错误

B、 测试定义与测试执行错误、实现和编码错误、数据错误 C、 需求错误、程序结构错误、集成错误 D、 程序结构错误、数据错误、功能与性能错误

(5) 从测试的要求来讲,如果想让测试完成的效果更好,测试部门与开发部门的关系最好是下面四种中的( )。

A、测试组织与开发组织为同一公司同一部门同一小组,并且测试人员与开发人员为同一组人员,即开发人员测试自己的程序。

B、测试组织与开发组织为同一公司同一部门同一小组,但测试人员与开发人员为不同人员。

C、测试组织与开发组织为同一公司,但不在同一部门。 D、测试组织与开发组织为不同公司。

(6) 严重的软件缺陷的产生主要源自( )。 A、需求 B、设计 C、编码 D、测试

(7) 系统在特定环境下,在给定的时间内,无故障地运行的概率,称为( ) A、正确性 B、兼容性 C、可靠性 D、安全性 (8) 软件测试的对象包括( )。

A、需求分析、概要设计和详细设计 B、程序源代码 C、需求规格说明 D、以上所有

40

第12章 功能拓展-GUI

巩固与提高

1、选择题

(1) 利用( )可以指定内容面板的背景色。

A、 setBackground B、 setBackColor C、 setRGB D、setColor (2) 为了编译应用程序,输入命令( )并跟上相应文件的名字。 A、 build B、 compile C、 javac D、create

(3) 字体属性用于控制JLable中所显示字体的( )。 A、 大小 B、 字形 C、 名字 D、以上所有答案 (4) 范围属性用来控制( )。

A、 文本的大小 B、组件的位置 C、 组件的大小 D、 B和C (5)一个JLable组件通过指定( )显示文本。 A、 setCaption B、setData C、 setText D、setName (6)使用( )可以对齐JLable中的文本。

A、 setAlignment B、 setCenter C、 setRight D、setHorizontalAlignment (7)RGB值可用于指定( )

A、 JLable的大小 B、某个组件颜色 C、 窗口的大小 D、JFrame中的组件 (8)像素是( )

A、 图像中的一个元素 B、某种字体的测量方法 C、字体集 D、决定某个组件位置的属性 (9) JLable上的文本是通过( )来指定的

A、 setLable B、 changeLable C、 setText D、changeText (10) JLable的范围和大小是通过( )来指定的。

A、setSizeAndLocation B、 setBounds C、 以上选项均不对 D、A和B (11) 使用( )设置JButton上的文本 A、 setName B、 setText C、 setTitle D、setFace (12) JButton应该使用( )大写形式

A、 书名 B、 语句 C、按钮 D、以上答案均不对

(13) 将JTextField的( )属性设置为false可防止用户对该JTextField进行编辑。 A、 文本 B、大小 C、 可编辑 D、horizontalAlignment

46

(14) 为对齐JTextField中的文本,horizontalAlignment属性可设置为( )。 A、 JTextField.Right B、JTextField.RIGHT C、JTextField.right D、以上答案均正确 (15) 在自定义JLable时,可指定该JLable的( )。

A、 文本对齐方式 B、 文本 C、 大小 D、以上答案均正确 (16) 改变( )属性值将改变JTextField的大小和位置。 A、 文本 B、 大小 C、 范围 D、位置

(17) 可通过使用( )帮助用户理解某个组件的用途。 A、 JButton B、 JTextField C、 JLable D、标题栏 (18) 使用( )组件允许用户通过键盘输入数据。

A、 JButton B、 JTextField C、 JLable D、以上选项均不对

(19) 若totalJTextField是一个JTextField,可以使用( )获取totalJTextField的文本属性值。

A、totalJTextField.gettext() B、totalJTextField.setText() C、totalJTextField.getText() D、totalJTextField.settext() (20) 在JTextField中按下某个键可以产生( )的事件。 A、 textTyped B、valueChanged C、pressedKey D、keyPressed 2、程序题

(1) 工资额计算器应用程序

需求分析:某公司需要一个能计算出每位员工在工作一周后的全部薪水的应用程序。每位员工的周薪是根据员工工作的小时数和每小时的工资额来计算出来的。一个标准工作周应该是40个小时,而一周以内任何超过40个小时的工作时间则被认为是属于加班时间,因而员工可获取相当于原每小时工资额的1.5倍加班费。

开发一个图形界面应用程序,接收员工工作的小时数和每小时的工资额并最终计算出该员工工作一周后的工资总额。同时设计一个对文本框信息的清除按钮。并且显示工资额数目的文本框是不可编译的和以红色字体显示给用户。

如果工资管理员输入任何一个文本框的数据不能参加运算时,则系统会给出一条提示错误的信息。 (2) 牙科付款应用程序

需求分析:某牙科医生要求开发一个供其员工使用的可为病人开出单据的应用程序。该程序允许用户输入病人姓名并给出其治疗过程中所享受到的一些服务项目任病人选择,并据此计算出病人的总费用和显示出病人的姓名(建议用文本框)。

服务项目和相关费用分别为:洗牙35元,换牙288元,较牙888元(要求用复选框)。

如果用户试图在指定任何服务项目之前或者是输入病人的姓名之前就去计算病人的总费用,则系统会给出一条提示错误的信息。

47

48

本文来源:https://www.bwwdw.com/article/j8v8.html

Top