最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Java程序设计实验2

来源:动视网 责编:小OO 时间:2025-09-29 18:59:00
文档

Java程序设计实验2

学生实验报告册(理工类)课程名称:专业班级:学生学号:学生姓名:所属院部:指导教师:20——20学年第学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次
推荐度:
导读学生实验报告册(理工类)课程名称:专业班级:学生学号:学生姓名:所属院部:指导教师:20——20学年第学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次


学 生 实 验 报 告 册

(理工类)

课程名称:              专业班级:                    

学生学号:              学生姓名:                     

所属院部:              指导教师:                     

20     ——20    学年          第   学期

 金陵科技学院教务处制

实验报告书写要求

实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。

实验报告书写说明

实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。

填写注意事项

(1)细致观察,及时、准确、如实记录。

(2)准确说明,层次清晰。

(3)尽量采用专用术语来说明事物。 

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。

(5)应完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:  面向对象编程实验 实验学时:      8      

同组学生姓名:                   实验地点:             

实验日期:                       实验成绩:             

批改教师:                       批改时间:             

实验1  面向对象编程实验

一、实验目的和要求

(1)理解Java概念、掌握JDK环境配置

(2)熟悉Java开发过程

(3)掌握Java面向对象编程基础:封装、继承、多态

(4)掌握Java接口编程,理解开发模式

二、实验仪器和设备

奔腾以上个人计算机, windows操作系统。

配置好JDK环境,安装集成开发环境(Eclipse)

三、实验内容与过程

    1、JDK环境配置

    2、面向对象的封装性

        范例:设计一个表示学生的类,里面有学生的三项成绩:计算机成绩、数学成绩、英语成绩。要求可以求总分、平均分、最高分、最低分,并且可以输出一个学生的完整信息。 代码如下:

class Student{

    private String name ;

    private int age ;

    private float english ;

    private float computer ;

    private float math ;

    public Student(){}

    public Student(String n,int a,float e,float c,float m){

        this.setName(n) ;

        this.setAge(a) ;

        this.setEnglish(e) ;

        this.setComputer(c) ;

        this.setMath(m) ;

    }

    public float sum(){

        return english + computer + math ;

    }

    public float avg(){

        return this.sum() / 3 ;

    }

    public float max(){

     float max = computer>math?computer:math ;

     max = max>english?max:english ;

        return max ;

    }

    public float min(){

     float min = computer     min = min        return min ;

    }

    public String getInfo(){

        return    "学生信息: \\n" +

                "\|- 姓名:" + this.getName() + "\n" +

                "\|- 年龄:" + this.getAge() + "\\n" +

                "\|- 数学成绩:" + this.getMath() + "\\n" +

                "\|- 英语成绩:" + this.getEnglish() + "\\n" +

                "\|- 计算机成绩:" + this.getComputer() ;

    }

    public void setName(String n){

        name = n ;

    }

    public void setAge(int a){

        age = a ;

    }

    public void setEnglish(float e){

        english = e ;

    }

    public void setComputer(float c){

        computer = c ;

    }

    public void setMath(float m){

        math = m ;

    }

    public String getName(){

        return name ;

    }

    public int getAge(){

        return age ;

    }

    public float getEnglish(){

        return english ;

    }

    public float getComputer(){

        return computer ;

    }

    public float getMath(){

        return math ;

    }

}

public class ExecDemo{

    public static void main(String args[]){

        Student stu = new Student("张三",30,.0f,91.0f,87.0f) ;

        System.out.println("总分:" + stu.sum()) ;

        System.out.println("平均分:" + stu.avg()) ;

        System.out.println("最高分:" + stu.max()) ;

        System.out.println("最低分:" + stu.min()) ;

        System.out.println(stu.getInfo()) ;

    }

}

    对照范例写出如下题目:

(1)编写并测试一个代表地址的Address类,包括以下的属性:国家、省份、城市、街道、邮编。

可以从此地址类中得到一个完整的地址信息。

(2)定义并测试一个代表员工的Employee类。它的属性包括“员工姓名”、“员工号码”、“员工基本薪水”,它的方法包括“构造方法”、“获取员工姓名”、“获取员工号码”、“获取员工基本薪水”、 “设置员工姓名”、“设置员工号码”、“设置员工基本薪水”、所有员工信息的输出getInfo。

(3)、定义一个圆形类,可以返回圆的面积与周长。

    class Circle{

        成员变量  半径 r

        构造方法

        成员函数  设置和获取 半径

               计算周长 

               计算面积

               所有信息输出 

}

定义一个矩形类,返回矩形的面积与周长 

(4)、思考设计:一个人有一本书,一本书属于一个人。

//一个人有一本书,一本书属于一个人

//类 新的类别、类型  定义新的数据类型

//两个类的关系  的两个类  使用

class Person{

    private String name;

    private int age;

    private Book book;  //一个人有一本书

    public Person(){

    }

    public Person(String name,int age){

        this.name=name;

    this.age=age;

    }

    public void setBook(Book book){

    this.book=book;

    }

    public Book getBook(){

    return this.book;

    }

}

class Book{

    private String name; 

    private float price;

    private Person person;    //一本书属于一个人

    public Book(){

    }

    public Book(String name,float price){

    this.name=name;

    this.price=price;

    }

    public void setPerson(Person person){

    this.person=person;

    }

    public Person getPerson(){

    return this.person;

    }

}

public class TestBP{

    public static void main(String args[]){

    Person per=new Person("zhangsan",20);

    Book bok=new Book("Java program",20.0f);

    per.setBook(bok);      //一个人有一本书

    bok.setPerson(per);    //一本书属于一个人 

    per.getBook().getPrice();

    bok.getPerson().getName();

    }

}

3、面向对象的继承性

    范例:要求定义一个数组类Array,里面定义了一个整型数组,但是此整型数组属于动态分配大小,即:所有的大小由程序指定,并在此基础上实现以下的两个子类:

    反转类:可以将数组的内容反转排列

    排序类:可以对数组进行排序的操作

class Array{

    private int temp[] = null ;    // 只是声明数组,但是大小未知

    private int foot = 0 ;        // 用于保存下一个的记录点

    public Array(int len){

     if(len>0){

            this.temp = new int[len] ;    // 此时大小由外部决定

        }else{

            this.temp = new int[1] ;    // 至少开辟一个空间

        }

    }

    public boolean add(int i){        // 加入数据操作

        if(this.foot            this.temp[this.foot] = i ;    // 加入内容

            this.foot++ ;    // 改变长度

            return true ;    // 加入成功返回true

        }else{

            return false ;    // 加入失败

        }

    }

    public int[] getArray(){    // 返回全部的数组

        return this.temp ;

    }

}

class SortArray extends Array{

    public SortArray(int len){

        super(len) ;

    }

    public int[] getArray(){    

        java.util.Arrays.sort(super.getArray()) ;    // 排序操作

        return super.getArray() ;    // 返回的是排序后的内容

    }

}

class ReverseArray extends Array{

    public ReverseArray(int len){

        super(len) ;

    }

    public int[] getArray(){    

        int rt[] = new int[super.getArray().length] ;    // 根据大小开辟新数组

        int count = rt.length-1 ;

     for(int x=0;x            rt[count] = super.getArray()[x] ;

            count-- ;

        }

        return rt ;

    }

}

public class ArrayDemo{

    public static void main(String args[]){

        ReverseArray arr = new ReverseArray(6) ;

        System.out.println(arr.add(3)) ;

        System.out.println(arr.add(23)) ;

        System.out.println(arr.add(1)) ;

        System.out.println(arr.add(5)) ;

        System.out.println(arr.add(6)) ;

        System.out.println(arr.add(8)) ;

        System.out.println(arr.add(11)) ;

        System.out.println(arr.add(16)) ;

        print(arr.getArray()) ;

    }

    public static void print(int i[]){

     for(int x=0;x            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、试着连接其他类型数据库。

四、实验结果与分析(程序运行结果及其分析)

五、实验体会

文档

Java程序设计实验2

学生实验报告册(理工类)课程名称:专业班级:学生学号:学生姓名:所属院部:指导教师:20——20学年第学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top