Java程序设计实验指导书(答案)
更新时间:2024-05-22 22:07:01 阅读量: 综合文库 文档下载
JAVA实验指导书
实验1:Java开发环境J2SE
一、实验目的
(1)学习从网络上下载并安装J2SE开发工具。 (2)学习编写简单的Java Application程序.
(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务
从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容
1.安装J2SE开发工具
Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从http://java.sun.com上进行下载。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\\j2sdk1.4.1_03目录下。教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus及JAVA集成开发环境Eclipse
教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话\老师,你好!\。 public class HelloWorldApp{ public static void main(String[] args){ System.out.println(\老师,你好!\ } }
- 1 -
4.编译并运行下面的Java Application程序,写出运行结果。
1: public class MyClass { 2: private int day; 3: private int month; 4: private int year; 5: public MyClass() { 6: day = 1; 7: month = 1; 8: year = 1900; 9: } 10: public MyClass(int d,int m,int y) { 11: day = d; 12: month = m; 13: year = y; 14: } 15: public void display(){ 16: System.out.println(day + \
17: } 18: public static void main(String args[ ]) { 19: MyClass m1 = new MyClass(); 20: MyClass m2 = new MyClass(25,12,2001); 21: m1.display(); 22: m2.display(); 23: } 24:}
运行结果: 1-1-1900 25-12-2001
实验2:Java基本数据类型
一、实验目的
(1)掌握javadoc文档化工具的使用方法。 (2)掌握Java语言转义字符的功能。 (3)理解“值传递”的过程。
二、实验任务
- 2 -
(1)利用javadoc文档化工具,将给定的Java Application源代码自动生成一系列说明文档。 (2)输入、运行给定的Java Application程序,写出运行结果,以验证Java语言转义字符的功能。 (3)按照要求编写Java Application程序。
三、实验内容
1.Javadoc文档化工具的使用
Java 2 SDK 1.4.1中提供了一个文档自动生成工具,可以简化程序员编写文档的工作。可以使用javadoc.exe命令启动Java文档化工具,自动生成Java程序文档。
输入下面给出的Java Application程序,利用javadoc命令生成该Java应用程序的文档,并使用浏览器IE显示生成的文档页面内容。
1: /* Java编程技术chapter3,CommentTest.java 2: 版权所有:。 3: 作者:
4: 日期:2001/07/01 5: */ 6: /**
7: 这是一个Java语言入门程序,定义类CommentTest。其中含有main()方法,因此可以作为一 8: 个应用程序单独执行。其功能是在默认的输出设备上输出字符串\你好!\。 9: */ 10: public class CommentTest { 11: //主方法,作为Java应用程序的默认入口。 12: 13: 14: 15:
public static void main(String args[ ]) {
System.out.println(\你好!\输出\你好!\ } }
执行javadoc CommentTest.java指令,生成文件:
CommentTest.html、package-frame.html、package-summary.html、package-tree.html、constant-values.html、overview-tree.html、index-all.html、deprecated-list.html、allclasses-frame.html、allclasses-noframe.html、index.html、help-doc.html。
2.输入下面的Java Application程序,写出运行结果。
1: public class CharSample{
2: public static void main(String args[ ]) { 3: char ch1 = '\\b'; 4: char ch2 = '\\t'; 5: char ch3 = '\\n'; 6: char ch4 = '\\r'; 7: char ch5 = '\\\8: char ch6 = '\\''; 9: char ch7 = '\\\\'; 10: System.out.println(\中南\民族大学\11: System.out.println(\中南\民族大学\
- 3 -
12: 13: 14: 15: 16: 17: 18:}
System.out.println(\中南\民族大学\System.out.println(\中南\民族大学\System.out.println(ch5+\中南\民族大学\System.out.println(ch6+\中南\民族大学\System.out.println(ch7+\中南\民族大学\}
运行结果: 中南民族大学 中南 民族大学 中南 民族大学 中南 民族大学 “中南民族大学” ‘中南民族大学’ \\中南民族大学\\
3.按下面的要求完成Java Application程序,写出程序的运行结果。
(1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。
(2)定义一个测试类javaTest,创建Point类的对象并对其进行有关的操作。 class Point{ double x,y; public void setXY(double a,double b){ x=a; y=b; } public double getX(){ return x; } public double getY(){ return y; } public void disp(){ System.out.println(\点的当前坐标为:(\ } };
public class javaTest{ public static void main(String[] args){ Point p1=new Point(); p1.disp();
- 4 -
p1.setXY(3.2,5.6); p1.disp();
}
}
运行结果:
点的当前坐标为:(0.0, 0.0) 点的当前坐标为:(3.2, 5.6)
实验3:Java流程控制
一、实验目的
(1)掌握Java运算符的用法。
(2)掌握表达式的使用和各种运算符的优先级控制。 (3)掌握结构化程序设计的基本结构。
二、实验任务
(1)输入根据给定的Java Application程序,写出运行结果,并说明程序所完成的功能。 (2)按照要求编写Java Application程序。
三、实验内容
1.输入如下所示的Java Application程序,写出运行结果,并说明程序的功能。
1: import java.io.*;
2: public class findNum {
3: public static void main(String args[]) { 4: String s; 5: double d; 6: int i;
7: boolean b = false; 8: do { 9: try { 10: System.out.println(\请输入一个浮点数: \11: BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 12: s = br.readLine(); // 以字符串方式读入 13: i = s.indexOf('.'); //找到小数点的位置 14: d = Double.parseDouble(s); // 将字符串转换成浮点数 15: System.out.println(d + \整数部分为:\
- 5 -
16: if( i == -1 ) //若没有小数点,则没有小数部分 17: System.out.println(d + \小数部分为:0.0\18: else // 若有小数点,则截取小数点后的字符串合成浮点数 19: System.out.println(d + \小数部分为:\\
20: b = false; 21: } 22: catch(NumberFormatException nfe) { 23: System.out.println(\输入浮点数格式有误。\\n\24: b = true; 25: } 26: catch(IOException ioe) { 27: b = false; 28: } 29: } 30: while(b); //浮点格式错误时重新输入 31: } // end of main 32:} // end of class
运行结果:
请输入一个浮点数:
abc
输入浮点数格式有误 请输入一个浮点数:
3.14
3.14的整数部分为:3 3.14的小数部分为:0.14
程序功能:通过IO类从命令行读入一个字符串,如果输入的字符串为非数字字符串,则提示异常,要求重新输入。如果输入的是一个没有小数点的数字字符串(即整数类型),则将其转换为double型浮点数,最后完成将浮点数的小数位和整数位分别输出。
2.编写一个Java Application程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。
public class Prime{ public static void main(String[] args){ int i,j; outer: for(i=200;i<=300;i++){ for(j=2;j - 6 - } } 运行结果: 211 223 227 229 239 241 251 257 263 269 271 277 281 283 293 实验4:Java类与对象 一、实验目的 (1)掌握Java类的继承关系和派生方法。 (2)理解多态的概念与使用。 (3)掌握接口的定义和使用。 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Student{ private long studentID; private int classID; private String name; private String sex; private int age; public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID; this.classID=classID; this.name=name; this.sex=sex; this.age=age; - 7 - } public long getStudentID(){ return studentID; } public int getClassID(){ return classID; } public String getName(){ return name; } public String getSex(){ return sex; } public int getAge(){ return age; } public String toString(){ return \学号:\班号:\姓名:\性别:\年龄:\ } } public class StudentDemo{ public static void main(String[] args){ Student s1=new Student(90221,2,\ System.out.println(s1.toString()); } } 运行结果: 学号:90221 班号:2 姓名:Tom 性别:male 年龄:20 实验5:Java继承与多态 一、实验目的 (1)掌握Java类的定义和使用方法。 (2)掌握对象的声明和使用。 - 8 - (3)构造函数的概念和使用。 (4)掌握类及其成员的访问控制符的使用。 (5)掌握包的概念和使用。 二、实验任务 (1)输入根据给定的Java Application程序,写出运行结果。 (2)按照要求编写Java Application程序。 三、实验内容 1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。1: class SuperClass { 2: int x; 3: SuperClass() { 4: x=3; 5: System.out.println(\6: } 7: void doSomething() { 8: System.out.println(\9: } 11:} 1: class SubClass extends SuperClass { 2: int x; 3: SubClass() { 4: super(); //调用父类的构造方法 5: x=5; //super( ) 要放在方法中的第一句 6: System.out.println(\7: } 8: void doSomething( ) { 9: super.doSomething( ); //调用父类的方法 10: System.out.println(\11: System.out.println(\12: } 14:} 1: public class Inheritance { 2: public static void main(String args[]) { 3: SubClass subC=new SubClass(); 4: subC.doSomething(); 5: } 6: } 运行结果: - 9 - in SuperClass: x=3 in SubClass: x=5 in SuperClass. doSomething() in SubClass. doSomething() super. x=3 sub. x=5 2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (1)设计一个基类Student描述学生的共同特征。 (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。 (4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。 class Student{ private String name; private int classA,classB,classC; public Student(String name,int classA,int classB,int classC){ this.name=name; this.classA=classA; this.classB=classB; this.classC=classC; } public String getName(){ return name; } public int getAverage(){ return (classA+classB+classC)/3; } } class UnderGraduate extends Student{ public UnderGraduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); } public void isPass(){ if(getAverage()>=60) System.out.println(\本科生\的三科平均分为:\可以拿到学士学位。\ else System.out.println(\本科生\的三科平均分为:\不能拿到学士学位。\ } } class Graduate extends Student{ - 10 - public Graduate(String name,int classA,int classB,int classC){ super(name,classA,classB,classC); } public void isPass(){ if(getAverage()>=80) System.out.println(\研究生\的三科平均分为:\可以拿到硕士学位。\ else System.out.println(\研究生\的三科平均分为:\不能拿到硕士学位。\ } } public class StudentDemo{ public static void main(String[] args){ UnderGraduate s1=new UnderGraduate(\ Graduate s2=new Graduate(\ s1.isPass(); s2.isPass(); } } 运行结果: 本科生Tom的三科平均分为:70,可以拿到学士学位。 研究生Mary的三科平均分为:73,不能拿到硕士学位。 假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资: (1)经理(Manager)——每月获得一份固定的工资 (2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。 (3)一般工人(Worker)——则按他每月工作的天数计算工资。 根据上述要求试用类的继承和相关机制描述这些功能,并编写一个Java Application程序,演示这些类的用法。(提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。) abstract class Employee{ private String name; public Employee(String name){ this.name=name; - 11 - } public String getName(){ return name; } public abstract double computeSalary(); } class Manager extends Employee{ private double monthSalary; public Manager(String name,double monthSalary){ super(name); this.monthSalary=monthSalary; } public double computeSalary(){ return monthSalary; } } class Salesman extends Employee{ private double baseSalary; private double commision; private int qualtities; public Salesman(String name,double baseSalary,double commision,int qualtities){ super(name); this.baseSalary=baseSalary; this.commision=commision; this.qualtities=qualtities; } public double computeSalary(){ return baseSalary+commision*qualtities; } } class Worker extends Employee{ private double dailySalary; private int days; public Worker(String name,double dailySalary,int days){ super(name); this.dailySalary=dailySalary; this.days=days; } public double computeSalary(){ return dailySalary*days; } } public class EmployeeDemo{ public static void main(String args[]){ Manager e1=new Manager(\张三\ - 12 - Salesman e2=new Salesman(\李四\ Worker e3=new Worker(\王五\ System.out.println(\经理\的月工资为:\ System.out.println(\销售人员\的月工资为:\ System.out.println(\工人\的月工资为:\ } } 运行结果: 经理张三的月工资为:10000.0 销售人员李四的月工资为:5175.2 工人王五的月工资为:2226.0 实验6:Java控制台程序设计 一、实验目的 (1)掌握Java命令行参数的使用方法。 (2)掌握Java程序与文件之间的基本输入输出操作 二、实验任务 (1)输入根据给定的Java Application程序,写出运行结果。 (2)编写Java Application程序,实现文件输入功能。 (3)编写Java Application程序,实现文件输出功能。 三、实验内容 1.输入如下所示的Java Application程序,用文字简述运行结果。 1: import java.util.Properties; 2: import java.util.Enumeration; 3: public class Testp { 4: public static void main(String[] args) { 5: Properties ps = System.getProperties(); 6: Enumeration pn = ps.propertyNames(); 7: while(pn.hasMoreElements()) { 8: String pName = (String) pn.nextElement(); 9: String pValue = ps.getProperty(pName); 10: System.out.println(pName + \11: } 12: } 13:} - 13 - 2.编写一个Java Application程序,实现读取并输出指定文件的内容的功能。 import java.io.*; public class ReadFile{ public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new FileReader(\ String s=br.readLine(); while(s!=null){ System.out.println(s); s=br.readLine(); } br.close(); } } 3.编写一个Java Application程序,实现接收键盘输入的数据,并写入到指定文件中的功能。 import java.io.*; public class WriteFile2{ public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw=new BufferedWriter(new FileWriter(\ String s=br.readLine(); while(!s.equals(\ bw.write(s); bw.newLine(); s=br.readLine(); } br.close(); bw.close(); } } 实验7:数组与字符串 一、实验目的 (1)掌握利用Math类实现基本数学运算的方法。 (2)掌握数组与字符串概念与使用。 - 14 - 二、实验任务 (1)输入根据给定的Java Application程序,写出运行结果。 (2)按照要求编写Java Application程序。 三、实验内容 1.输入下面的Java Application程序,写出运行结果,并说明程序的功能。 1: public class testMath { 2: public static void main(String args[]) { 3: final int NUMBER = 100; 4: int count = 10; 5: int randomNum = 0; 6: int probability[] = new int[6]; 7: for(int i=0; i<6; i++) { 8: probability[i] = 0; 9: } 10: for(int i=0; i 2.编写一个Java Application程序,实现如下的设计目标:程序运行时自动产生1~100的随机数,接收用户键盘输入数据并给出提示信息,直至猜对。游戏者猜对后,显示猜测次数,并提供“重新开始”和“退出”功能。 实验8:Java高级I/O流程序设计 一、实验目的 (1)掌握Java I/O基本原理。 (2)掌握InputStream、OutputStream抽象类的基本使用方法。 - 15 - (3)掌握FileInputStream、FileOutputStream、DataInputStream、DataOutputStream抽象类的基本使用方法。 二、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.输入下面的Java Application程序,运行该程序,说明程序的功能。 1: import java.io.*; 2: public class CopyFile { 3: public static void main(String[] args) { 4: try { 5: FileInputStream fis = new FileInputStream(\6: FileOutputStream fos = new FileOutputStream(\7: int read = fis.read(); 8: while ( read != -1 ) { 9: fos.write(read); 10: read = fis.read(); 11: } 12: fis.close(); 13: fos.close(); 14: } 15: catch (IOException e) { 16: System.out.println(e); 17: } 18: } 19:} 其功能是完成文件的复制:通过字节流从“copyFile.java”文件中读取数据并写入到“temp.txt”文件中去,实现copy功能。 2.编写一个Java Application程序,实现如下的设计功能:运行该程序可以列出当前目录下的文件。 import java.io.*; public class FileList2{ public static void main(String[] args){ File dir=new File(\ File files[]=dir.listFiles(); System.out.println(dir); for(int i=0;i - 16 - System.out.println(\ } } } 实验9:JavaGUI程序设计(1) 一、实验目的 (1)了解Java系统图形用户界面的工作原理和界面设计步骤。 (2)掌握图形用户界面的各种常用组件的使用方法。 (3)掌握图形用户界面各种布局策略的设计与使用。 二、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.输入下面的Java Application程序,运行该程序,说明程序的功能。1: import java.awt.*; 2: public class TestFlowLayout { 3: public static void main(String args[]) { 4: Frame f = new Frame(\5: Button button1 = new Button(\确定\6: Button button2 = new Button(\打开\7: Button button3 = new Button(\关闭\8: Button button4 = new Button(\取消\9: f.setLayout(new FlowLayout()); 10: f.add(button1); 11: f.add(button2); 12: f.add(button3); 13: f.add(button4); 14: f.setSize(100,100); 15: f.setVisible(true); 16: } 17:} - 17 - 显示一个100*100的窗口,窗口内添加了四个按钮,其布局为流式布局管理器。当窗口f的尺寸被重置后,其FlowLayout型的布局也会随之发生变化,各按钮的大小不变,但其相对位置会变化。 2.编写一个Java Application程序,该程序运行的运行结果如下所示。 import java.awt.*; public class BorderLayoutWindow extends Frame { public BorderLayoutWindow() { setLayout(new BorderLayout()); add(new Button(\ add( new Button(\ add( new Button(\ add( new Button(\ add( new Button(\ } public static void main(String args[]) { BorderLayoutWindow window = new BorderLayoutWindow(); window.setTitle(\ window.pack(); window.setVisible(true); } } 3.编写一个Java Application程序,该程序运行的运行结果如下所示。 import java.awt.*; public class GridLayoutWindow extends Frame { public GridLayoutWindow() { - 18 - setLayout(new GridLayout(3,2)); add(new Button(\ add(new Button(\ add(new Button(\ add(new Button(\ add(new Button(\ add(new Button(\ } public static void main(String args[]) { GridLayoutWindow window = new GridLayoutWindow(); window.setTitle(\ window.pack(); window.setVisible(true); } } 实验10:JavaGUI程序设计(2) 一、实验目的 (1)了解图形用户界面的事件响应机制。 (2)掌握鼠标事件编程方法。 (3)掌握AWT中Color和Font类的使用方法。 二、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.输入下面的Java Application程序,运行该程序,说明程序的执行过程。1: import java.awt.*; 2: import java.awt.event.*; 3: public class TestActionEvent { 4: public static void main(String args[]) { 5: Frame f = new Frame(\6: Button b = new Button(\7: Monitor bh = new Monitor(); 8: b.addActionListener(bh); 9: f.add(b,BorderLayout.CENTER); 10: f.pack(); - 19 - 11: 12: 13:} } f.setVisible(true); 1: class Monitor implements ActionListener { 2: public void actionPerformed(ActionEvent e) { 3: System.out.println(\ 4: } 5: } 执行过程:创建一个框架f,其标题为Test。在框架中添加了一个标签为“Press Me”的按钮b。为按钮b注册监听器bh,监听ActionEvent事件。当鼠标单击框架中的按钮b时,会触发ActionEvent事件,执行事件处理器actionPerformed(ActionEvent e),即在屏幕上输出文本信息“a button has been pressed”。 2.编写一个Java Application程序,该程序运行的运行结果如下所示。 import java.awt.*; public class MenuTest{ public static void main(String args[]){ Frame fr=new Frame(\ MenuBar mb=new MenuBar(); fr.setMenuBar(mb); Menu m1=new Menu(\ Menu m2=new Menu(\ Menu m3=new Menu(\ mb.add(m1); mb.add(m2); mb.setHelpMenu(m3); MenuItem m11=new MenuItem(\ MenuItem m12=new MenuItem(\ MenuItem m13=new MenuItem(\ MenuItem m14=new MenuItem(\ m1.add(m11); m1.add(m12); m1.add(m13); m1.addSeparator(); m1.add(m14); fr.pack(); fr.setVisible(true); } } - 20 - 3.编写一个Java Application程序,该程序运行的运行结果如下所示。 import java.awt.*; public class MenuTest{ public static void main(String args[]){ Frame fr=new Frame(\ MenuBar mb=new MenuBar(); fr.setMenuBar(mb); Menu m1=new Menu(\ Menu m2=new Menu(\ Menu m3=new Menu(\ Menu m4=new Menu(\进制\ mb.add(m1); mb.add(m2); mb.setHelpMenu(m3); MenuItem m21=new MenuItem(\中文\ MenuItem m41=new MenuItem(\二进制\ MenuItem m42=new MenuItem(\八进制\ MenuItem m43=new MenuItem(\十进制\ m2.add(m21); m2.add(m4); m4.add(m41); m4.add(m42); m4.add(m43); fr.pack(); fr.setVisible(true); } } 实验11:Java多线程 一、实验目的 (1)了解线程的概念。 (2)学习简单的多线程编程。 - 21 - 二、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.输入下面的Java Application程序,运行该程序,并简要分析程序的运行结果。 1: class SimpleThread extends Thread { 2: public SimpleThread(String str) { 3: super(str); //调用其父类的构造方法 4: } 5: public void run() { //重写run方法 6: for (int i = 0; i < 10; i++) { 7: System.out.println(i + \8: //打印次数和线程的名字 9: try { 10: sleep((int)(Math.random() * 1000)); 11: //线程睡眠,把控制权交出去 12: } 13: catch (InterruptedException e) { } 14: } 15: System.out.println(\16: //线程执行结束 17: } 18:} 1: public class TwoThreadsTest { 2: public static void main (String args[]) { 3: new SimpleThread(\4: //第一个线程的名字为First 5: new SimpleThread(\6: //第二个线程的名字为Second 7: } 8: } 实验12:Java网络程序设计 一、实验目的 (1)掌握网络编程的基本概念。 (2)掌握java.net包中常用网络编程工具类的功能和使用。 - 22 - (3)掌握Socket编程的基本方法和步骤。 二、实验任务 阅读给定的Java Application程序,按要求回答问题并写出运行结果。 三、实验内容 1.输入下面的Java Application程序,运行该程序,写出程序的运行结果。 1: /* File Name : ParseURL.java 2: * 这是一个简单的关于URL的实例 3: * 该实例的功能是解析命令行参数 4: * 中指定的URL地址 5: */ 6: import java.net.*; 7: import java.io.*; 8: public class ParseURL { 9: public static void main(String[] args) throws Exception { 10: URL aURL = new URL(\11: System.out.println(aURL); 12: System.out.println(\13: System.out.println(\14: System.out.println(\15: System.out.println(\16: System.out.println(\17: } 18:} 2.下面给出的Java源代码分别是服务器端程序和客户端程序,两个程序之间可以进行通讯。输入这两个Java Application程序,然后分别运行这两个程序,并写出程序的运行结果(提示:首先在一个MS-DOS窗口运行服务器端程序,然后在另一个MS-DOS窗口再运行客户端程序)。 1: /* File Name : TCPSingleUserServer.java 2: * 这是一个简单的基于TCP连接服务程序 3: * 该服务程序的功能十分简单,只是简单 4: * 的显示并且向客户端回送客户端发送来 5: * 的信息,直到客户端发送结束标记END 6: */ 7: import java.io.*; 8: import java.net.*; 9: public class TCPSingleUserServer { 10: // 设置服务器的端口号,它应该大于1024 11: public static final int PORT = 8080; 12: public static void main(String[] args) throws IOException { 13: ServerSocket server = new ServerSocket(PORT); - 23 - 14: 15: 16: 17: 18: 19: 20: 21: System.out.println(\try { // 等待接受用户连接 Socket socket = server.accept(); try { System.out.println(\ BufferedReader in = new BufferedReader(new InputStreamReader (socket.getInputStream())); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter (socket.getOutputStream())),true); 22: while (true) { 23: String str = in.readLine(); 24: if (str.equals(\25: System.out.println(\26: out.println(str); 27: } 28: } 29: finally { 30: System.out.println(\31: socket.close(); 32: } 33: } 34: finally { 35: server.close(); 36: } 37: } 39:} 1: /* File Name : TCPSingleUserClient.java 2: * 这是一个简单的基于TCP连接客户程序 3: * 该客户程序的功能十分简单,只是简单 4: * 向服务器发送消息,并且接收从服务器 5: * 发送回来的消息,将它在屏幕上显示 6: */ 7: import java.net.*; 8: import java.io.*; 9: public class TCPSingleUserClient { 10: public static void main(String[] args) throws IOException { 11: // 在getByName()中,使用null作为参数 12: // 来指定本地服务器的地址 13: InetAddress addr = InetAddress.getByName(null); 14: // 同样的,也可以使用如下的代码来实现同样的功能 15: // InetAddress addr = InetAddress.getByName(\16: // InetAddress addr = InetAddress.getByName(\17: System.out.println(\18: Socket socket = new Socket(addr, TCPSingleUserServer.PORT); 19: try { - 24 - 20: 21: 22: System.out.println(\ BufferedReader in =new BufferedReader(new InputStreamReader (socket.getInputStream())); PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter (socket.getOutputStream())),true); 23: for(int i = 0; i < 10; i ++) { 24: out.println(\25: String str = in.readLine(); 26: System.out.println(str); 27: } 28: out.println(\29: } 30: finally { 31: System.out.println(\32: socket.close(); 33: } 34: } 35:} 实验13:Java Applet程序设计 一、实验目的 (1)了解Applet程序的运行机制 (2)掌握从HTML文件向Applet程序传递参数的方法。 二、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.输入下面的HTML和Java Applet源代码,运行该程序,说明程序的功能。 1: 4: 5: 6: - 25 - 1: import java.applet.Applet; 2: import java.awt.*; 3: import java.awt.event.*; 4: public class javaAppletEx extends Applet implements ActionListener { 5: Label outputLbl = new Label(\ \6: TextField inputTfd = new TextField(10); 7: Button copyBtn = new Button(\复制\ 8: public void init() { 9: inputTfd.setText(\10: outputLbl.setText(\ \11: add(inputTfd); 12: add(copyBtn); 13: add(outputLbl); 14: copyBtn.addActionListener(this); 15: } 16: public void actionPerformed(ActionEvent ae) { 17: if(ae.getSource() == copyBtn) { 18: outputLbl.setText(inputTfd.getText()); 19: } 20: } 21:} 功能:该Applet包括一个标签outputLbl、一个按钮copyBtn(复制)和一个文本域inputTfd,在文本域inputTfd中输入一串文本信息,点击“复制”按钮后,文本域inputTfd中的内容会被复制给标签outputLbl并显示出来 2.编写一个Java Applet,接受HTML文件传递的整数参数,根据该参数指定Applet中文本框的长度。编写对应的HTML文件运行这个Java Applet(提示:该程序运行的运行结果如下所示)。 //HTML文件javaApplet.html //Java Applet源程序javaApplet.java import java.applet.Applet; import java.awt.*; public class javaApplet extends Applet{ int max; - 26 - } String s; TextField tf; public void init(){ s=getParameter(\ max=Integer.parseInt(s); tf=new TextField(max); tf.setText(\ add(tf); } 实验14:JDBC程序设计 一、实验目的 (1)了解JDBC工作的基本原理 (2)掌握JDBC编程的基本步骤 二、实验任务 (1)设置ODBC数据源。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 三、实验内容 1.设置ODBC数据源。 2.参照如下所示的SQL命令,在Microsoft Access数据库中创建用户信息表“userinfo”,并输入如表1所示的数据。 create table userinfo( code varchar(4) not null, / * / * / * / * 用户代码 用户姓名 用户密码 * / * / * / name varchar(10), password varchar(6), email varchar(40), primary key(code)); - 27 - 用户电子邮件地址 * / 表1:用户信息表中的数据 代码 7101 7102 7103 7104 7105 7106 姓名 宋晓梅 关松杰 李晓梅 张松岩 王亚杰 曲小声 密码 123456 654321 123654 456123 321456 654321 电子邮件地址 xiaomei@yahoo.com.cn songjie@263.net xiaomei@yahoo.com.cn songyan@yahoo.com.cn yajie@hotmail.com xiaosheng@263.net 编写JDBC应用程序,首先将用户信息表中的数据在屏幕上显示出来,然后插入一个记录,最后将更新以后数据表中的数据在屏幕上显示出来。 - 28 -
7: 8:
正在阅读:
Java程序设计实验指导书(答案)05-22
打蚊子作文400字07-07
2010年新版《电子商务概论》习题集·1-13章全部整理04-18
建筑工程施工项目成本风险管理研究206-07
正弦函数余弦函数的图像和性质(2)04-29
Learn to Live in the Present Moment04-08
浅谈收益法在无形资产评估中的应用05-13
中国建设银行零点击网银盾客户使用指南09-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 程序设计
- 答案
- 实验
- Java
- 机务检修测试题
- 安规常识
- 车筐项目可行性研究报告
- 小学科学实验指导目录(苏教版)
- 2014-2015学年高中数学(人教A版,选修2-2)练习:综合检测
- 《数控加工工艺》课后练习题答案
- 2017年小学语文苏教版一年级下册期末试卷
- 基于CP—ABE的数字图书馆云存储访问控制模型研究
- 精准扶贫干部驻村帮扶XX工作计划范文
- 2016-2021年消防装备市场前景预测及投资规划分析报告(目录)
- 人教版七年级数学上册一元一次方程复习题精选29
- 行业分析2018-2023年中国发酵食品行业发展趋势预测与投资战略规
- 小学德育工作制度及措施
- 高中化学竞赛题--氧化还原
- 磁控溅射镀膜的简介及其实际操作
- 2010年江西招警行测(731)-打印版 - 图文
- 数据结构课程设计论文(2) - 图文
- 建筑起重机械设档案塔式起重机
- 地方本科高校实践课教学队伍建设研究
- 政审表