《Java程序设计》实验指导书太原理工大学计算机科学与技术学院(软件学院)目录实验1 Java语言基础 (3)实验2 数组和字符串编程 (4)实验3 Java面向对象程序设计 (5)实验4 Java异常处理 (7)实验5 多线程编程 (9)实验6 图形用户界面编程 (12)实验7 输入与输出 (13)实验8 网络编程 (14)实验9 数据库编程 (15)实验1 Java语言基础1.实验目的(1)通过实验,掌握Java语言程序设计的基本方法。
(2)学会Java语言中标示符的命名、运算符和表达式的应用。
(3)熟练地掌握Java程序流程控制语句的应用。
2.实验内容(1)编写应用程序,计算100(含100)以内所有偶数的和。
(2)“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。
编写程序,求所有的水仙花数。
(3)编写一个程序,求1-100间的素数。
(4)有一函数:x (x<1)Y= 3x-2 (1≤x<10)4x (x≥10)写一程序,给定x值,输出y值。
(5)使用for循环语句,编写程序输出以下图案。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(6)编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。
判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。
3.实验预习(1)复习本章所学内容。
(2)写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。
4.实验步骤及结果实验过程中,注意记录以下内容:(1)实验过程中实验步骤及其结果。
(2)遇到的问题及解决办法。
(3)实验体会。
实验2 数组和字符串编程1.实验目的(1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。
(2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
2.实验内容(1)编写一个程序,在控制台输入10个数,按大小顺序输出。
(2)求一个3*3矩阵对角元素之和。
(3)输入一段字符串,统计其中有多少个单词。
(单词用空格隔开)3.实验预习(1)将本章所学内容要点进行整理,并认真体会例题中的编程要领。
(2)写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。
4.实验步骤及结果实验过程中,注意记录以下内容:(1) 实验过程中实验步骤及其结果。
(2) 遇到的问题及解决办法。
(3) 实验体会。
实验3 Java面向对象程序设计1.实验目的掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
2.实验内容(1)创建一个复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I ,其中,I为-1的平方根。
要求如下:①利用浮点变量表示此类的私有数据。
提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
②提供两复数加、减、乘的运算方法。
③按格式(a,b)打印复数。
其中a为实部,b为虚部。
(2)创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。
(3)编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。
(4)编程实现以下简单超市管理,具体要求如下:①实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;②定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。
③ main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提示:①超市货架可以使用商品数组,数组大小100表明存放100个商品。
②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。
3.实验预习要求复习本章所学内容,思考以下问题:(1)什么是对象?什么是类?(2)面向对象编程的特性有哪三个?它们各自有哪些特性?(3)Java语言在面向对象编程方面有哪些独特的特点?(4)抽象类与接口有何异同?4.实验步骤及结果实验过程中,注意记录以下内容:(1)实验过程中实验步骤及其结果。
(2)遇到的问题及解决办法。
(3) 实验体会。
实验4 Java异常处理1.实验目的掌握异常的概念,以及如何定义、抛出和捕获处理异常。
2.实验内容(1) 做实验之前要求思考以下问题,作为预习内容;①错误和异常有何区别?查看Java异常类的关系图。
②异常是如何抛出、捕获和处理的?③Java捕获和处理异常的结构式怎样的?④Try语句如何嵌套?Trow语句有何作用?Finally程序快的作用是什么?(2) 运行下面的程序,理解异常的抛出、捕获与处理。
Import java.io.*;public class void main(String args[]){public staic void main(String args[]){for(int i=0;i<4;i++){int k;try{switch(i){case 0: //divided by zeroint zero=0;k=911 //zerobreak;case 1://null pointerint b[]=null;k=b[0];break;case 2; //array index out of boundint c[]=new int[2];k=c[9];break;case 3: //string index out of boundchar ch="abc".charAt(99);break;}}catch(Exception e){System.out.println("\nTestcase#"+i+"\n");System.out.println(e);}}}}(3)在实验三中的超市、商品类中创建一个自定义异常类。
要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。
提示:①产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。
②确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。
③处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。
④要定义好自己的异常。
3.实验步骤及结果在实验过程中记录实验步骤及其结构。
4.实验步骤及结果实验过程中,注意记录以下内容:(1)实验过程中实验步骤及其结果。
(2)遇到的问题及解决办法。
(3)实验体会。
实验5 多线程编程1.实验目的(1) 现成的概念、线程的生命周期。
(2) 多线程的编程:扩展Thread类与使用Runnable接口。
(3) 使用多线程机制实现动画2.实验内容(1) 运行下面的程序,理解用创建Thread子类的方法实现多线程。
//S09_01_Thread.JavaImport java.util.*;class S09_01_Thread extends Thread {int pauseTime;String name;public S09_01_Thread(int x,String n){pauseTime=x;name=n;}public void run(){while(true){try{system.out.println(name+":"+new Date(System.currentTimeMillis()));Tread.sleep(pauseTime);}catch(Exception e){System.out.println(e);}}}static public void main(String srgs[]){S09_01_Thread tp1=new S09_01_Thread(1000,"Fast");tp1.start();S09_01_Thread tp2=new S09_01_Thread(3000,"Slow");tp2.start();}}(2) 运行下面的程序,理解用实现Runnable接口的方法实现多线程。
//S09_02_Thread.JavaImport java.util.*;class S09_02_Thread implements Runnable {int pauseTime;String name;public S09_02_Thread(int x,String n){pauseTime=x;name=n;}public void run(){while(true){try{system.out.println(name+":"+new Date(System.currentTimeMillis()));Tread.sleep(pauseTime);}catch(Exception e){System.out.println(e);}}}static public void main(String srgs[]){Thread t1=new Thread(new S09_02_Thread(1000,"Fast"));t1.start();Thread t2=new Thread(new S09_02_Thread(3000,"Slow"));t2.start();}}(3) 创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。
3.实验预习(1) 将本章所学内容要点进行整理,熟练掌握线程的编程要领。
(2) 写出实验内容中第(3)题程序的源代码,作为预习报告。
4.实验步骤及结果实验过程中,注意记录以下内容:(1)实验过程中实验步骤及其结果。
(2)遇到的问题及解决办法。
(3)实验体会。
实验6 图形用户界面编程1.实验目的掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。