高级java实验三
Java实验三实验报告1
Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。
2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。
3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。
四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。
JAVA第三次实验完整版
实验报告
院(系): 计算机科学学院
专业年级 : 电子信息科学与技术1403班姓名 : 卢丽琼
学号 : 21409030312
2016年 12 月 26 日
实验三JDBC编程
一、目的
通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求
学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容
1)复习数据库SQL语句的编写。
2)编写(JavaODBC-JDBC驱动)公共模块。
3)建立数据库应用模型,对数据库进行操作。
4)调试程序,实现数据库的访问。
四:实验步骤与结果
五:实验心得
通过本次试验,我了解了JDBC的基本概念并且深入了解了其注册方法,我明白了如何调用数据库,怎样建立数据库,以及数据库的基本架构,更深入的了解了JA V A.。
JAVA 课后实验三
实验三类与对象1、(1)创建一个Rectangle类,添加两个(private)属性width与height(2)创建一个构造方法,选择width与height为形式参数。
(3)在Rectangle类中添加两个方法计算矩形的周长和面积2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。
最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。
(一个文件中包含三个class和main)a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。
上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250.这个例子中,B是A的一个子类。
其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。
于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。
4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。
上例中,SubClass是SuperClass的一个子类。
其中声明了一个和父类SuperClass同名的变量x,并定义了与之相同的方法do something,这时在子类SubClass中,父类的成员变量x被隐藏,父类的方法do something被重写。
高级java实验报告GUI设计
return new Dimension(200,30);
}
public synchronized void addActionListener(ActionListener listener)
{
if(actionListenerList == null)
{
actionListenerList = new ArrayList<ActionListener>(2);
import java.util.ArrayList;
import javax.swing.JPanel;
public class MessagePanelWithActionListener extends JPanel implements MouseListener
{
private String message = "Welcome to Java";
// TODO Auto-generated method stub
processEvent(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,null));
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
选择颜色,使用该颜色设置颜色标签,反映颜色变化。
(3)对CircleController进行修改,在颜色控制按钮的事件
处理中,使用控制器得到的用户颜色,修改对应的CircleModel对
象的颜色属性设置。
(4)运行程序,启动用户测试程序MVCDemo.java(程序清单
河南工业大学高级java实验3
河南工业大学实验报告
课程高级Java编程技术实验名称实验三:可视化Swing图
形界面设计基础
专业班级计科1505 院系信息科学与工程学院
姓名李杰学号 201516010118 指导老师孙宜贵日期 2017.10.10
一.实验目的
理解可视化图形界面设计方法的优势,熟悉可视化图形界面设计插件WindowBuilder
的配置和基本用法。
二.实验要求
1)使用WindowBuilder插件设计布局界面。
2)相关操作:给出界面设计方案(所有控件及其名称);采用拖拽式方法布局界面。
3)操作过程截图和代码应体现个人信息,否则作废!
三.实验过程及结果
任务一:在实验二的基础上,针对客户端程序添加新用户注册窗体,注册用户信息有用户名、
密码、确认密码、性别、Email地址和联系电话;添加登录界面。
1)补充说明:其他自行补充。
2)设计视图的截图(无需运行)
任务二(可选):实现8X8的扫雷游戏界面,包括菜单及扫雷区。
1)补充说明:其他自行补充。
2)设计视图的截图(无需运行)。
Java实验三实验报告1
淮海工学院计算机工程学院实验报告书课程名:《Java语言实验与课程设计指导》题目:实验3——深入面向对象编程班级:学号:姓名:实验题目:1.定义一个学生类,定义一个大学生类和小学生类,这两个类是学生类的子类;定义一个选课接口,由大学生类实现该接口,定义一个年龄异常处理,当小学生年龄小于7岁时,弹出异常。
2.定义一个银行卡类,定义一个信用卡类和普通银行卡类,这两个类是银行卡类的子类;定义一个透支的接口,信用卡可以透支,普通银行卡不可以透支。
定义一个取款异常和透支异常,当普通银行卡取款超过银行卡余额时,弹出“取款异常”;当信用卡透支超过2万元时弹出“透支异常”。
实验代码:题1源代码:import java.awt.*;class student{String number,name,sex,bj;int age;student(String xuehao,String xingming,String xingbie,int nianling,String banji){number=xuehao;name=xingming;sex=xingbie;age=nianling;bj=banji;}}interface xuanke{abstract void select(String s);}interface illegal{abstract void illegal(int s);}class primary extends student implements illegal{String xx;primary(String xuehao,String xingming,String xingbie,int nianling,String banji,String xiaoxue){super(xuehao,xingming,xingbie,nianling,banji);}public void illegal(int s){age=s;if(age<7)System.out.println("\n出错~学生"+name+" 的年龄过小!");}}class college extends student implements xuanke{String dx,xk;college(String xuehao,String xingming,String xingbie,int nianling,String banji,String daxue){super(xuehao,xingming,xingbie,nianling,banji);dx=daxue;}public void select(String s){xk=s;}}public class test_1{public static void main(String args[]){primary p1=new primary("1","张三","男",13,"五(1)班","ZZZ小学");System.out.println(p1.number+" "++" "+p1.sex+" "+p1.age+" "+p1.bj+" "+p1.xx);p1.illegal(p1.age);primary p2=new primary("\n2","小红","女",6,"一(1)班","YYY小学");System.out.println(p2.number+" "++" "+p2.sex+" "+p2.age+" "+p2.bj+" "+p2.xx);p2.illegal(p2.age);college c1=new college("3","小茗","女",20,"软件112","XXX大学");c1.select("现代密码学");System.out.print("\n"+c1.number+" "++" "+c1.sex+" "+c1.age+" "+c1.bj+" "+c1.dx+" "+c1.xk+"\n");}}实验结果:题2源代码:import java.util.*;class bankcard{String kh,name;double yue;bankcard(String kahao,String yezhu,double shengyu) {kh=kahao;name=yezhu;yue=shengyu;}}interface touzhi{abstract void tz(double s);abstract void tzye(double s);abstract void illegal();}interface qkillegal{abstract void illegal();}class common extends bankcard implements qkillegalcommon(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void warning(){System.out.println("普通银行卡不可透支!");}public void illegal(){System.out.println("取款超额!");}}class xinyongka extends bankcard implements touzhi{double tzye;xinyongka(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void tz(double s){tzye=s;}public void tzye(double s){double t=20000+yue-s;if(s>yue)System.out.println(t);}public void illegal(){System.out.println("透支超额!");}}public class test_3{public static void main(String args[]){common c1=new common("62226200240001916658","张三",1200.00);System.out.println("卡号:"+c1.kh+"业主:"++"余额:"+c1.yue);System.out.println("请输入取款金额:");Scanner s1=new Scanner(System.in);double b=s1.nextDouble();if(b<c1.yue){double c=c1.yue-b;System.out.println("银行卡余额为:"+c);}elsec1.illegal();System.out.println("\n\n");xinyongka x1=new xinyongka("62236200243008615559","李四",500.00);System.out.println("卡号:"+x1.kh+"业主:"++"余额:"+x1.yue);System.out.println("信用卡可透支!透支金额为20000元!");System.out.println("请输入要取款金额:");Scanner s2=new Scanner(System.in);double a=s2.nextDouble();if(a<=x1.yue){double d=x1.yue-a;System.out.println("银行卡余额为:"+d);}else if(a>x1.yue&&a<=(20000+x1.yue)){System.out.println("透支余额剩余:");x1.tzye(a);}elsex1.illegal();}}实验结果:普通银行卡类:输入普通银行卡取款金额若输入金额小于余额则若大于余额则信用卡类:输入取款金额,若输入金额小于余额则若输入金额大于余额小于透支金额与余额之和,则若大于透支金额与余额之和,则。
《Java程序设计》实验报告 --实验3
else if(e.getSource()==buttontwo){//按键2操作
tf.setText(tf.getText()+"2");
flag1=Double.parseDouble(tf.getText());
}
else if(e.getSource()==buttonthree){//按键3操作
buttondevision=new JButton("/");
buttonsin=new JButton("sin");
buttontozero=new JButton(">0");
paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列
//将操作按钮"+""-""*""/""sin"">0"添加到西边的面板中
JButton buttonplus,buttonminus,buttonmultiple,buttondevision,
buttonsin,buttontozero;//新建按钮"+""-""*""/""sin"和归零按钮
JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,
panelcenter.add(buttonthree);
panelcenter.add(buttonfour);
panelcenter.add(buttonfive);
Java第三次实验
实验4:修饰符与继承性一、实验目的了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。
二、实验要求1.编写如何使用类及其成员的修饰符的程序。
2.编写如何通过传递参数来调用方法的程序。
3.编写体现类的继承性(成员变量、成员方法的继承)的程序。
三、实验内容(一)使用修饰符有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符有:public,private,protected,package,static,final,abstract等。
1.程序功能:通过两个类StaticDemo、KY4_1 来说明类变量与对象变量,以及类方法与对象方法的区别。
2.编写源程序KY4_1.java,程序源代码如下。
class StaticDemo {static int x;int y;public static int getX() {return x;}public static void setX(int newX) {x = newX;}public int getY() {return y;}public void setY(int newY) {y = newY;}}public class KY4_1 {public static void main(String[] args) {System.out.println("类变量x="+StaticDemo.getX());System.out.println("对象变量y="+StaticDemo.getY());StaticDemo a= new StaticDemo();StaticDemo b= new StaticDemo();a.setX(1);a.setY(2);b.setX(3);b.setY(4);System.out.println("类变量a.x="+a.getX());System.out.println("对象变量a.y="+a.getY());System.out.println("类变量b.x="+b.getX());System.out.println("对象变量b.y="+b.getY());}}3.编译并运行程序KY4_1.java,看看该程序是否有错?如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。
java实验报告实验3答案
实验三熟悉常用java工具包并运用编程实验目的:本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
实验内容:本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。
共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。
):(1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。
然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥?程序:import java.util.*;public class SY3{public SY3(){List list=new ArrayList();list.add(1);list.add(10);list.add(5);list.add(7);list.add(6);list.add(2);list.add(9);list.add(20);list.add(14);list.add(35);list.add("ddy");System.out.println("原序列:");for(int i=0;i<=list.size()-1;i++){System.out.println(list.get(i));}System.out.println("新序列");for(int i=0;i<=list.size()-1;i++){Collections.sort(list);Collections.reverse(list);System.out.println(list.get(i));}}public static void main(String[] args){new SY3();}}结果如图(2)按顺序把下面一组数([1,2] [3,4] [2,2] [6,4] [5,2] [4,4])存放到Map中(注:允许自己自定义任何数),并按key 和value的值进行排序。
Java实验三
}
注意:如果要声明的异常是 Error 或者 RuntimeException 的子类,那么就不必显式地用 throws 声明它们,因为这些异常是每个方法都可能会产生的,所以不需要显式地声明它们。
异常处理的搜索 Java 的异常处理搜索机制大致是这样进行的,在程序运行过程中,一旦有一个异常发生,那 么该异常对象随即被产生并被抛出,接下来,程序就开始为该异常搜索相应的处理代码。首 先是在当前方法的 catch 块中依次搜索,若找到相应的 catch 块,则进行处理。若未找到, 则异常将被传递给该方法的上一级调用者,然后进行同样的搜索,这个过程沿着方法调用链 一直持续下去,直到该异常在某个方法中被捕获或最终由 Java 虚拟机捕获并处理。
实验步骤: (1)首先在 d:\programming 目录下创建一个文件夹,命名为 packone,然后在该文件夹下创建 一个名叫 Clock.java 的程序,打开文本编辑器按程序清单输入该程序。
//Clock.Java package packone;
public class Clock { public int hour;
Java.awt.Font; (2)创建好与包相对应的文件结构,比如说创建的包是(com.Java.myclass,那么必须在类环境 中建立一个同样的目录结构,com\Java\myclass)。 (3)编写类的时候,将该类加入到指定的包中,使用 package 表明,如下所示:
package com.Java.myclass;
catch(ArithmeticException ex){ ) catch(Exception ex){ } 正确写法
java实验3英语单词拼写训练
java实验3英语单词拼写训练一、项目背景与目的随着全球化的发展,英语在国际交流中扮演着举足轻重的角色。
然而,英语单词的拼写往往较为复杂,容易发生错误。
为了提高英语单词拼写的准确性,本实验通过Java语言设计了一个英语单词拼写训练系统。
该系统旨在帮助用户更好地掌握英语单词的拼写规则,提高单词记忆能力。
二、数据集与预处理为了训练和评估模型,我们从网上搜集了一个包含大量英语单词的数据集。
在开始训练之前,我们对数据集进行了预处理,包括去除重复单词、过滤掉过于简单的单词以及将所有单词转换为小写等。
预处理后的数据集分为训练集、验证集和测试集,以用于模型的训练和评估。
三、模型架构与训练本实验采用Java语言编写,利用深度学习框架搭建了一个基于循环神经网络(RNN)的英语单词拼写模型。
模型输入为单词的字母序列,输出为单词的拼音序列。
在训练过程中,我们将单词按照长度划分为不同的类别,并对每个类别进行单独训练。
训练过程中,采用了交叉熵损失函数和Adam优化器。
四、评估与优化为了衡量模型的性能,我们在测试集上进行了评估。
实验结果显示,模型在单词长度较短的类别上表现较好,但随着单词长度的增加,准确率逐渐降低。
为了提高模型在长单词上的表现,我们通过调整网络结构和参数,进行了多次优化。
此外,我们还采用了早期停止法(Early Stopping)以防止过拟合。
五、总结与展望本实验通过Java语言设计了一个基于RNN的英语单词拼写训练系统,并在大量数据上进行了训练和评估。
实验结果表明,模型在单词长度较短的类别上具有较高的准确率,但长单词的拼写仍需进一步优化。
在未来,我们将尝试引入更多复杂的网络结构和算法,以提高模型的性能和实用性。
java实验报告(实验三)
System.out.println("输入第二个日期的年份:");
int yearTwo=read.nextInt( );
System.out.println("输入该年的月份:");
int monthTwo=read.nextInt( );
System.out.println("输入该月份的日期:");
Date date1=【代码6】//用timeOne做参数构造date1
Date date2=【代码7】//用timeTwo做参数构造date2
if(date2.equals(date1))
{
System.out.println("两个日期的年、月、日完全相同");
}
else if(date2.after(date1))
北京林业大学
2013学年—2014学年第2学期Java程序设计基础实验报告书
专 业:电子班 级:11-2
姓 名:王云飞学 号:
实验地点:计算机中心任课教师:黄儒乐
实验题目:自定义异常与异常处理,常用类使用
实验环境:Windows2000/XP;局域网
实验要求:
1.对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。
System.out.println("输入该年的月份:");
int monthTwo=read.nextInt( );
System.out.println("输入该月份的日期:");
int dayTwo=read.nextInt( );
Calendar calendar=【代码1】//初始化日历对象。
Java实验指导书(实验三)
实验三类与对象(一)一、实验目的1、掌握类与对象的基本概念;2、掌握类的声明、创建与使用方法;3、掌握类的构造方法的定义与使用方法4、掌握类的成员变量、成员方法的定义与使用方法;5、理解类变量、类方法与实例变量、实例方法的区别;6、理解Java中方法重载的实现方式。
二、实验要求1、根据实验步骤中提出的要求,使用记事本编写相应的Java程序;2、使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;3、根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;4、记录实验中遇到的各类问题并以及解决办法。
三、实验步骤1、类的声明、创建与使用(1)采用记事本编写下面所给的Java程序并保存为Circle.java;final static double PI;class Circle{PI=3.14;double r;double circumference(){return 2*PI*r;}double area(){return PI*r*r;}}(2)修改其中的错误,使其可以正确编译;(3)采用记事本编写下面所给的Java程序并保存为CircleTest.java;class CircleTest{public static void main(String args[]){Circle c=new Circle();System.out.printf("Area of the Circle is : %8.4f",c.area());}}(4)运行CircleTest查看结果。
(5)Java中变量都必须先赋值后使用,否则会出现编译错误(该变量未初始化),那么成员变量是否必须设定初值?2、构造方法(1)Circle类没有声明构造方法,那么语句Circle c=new Circle();中调用的构造方法Circle()会不会出错?为什么?(2)在Circle类中添加以下构造方法:Circle(double radius){r= radius;}(3)重新编译Circle.java之后(暂时不要重新编译CircleTest.Java),运行CircleTest将会出现什么错误?为什么?如何修改?3、类变量与类方法(1)在CircleTest类的main方法中添加以下代码:Circle c1=null;System.out.printf("PI is : %8.4f",c1.PI); //或Circle.PI(2)修改后编译运行是否会出错?为什么?(3)在Circle类中添加以下代码:static void setPI(double pi){PI=pi;this.r=3;}(4)重新编译Circle类会出现什么错误?为什么?如何修改?(5)修改CircleTest类的main方法为:Circle c1=null;System.out.printf("PI is : %8.4f\n",c1.PI);Circle c=new Circle(3);System.out.printf("Area of the Circle is : %8.4f\n",c.area());c1.setPI(3.1415926);System.out.printf("PI is : %8.4f\n",c1.PI);System.out.printf("Area of the Circle is : %8.4f\n",c.area());(6)上述代码将输出什么结果?通过阐述其执行过程说明出现该输出结果的原因。
java实验报告(实验三)
北京林业大学2013 学年— 2014 学年第 2学期 Java程序设计基础实验报告书专业:电子班级: 11-2 姓名:王云飞学号: 101114110 实验地点:计算机中心任课教师:黄儒乐实验题目:自定义异常与异常处理,常用类使用实验环境: Windows2000/XP;局域网实验要求:1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。
2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。
3. 程序作业的源代码要求反馈到实验报告中。
实验内容:1.自定义异常及使用(1)自定义一个异常类,命名为AuthException。
(2)设计一个LoginAuthCheck类,其中的verify(String username,String password)方法用于验证用户名和密码是否正确,如果用户名不是admin,密码不是123 ,则抛出AuthException异常,并通过AuthException对象传递错误信息。
(3)设计一个Example类,提示用户依次输入用户名,密码(使用Scanner类来实现),并通过LoginAuthCheck类的verify方法验证是否正确。
2. 比较日期的大小按模板要求,将【代码1】~【代码8】替换为Java程序代码。
DateExampleimport java.util.*;class DateExample{public static void main(String args[ ]){Scanner read=new Scanner(System.in);System.out.println("输入第一个日期的年份:");int yearOne=read.nextInt( );System.out.println("输入该年的月份:");int monthOne=read.nextInt( );System.out.println("输入该月份的日期:");int dayOne=read.nextInt( );System.out.println("输入第二个日期的年份:");int yearTwo=read.nextInt( );System.out.println("输入该年的月份:");int monthTwo=read.nextInt( );System.out.println("输入该月份的日期:");int dayTwo=read.nextInt( );Calendar calendar=【代码1】//初始化日历对象。
Java实验3
实验三方法签名、重载、递归【实验目的和要求】实验目的:熟悉JAVA中方法的定义和调用。
实验要求:掌握方法的声明和使用;掌握方法的返回值、理解处理返回多个结果的办法;掌握方法参数传递,理解数据类型参数传递和引用类型参数传递的异同;掌握方法重;掌握递归方法的设计。
【实验原理】方法的声明和使用、方法的返回值、方法参数传递、类的继承方法。
【实验步骤】1.方法的声明和使用、参数,返回值练习任务。
设计代码,通过方法实现上次实验同样功能任务。
(增加数组查找等任务,练习数组作为参数进行传递)理解main()方法的参数,设置参数,打印main()参数的字符串数组内容。
2.方法重载练习任务设计代码,编写多个重载的方法,实现数学基本运算功能,要求参数类型和个数可变。
3.方法递归练习任务设计编写一个递归方法(如fabonacci数列等),跟踪调试,理解栈的使用。
注:fabonacci数列递归只做基本练习要求,同时用“迭代”实现,并比较两者的运行速度,在实际编程任务中代码编写中还是应“迭代”实现。
4.对象数组比较和排序。
(较高要求)注:类还没有正式学,可只要求用方法实现数组排序。
实验一:import java.util.Scanner;public class lz {public static boolean mima(String name,String password){boolean flag=false;if(name.equals("xxx")&&password.equals("123")) {flag=true;}else {flag=false;}return flag;}public static void main(String[] args){int i=3;while(i>0) {System.out.println("输入帐户名和密码");Scanner sc=new Scanner(System.in);String name=sc.next();String password=sc.next();if(mima(name,password)) {System.out.println("进入系统");break;}else {System.out.println("错误");i--;System.out.println("还有"+i+"机会");if(i==0) {System.exit(0);}}}}}实验截图:实验二:import java.util.Scanner;public class lz {public static void main(String [] args){System.out.println("请分别输入三个数,每个数以回车结束:");Scanner sc=new Scanner(System.in);float a=sc.nextFloat();float b=sc.nextFloat();float c=sc.nextFloat();float sum1=add(a,b);float sum2=add(a,b,c);System.out.println("sum1="+sum1);System.out.println("sum2="+sum2);}public static float add(float a,float b){return a+b;}public static float add(float a,float b,float c) {return a+b+c;}}实验截图:实验三:public class lz {public static void main(String[] args) {int sum=getSum(4);System.out.println("sun="+sum);}public static int getSum(int n){if(n==1){return 1;}int temp=getSum(n-1);return temp+n;}}实验截图:实验四:import java.util.Scanner;public class lz {public static void main(String[] args) {int[]arr= {7,9,66,4,18};System.out.print("冒泡排序前:");printArray(arr);bubbleSort(arr);System.out.print("冒泡排序后:");printArray(arr);}public static void printArray(int[] arr) {for (int i=0;i<arr.length;i++) {System.out.print(arr[i]+" ");}System.out.print("\n");}public static void bubbleSort(int[] arr) {for (int i=0;i<arr.length-1;i++) {for (int j=0;j<arr.length-i -1;j++) {if(arr[j]>arr[j+1]) {int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}System.out.print("第"+(i+1)+"轮到后排:");printArray(arr);}}}实验截图:。
高级java实验指导书
高级java程序设计实验指导书指导老师:胡晓鹏信息工程学院目录第一部分上机实验的目的及要求 (3)1.1 上机实验的目的 (3)1.2 上机实验基本要求 (3)第二部分实验内容 (5)实验一设计模式 (5)实验二常用实用类 (6)实验三输入与输出流 (12)实验四泛型与链表 (16)实验五泛型与散列映射 (19)实验六JDBC数据库操作 (22)实验七Java多线程 (25)实验八Java网络基础 (28)第一部分上机实验的目的及要求1.1 上机实验的目的《高级java程序设计》是计算机科学与技术专业的一门专业限选课,课程开设的目的就是帮助学生建立面向对象编程的基本思想。
通过本课程的学习,使学生在短时间内理解java面向对象编程的基本原则,以及对java数据库编程、WEB 服务器编程有一个基本的了解,并为后继课程打下坚实的理论基础和编程基础。
实验课是本门课程的重要环节。
实验内容以验证性实验和设计性实验相结合为主,以综合性实验为辅。
实验过程中要求使用JA V A语言独立进行编程和调试。
通过实验主要要达到下述目的:1、加深对面向对象编程思想的理解。
2、熟悉JA V A语言的语言要素,通过大量的验证性实验,巩固学生在理论课上所学的知识点。
3、通过大量的实验编写来提高学生对程序的编写、调试、连接、运行全过程,积累程序调试经验。
4、学习如何系统的设计程序、使学生逐渐建立程序设计的系统观,养成良好的编程习惯和编程风格。
1.2 上机实验基本要求学生在实验前必须做好上机的各项准备,按教师的要求进行上机实验。
具体要求如下:1、根据实验指导书提前做好上机预习。
程序可以是由教师布置安排的或是自编的。
自编程序应书写整齐,并经人工检查无误,以提高上机效率。
对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。
2、必须携带教材和相关参考资料上机。
3、调试程序的过程应独立完成。
独立上机是学生独立思维能力独自动手能力的一个重要途径,上机过程中出现的问题,一般应由学生独立处理,不要轻易举手问老师或周围同学。
java实验三
《Java程序设计》实验报告三班级:学号:姓名:1题目编写图形界面程序,根据用户输入的5个浮点数和一个文件目录名,将这5个数保存才文件中,再将5个数读取后排序追加到文件中2目的和要求学习并掌握java文件读写的相关操作3功能说明输入5个数字和一个文件名,点击转换后将5个数字保存到文件中并将读取到得5个数字排序后追加到文件中4设计流程图源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class denglu extends JFrame {public static final int GAME_WIDTH=400;public static final int GAME_HEIGTHT=300;public static String[] ss=new String[20];public static void main(String[] args) {denglu tc=new denglu();try {tc.luachFrame();} catch (PswException e) {e.printStackTrace();}}public void luachFrame() throws PswException{this.setLocation(400,300);this.setSize(GAME_WIDTH,GAME_HEIGTHT);this.setTitle("用户登录界面");this.setBackground(Color.GREEN);//绘制界面this.addWindowListener(new WindowAdapter(){//添加监听器,执行关闭窗口public void windowClosing(WindowEvent e) {System.out.println("窗体执行关闭!");System.exit(0);}});JPanel panel = new JPanel();final JTextField name=new JTextField(25);JLabel uname = new JLabel("UserName");JLabel upsw = new JLabel("Password");final JTextField psw=new JTextField(25);JButton btn =new JButton("Login");panel.add(uname);panel.add(name);panel.add(upsw);panel.add(psw);panel.add(btn);//添加文本框和登录按钮,文本框宽度都是25setContentPane(panel);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String x_name =name.getText();//登录名可以任意输入一个String x_psw = psw.getText();char c[] = x_psw.toCharArray();//输入密码int psw_length = c.length;try{//处理可能出现的异常int flag = 0;if(psw_length<4||psw_length>6){String aa="密码不符!";throw new PswException(aa);}//密码在4到6位else{for(int i=0;i<psw_length;i++){int a=(int)c[i];System.out.println(a);if(a<48||a>57 ){String aa="密码不全为数字";throw new PswException(aa);//密码必须是数字}else flag++;}if(flag==psw_length){String aa="成功";throw new PswException(aa);//弹出成功登录窗口}}}catch(Exception h){System.out.println("Some error accour"+h);//处理异常}}});this.setResizable(false);setVisible(true);}}class PswException extends Exception{PswException(String b){JOptionPane.showMessageDialog(null,b);}}5数据结果6实验心得与体会实验四主要是对异常的自定义以及抛出操作的练习,在判断密码是否含有字母时只要判断密码里是否含有一个即可。
JAVA 实验三附答案
实验三 异常处理和基础类库 实验目的 1 学会利用 Try-catch-finally 语句来捕获和处理异常; 2 掌握自定义异常类的方法。 3 掌握 Java 基础类;熟悉 System 类; 4 掌握字符串的主要功能和使用方法 实验内容 1 编写一个应用程序将二进制数转换成十进制数,并捕获所有可能的异常 2 编写一个应用程序,接受命令行中给出的一个字母串,先将该串原样输出,然后判断该串 的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母输出; 否则输出信息串”第一个字母不是大写字母!”。 提示: (1)命令行参数:java 应用程序能够从命令行接受任何数量的参数,在应用程序被加载的时 候允许用户指定配置信息。该参数是一个字符串数组,用来接收从命令行输入的参数。参数 之间使用空格隔开。Java 解释器会自动处理,把用空格隔开的各个参数通过 args 数组传递 给 main 方法。参数的下标从 0 开始,args[0]表示第一个参数,例:java Test args[0] args[1] args[2]
(2)用到一个方法 charAt,方法定义为 public char charAt(int index), 返回指定索引处的 char 值.无需自己编写,直接调用。例如 String s = “oh come on”;
charAt(0ห้องสมุดไป่ตู้的结果就是'o'了,参数是一个下标,从 0 开始到字符串长度-1
答案:
程序参考如下 1 见书 P129 2 public class Class1 {
public static void main(String {
int count=0; if(args.length!=0)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:基于多线程的Socket通信
班级:计科F1202
姓名:黄浩翔学号:201216010110 实验目的:通过将Socket通信和多线程的知识结合应用,掌握基于多线程的通信设计方法。
实验内容:创建客户端Socket;创建服务器端Socket;建立基于多线程的服务器段监听和数据处理机制;Socket的启动和管理。
实验步骤:
//服务端
package基于多线程Socket通信;
import .ServerSocket;
import .Socket;
public class MultiServer {
public static void main(String args[]) {
ServerSocket server=null;
int count=0;
boolean listening =true;
try{
try{
server =new ServerSocket(6000);
System.out.println("服务器启动:");
} catch (Exception e){
System.out.println("不能接听服务");
}
while(listening){
Socket socket=server.accept();
count++;
System.out.println("Accept "+count+" Client!");
Thread read = new
ReadThread(socket,"[client"+count+"]");
read.start();
}
server.close();
} catch (Exception e){
System.out.println("Error:" + e);
}
}
}
//多线程
package基于多线程Socket通信;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import .Socket;
public class ReadThread extends Thread {
Socket socket=null;
String client;
public ReadThread(Socket socket,String client){
this.socket=socket;
this.client=client;
}
public ReadThread(Socket socket,String side ,int clientnum){
this(socket,side);
}
public void run(){
try{
String line="";
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(line!=null&&!line.equals("bye")){
line =is.readLine();
System.out.println(client+" read :" +line);
}
is.close();
socket.close();
} catch (Exception e) {
System.out.println("Error : " +e);
}
}
}
//客户端
package基于多线程Socket通信;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import .Socket;
public class Client {
public static void main (String args[]){
try{
Socket socket=new
Socket("172.18.69.167",6000);
System.out.println("请输入:");
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new
PrintWriter(socket.getOutputStream());
String readline;
readline =sin.readLine();
while (!readline.equals("bye")){
os.println(readline);
os.flush();
readline= sin.readLine();
}
os.close();
socket.close();
} catch (Exception e){
System.out.println("Error" + e);
}
}
}
实验结果:
实验体会:这次实验让我对多线程通信有了一次直观的认知!。