文档库 最新最全的文档下载
当前位置:文档库 › 《Java语言程序设计》实验指导书

《Java语言程序设计》实验指导书

《Java语言程序设计》实验指导书
《Java语言程序设计》实验指导书

《Java语言程序设计》

实验指导书

太原理工大学

计算机科学与技术学院(软件学院)

目录

实验1 Java语言基础 (1)

实验2 Java面向对象程序设计 (2)

实验3 数组和字符串编程 (4)

实验4 Java异常处理 (5)

实验5 图形用户界面编程 (7)

实验6 多线程编程 (8)

实验7 输入与输出 (11)

实验8 网络编程 (12)

实验9 数据库编程 (13)

实验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 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)实验体会。

实验3 数组和字符串编程

1.实验目的

(1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。

(2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。

2.实验内容

(1)编写一个程序,在控制台输入10个数,按大小顺序输出。

(2)求一个3*3矩阵对角元素之和。

(3)输入一段字符串,统计其中有多少个单词。(单词用空格隔开)3.实验预习

(1)将本章所学内容要点进行整理,并认真体会例题中的编程要领。

(2)写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。

4.实验步骤及结果

实验过程中,注意记录以下内容:

(1) 实验过程中实验步骤及其结果。

(2) 遇到的问题及解决办法。

(3) 实验体会。

实验4 Java异常处理

1.实验目的

掌握异常的概念,以及如何定义、抛出和捕获处理异常。

2.实验内容

(1) 做实验之前要求思考以下问题,作为预习内容;

①错误和异常有何区别?查看Java异常类的关系图。

②异常是如何抛出、捕获和处理的?

③Java捕获和处理异常的结构式怎样的?

④Try语句如何嵌套?Throw语句有何作用?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 zero

int zero=0;

k=911 //zero

break;

case 1://null pointer

int b[]=null;

k=b[0];

break;

case 2; //array index out of bound

int c[]=new int[2];

k=c[9];

break;

case 3: //string index out of bound

char ch="abc".charAt(99);

break;

}

}catch(Exception e){

System.out.println("\nTestcase#"+i+"\n");

System.out.println(e);

}

}

}

}

(3)在实验二中的超市、商品类中创建一个自定义异常类。

编程实现以下简单超市管理,具体要求如下:

1.实现描述超市的类Supermacket类,具有货架属性,记录系统中现有商品,

定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;

2.定义商品类Goods,具有商品名称Name,商品价格Price,商品产地

Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。

3. main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删

除、查询商品、盘点商品,以及商品销售和商品上架的操作

提示:①超市货架可以使用商品数组,数组大小100表明存放100个商品。

②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。

要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。

提示:

①产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。

②确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。

③处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。

④要定义好自己的异常。

3.实验步骤及结果

在实验过程中记录实验步骤及其结构。

4.实验步骤及结果

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验5 图形用户界面编程

1.实验目的

掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。

2.实验内容

(1) 编写一个程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的时间信息。提示:使用showStatus(字符串)方法。

(2) 试设计一窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。

(3) 仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。

3.实验预习

复习本章所学内容,思考以下问题:

(1)Java语言是跨平台的编程语言,那么图形用户界面如何做到跨平台?

(2)AWT有哪些组件和容器?它们各自的使用方法是什么?

(3)AWT的事件处理模型是什么?原理又如何?

(4)什么是Swing?它和AWT比有什么优点?使用上有什么区别?

4.实验步骤及结果

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验6 多线程编程

1.实验目的

(1) 现成的概念、线程的生命周期。

(2) 多线程的编程:扩展Thread类与使用Runnable接口。

(3) 使用多线程机制实现动画

2.实验内容

(1) 运行下面的程序,理解用创建Thread子类的方法实现多线程。//S06_1_Thread.Java

Import java.util.*;

class S06_1_Thread extends Thread {

int pauseTime;

String name;

public S06_1_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[]){

S06_1_Thread tp1=new S06_1_Thread(1000,"Fast");

tp1.start();

S06_1_Thread tp2=new S06_1_Thread(3000,"Slow");

tp2.start();

}

}

(2) 运行下面的程序,理解用实现Runnable接口的方法实现多线程。

//S06_2_Thread.Java

Import java.util.*;

class S06_2_Thread implements Runnable {

int pauseTime;

String name;

public S06_2_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 S06_2_Thread(1000,"Fast"));

t1.start();

Thread t2=new Thread(new S06_2_Thread(3000,"Slow"));

t2.start();

}

}

(3) 创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。

3.实验预习

(1) 将本章所学内容要点进行整理,熟练掌握线程的编程要领。

(2) 写出实验内容中第(3)题程序的源代码,作为预习报告。

4.实验步骤及结果

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验7 输入与输出

1.实验目的

(1) 掌握Java两种基本输入/输出流类的使用。

(2) 掌握Java文件类型的使用。

(3) 掌握文件的输入、输出方法。

2.实验内容

(1) 编写程序,实现从键盘输入字符串并在屏幕上输出。

(2) 利用Java文件类File的方法,获取磁盘文件的文件名、长度、大小等特性。

(3) 编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。

(4)编写一个程序,比较两个文件的内容是否相同。

(5)编写一个程序,求2~200之间的素数,并将结果保存在文件prime.dat中。再从该文件中读取内容并在屏幕上显示出来。

3.实验预习

(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中的源代码,作预习报告。

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决方法。

(3)实验体会。

实验8 网络编程

1.实验目的

(1)掌握TCP编程:Socket的概念和编程方法。

(2)掌握URL类的使用:URL的概念和编程。

2.实验内容

(1)使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。

(2) 使用Socket编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机。

(3)设计图形用户界面的客户端程序和服务器端程序,实现客户端读取服务器段内容,要求支持客户端的多线程操作。

3.实验预习

(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中第(2)、(3)题程序的源代码,作为预习报告。

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验9 数据库编程

1.实验目的

(1) 了解JDBC的概念和工作原理。

(2) 掌握使用JDBC实现简单的数据库管理。

2.实验内容

(1) 建立一个student表的结构,字段包括学号、姓名、性别、年龄、班级等。

(2) 配置ODBC数据源,假设在本例中,数据源的名字是“Vtest”。

(3) 编写程序,使其可以通过图形界面向“student”表中增加数据记录。

(4) 编写程序,在“student”表中分别查询所有记录以及满足条件“年龄>18”的记录。

3.实验预习

(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中所用程序的源代码,作为预习报告。

4.实验步骤及结果

实验过程中,注意记录以下内容:

(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

本科实验报告

课程名称:JA V A语言程序设计实验实验项目:(名称)

实验地点:

专业班级:学号:

学生姓名:

指导教师:

2016年月日

算法设计与分析实验指导2014版

算法分析 设计与实验 王 源 二0一四年十月

实验一:分治算法及其应用 实验要求: 掌握分治算法的原理. 掌握递归算法及递归程序的设计. 能用程序设计语言设计求解典型问题的算法 实验题: 1、棋盘覆盖问题:在一个2k ×2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。用图示的4种不同形态的L 型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L 型骨牌不得重叠覆盖。 2、最近对问题:设p 1=(x 1,y 1), p 2=(x 2,y 2), …, p n =(x 1,y 1),是平面上n 个点构成的集合S ,最近对问题就是找出集合S 中距离最近的点对。 3、(选作)最大子段和问题:给定由n 个整数(可能有负整数)组成的序列(a 1, a 2, …, a n ), 最大子段和问题要求该序列形如 的最大值(1≤i ≤j ≤n ),当序列中所有整数均为负 整数时,其最大子段和为0。例如,序列(-20, 11, -4, 13, -5, -2)的最大子段和为 。 ∑=j i k k a ∑==4 220 k k a

实验要求: 基本动态规划法的原理方法; 能用程序设计语言实现求解背包问题的算法 实验题: 1、最长公共子序列问题:对给定序列X=(x1, x2,…, xm)和序列Z=(z1, z2,…, zk),Z是X的子序列当且仅当存在一个递增下标序列(i1, i2,…, ik),使得对于所有j=1, 2, …, k,有(1≤ij ≤m)。给定两个序列X和Y,当序列Z既是X的子序列又是Y的子序列时,称Z是序列X 和Y的公共子序列最长公共子序列问题就是在序列X和Y中查找最长的公共子序列。 2、(选作)多段图的最短路径问题:设图G=(V, E)是一个带权有向图,如果把顶点集合V 划分成k个互不相交的子集Vi (2≤k≤n, 1≤i≤k),使得E中的任何一条边(u, v),必有u∈Vi,v∈Vi+m (1≤i≤k, 1<i+m≤k),则称图G为多段图,称s∈V1为源点,t∈Vk为终点。多段图的最短路径问题求从源点到终点的最小代价路径。 3、

算法分析与设计实验指导书

《算法分析与设计》实验指导书本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。 实验报告应包括: 1)问题分析 2)算法描述 3)运行结果、 4)算法性能分析。 实验一 实验名称:贪心算法应用及设计 实验学时:6学时 实验类型:验证 实验目的: 1.理解贪心算法的基本思想 2.掌握利用贪心算法求解问题的求解步骤 实验容 1.活动选择问题(2学时) 问题描述: 设有11个会议等待安排,用贪心法找出满足目标要求的会议集合,这些会议按结束时间的非减序排列如下表。 实验实现提示: 1)数据结构设计: 将会议开始时间存储在数组B中,结束时间存储在数组E中,数组下标为会议的代码。结果存储在数组A中,其元素A[i]==true,表示会议i被选中。 2)算法: void GreedySelect(int n, struct time B[], struct time E[], bool A[]) { int i,j;

A[1]=true; j=1; i=2; while( i<=n) if (B[i]>=E[j]) { A[i]=true; j=i;} else A[i]=false; } 思考题:证明所得的解是最优解? 2.单源点最短路径问题。(2学时) 问题描述 如图所示的有向带权图中,求源点0到其余顶点的最短路径及最短路径长度。并对算法进行性能分析。 实现提示 1)数据结构设计: 将图存储在邻接矩阵C中,结点个数为n,源点编号为u, 源点u到其余顶点的最短路径长度存储在dist[],最短路径存储在p[]。 2) 算法 void Dijkstra(int C[n][n], int n,int u,float dist[],int p[]) { bool s[n]; for( int i=1; i<=n; i++) { dist[i]=C[u][i]; s[i]=false; if (dist[i]=∞) p[i]=-1; else p[i]=u; } p[u]=-1; s[u]=true; for( i=1; i<=n; i++) { int temp= ∞; int t=u; for( int j=1;j<=n;j++)

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

《算法设计与分析》实验指导

《算法分析与设计》实验指导.

实验一锦标赛问题 [实验目的] 1.基本掌握分治算法的原理. 2.能用程序设计语言求解锦标赛等问题的算法; [预习要求] 1.认真阅读数据结构教材和算法设计教材,了解分治算法原理; 2.设计用分治算法求解背包问题的数据结构与程序代码. [实验题] 【问题描述】设有n=2k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能参赛一次; (3)循环赛在n-1天内结束。 请按此要求将比赛日程表设计成有n行和n-1列的一个表。在表中的第i行,第j列处填入第i个选手在第j天所遇到的选手。其中1≤i≤n,1≤j≤n-1。 [实验提示] 我们可以按分治策略将所有的选手分为两半,则n个选手的比赛日程表可以通过n/2个选手的比赛日程表来决定。递归地用这种一分为二的策略对选手进行划分,直到只剩下两个选手时,比赛日程表的制定就变得很简单。这时只要让这两个选手进行比赛就可以了。 1 2 3 4 5 6 7 1 (1)(2)(3) 图1 2个、4个和8个选手的比赛日程表 图1所列出的正方形表(3)是8个选手的比赛日程表。其中左上角与左下角的两小块分别为选手1至选手4和选手5至选手8前3天的比赛日程。据此,将左上角小块中的所有数字按其相对位置抄到右下角,又将左下角小块中的所有数字按其相对位置抄到右上角,这

样我们就分别安排好了选手1至选手4和选手5至选手8在后4天的比赛日程。依此思想容易将这个比赛日程表推广到具有任意多个选手的情形。 [实验步骤] 1.设计并实现算法并准备测试用例,修改并调试程序,直至正确为止; 2.应用设计的算法和程序求锦标赛问题; 3.去掉测试程序,将你的程序整理成功能模块存盘备用. [实验报告要求] 1.阐述实验目的和实验内容; 2.阐述分治算法原理; 3.提交实验程序的功能模块; 4.记录最终测试数据和测试结果。 [思考与练习] 【金块问题】老板有一袋金块(共n块,n是2的幂(n>=2)),将有两名最优秀的雇员每人得到其中的一块,排名第一的得到最重的那块,排名第二的雇员得到袋子中最轻的金块。假设有一台比较重量的仪器,请用最少的比较次数找出最重和最轻的金块。

数据结构与算法实验指导书

数据结构与算法》实验指导书 实验1 顺序表 一、实验目的 ( 1)掌握顺序表的逻辑结构、存储结构及描述方式。 ( 2)掌握顺序表的定位、插入、删除等操作。 二、实验要求 ( 1)调试程序要记录调试过程中出现的问题及解决办法; ( 2)给出每个问题的算法或画出流程图; ( 3)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验; ( 4)做完实验后给出本实验的实验报告。 三、实验设备、环境 奔腾以上计算机,装有 Turbo C 2.0 或 Visual C++ 软件 四、实验步骤及内容 实验步骤: 1.根据题目,编写程序。 2.上机调试通过。 3.按照金陵科技学院实验报告格式,撰写各实验报告。 实验内容: (1)编写一个函数 print_all_data ,该函数的作用是逐个输出顺序表中所有数据元素的值。编写主函数,从键盘输入顺序表,调用函数 print_all_data ,测试结果。 (2)编写顺序表定位操作函数 locata ,该函数的作用是在顺序表中查找是否存在数据元素的值与变量 x 的值相等。如果存在满足条件的数据元素,则返回顺序表中和 x 值相等的第 1 个数据元素在表中的下标;如果不存在,则返回- 1 。编写主函数,从键盘输入顺序表,以及变量 x 的值,调用函数 locate ,测试结果。 (3)编写一个函数 insert ,该函数的作用是在递增有序的顺序表中插入一个新结点x,要求保持顺序表的有序性,输出插入前后顺序表状态。编写主函数,从键盘输入顺序表以及变量 x 的值,调用函数 insert ,测试结果。 (4)编写一个函数 delete ,该函数的作用是删除顺序表中所有等于 X 的数据元素。若顺序表中没有满足条件的数据元素,则输出合适的信息。若有满足条件的数据元素,则输出删除前后顺序表状态。编写主函数,从键盘输入顺序表以及变量 x 的值,调用函数

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

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,可以从https://www.wendangku.net/doc/8f4434120.html,上进行下载。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。 2.安装J2SE源代码编辑工具Edit Plus 教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java原程序的常用命令的用法。 3.编写并编译、运行一个Java Application程序。 创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。 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 + "-" + month + "-" + year); 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:}

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

Java实验指导书

《Java程序设计》课程实验指导书软件学院网络工程系

实验一 Java开发环境的安装与配置,熟悉Java程序 结构 一、实验目的: 1. 掌握JDK的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。 3. 熟悉Editplus(或TextPad,JCreator)编辑环境,编写简单的 Application程序和Applet程序,并编译和执行。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 4. 写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1.从https://www.wendangku.net/doc/8f4434120.html, 上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Editplus(或JCreator ,Textpad)环境下编写一个HelloWorld.jav a程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序) 4.在Editplus(或JCreator ,Textpad)环境下编写一个 HelloWorldApplet.java程序。 (1)在public void paint(Graphics g)方法中调用g.drawString()方法,使

算法设计与分析实验指导书样本

算法设计与分析实验指导书

实验一 C/C++环境及递归算法( 4学时) 一、实验目的与要求 1、熟悉C/C++语言的集成开发环境; 2、经过本实验加深对递归过程的理解 二、实验内容: 掌握递归算法的概念和基本思想, 分析并掌握排列问题的递归算法和Hanoi塔问题的递归算法。 三、实验题 1、设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。任意输入一 串整数或字符, 输出结果能够用递归方法实现整数或字符的全排列。 2、设a,b,c是3个塔座。开始时, 在塔座a上有一叠共n个圆盘, 这些圆 盘自下而上, 由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上, 并仍按同样顺序叠置。 四、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。 实验提示 1、 #include inline void swap(int &a,int &b) { int temp=a; a=b;

b=temp; } void perm(int list[],int k,int m) { if(k==m) { for(int i=0;i<=m;i++) cout<

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

计算方法实验指导书.

计算方法 实 验 指 导 书 彭彬 计算机技术实验中心 2012年3月

· 实验环境: VC++ 6.0 · 实验要求:在机房做实验只是对准备好的实验方案进行验证,因此上机前要检查实验准备情况,通过 检查后方可上机。没有认真准备的学生不能上机,本次实验没有分数。实验中要注意考察和体会数值计算中出现的一些问题和现象:误差的估计,算法的稳定性、收敛性、收敛速度以及迭代初值对收敛的影响等。 · 关于计算精度:如果没有特别说明,在计算的过程中,小数点后保留5位数字,最后四舍五入到小数 点后四位数字。迭代运算的结束条件统一为 51 102 -?。在VC++ 6.0中,可使用setprecision 在流的输出中控制浮点数的显示(缺省显示6位)。演示如下: # include # include # include //输出6位精度,输出左对齐 cout<

《Java程序设计》实验指导书_2017计算机(new)

《Java程序设计》实验指导书 实验一Java开发环境的安装与配置 一.实验目的 1.掌握JDK的安装步骤(有条件的话可以在Linux系统下安装)。 2.理解环境变量PA TH, CLASSPATH的作用,以及它们的设置方法(Win98和 Win2000/XP下的不同设置方法)。 3.熟悉TextPad(或JCreator)编辑环境,编写简单的Application程序,并编译和解 释执行。 4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 二.实验内容 1.下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Textpad(或JCreator)环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。 4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。 5.实验时,在计算机中建立分别如下目录:D:\学号\src和D:\学号\class,分别用来放置Java源文件和编译后的字节吗文件(注:每位同学分别用自己的学号建立目录)。 6. 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列 要求: (1)Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。 (2)Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。 (3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。 (4)Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D 的平移。 (5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。 (提示:https://www.wendangku.net/doc/8f4434120.html,ng.Math.sqrt()方法) 三.思考题 1.什么是JVM,它的作用是什么? 2.如何理解PA TH和CLASSPATH,,如何设置它们。

数据结构-实验指导书

《数据结构》实验指导书 计算机专业实验中心编 2020年5月25日

目录 《数据结构》上机实验内容和要求 ................................................................... 错误!未定义书签。实验一、顺序表的实现及应用 ........................................................................... 错误!未定义书签。实验二、链表的实现及应用 ............................................................................... 错误!未定义书签。实验三、栈的实现及应用 ................................................................................... 错误!未定义书签。实验四、队列的实现及应用 ............................................................................... 错误!未定义书签。实验五、二叉树操作及应用 ............................................................................... 错误!未定义书签。实验六、图的遍历操作及应用 ........................................................................... 错误!未定义书签。实验七、查找算法的实现 ................................................................................... 错误!未定义书签。实验八、排序算法的实现 ................................................................................... 错误!未定义书签。

java语言程序设计课后习题答案

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; =str2); ; public class Exercise51{ public static void main(String[] args) throws IOException{ "请输入一个整数:"); InputStreamReader isStream=new InputStreamReader; BufferedReader bfReader=new BufferedReader(isStream); String input=(); int length=()-1; int n=new Integer(input).intValue(); while(length>=0){ int divisor=(int) (10,length); length=length-1; int output=n/divisor; n=n%divisor; ","); } } } 法二:(建议使用) public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10%10; unit=n%10; "1678包含的数字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } ;

《java程序设计》实验指导书(完整)

实验一 Java实验环境的建立一、实验目的 1.掌握Java编程环境的搭建过程; 2.掌握Jcreator pro软件的使用方法; 3.能使用Java doc文档。 二、实验内容 1.下载并安装,配置JDK环境变量; 2.下载Javadoc压缩包并解压在JDK安装路径下; 3.下载Jcreator pro 并安装和配置使用环境; 4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。 ①Java application程序代码如下: public class HelloJava { public static void main(String args[]) { "Hello Java!"); } } ②Java applet程序代码如下: import .*; public class Hello extends { public void paint(Graphics g) { ("Hello!",30,30); } } 三、试验要求 1、预习试验内容并写出上机报告。 2、实验中出现的问题及实验体会。

一、实验目的: 1.输入、输出操作实现原理和方法 2.掌握程序流程控制的实现方法 3.掌握数组的定义和操作方法 二、实验内容 1.计算 Result=1!+2!+3!+ (10) public class TestJieC{ p ublic static void main(String arg[]){ long result=1; for(int i=1;i<=10;i++) { result=i*result; result+=result; } " "+result); } } 2.计算1---50之间所有素数的和。 public class Test{ p ublic static void main(String args[]){ int count = 0; for(int i = 2;i<=50;i++){ for(int j = 2;j<=i;j++){ if(i>j){ if(i%j == 0){ count++; } } } if(count==0){

算法设计与分析实验报告 统计数字问题

算法设计与分析实验报告 实验名称统计数字问题评分 实验日期年月日指导教师 姓名专业班级学号 一.实验要求 1、掌握算法的计算复杂性概念。 2、掌握算法渐近复杂性的数学表述。 3、掌握用C++语言描述算法的方法。 4.实现具体的编程与上机实验,验证算法的时间复杂性函数。 二.实验内容 统计数字问题 1、问题描述 一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2, (9) 2、编程任务 给定表示书的总页码的10 进制整数n (1≤n≤109) 。编程计算书的全部页码中分别用到多少次数字0,1,2, (9) 三.程序算法 将页码数除以10,得到一个整数商和余数,商就代表页码数减余数外有多少个1—9作为个位数,余数代表有1—余数本身这么多个数作为剩余的个位数,此外,商还代表1—商本身这些数出现了10次,余数还代表剩余的没有计算的商的大小的数的个数。把这些结果统计起来即可。 四.程序代码 #include int s[10]; //记录0~9出现的次数 int a[10]; //a[i]记录n位数的规律 void sum(int n,int l,int m) { if(m==1) {

int zero=1; for(int i=0;i<=l;i++) //去除前缀0 { s[0]-=zero; zero*=10; } } if(n<10) { for(int i=0;i<=n;i++) { s[i]+=1; } return; }//位数为1位时,出现次数加1 //位数大于1时的出现次数 for(int t=1;t<=l;t++)//计算规律f(n)=n*10^(n-1) { m=1;int i; for(i=1;i

算法实验指导书

算法设计与分析实验指导书 信电工程学院 2015.7

算法设计与分析 一.实验目的 算法设计与分析是计算机相关专业的核心课程之一。本实验加深学生对算法设计的基本策略、主要方法及实验过程的理解;培养学生针对具体的问题,选择合适的数据结构和设计结构清晰、正确有效的算法的能力。 二.实验内容 E05210801 算法概述 E05210802 分治法 E05210803 动态规划 E05210804 贪心法 E05210805 回溯法 E05210806 分支限界法 E05210807 NP完全问题 E05210808 近似算法 三.实验方法 本课程所有实验均需上机进行,每个实验都有明确的实验目的,并根据实验要求提供实验题。每位同学通过独立思考、与同学讨论、老师辅导答疑相结合的方法完成相应的实验题,在对题目进行分析、选择有效的方法、编程及测试的过程中,将达到加深学生印象、锻炼学生运用书本知识实际解决问题的能力。 四. 实验要求 学生按照实验要求,上机前写好上机实验预习报告。 上机实验时按实验要求完成每一个实验的内容。 认真书写实验报告,内容包括:实验的目的、实验原理、实验内容、实验步骤、实验结果等。

实验一算法概述 1. 实验目的 (1) 复习数据结构课程的相关知识,实现课程间的平滑过渡; (2) 掌握并应用算法的数学分析和后验分析方法; (3) 理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。 2. 实验内容 求两个自然数m和n的最大公约数。 3. 实验要求 (1) 至少设计出三个版本的求最大公约数算法; (2) 对所设计的算法采用大O符号进行时间复杂性分析; (3) 上机实现算法,并用计数法和计时法分别测算算法的运行时间; (4) 通过分析对比,得出自己的结论。

相关文档
相关文档 最新文档