System.out.print(i[x] + “、”);
} } }
金陵科技学院实验报告
对照范例写出如下题目:
(1).创建GrandFather类,其中包括
a)属性:姓名(name),年龄(age)
b)方法getGrandFather():显示爷爷的信息
c)构造方法:给爷爷的姓名,年龄赋值(2).创建Father类,继承Grandfather类 a)属性:除了继承爷爷的属性以外,还要增加自己的属性:“职业”(occupation)b)构造方法:显式调用父类的构造方法,为Father类的姓名和年龄赋初始值。再为职业输入初始值。
c)方法getFather(): 显示父亲的相关信息
(3).创建ClassMain()类,定义main()方法,构造GrandFather类的对象和Father类的对象,并分别显示详细信息。
3、面向对象多态性
范例:计算柱体的体积。柱体体积计算公式是:底部面积乘以高度 柱体底部分为 圆形和矩形 要求:通过抽象类和多态实现 package cn.jit.demo;abstract class Bottom { //父类抽象类 底部
public abstract double calculatorArea();} class CircleBottom extends Bottom{ //圆形底
/** * 半径
*/ private double radius;
@Override public double calculatorArea(){
return Math.PI * radius * radius;} public double getRadius(){
return radius;} public void setRadius(double radius){
this.radius = radius;} public CircleBottom(double radius){
super();
this.radius = radius;} } class SquareBottom extends Bottom{ //矩形底
private double sideA;
金陵科技学院实验报告
private double sideB;public double getSideA(){
return sideA;} public void setSideA(double sideA){
this.sideA = sideA;} public double getSideB(){
return sideB;} public void setSideB(double sideB){
this.sideB = sideB;} @Override public double calculatorArea(){
return sideA * sideB;} public SquareBottom(double sideA, double sideB){
super();
this.sideA = sideA;
this.sideB = sideB;} } class ZhuTi { //柱体类,完成形状的拼装
/** * 底
*/ private Bottom bottom;/** * 高
*/ private double height;/** * 计算体积
* @return */ public double calculatorVolumn(){
return bottom.calculatorArea()* height;} public ZhuTi(Bottom bottom, double height){
super();
this.bottom = bottom;
this.height = height;
金陵科技学院实验报告
} public Bottom getBottom(){
return bottom;} public void setBottom(Bottom bottom){
this.bottom = bottom;} public double getHeight(){
return height;} public void setHeight(double height){
this.height = height;} public void changeBottom(Bottom bottom){
this.bottom = bottom;} } public class VolumnTest { //测试类
public static void main(String[] args){
Bottom bottom = new CircleBottom(1.0);
double height = 1.0;
ZhuTi zhuTi = new ZhuTi(bottom,height);
double result = zhuTi.calculatorVolumn();
System.out.println(“圆柱体的体积是:” + result);
bottom = new SquareBottom(1.0,1.0);
zhuTi.changeBottom(bottom);
result = zhuTi.calculatorVolumn();
System.out.println(“立方体的体积是:” + result);} } 范例:接口和多态的应用,例如:电脑上实现了USB接口,U盘,打印机等等也都实现了此标准。interface USB{ public void start();// 开始工作
public void stop();// 结束工作 } class Computer{ public static void plugin(USB usb){
usb.start();
usb.stop();} };class Flash implements USB{ public void start(){
金陵科技学院实验报告
System.out.println(“U盘开始工作。”);} public void stop(){
System.out.println(“U盘停止工作。”);} };class Print implements USB{ public void start(){
System.out.println(“打印机开始工作。”);} public void stop(){
System.out.println(“打印机停止工作。”);} };public class InterPolDemo02{ public static void main(String args[]){
Computer.plugin(new Flash());
Computer.plugin(new Print());} };对照范例,写出以下程序:(1)乐器(Instrument)的标准为弹奏(play),而乐器类型分为:钢琴(Piano)和小提琴(Violin),各种乐器的弹奏方法各不同。编写代码实现不同乐器的弹奏。(2)计算机模拟
四、实验结果与分析(程序运行结果及其分析)
五、实验体会
金陵科技学院实验报告
实验项目名称: 类集
实验学时: 4 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验2 类集
一、实验目的和要求(1)理解类集概念
(2)熟悉Collection接口、List接口、Set接口和Map接口(3)掌握ArrayList类、HashSet类和TreeSet类(4)理解TreeMap、HashMap
二、实验仪器和设备
奔腾以上个人计算机,windows操作系统。
配置好JDK环境,安装集成开发环境(Eclipse)
三、实验内容与过程
1、类集应用
范例:实现一个超市管理系统,要求可以添加货物,删除货物和查询货物:
。代码如下:
public interface Goods { public String getName();// 得到商品名称
public int getCount();// 得到商品数量
public float getPrice();// 得到商品价格 }
public class Book implements Goods {
private String name;private int count;private float price;
public Book(){ }
public Book(String name, int count, float price){
this.name = name;
this.count = count;
this.price = price;}
public String getName(){
return name;}
public void setName(String name){
this.name = name;
金陵科技学院实验报告
}
public int getCount(){
return count;}
public void setCount(int count){
this.count = count;}
public float getPrice(){
return price;}
public void setPrice(float price){
this.price = price;}
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(!(obj instanceof Book)){
return false;
}
Book b =(Book)obj;
if(b.name.equals(this.name)&& b.count == this.count
&& b.price == this.price){
return true;
} else {
return false;
} }
public int hashCode(){
return this.name.hashCode()+ new Integer(this.count).hashCode()
+ new Float(this.price).hashCode();}
public String toString(){
return “书名:” + this.name + “;书的价格:” + this.price + “;书的数量:”
+ this.count;}
金陵科技学院实验报告
}
import java.util.ArrayList;import java.util.Iterator;import java.util.List;
public class SuperMarket { private List allGoods;
public SuperMarket(){
this.allGoods = new ArrayList();}
public void add(Goods goods){
this.allGoods.add(goods);}
public void remove(Goods goods){
this.allGoods.remove(goods);}
public List search(String keyWord){
List temp = new ArrayList();
Iterator iter = this.allGoods.iterator();
while(iter.hasNext()){
Goods g = iter.next();
if(g.getName().indexOf(keyWord)!=-1){
temp.add(g);
}
}
return temp;}
public List getAllGoods(){
return this.allGoods;} }
import java.util.Iterator;import java.util.List;
public class Test {
金陵科技学院实验报告
public static void main(String[] args){
SuperMarket mak = new SuperMarket();
mak.add(new Book(“Java”, 2, 30.9f));
mak.add(new Book(“C++”, 3, 10.9f));
mak.add(new Book(“JSP”, 5, 80.9f));
print(mak.search(“J”));
mak.remove(new Book(“Java”, 2, 30.9f));
print(mak.search(“J”));}
public static void print(List all){
Iterator iter = all.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
} } } 对照范例写出如下题目:
(1)宠物商店,要求可以添加、删除和查找宠物(2)实现以下两个关系
A、一个学校可以有多个学生,所有学生属于一个学校
B、一门课程可以有多个学生选,一个学生可以选多门课程
四、实验结果与分析(程序运行结果及其分析)
五、实验体会
金陵科技学院实验报告
实验项目名称: Java IO操作
实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验3 Java IO操作
一、实验目的和要求
(1)理解输入输出流概念(2)掌握文件输入输出流
(3)掌握键盘的输入、显示器的输出(4)理解其他输入输出流
二、实验仪器和设备
奔腾以上个人计算机,windows操作系统。
配置好JDK环境,安装集成开发环境(Eclipse)
三、实验内容与过程
1、编写类模拟命令Copy
范例:实现文件的复制代码。参考代码如下:
File file1 = new File(“d:”+File.seperator +”demo.txt”);
// 找到第一个文件的File对象
File file2 = new File(“d:”+File.seperator +”cemo.txt”);// 找到目标文件路径 InputStream input = new FileInputStream(file1);// 输入流 OutputStream output = new FileOutputStream(file2);// 输出流 int temp = 0;// 定义一个整数表示接收的内容
while((temp = input.read())!=-1){ // 表示还有内容可以继续读
output.write(temp);// 写入数据 } input.close();// 关闭 output.close();// 关闭
2、通过键盘的输入,实现简单的选项操作。
*********XXXX管理系统***********
[1]添加
[2]删除
[3]修改
[4]查询
[5]退出
3、编写一个简单管理系统,实现真实的操作。
四、实验结果与分析(程序运行结果及其分析)
五、实验体会
金陵科技学院实验报告
实验项目名称: JDBC
实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:
金陵科技学院实验报告
实验4 JDBC
一、实验目的和要求(1)理解JDBC分类
(2)掌握JDBC数据库连接步骤
(3)掌握JDBC连接MySQL数据库代码(4)理解JDBC连接其他数据库方式
二、实验仪器和设备
奔腾以上个人计算机,windows操作系统。
配置好JDK环境,安装集成开发环境(Eclipse)
三、实验内容与过程
1、安装MySQL数据库,配置好数据库
创建一个数据库表,按要求给出详细的字段设计
pid name age birthday salary
主要操作:
2、创建Eclipse项目,配置驱动包
每个数据库厂商都会提供对Java开发技术的支持,即都会提供对应的Java驱动,也就是一个jar包
主要操作:
3、项目中建立一个详细例子,按照要求连接、操作、关闭数据库
按照标准的步骤完成对MySQL数据库的操作
主要代码:(添加、修改、删除和查询)
金陵科技学院实验报告
4、试着连接其他类型数据库。
四、实验结果与分析(程序运行结果及其分析)
五、实验体会
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........自考Java语言程序设计
(一)课后习题及答案
自考Java语言程序设计
(一)第一章Java语言概述课后习题
一、Java语言概述
1.Java语言有哪些特点?
2.什么叫做类?什么叫做对象?
3.简述Java的运行机制。
4.简述Java应用程序的开发流程。
5.当初Sun公司发展Java的原因是:来源:www.xiexiebang.comumber_1 =
new ComplexNumber(3,-5);
ComplexNumber cNumber_2 = 本文来源:考试大网
new ComplexNumber(2,2);
double d = 10.0;
System.out.println(cNumber_1.toString()+ “ 加 ”
+ cNumber_2.toString()+ “ 等于 ”
+ cNumber_1.complexAdd(cNumber_2).toString());
System.out.println(cNumber_1.toString()+ “ 加 ”
+ d + “ 等于 ”
+ cNumber_1.complexAdd(d).toString());
System.out.println(cNumber_1.toString()+ “ 减 ”
+ cNumber_2.toString()+ “ 等于 ”
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........+ cNumber_1.complexMinus(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 减 ” + d + “ 等于 ” + cNumber_1.complexMinus(d).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexMulti(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + d + “ 等于 ” + cNumber_1.complexMulti(d).toString());} } class ComplexNumber { //域
private double m_dRealPart;private double m_dImaginPart;//构造方法
ComplexNumber(){ m_dRealPart = 0.0;m_dImaginPart = 0.0;} ComplexNumber(double r,double i){ m_dRealPart = r;m_dImaginPart = i;} ComplexNumber(ComplexNumber c){ m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();} //get,set方法
double getRealPart(){ return m_dRealPart;} double getImaginaryPart(){ return m_dImaginPart;} void setRealPart(double d){
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........m_dRealPart = d;} void setImaginaryPart(double d){ m_dImaginPart = d;} //复数运算方法
ComplexNumber complexAdd(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart + c.getRealPart(), this.m_dImaginPart + c.getImaginaryPart());} ComplexNumber complexAdd(double c){ return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);} ComplexNumber complexMinus(ComplexNumber c){ return new ComplexNumber(this.m_dRealPartc.getImaginaryPart());} ComplexNumber complexMinus(double c){来源:www.xiexiebang.com return new ComplexNumber(this.m_dRealPart-c, this.m_dImaginPart);} ComplexNumber complexMulti(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart * c.getRealPart()
-this.m_dImaginPart * c.getImaginaryPart(), this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart());} ComplexNumber complexMulti(double c){ return new ComplexNumber(this.m_dRealPart * c, this.m_dImaginPart * c);} //toString()public String toString()
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{
return “(” + m_dRealPart + “ + ”
+ m_dImaginPart + “ i” + “)”;
}
}
8.答:接口是用来实现类间多重继承功能的结构。接口与类相似,但是接口中只能包括常量和抽象方法。定义接口相当于定义了一组抽象的功能、属性集合,可以使了ava程序的类层次结构更加合理,并实现多重继承。
9.答:使用关键字implements可以定义类实现某接口。实现某接口的类如果不是抽象类,则需要通过重载来实现该接口中的所有抽象方法;如果这个类是抽象类,则它可以不必实现该接口中的所有抽象方法。
10.答:接口可以被继承。
SubInterface中的抽象方法有:public abstract int supMethod();和public abstract string subMethod();两个。
自考Java语言程序设计
(一)第七章Java常用类库介绍课后习题
七、Java 常用类库介绍
1.指出下列陈述是对还是错,并做出解释。
(1)当String对象用= = 比较时,如果String包括相同的值则结果为true。
(2)一个String类的对象在其创建后可被修改。
2.对于下列描述,各写出一条语句完成要求的任务
(1)比较s1中的串和s2中的串的内容的相等性;
(2)用+=向串s1附加串;
(3)判断s1中串的长度;来源:考试大
3.说明capacity()与length()用法上的差异?
4.如果ch为StringBuffer对象,ch=“Java Apple”,下列结果为何?
(1)ch.insert(3,’p’)(2)ch.append(“Basic”)
(3)ch.setlength(5)(4)ch.reverse()
5.Math类中提供用来常数π和e的静态属性分别是什么?
6.下面关于Vector类的说法正确的是()
(1)类Vector在java.util包中。
(2)一个向量(Vector)对象存放的是一组有序的对象。
(3)一个向量(Vector)对象大小可以根据存放的元素个数的增加而自动增加。
(4)一个向量(Vector)对象中每个元素可以是不同类型的对象。
7.有三个字符串,编写程序找出其中最大者。
8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。
9.设定5个字符串,要求只打印那些以字母“b”开头的串,编写程序完成。
10.设定一个有大小写字母的字符串和一个查找字符,使用类 String方法IndexOf()来判断在该字符串中该字符出现的次数。
参考答案
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........1.答:
(1)错。用= =操作符比较String对象实际上是判断它们在内存中是否为同一对象,并不是判断它们的值是否相同。
(2)错。String类的对象是常量。它们被创建后不可被修改。
2.答:
(1)s1.equals(s1,s2);
(2)s1+=s2;
(3)s1.length();
3.答:capacity()返回字符串对象的当前缓冲区的长度,length()返回字符串对象字符的长度。考试大收集整理
4.答:
(1)结果:Javpa Applet
(2)结果:Javpa AppletBasic
(3)结果:ch长度变为5
(4)结果:apvaJ
5.答:PI、E
6.答:(3)
7.public class max1
{
public static void main(String args[])
{
String s1= “Hello Java”;
String s2= “Java Applet”;
String s3= “Java”;
String s;
if(s1.compareTo(s2)<0)
s=s2;
else s=s1;
if(s.compareTo(s3)<0)
s=s3;
Systrm.out.println(“big=”+s);
}
}
8.public class out
{
public static void main(String args[])
{
String s1= “Hello Java”;
StringBuffer bufup=new StringBuffer();
StringBuffer buflow=new StringBuffer();
for(int I=0;I
{if(s1.charAt(i)<97)
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{bufup.append(s1.charAt(i));bufup.append(' ');} else { buflow.append(s1.charAt(i));buflow.append('');} } System.out.println(“s1= ”+s1);System.out.println(“ uppercase= ”+bufup);System.out.println(“ lowercase= ”+buflow);} } 9.
public class prin_b { public static void main(String args[]){ String s1=“hello”;String s2=“bee”;String s3=“java”;String s4=“brove”;String s5=“bag”;if(s1.indexOf('b')= =0)System.out.println(s1);if(s2.indexOf('b')= =0)System.out.println(s2);if(s3.indexOf('b')= =0)System.out.println(s3);if(s4.indexOf('b')= =0)System.out.println(s4);if(s5.indexOf('b')= =0)System.out.println(s5);} } 10.
public class ppp { public static void main(String args[]){ String s1=“abcdefghi”;int num=0;for(int i=0;i {i=s1.indexof('e',i);num++;
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........}
System.out.print(“ s1=”+s1+“e=”);
if(num= =0)
System.out.println(“ no found”);
else System.out.println(num);
}
}
自考Java语言程序设计
(一)第八章Java异常处理及输入输出流简介课后习题
八、Java异常处理及输入输出流简介
1.列出5个常见的异常。
2.写出Java语言的异常处理机制的优点。
3.为什么异常处理技术不应该用于常规的程序控制?
4.引起异常产生的条件是什么?
5.异常没有被捕获将会发生什么?
6.编写一个程序,以说明catch(Exception e)如何捕获各种异常。
7.下面的代码段中finally语句块会被执行吗?
public class ExceptionExam3
{
public static void main(String [] args)
{
try
{
int [] a=new int[3];
System.exit(0);
}
catch(ArrayIndexOutOfBoundsException e)
{System.out.println(“发生了异常”);}
finally
{System.out.println(“Finally”);}
}
}
8.throws的作用是什么?
9.应在程序的什么地方使用异常处理?
10.下面的代码有什么错误吗?
class ExceptionExam{„}
throw new ExceptionExam();
11.异常类型匹配的处理方式。程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个 ArithmeticException 类型被0 除而产生的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage 给出异常的具体类型并显示出来。
12.根据所给创建自定义异常类的使用格式,编写一个自定义异常的小程序。
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........13.什么叫流?流式输入输出有什么特点?
14.Java流被分为字节流、字符流两大流类,两者有什么区别?
15.File类有哪些构造函数和常用方法?
16.利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。
17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。
18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
20.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。采集者退散
21.编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。
参考答案
1.答:内存耗尽、数组下标超出边界、被0除、非法的方法参数、算法溢出处。来源:考试大的美女编辑们
2.答:(1)Java通过面向对象的方法进行异常处理,把各种异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态特 性的复杂提供了强有力的控制方式。(2)Java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性。(3)Java的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码的编写。(4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。
3.答:a.异常处理用于不经常发生但通常导致程序终止的情况,因此要求编程人员为编译器的优化执行实现异常处理。b.常规控制结构的控制流程通常比异常的更为清晰、交流更高。c.在发生异常,并且没有释放异常发生之前分配的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的”异常会妨碍真正错误类型的异常。这种使程序员更难 以跟踪大量的异常。
4.答:异常产生的方式有3种。第一种是在某些内部错误时,Java虚拟机可以产生异常,该异常不在你的程序控制范围内,通常不作处理。第二种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用throw语句手动生成的异常。
5.答:未捕获的异常最终会导致程序非正常终止。
6.public class ExceptionExam
{
public static void main(String [] args)
{
try
{
int i=0;
i=3/i;//将产生算术异常。
}
catch(ArithmeticException e)//找到了匹配的异常,执行该catch块。
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{
System.out.println(“发生了ArithmeticException异常”);
}
catch(AarryIndexOutOfBoundsException e)//不是匹配的异常,且不会再捕获
//异常,如果发生数组索引超出范围所产生的异常,将执行该catch块。
{
System.out.println(“发生了AarryIndexOutOfBoundsException异常”);
}
catch(Exception e)
//前两个catch块均无法捕获try块中发生的异常时,才会执行该catch块。
{
System.out.println(“发生了异常”);
}
finally
{ System.out.println(“执行d Finally”);}
}
}
7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常结束,都会执行 finally定义的最后的代码。如果try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但本题中在try代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。
8.答:在某些情况下,如果一个方法产生自己不处理或无法处理的异常,它就必须在throws子句中声明该异常。
9.答:通常,可以采用两种方式来报告错误:返回值和异常。在Java中异常处理很常用,虽然返回错误代码在某些情况下是一种有效的方式,但是异常处理可以提供强大的结构化方法来处理异常。所以需要处理代码中的错误时就可以采用异常的方法进行处理。
10.答:ExceptionExam不是继承(扩展)Throwable的子类,只有Throwable的子类可以由throw抛出。所以,这一段代码会出错。
11.public class ExceptionExam1
{
public static void main(String [] args)
{
try
{int i=0;
i=3/i;
}
catch(ArithmeticException e)
{
System.out.println(“异常是:”+e.getMessage());
}
finally
{
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........System.out.println(“finally 语句被执行”);
}
}
}
注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception 是ArithmeticException 的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。
12.class Excp1 extends Exception
{}
class Excp2 extends Excp1
{}
public class ExceptionExam7
{
public static void main(String [] args)throws Exception
{
try
{
throw new Excp2();
}
catch(Excp2 e)
{
System.out.println(“catch1”);
throw new Excp1();
}
catch(Excp1 e)
{
System.out.println(“catch2”);
throw new Exception();
}
catch(Exception e)
{
System.out.println(“catch3”);
}
finally
{
System.out.println(“finally”);
}
}
}
说明:自定义异常类,关键是选择继承的超类——必须是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。
13.答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。
流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。
14.答:两者都作为Object类的直接子类,基本输入流(无效Stream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。
15.答:构造函数有:
(1)public File(String pathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。
(2)public File(String parent , String child):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。
(3)public File(File parent, String child):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创建的File类文件对象(指向目录)。
常用方法有:
(1)public boolean canWrite():返回文件是否可写。
(2)public boolean canRead():返回文件是否可读。
(3)public boolean createNewFile():当文件不存在时创建文件。
16.import java.io.*;
class CopyFile{
public static void main(String[] args){
String file1,file2;
int ch = 0;
try {
file1=args[0];
file2=args[1];
File无效Stream fis = new File无效Stream(file1);
FileOutputStream fos=new FileOutputStream(file2);
while((ch=fis.read())!=-1)
fos.write(ch);
fis.close();
fos.close();
}
catch(FileNotFoundException e){
System.out.println(“源文件:未找到!”);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(“缺少运行参数!”);
System.exit(-1);
}
catch(IOException e){
System.out.println(e.toString());
}
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........}
}
17.答:
import java.io.*;
public class NewFile{
public static void main(String args[]){
File f=new File(“test”);
if(f.exists()&&f.isDirectory())
System.err.println(“目录:”+f.toString()+“已经存在!”);
else{
if(f.mkdir()){
System.out.println(“目录”+f.getAbsolutePath()+“创建结束!”);
File f2=new File(f,“my.txt”);
try{
f2.createNewFile();
f2.setReadOnly();
}catch(IOException e){
System.out.println(e.toString());
}
System.out.println(“文件:”+f2.getAbsoluteFile()+“创建结束!”);
}
else
System.out.println(“目录”+f.getAbsoluteFile()+“创建失败!”);
}
}
}
18.答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创建 RandomAccessFile类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节 处。指针初始值是0,每读/写一个字节,指针自动增加1。RandomAccessFile类提供了一些控制指针移动的方法。
public long getFilePointer();获取当前指针指向文件的位置。考试大论坛
pulbic void seek(long pos);将指针移动到参数pos指定的位置。
public int skipBytes(int n);指针从当前位置向后移动n个字节位置,并返回指针实际移动的字节数。
19.答:
import java.io.*;
public class Count{
public static void main(String[] args)
{
int x=0,y=0,z=0;
int ch;
try{
while((ch=System.in.read())!='r'){
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')x++;else if(ch>='0'&&ch<='9')y++;else z++;} }catch(IOException e){ System.out.println(e.toString());} System.out.println(“英文字母:”+x);System.out.println(“数字字符:”+y);System.out.println(“其它字符:”+z);} } 20.答:
import java.io.*;public class InFile{ public static void main(String[] args){ int ch;try{ FileOutputStream out=new FileOutputStream(“a.txt”);while((ch=System.in.read())!='r'){ System.out.write(ch);out.write(ch);} out.close();System.out.write('n');}catch(IOException e){ System.out.println(e.toString());} System.out.println(“输出至文件完毕!”);} } 21.答:
import java.io.*;public class Sort{ public static void main(String args[]){ int a[]=new int[10];byte b[]=new byte[10];int t;String str;
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........System.out.println(“请输入10个整数:”);
try{
for(int i=0;i<10;i++)
{System.out.print(“No.”+(i+1)+“: ”);
System.in.read(b);
str=new String(b);
str=str.trim();
a[i]=Integer.parseInt(str);
}
}catch(IOException e){
System.out.println(e.toString());
}
catch(NumberFormatException e){
System.out.println(e.toString());
}
for(int i=0;i<9;i++)
for(int j=i+1;j<10;j++)
{
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(int i=0;i<10;i++)
System.out.println(a[i]+“t”);
}
}
自考Java语言程序设计
(一)第九章JavaApplet概述课后习题
九、Java Applet概述
1.下列方法中,哪一个不是Applet的基本方法()
A、init()B、run()C、stop()D、start()
2.在Java中判定Applet的来源的方法有()
A、getcodebase()B、get文档base()
C、getCodeBase()D、get文档Bade()
3.下面关于Applet的说法正确的是
A、Applet也需要main方法
B、Applet必须继承自javawt.Applet
C、Applet能访问本地文件
D、Applet程序不需要编译
4.Applet类的直接父类是()
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........()
A.Component类
B.Container类
C.Frame类
D.Panel类
5.判断:一个Applet编译后的类名是Test.class,运行此小程序的命令是Java Test。
6.编写同时具有Applet与Application的特征的程序。具体方法是:作为Application要定义main()方法,并且把 main()方法所在的类定义一个类。为使该程序成为一个Applet,main()方法所在的这个类必须继承Applet类或JApplet类。www.xiexiebang.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........A.FlowLayoutB.BorderLayout
C.GridLayoutD.CardLayout
10.编写程序,创建下面的GUI(不必为各组件提供功能)。考试大收集整理
参考答案
1: false
2:true
3:true
4.true
5:版面管理器
6.图形用户界面
7.mouseReleased
8.C
9.B
10.import javawt.*;
public class Chp9_3_A extends Frame{
TextField t=new TextField();
String[] op={“7”,“8”,“9”,“/”,“4”,“5”,“6”,“*”,“1”,“2”,“3”,“-”,“0”,“.”,“=”,“+”};
Button[] btn=new Button[16];
Panel p=new Panel();
public Chp9_3_A(){
setLayout(new BorderLayout());
p.setLayout(new GridLayout(4,4));
for(int i=0;i
btn[i]=new Button(op[i]);
p.add(btn[i]);
}
add(t,BorderLayout.NORTH);
add(p,BorderLayout.CENTER);
setSize(400,300);
}
public static void main(String[] args){
new Chp9_3_A().setVisible(true);
}
}
自考Java语言程序设计
(一)第十二章课后习题
十二、常用组件之一________命令按钮与标签框
1.判断:标签是是一个容器。()
2.判断:在Swing用户界面的程序设计中,容器可以被添加到其它容器中去。()
3.用户不能修改的文本称为_______。
4.关于awt和swing说法正确的是:来源:考试大
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........A、awt在不同操作系统中显示相同的风格。B、swing在不同的操作系统中显示相同的风格 C、javawt的子类
D、awt和swing都支持事件模型
5.下列_________用户图形界面组件在软件安装程序中是常见的。a.滑块
b.进度条来源:考试大 c.对话框 d.标签
6.包含可单击按钮的类的Java类库是__________。a.AWT b.Swing c.二者都有来源:www.xiexiebang.com d.二者都没有
7.下面的__________用户界面组件不是容器。a.JScrollPane b.JFrame考试大-全国最大教育类网站(www.xiexiebang.com)c.JWindows d.JScrollBar 8.创建下面的GUI,颜色列表框为红色、绿色和蓝色(不必为各组件提供功能)。参考答案 1.false 2.true 3.标签 4.B D 5.B 6.C 7.D 8.参考程序如下: import javawt.*;public class Chp9_3_B extends Frame{ Choice ch;Checkbox bg,fg;Button btnOK,btnCancel;Panel p,p1,p2;public Chp9_3_B(){ p=new Panel();p.setLayout(new GridLayout(2,1));p1=new Panel();p2=new Panel();p1.setLayout(new FlowLayout());p2.setLayout(new FlowLayout());ch=new Choice();ch.add(“红色”);
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........ch.add(“绿色”);ch.add(“蓝色”);bg=new Checkbox(“背景”);fg=new Checkbox(“前景”);p1.add(bg);p1.add(fg);btnOK=new Button(“确定”);btnCancel=new Button(“取消”);p2.add(btnOK);p2.add(btnCancel);p.add(p1);p.add(p2);add(ch,BorderLayout.NORTH);add(p,BorderLayout.CENTER);setSize(400,300);} public static void main(String[] args){ new Chp9_3_B().setVisible(true);} }
自考Java语言程序设计
(一)第十三章课后习题
十三、常用组件之二 _______单行文本框与多行文本框,单选框和复选框
1.判断:列表对象总包含滚动条。()
2.判断:面板的默认管理器是BorderLayout。
3.____________类用于创建一组单选按钮。来源:考试大
4.欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个
AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:
A、TextArea
B、Panel
C、Applet
D、Canvas
5.Java应用程序中的默认外观是_________。
A.Motif
B.Windows
C.METAl
6.创建下面的GUI,要求在文本框中输入分数,单击“求和”按钮后在结果文本框中显示总分。
7.编写一个将华氏温度转换为摄氏温度的程序。应从键盘输入华氏温度,然后通
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........过文本显示转换后的摄氏温度。使用下面的公式进行温度转换:
摄氏温度=5/9Χ(华氏温度-32)
8.编写一个程序,使用户能够使用鼠标在applet中绘制一个矩形。按住鼠标左键,确定矩形的左上角,然后拖动鼠标,在需要的位置(即矩形右下角)释放鼠标。另外,在状态栏中显示矩形面积。
参考答案
1.false
2.true
3.CheckboxGroup
4.D
5. C
6.参考程序如下:
import javawt.*;来源:考试大
import javawt.event.*;
public class Chp9_3_C extends Frame implements ActionListener{
TextField textField1,textField2,textField3;
Button button1=new Button(“求和”);
Panel panel1,panel2;
public Chp9_3_C(){
textField1=new TextField();
textField2=new TextField();
textField3=new TextField();
panel1=new Panel();
panel2=new Panel();
panel1.setLayout(new GridLayout(3,2));
panel2.setLayout(new FlowLayout());
panel1.add(new Label(“数学: ”));
panel1.add(textField1);
panel1.add(new Label(“英语: ”));
panel1.add(textField2);
panel1.add(new Label(“总分: ”));
panel1.add(textField3);
panel2.add(button1);
add(panel1,BorderLayout.CENTER);
add(panel2,BorderLayout.SOUTH);
button1.addActionListener(this);
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new Chp9_3_C();
}
public void actionPerformed(ActionEvent e){
int n1,n2,sum;
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........n1=Integer.parseInt(textField1.getText());n2=Integer.parseInt(textField2.getText());sum=n1+n2;textField3.setText(“"+sum);} } 6.参考程序如下: import javawt.*;import javawt.event.*;public class Chp9_3_D extends Frame{ TextField textField1,textField2;Button button1;public Chp9_3_D(){ textField1=new TextField(30);textField2=new TextField(30);button1=new Button(”转换“);setLayout(new FlowLayout());add(new Label(”华氏温度:“));add(textField1);add(new Label(”摄氏温度:“));add(textField2);textField2.setEditable(false);add(button1);setSize(400,300);pack();button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ button1_actionPerformed(e);} });addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public static void main(String[] args){ new Chp9_3_D().setVisible(true);} private void button1_actionPerformed(ActionEvent e){ double d=Double.parseDouble(textField1.getText());double h=5.0/9.0*(d-32);textField2.setText(”“+h);}
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........}
7.参考程序如下:
import javapplet.Applet;
import javawt.*;
import javawt.event.*;
public class Chp9_3_E MouseListener,MouseMotionListener{
int x1,y1,x2,y2;
public void init(){
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g){
g.drawRect(x1,y1,x2,y2);
int area=Math.abs(x2-x1)*Math.abs(y2-y1);
showStatus(”矩形面积: "+area);
}
//implementation of MouseListener
public void mousePressed(MouseEvent e){
x1=e.getX();
y1=e.getY();
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
//implementation of MouseMotionEvent
public void mouseDragged(MouseEvent e){
x2=e.getX();
y2=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e){}
}
extends Applet implements
太原理工大学现代科技学院
C语言程序设计课程 实验报告
专业班级
学
号
姓
名
指导教师
C语言程序设计 实验指导及报告
实验说明:
1、共4次实验,每次实验完成1个内容。
2、实验报告命名统一为:C语言_专业班级_学号_姓名
3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。
实验一
C语言开发工具VC6.0和顺序结构程序设计
1、实验目的:熟练掌握VC6.0开发工具进行程序设计及调试,能编写简单的C程序并完成调试。
2、实验内容1:结合课堂讲授学习VC6.0开发工具及调试方法。
单文件编辑运行方法:
打开VC++6.0,如图1所示
(图1)
选择“文件”→“新建”,打开如图2所示
(图2)
选择“文件”项,如图3所示
(图3)
选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示
(图4)
单击“确定”,打开如图5所示
(图5)
输入如上源代码,如图6所示
(图6)
选择“组建”→“编译”(或按Ctrl+F7组合键),打开如图7所示
(图7)
在下端的输出窗口会有错误和警告的提示,如果没有错误选择“组建”→“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示
(图8)
程序调试常用方法:
检查错误:
用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质, 进行改错时, 双击调试信息窗口中的报错行, 这时在程序窗口中出现一个粗箭头指向被报错的程序行,一般在箭头的当前行或上一行,可以找到出错语句。
修改错误后必须重新进行编译链接。从第一个错误开始修改,每修改一个错误就重新进行编译链接。
设置断点、单步跟踪、查看变量等,详细使用方法见下:
按快捷键F5或点击以下图片上标记的图标进入调试模式。
打开调试工具条,一般情况下当你按F5键后会自动弹出,如果没有弹出的话,右击工具栏空白处,会弹出下图,选中调试,就会出现调试工具条。
接下来,在监视窗口中添加你要监视数据变化的变量。
按F11逐语句的调试代码,如果某一语句是一函数,你不希望进入该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗口查看变量值的变化,从而确定代码是否有问题。
如果希望跳出某一函数时,按快捷键Shift+F11,或者直接点击调试工具条上的按钮就可以跳出该函数了。
如果只是希望调试某一部分代码的话,可以设置断点来调试,调试方法如上,只是在要调试的代码之间用断点来分开。设置断点时,光标放在你要设置断点的那行,按F9或点击编译微型条上面的类似手状的按钮即可。
3、实验内容2:以下程序有错误,请调试改正错误,使之能正常运行。
程序:
/* 登陆密码三次验证程序*/ #include void mian(void){ int nPwd=0;
/* 用于保存输入的密码*/ int i;
/*循环控制变量*/ int nFlag=1
/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)
{ /* 默认设定密码为87569,可以根据需要进行设定*/
printf(“please input the password:”);
scanf(“%d”,&nPwd);}
if(nFlag=0)
printf(“the password is right!n”);
else
printf(“over the times and the password you input is error!n ”);}
修改程序及运行结果:#include void main(void){ int nPwd=0;
/* 用于保存输入的密码*/ int i;
/*循环控制变量*/ int nFlag=1;
/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)
{ /* 默认设定密码为87569,可以根据需要进行设定*/
printf(“please input the password:”);
scanf(“%d”,&nPwd);}
if(nFlag=0)
printf(“the password is right!n”);else
printf(“over the times and the password you input is error!n ”);}
4、实验内容3:习题第三章第1题:假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为
p(1r)n
r为年增长率,n为年数,p为与现在相比的倍数。源程序及运行
结
果
:
5、实验总结
实验二
选择结构和循环结构
1、实验目的:理解和掌握选择结构和循环结构的语法知识,理解自顶向下、逐步细化的结构化程序设计思想,并能熟练应用。
2、实验内容1:习题第四章第4题:有3个整数a,b,c,由键盘输入,输出其中最大的数。源程序及运行结果:
3、实验内容2:习题第五章第8题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各数字立方和等于该数本身。如:153是一个水仙花数153=13+53+33。源程序及运行结果
:
4、附加内容(非必做,供学有余力的同学):习题第五章第17题:两个乒乓球队进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出比赛名单。源程序及运行结果:
5、实验总结
实验三
数组和函数
1、实验目的:理解和掌握数组和函数的语法知识,理解模块化编程思想,并能熟练应用。
2、实验内容1:习题第六章第3题:求一个3 3的整型矩阵对角线元素之和。源程序及运行结果:
3、实验内容2:习题第七章第3题:写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。源程序及运行结果:
4、附加内容(非必做,供学有余力的同学):习题第六章第2题:用选择法对10个整数排序。
源程序及运行结果:
5、实验总结
实验四
指针和结构体
1、实验目的:理解和掌握指针和结构体的语法知识,并能熟练应用。
2、实验内容1:习题第八章第1题:输入3个整数,按由小到大的顺序输出。源程序及运行结果:
3、实验内容2:习题第九章第5题:有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)。源程序及运行#include #include #define SIZE 10
struct student{ char id[20];char name[20];int score[3];float average;} stud[SIZE];
void input()/* 输入学生的信息 */ { int i;
for(i=0;i{
printf(“第%d个学生的信息:n”,i+1);scanf(“%s%s%d%d%d”,stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;} }
void output()/* 输出学生的信息 */ { int i;
printf(“n”);for(i=0;ivoid sortput()/* 排序输出最高分的学生信息 */ { int i,j;struct student temp;
for(i=0;ivoid main(){ input();
output();sortput();} 结果:
4、附加内容(非必做,供学有余力的同学):习题第八章第6题:写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。源程序及运行结果:
5、实验总结