java程序设计实验指导(精选8篇)
java程序设计实验指导 篇1
...《Java程序设计》课程实验指导书
合肥学院计算机系
实验一 Java开发环境的安装与配置,熟悉Java程序
结构
一、实验目的:
1.掌握JDK的安装步骤。
2.理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。3.熟悉Editplus 或Eclipse(或TextPad,JCreator)编辑环境,编写简单的Application程序和Applet程序,并编译和执行。
二、实验内容:
熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息);
三、实验要求:
1.能正确地安装JDK 2.熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3.调试程序、编译,运行后得到正确的结果
4.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
四、实验步骤:
1.从http://java.sun.com 上下载最新版本的JDK,并安装。
2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。3.在Eclipse(或JCreator,Textpad)环境下编写一个HelloWorld.java程序,(1)在主方法static public void main(String[ ] args)中调用System.out.println()方法,使程序输出一条问候信息;
(2)编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用javac.exe和java.exe编译和执行程序)
4.在Eclipse(或JCreator,Textpad)环境下编写一个HelloWorldApplet.java程序。
(1)在public void paint(Graphics g)方法中调用g.drawString()方法,使 程序输出一条问候信息;
(2)编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用javac.exe编译和浏览器解释执行Applet程序)
实验二 Java语言基础
一、实验目的:
熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。
二、实验内容:
1.编写Java Application程序,输出1900年到2000年之间的所有润年。(闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.编写Java Appet 程序打印 “水仙花” 数(它的个、十、百位数字的立方的和等于该数本身,如:153=1^3+5^3+3^3)3.编写Java Application程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!...的前20项和
三、实验要求:
1.正确使用Java语言的选择语句,循环语句; 2.调试程序、编译,运行后得到正确的结果
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成示,并给出解决办法。
四、实验步骤:
1.编写主类;
2.在static public void main(String[ ] args)方法中加入实现要求功能的代码,主要步骤如下:
(第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。
(第二题)编写Java Applet, 在public void paint(Graphics g)方法中加入实现要求功能的代码, 主要步骤是:从100到1000循环,判断每个数是否符合水仙花数的特点,是则输出之。3.编译运行程序,观察输出结果是否正确。
五、自做实验
1.输出100以内的所有素数。提示: 逐个判断小于a的每个正整数x,第二重循环针对x,判断其是否是质数。
2.将所输入之正整数,以二、八、十六进制表示出来。提示: 可写三个方法分别计算输出二、八、十六进制表示。
实验三 类和对象
一、实验目的:
掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现; 掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法;
掌握类变量与实例变量,以及类方法与实例方法的区别。
三、实验内容:
1.定义一个学生类(Student),属性有private的名字(name), public的年龄(age),专业(specialty)和封装name属性的方法:setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字name和年龄age)。(学生类仅包含静态成员变量和方法。)2.定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。
3.定义一个复数(z=x+iy)类Complex,包含:
两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j)显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2)求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2)求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部 交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2)比较两个复数是否相等的方法(参数是两个复数类对象,返回值是boolean类型)public boolean equalComp(Complex C1,Complex C2)在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。
三、实验要求:
1.正确地定义类、方法和属性;2.学会方法的参数传递和返回值的用法; 3.熟练使用类及其成员修饰符 4.使用构造函数创建类的对象;
5.类变量与实例变量,以及类方法与实例方法的使用 6.程序应包括各个被调用方法的执行结果的显示。
7.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)定义一个学生类(Student)及它的属性和方法;定义主类和main(),在main()方法中创建学生对象,并通过对象调用它的方法setName(),getName(),输出学生的名字name和年龄age。
2.(第2题)定义类Point及它的属性、方法和构造函数,定义主类和main(),在main()方法中创建两个坐标对象,,并通过对象调用getMiddle方法后得到一个新的点坐标,调用show()显示该对象的坐标值。3.(第3题)定义一个复数(z=x+iy)类Complex,及它的属性、方法和构造函数;定义主类和main()方法,在main()方法中创建两个复数类Complex对象,并通过复数类对象调用它们的属性和方法,输出方法执行结果。
五、自做实验
1.构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。
2.编写实现:有一个三角形类Triangle,成员变量有底边x和另一条边y,和两边的夹角a(0
3.编写实现: 构造函数为 Triangle(int xx,int yy,int aa)参数分别为x,y,a赋值 在main方法中构造两个对象,求出其面积,然后使用修改角度的方法,修改两边的夹角,再求出面积值。(提示:求高的方法 h=y*Math.sin(a))注意:构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。
实验四 java继承与多态
一、实验目的:
掌握继承、多态的概念与实现方法;
掌握包和接口的定义和使用方法;
了解JAVA语言实现多继承的途径;
二、实验内容:
1.分别编写两个类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,打印出它们之间的距离,再实例化两个Point2D的对象p3d1,p3d2,打印出他们之间的距离。
2.定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类 Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,调用showArea方法。
定义接口DiagArea,其中包含方法double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成 员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主方法里使用测试该类。
三、实验要求:
1.能实现类的继承关系;
2.用多种方法创建各个类的对象;
3.程序应包括各个被调用方法的执行结果的显示。
4.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)定义Point2D,及定义它的属性和方法;
定义子类Point3D,及定义它的属性和方法;在Point3D中的主函数main()中实例化两个Point2D的对象,并通过这两个对象调用它们的属性和方法,输出方法执行结果。
2.(第2题)定义抽象类Shape,抽象方法为showArea(),再定义矩形类Rectangle,正方形类Square,圆类 Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用showArea方法;定义接口DiagArea,其中包含方法double getDiagonal(),在主main方法中输出方法执行结果。
六、自做作实验
1.定义一个描述人的基本类,该类包括人的性别和出生日期两个数据成员,以及设置和获取这些属性值的方法成员;再定义一个大学生类,使大学生类具有人的所有属性外,还具有姓名、学号,大学入学成绩,籍贯属性以及设置和获取这些属性值的方法成员;编写完整的程序,完成一个具有班级学生信息管理功能的程序。
2创建一个接口Shape,其中有抽象方法area,类Circle、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle 10 对象;如是2,生成Rectangle对象;如是3,生成Star对象)。然后将Vector中元素依次取出,判断其是否为Star类。如是返回其是个Star。否则返回其面积。
3..学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。
1)设计两个信息管理接口StudentManageInterface和TeacherManageInterface。其中,StudentInterface接口包括setFee()方法和getFee()方法,分别用于设置和获取学生的学费;TeacherInterface接口包括setPay()方法和getPay()方法,分别用于设置和获取教师的工资
2)定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。
3)创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。提示:
1)定义两个接口,分别在其中申明两个方法。2)定义主类Graduate,实现这两个接口。3)定义主类的成员变量,和构造方法。
4)给出四个接口方法的实现。5)给出一个计算是否需要贷款的方法,在里面统计年收入和学费,并输出是否需要贷款的信息。
6)写main方法。在其中创建一个姓名为“zhangsan”的研究生,调用计算是否需要贷款的方法。4.书后练习
实验五 Java的异常处理
一、实验目的:
理解 java 语言中独特的异常处理机制;掌握异常处理方法;正确地使用捕获异常和声明抛弃异常的两种异常处理的方法;了解自定义异常类的使用;理解抛出异常和声明抛出异常的区别与联系;
二、实验内容:
1. 从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。
2.写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
3.自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
三、实验要求:
1.通过实验掌握捕获异常和声明抛弃异常的两种异常处理的方法; 2.程序必须能够捕获Integer.parseInt()产生的异常并作相应的处理; 3.程序必须能够将处理的相应的信息输出出来;
4.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)使用try„..catch„.finally语句对Integer.parseInt()产生的异常进行捕获处理;2.(第2题)定义方法void sanjiao(int a,int b,int c)中,不符合条件则抛出异常(if a+b<=c(或a+c<=b,b+c<=a)then throw new IllegalArgumentException(),),再定义main方法,调用此方法,用try„..catch„.finally语句并捕获异常;3.(第3题)定义三角形类及相应的方法, 在定义的方法中对不符合条件则抛出异常(如上题),再定义main方法,对正确的数据输出正确信息,否则捕获异常;
五、自做实验
1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。[提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试] public class StringIndexOutOf{ public static void main(String args[]){ System.out.println(“字符串索引越界异常”);String str=args[0];System.out.println(“第四个字符为 ”+str.charAt(3));int aa=Integer.parseInt(args[0]);
System.out.println(“
平
方为 ”+aa*aa);} }
实验六 Java数组、字符串及常用类应用
一、实验目的:
掌握数组的定义和使用方法;熟悉数组的排序、查找等算法。掌握字符串的使用方法。
二、实验内容:
1.编写Application程序, 从命令行参数输入10个整数并保存在数组中,求数组中最大、最小、数据的和、平均值。
2.从命令行参数一日期,如“2005-5-6”,计算与今日之间的天数间隔。3.将命令行第一个参数每个字符放入一字符数组,然后逆序输出
4.编写Application程序,接受用户输入一段英文文字后,输出其中的字符数、单词数和句子数(设句子以“?”、“!”、“.”结束)。5.打印杨辉三角的前10层。
6.编写Applet程序,使用 *画一条正弦曲线(提示:y=a* sin(x),坐标要取整)
三、实验要求:
1.熟练对象数组及创建初始化和未初始化的数组的方法;2.熟悉从命令行参数的使用;3.熟悉String 和StringBUFFER的使用方法 4.熟悉常用类库的使用;5.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1(第1题).从命令行输入10个数到数组,用循环语句分别求最大、最小、数据的和、平均值。
2.(第2题)利用String类的各种方法,分别判断字符是否为“?”、“!”、“.”,用3个计数器分别计数。
3(第3题)将命令行第一个参数字符串中的每个字符作为数组元素放入一字符数组,再循环语句逆序数组元素。
4.(第4题)定义一个二维数组,第一维的长度为所打印杨辉三角的层数(即 10),第二维为每一层的数据个数(也就是其所在的层数)。(第5题)利用Math类中sin函数,在Paint()方法中用Graphics类drawString()画一条正弦曲线.五、自做实验
1.求Fibonacci序列的前n项,要求:
在main方法中定义一数组,数组的长度n为一final定义的常量,使用一单独方法,无返回值,参数为一数组,在方法中给数组赋予序列的值,在main方法中调用该方法,然后打印结果数组的内容
2.声明一个矩阵类Matrix,成员变量是一个二维数组,设数组元素类型为int,请设计方法:(1)构造方法:
Matrix()//构造一个10X10个元素的矩阵,没有数据
Matrix(int n,int m)//构造一个nXm个元素的矩阵,数据由随机数产生 Matrix(int table[][])//以一个整型的二维数组构造一个矩阵 要求使用 this(2)实例方法:
public void output()//输出Matrix类中数组的元素值 public void transpose()//输出一个矩阵的转置矩阵 2.随机数求法:
Math.random()返回0-1的小数,由上题中的Matrix类派生出正方形Square类,在构造方法中调用父类的构造方法(使用super)。
3.编写一个Java程序,完成以下功能:
(1)声明一个名为s的String对象,并使它的内容是“My name is Carrol”;(2)打印整个字符串;(3)打印字符串的长度;(4)打印字符串的第一个字符;(5)打印最后一个字符;(6)打印字符串的第一个单词。
*4.编写一个程序,用散列表实现学生成绩单的存储和查询,并将若干个查 15 询结果存放到一个向量中,通过循环将向量对象内容逐个输出。*5.从命令行读入一浮点数值,将其转化为中文金额的大写方式,如123.45,转化为:壹佰贰拾叁元肆角伍分,中间有多个0只要一个零。*6.利用Vector对象改写上面的程序,输入元素个数由用户自由确定。
实验七 图形用户界面与事件处理机制
(一)一、实验目的:
掌握Java图形组件和布局管理器的使用; 掌握使用Java事件处理机制的使用。
掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。
二、实验内容:
1.编写Application程序,在Frame中加入2个按钮(Button)和1个标签(Label),单击两个按钮,显示按钮的标签于Label。
2.在Applet中加入1个文本框,1个文本区,每次在文本框中输入文本,回车后将文本添加到文本区的最后一行。
3.在Applet中加入2个复选框,显示标题为“学习”和“玩耍”,根据选择的情况,分别显示“玩耍”、“学习”、“劳逸结合”。
4.在Applet中加入1个滚 动列表框List、1个下拉列表框Choice和1个按钮,点击按钮将List中的项目移到Choice组件中,5.编写Application程序,在Frame中加入80个按钮,分20行4列,用GridLayout布局方式,按钮背景为黄色(Color.yellow),按钮文字颜色为红色(Color.red)。
6.设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
三、实验要求:
1.采用布局管理器进行界面的布局; 2.学会对不同的事件用相应的事件处理器;
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.运用一种或多种布局管理器,绘制出一个简单的计算器;
2.为按钮注册事件监听器,使其点击按钮,并在显示区域同步显示当前输入或运算结果;
3.编译运行程序,检查计算器的正确性;
五、自做实验
1.学生可以视个人情况完成更复杂更完善的计算器功能,通过多种布局管理方法实现更美观的界面布局。
2.编写Applet程序,在控制按钮程序中,实现播放音乐,显示图片等操作。3.编写Java Applet程序,使它在浏览器中通过响应功能按钮的点击事件绘制各种简单的几何图形(矩形、圆形、扇形、多边形和他们的填充效果),并且能够通过接收传递参数控制图形的绘制。
4.在Applet中做2个按钮,点击它们,分别画一个填充的蓝矩形和粉红色圆,位置随机,并统计每个按钮点击的次数
实验七 图形用户界面与事件处理机制
(二)一、实验目的:
掌握菜单、弹出式菜单设计。会处理事件以及设置输入对话框。
了解对文本域JTextArea中字符进行复制和粘贴的操作。
二、实验内容:
1.在窗口中建立菜单和弹出式菜单,”文件”中有”打开”项目,点击后弹出文件对话框,在界面中的1个文本框中显示打开的文件名。
*2.设计一个JAVA程序模仿记事本(NotePad)的部分功能,界面如下图。
三、实验要求:
1.学会建立菜单和弹出式菜单;
2.学会文件对话框的使用;对不同的事件用相应的事件处理器; 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)从打开文件对话框中获取文件名,将文件名放入文本框。2.(第2题)新建文件时,文本域为空;打开文件和保存文件时要给出输入对话框,输入相应文件名后进行操作;选择退出菜单将退出整个程序。
再对文本域中选中的字符能够进行复制和粘贴操作。3.编译运行以上程序
五、自做实验:
1.利用所学的Java语言知识,完成一个实现秒表功能的Applet程序。它的GUI界面如下所示: 利用所学的Java语言知识,完成一个实现秒表功能的Applet程序。它的GUI界面如下所示:
要求该程序能够完成以下功能:
(1)在界面上方的文本框中,按照“小时:分钟:秒”的顺序实时显示系统时间;
(2)当按下界面中间的“Current Time:”按钮时,当前系统时间能够在界面下方的文本框中显示出来。
提示:可以通过调用java.util.Data类的方法,获得系统时间。Data类的接口如下所示,public class Date {
// 返回当前系统时间的小时值
public String getHours(){ „}
// 返回当前系统时间的分钟值
public String getMintues(){ „ }
// 返回当前系统时间的秒钟值
public String getSeconds(){ „}
„
} 2.编写一个计算器程序,只有加减乘除功能,当作Applet运行。
3.编写一个Applet程序:画图
要求:界面上有2个按钮,一个为标签为“椭圆”,另一个为“矩形”,点击后分别画红色的椭圆和蓝色的矩形,其宽度为100、高度为60,左上角顶点坐标为(50,50),试写出完整程序,并且要写出其对应的HTML文件代码。
实验八 Applet类及应用
一、实验目的:
掌握applet的程序结构和运行方式;掌握从html文档向Java Applet传递参数的方法;了解applet程序的生命周期;掌握在Applet中对字体、颜色、播放声音、显示图像和动画控制方法;
二、实验内容:
1.编写Applet程序,改变applet窗口大小,使其最大化、最小化,查看init()、start()、paint()、和destroy()方法的执行情况(执行顺序和执行次数)。2. 编写Applet显示字符串,显示字符串及其显示位置,字体、字体大小和颜色通过HTML文件中的参数来传递。
3.编写Applet(大小140*60),其背景色为蓝色,画一个长方形(其填充色为pink,各边离边小于10像素)和一个在填充的长方形中左右移动的小球(半径15)。
4.实现一个Applet,显示一幅图片。不停地运行一个动画。
三、实验要求:
1.必须编写成Java Applet程序;
2.能够通过传递参数控制一种或者几种图形的绘制;
3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。(附运行界面、源代码)。
四、实验步骤:
1.(第1题)在paint()方法中,绘制init()、start()、paint()、和destroy()方法的执行次数的直方图。
2.(第2题)在HTML文件中添加参数传递的代码:
„„
在init()方法中,调用getParameter()获取由HTML传递的参数,再按照要求,在paint()方法中调用Graphics类中drawString()函数显示 字符串。
3.(第3题)在paint()方法中调用Graphics类中drawString()函数时,X坐标定义成变量(10〈=X〈=120),4.(第4题)在init()方法中,根据指定的位置获取一系列图片类对象放入数组,再循环显示系列图片就形成动画。5.运行、检查和调试 以上各程序。
五、自做实验
1.编写Applet,访问并显示指定URL地址处的图像和声音资源。2.编写Applet,访问并显示指定URL地址处的一组图像构成的动画。3.编写Applet,接收用户输入的网页地址,并与程序中事先保存的地址相比较,若存在则打开网页,并在新打开的浏览器窗口显示*编写一个Applet程序,显示一个圆心在Applet的中心,半径从0到100像素不断变大的绿色球的动画。
4.在Applet中画矩形,要求矩形做上角点坐标(20,20),高度为400*200,上下左右边设为蓝色、矩形填充色为绿色,并在居中的位置写上文字“面向对象程序设计”,字体为楷体_gb2312,大小自定。
5.自定义椭圆(或圆)的方法,画一组椭圆(最大半径200),以圆心处为参考点,半径依次增加2个像素,圆周的颜色随机。
6.给定数组data[]={1,2,3,4}分别画出圆饼图、条形图(宽随意给定,高代表所占百分比),颜色任意。
7.找一幅图像,显示在Applet中,要求按原图大小显示,再放大或缩小一倍显示,或者放大显示右下部的1/4块
实验九 Java多线程
一、实验目的:
熟悉利用Thread类建立多线程方法。熟悉利用Thread接口建立多线程方法。
二、实验内容:
1.阅读下列程序,分析并上机检验其功能。class DelayThread exends Thread{ private static int count=0;private int no;private int delay;public DelayThread(){ count++;no=count;} public void run(){ try{ for(int i=0;i<10;i++){ delay=(int)(Math.random()*5000);sleep(delay);System.out.println(“Thread ”+no+” with a delay ”+delay);} }catch(InterruptedException e){}}} public class MyThread{ public static void main(String args[]){ DelayThread thread1=new DelayThread();DelayThread thread2=new DelayThread();thread1.start();thread2.start();try{ Thread.sleep(1000);}catch(InterruptedException e){ System.out.println(“Thread wrong”);}}} 2.讲上列程序利用Runnable接口改写,并上机检验。
3.利用多线程 编写一个模拟时钟(AWT程序、Runnable接口),有时分秒 针 编写一个应用程序,创建三个线程分别显示各自的时间。
三、实验要求:
1.通过实验掌握Thread、Runnable使用方法; 2.程序必须能够实现多线程; 3.程序必须能够完成题目要求; 4.写出实验报告。
四、实验步骤:
首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。
通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
四、自做实验
课本:P262 12,13,14 25
实验十 输入输出流
一、实验目的:
熟悉Java的文件读写机制,练习输入输出流的使用。
二、实验内容:
1、键盘输入10个整数,从小到大进行排序。
2、接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用FileOutputStream类读出文件内容显示在屏幕上。
3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。
三、实验要求:
1.通过实验掌握文件输入输出流的使用方法; 2.程序必须能够从键盘接收字符串并保存在文件中; 3.程序必须能够读出文件内容显示在屏幕上; 4.写出实验报告。
四、实验步骤:
1.(第1题)接收键盘输入字符串,再转化整数;
2.(第2、3题)编写主方法main(),其中实现接收键盘输入功能、文件操作功能和文件内容输出功能; 3.调试运行程序,观察输出结果。
五、自做实验
课本:P300,7、10
实验十一
Java网络编程
一、实验目的:
1、熟悉掌握Java的相对高级别(简单的)网络通讯
2、熟悉掌握URL类访问Web页面的操作流程
3、学会JAVA的Socket类和ServerSocket类的使用
二、实验内容:
1、编程实现同一Web页面两个Applet之间的通讯
2、编程实现显示URL中的Html文件
*
3、参照例程编写一个简单的聊天室程序(P411,2)
三、实验要求:
1.通过实验掌握的URL类、Socket类和ServerSocket类的使用方法; 2.程序必须完成题目要求的功能; 3.写出实验报告。
四、实验步骤:
1.(第1题)参照例程两个Applet分别加上按钮,互相控制对方的线程 2.(第2题)通过URL类中方法,实现通讯,获取Html文件 3.(第3题)参照例程增加多客户端,实现聊天室 4.调试运行程序,观察输出结果。
五、自做实验 P411,8
实验十二
Java与数据库连接
一、实验目的:
熟悉SQL命令集。
学会编写加载数据库驱动和连接数据库的JAVA程序。应用Java.sql包中的类和接口编写操作数据库的应用程序。
二、实验内容:
编程实现如下功能:在数据库中建立一个表,表名为学生,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。在表中输入多条记录。将表每条记录按照总分大到小的顺序显示在屏幕上。查找并显示姓名为“张三”的记录。(要求图形界面)
三、实验要求:
1.通过实验掌握SQL命令的使用;
2.使用J2SDK中提供的JDBC-ODBC桥连接数据库; 3.使用的数据库系统不受限制,比如可以用Access。4.调试运行程序,观察输出结果。5.写出实验报告。
四、实验步骤:
1、首先设计一个图形界面
2、首先建立一个数据库,在此基础上通过编程实现一下功能:
在数据库中建立一个表,表名为职工,其结构为:编号、姓名、性别、年龄、JAVA语言、数据结构、微机原理、总分。1)在表中输入多条记录。
2)将每条记录按照总分大到小的顺序显示在屏幕上。
3)查找并显示姓名为“张三”的记录
五、自做实验
课本:P411,2
实验十三
实现C/S应用
一、实验目的:
熟悉综合运用图形用户界面与事件处理机制、Java的文件读写机制、输入输出流的使用、多线程、Java的异常处理、Java网络编程知识,编写一个综合程序
二、实验内容:
利用Socket编程实现C/S应用。其中,Client端为GUI程序,用于提供界面输入两个数,并有1个“发送”按钮,另外还有一个 TextField用于显示传来的计算结果;Server端用于监听连接请求、计算发送过来的两数的和、送回数据结果。
三、实验要求:
1.有良好的图形用户界面; 2.多个用户能同时操作; 3.要有异常处理机制
4.调试运行程序,观察输出结果。5.写出实验报告。
四、实验步骤:
1、编写服务器端程序
2、客户端首先设计一个图形界面
3、实现客户端程序
五、自做实验
在此程序的基础上,增加相应的功能。
java程序设计实验指导 篇2
仿真物理实验就是利用计算机及多媒体技术仿真或虚构实验设备, 供学生通过电脑观察、操纵、建构物理对象, 为学生预习, 做实验提供帮助。它不仅可以解决高校基础实验室设备仪器不足、师资短缺、工作量大的问题, 还可以解决实践教学学生课前预习难等一系列实践教学难题。
2 选用Java技术的优点
物理实验的仿真不是传统意义上的把实验项目制作成图文并貌的试验介绍, 而是学生可以在电脑上进行交互式操作, 实现了真正意义上的试验仿真。
根据一些资料和技术的分析我们认为, 采用Java比较理想。因为Java语言是强类型语言, 它的JSP和APPLET分别可以对数据、图象进行有效地处理, 从而解决FLASH和ASP无法解决的问题;再次, 还因为Java语言有很强的网络功能, 尤其是Applet专用于嵌入WEB网页, 并可产生特殊的页面效果。由于Java Applet具有基本的绘画功能、动态页面效果、动画和声音的播放、交互功能的实现、窗口开发环境、网络交流能力的实现等特点, 所以物理仿真实验要求有大量的图象处理及操作的交互, 并能够在线访问, 这无疑应选Java。因此声速测量将主要采用Java Applet进行设计。Java语言属于强类型语言, 能够对数据进行精确处理, 可以进行浮点运算和字符串的各种处理, 完全能满足物理实验的需求。
3 实现举例
3.1 仪器的操作设计
在本段过程中, 主要完成的任务是初始化仪器的参数, 并对仪器的电源、数据线进行连接。其中, 初始化仪器的参数包括仪器的显示位置和各个图片的预载显示, 如图1所示。
通过点击各线路连接点以完成线路的连接。首先点击信号发生器的电源接点;再点击声速测量仪的一端, 由程序自动生成一幅电源线的图片;连接信号发生器和声速测量仪, 再点击示波器和声速测量仪的另一端, 生成另一幅图片。最终连接3个仪器。
部分代码如下:
3.2 信号发生器的调节
首先要打开电源, 接下来按下正弦波波形, 按下300K频率范围选择开关, 调节频率至40KHZ, 调节电压10V。仪器如图2所示。当用户双击右键打开函数信号发生器时, 导航箭头指向电源按钮, 用户点击电源开关, 函数信号发生器上显示数字、频率和电压;下一步, 箭头指向正弦波按钮, 用户点击按钮, 接下来箭头指向频率范围按钮300KHZ, 按下按钮;下一步, 调节频率, 频率默认39.0, 本实验所需的频率为40.0左右, 要求调至40.0KHZ, 最终调节电压至10V。信号发生器的调节结束。
3.3 示波器的调节
对于示波器, 主要有对波形的振幅调节、波形左右调节和上下调节 (注:由于本校实验室对其它功能的调节不做要求, 故在本设计中不对其它功能操作响应) 。在示波器图片上双击右键放大示波器进行调节, 如图3所示。
对示波器进行振幅、水平和垂直调节属于自主调节, 对于本实验不属于必须过程, 所以实验中不进行严格的过程控制。对TIME/DIV旋钮顺、逆时针调节, 可以使振幅改变并显示在示波器的屏幕上。水平调节和垂直调节同样是将波形图在屏幕上改变位置, 通常情况可以使用默认值。
3.4 声速测量仪的调节
对于声速测量仪, 主要是通过旋转鼓轮查看示波器显示屏上的波形图象, 当振幅达到最大时记录游标和鼓轮的刻度, 如此重复十次。对于鼓轮, 也就是实验中最重要的一部分, 因为最终数据要从此得出。鼓论必须有高清晰度和高精确度, 它的动作必须和游标、示波器图象一致。用户点击鼓轮使鼓轮旋转, 或通过键盘的方向键调节鼓轮, 观察示波器图象中正弦波达到波峰时游标和鼓轮的刻度, 并连续记录十组数据。每两个波峰之间为半个波长, 通过公式可以得出声速。
4 结束语
通过以上论述和声速测定仿真实验的实例操作可以看出, 运用Java技术实现大学物理实验的仿真效果非常好。作为实验辅助教学手段, 它不仅可以弥补实验仪器和元器件缺乏带来的不足, 而且排除了原材料消耗和仪器损坏等因素。把现代计算机技术运用到教学中, 对进一步培养学生综合的自学、实践和创新能力具有重要意义。
摘要:提出并实现的仿真实验是指依托计算机平台, 应用Java技术实现的物理仿真实验。仿真实验是对传统实验教学的强化和延伸, 是实验教学改革的重要方向。它拓展了实验教学的时间和空间, 解决了设备、师资不足的矛盾, 打破了教师传统的示范演示, 激发了学生学习的主动性, 促进了教学效率和质量的提高。
关键词:Java技术,仿真实验,教学改革
参考文献
[1]申蔚, 夏立文.虚拟现实技术[M].北京:北京希望电子出版社, 2002.
[2]印旻.Java语言与面向对象程序设计[M].北京:清华大学出版社, 2000.
java程序设计实验指导 篇3
Java程序设计教学也引起了高校的高度重视。可视化编程以“所见即所得”的编程思想为原则,不仅应用起来较为方便,而且还能够取得良好的教学效果。本文首先对Java教学平台进行介绍,并在此基础上探讨基于Eclipse和Visual Editor的Java可视化程序设计教学,以及来为今后计算机教学质量的提升提供一定的参考依据。
关键词:可视化实验平台Java程序设计教学应用
Java程序设计教学作为高校计算机教学中的一项重要内容,如何提高其教学质量已经成为了诸多高校计算机教师所面临的一项重大课题。就当前Java程序设计教学的现状来看,最重要的两项内容便是基于图形用户界面的应用程序和网络程序设计,这使得可视化开发环境的合理利用成为了教学过程中的一个必然趋势,对教学质量的提升具有重要意义。
1 Java教学平台
基于图形用户界面的应用程序和网络程序设计作为Java程序设计教学中的两项重要内容,在实际教学过程中,不仅需要对设计过程中涉及到的组件外观进行反复修改,而且还要根据实际应用情况对布局进行合理安排,为了能够更好的完成教学任务,将可视化实验平台充分利用起来是不容忽视的,可视化实验平台不仅应用起来极为方便,而且具有“所见即所得”的特点,能够将复杂的知识简单化,激发学生对学习的积极性和主动性。与此同时,在教学中充分融入Java集成开发平台,还能够让学生更好的对所学知识进行掌握。
就目前Java教学软件平台的实际应用来看,其主要涉及了JDK、JBuilder以及NetBeans等软件。Eclipse是一款开源的Java IDE,具有免安装、所耗空间少的特点,正因为如此,Eclipse目前已经成为了Java行业中的主流IDE。
2 可视化实验平台在高校Java程序设计教学中的应用
2.1 Visual Editor
在Eclipse中,我们可以将可视化插件Visual Editor建立的Java GUI开发环境融入其中,Visual Editor作为Eclipse的构件,不仅能够对Java的相关组件和模式提供支持,而且还可以充分实现跨平台的网络程序,使整个系统更加科学、完善。
由于Visual Editor对GUI开发的支持是建立在图形化编辑框架基础上的,而GEF使用了Eclipse建模框架,因此在使用Visual Editor的时候,不但需要添加Visual Editor,而且还要在此基础上同时添加GEF和EMF两个插件。除此之外,如果是汉化的Eclipse,那么还应该在此基础上添加Eclipse的多国语言包,以此来确保系统能够正常运行。
2.2 教学软件环境设置
不同教学目标对教学软件环境的设置要求也不尽相同,教师可以根据教学的实际需求,对教学软件环境进行合理设置。一般来说,在下载完Eclipse和各类插件之后,可以在此基础上配置JDK和安装Eclipse插件。总的来说,在对教学软件环境进行设置的过程中,首先要完成JDK配置,系统在安装JDK之后,整个系统的path变量值也会发生变化,即在原有基础上,增添了与JDK相对应的tools.jar和dt.jar的文件路径。其次是Eclipse安装,该环节的实现仅需将压缩包进行正常解压即可。最后是插件安装,在系统所涉及的语言中,无论是Visual Editor、EMF,还是多国语言包插件的选用,均可实现插件免安装。但需要注意的是,在对所使用的语言进行解压之后,应该将其插件的联合文件在Eclipse中添加。检查插件是否安装成功,其主要方法为在将Eclipse重启之后,查看界面中菜单的显示情况,如果为汉字显示,则说明安装成功。反之,则说明安装不成功,应重新进行安装。
3 教学效果
根据以上内容的分析与介绍,在Java程序设计教学中合理的加入了可视化实验平台,并按照文中所介绍的方式对教学软件环境进行了合理设置。在经过一段时间的教学之后,通过对教学效果的评价与分析我们能够看出,在使用了可视化实验平台进行教学之后,不仅提高了学生对学习的积极性和主动性,而且对知识的掌握也十分扎实。与此同时,由于可视化实验平台能够将复杂的问题简单化,因此,课堂上所讲的知识更加容易被学生理解和接受,学习起来也十分方便,从根本上提高了教学的根本质量。
4 结语
综上所述,在高校Java程序设计教学中将可视化实验平台充分利用起来,不仅能够激发学生对计算机知识学习的积极性和主动性,帮助学生更好的对所学知识进行了解和掌握,而且还能够使复杂的教学内容简单化,使教学起到事半功倍的效果。因此,在未来的时间里,高校计算机教师必须对可视化实验平台有一个全面系统的认识,并结合教学内容将其有效融入到Java程序设计教学中,以此来从根本上提高教学质量。
参考文献:
[1]袁小华,王令群,张书台.可视化实验平台在高校Java程序设计教学中的应用[J].计算机教育,2012(02).
[2]朱正强,吴介一,张竞飞,易红.基于VRML-Java的虚拟现
实技术在可视化装配中的应用[J].东南大学学报:自然科学版,2002(01).
[3]王永,林茂.基于JBuilder的Java辅助教学系统设计[J].科技信息,2008(20).
作者简介:
java程序设计实验指导 篇4
经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。
在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。
学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。
Java思想:Java是一门面向对向语言,他定义一切都是对象
面向对象,就是面对现实;
现实中的一切都是对象,他们有分类,就产生了“类”;
他们有不同,类和类之间的不同,使用类来区分;
同一个类中不同的对象的区别,使用成员区分。所以,面向对象的内部逻辑是分类。
面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等
原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。
面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。
我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对!
我的理解:
1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),直到无法再细;
2、对每个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操作方法),3、有相似的对象的,构造基类;再有基类派生出各个确定的对象(小问题);
4、解决问题的过程就是操作这些对象的过程。
我的理解:
与实际生活联系起来。
将要处理的„问题‟抽象成一个或多个„事件‟
找一个地方使用我的智慧
1。了解系统的功能。列举出它的对外接口,即对于使用者来说它有什么功能。把这整个系统作为一个对象。
2。环境。系统不是运行在真空中的,操作系统等外部环境都可能会影响它。所以把环境也作为一个大的对象。
3。内部。在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。比如说人体,如果在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。
4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。
5。无形的物体。一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。一切都是为了让人明白,有能让机器理解的思想
我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,当然在过程种少不了楼上前辈们说的一些思想和细节,但是别忘了,我们的目的是解决问题,不要为了面向对象而面向对象!
我想分析和抽象的能力对这个问题是个关键。首先要在问题域仔细分析、抽象得到相关的对象模型,然后才是相应的设计。可是面向对象只是我们解决问题一种思想,切不可忘了问题本身,弄成为了面向对象而面向对象了!当然过程种少不了楼上一些前辈说的思想和细节了。
耕具我多年的实践:面向对象包括两个思想:
从大往小想,从小往大做
从难往易想,从易往难做
同意一下观点-----能深入浅出,真高手也!
真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。
面向对象,就是面对现实;
现实中的一切都是对象,他们有分类,就产生了“类”;
他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。
所以,面向对象的内部逻辑是分类。
对象:
对象是人们要进行研究的任何事物,从简单的一个小分子到复杂的汽车飞机都可以看做对象,只是有时对象要根据人们研究问题的需要来确定,对象不一定是具体的,有时也可以表示抽象的规则或计划。
类:
系统分析与设计实验指导书 篇5
前言
信息系统分析与设计是一门研究管理信息系统开发与维护的普遍原理和技术的工程学科。随着信息系统概念及应用的发展,成功的经验与失败的教训使人们认识到:信息系统建设过程是复杂的社会过程,系统观点是系统建设的重要思想武器,科学的开发过程和规范的项目管理要比开发技术本身更为重要,严格遵循系统分析与设计的方法论可以大大提高信息系统开发的成功率,显著减少系统开发和维护中的问题。
按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个具体的信息系统项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。因此设置四个实验项目,从项目开发的准备工作,系统分析过程,系统设计过程,到文档的整理和完善,覆盖软件开发的主要过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
通过实验训练,达到如下目的:
使学生进一步了解和掌握系统分析与设计原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件开发方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。
目
录
实验一:项目开发的准备工作--------------------1 实验二:系统分析过程----------------------------1 实验三:系统设计过程----------------------------2 实验四:系统文档整理----------------------------3
附录一:--------------5 附录二:--------------6 附录三:--------------11
实验一:项目开发的准备工作
实验学时:2
实验类型:验证性
一、目的与任务
目的:确定课题,组织组员,合理分工,熟悉软件开发环境,培养团队精神。
任务:学习软件开发小组的组织和管理,合理分工,将项目开发各阶段的任务明确,并熟悉相应的软件开发环境。
二、内容、要求与安排方式
1、实验内容与要求:
根据各组选择的课题,实行项目经理制,各组推荐一名组长,统一管理整个项目的实施过程,并和理调整资源和负责项目全局;根据项目的难易合理分配组员的任务,对问题达成一直的看法;针对项目的实施,熟悉相应的软件开发工具的使用环境。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组2—3人。3.准备参考资料和阅读相关的国家有关软件开发的标准文档。
三、思考题
1. 2. 3. 项目开发首先要做的事是什么?
你认为该软件应具备的最重要的特性是什么。你认为怎样分工是最合理的?
实验二:系统分析过程
实验学时:4
实验类型:验证性
一、目的与任务
目的:确定项目的可实施性,在此基础上完成系统的逻辑功能模型的建立。任务:采用不同的软件开发技术,完成对项目的分析过程,给出系统的逻 1 辑功能模型,数据字典以及规格说明书。
二、内容、要求与安排方式
1、实验内容与要求:(1)结构化分析
明白项目的业务流程图,绘制数据流程图,编写数据字典,数据加工处理的描述,实体关系图(ER图),需求规格说明书。
(2)面向对象分析
弄清信息系统的业务流程,绘制系统的用例图,书写用例规格说明;初步绘制系统的静态结构——类图;初步绘制系统动态行为——顺序图、协作图、活动图、状态图。最后利用Word写出系统的需求规格说明书。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组2—3人。
三、思考题
1. 2. 3. 4. 需求分析在软件开发中真的有那么重要吗?
分析系统流程图,流程图和数据流图的区别和各自的特点。怎样写合乎规范的数据流图和数据词典? 怎样组织对该工作的评审?
实验三:系统设计过程
实验学时:4
实验类型:技能性
一、目的与任务
目的:在实验二基础上完成系统的体系结构的建立和系统详细设计,并给出相应的规格说明书。
任务:认真分析实验二的结果,给出系统合理的体系结构,描绘系统结构图,并合理划分系统的各组成模块,最后给出系统的各部分设计规格说明书。
二、内容、要求与安排方式
1、实验内容与要求:(1)结构化设计
软件体系结构图(HIPO图或模块结构图)设计,模块处理流程设计,输出设计(主要指打印输出设计),存储文件格式设计(数据库结构设计),输入设计(主要指数据录入卡设计),代码设计,系统设计说明书
(2)面向对象设计
设计系统合理的体系结构;在Rational Rose环境中对实验二的分析模型进行细化、精化,使之成为计算机能够实现的物理模型。最后利用Word写出系统的设计规格说明书。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组2—3人。
三、思考题
1.系统设计和需求分析的关系是什么?两者必须先后关联吗? 2.怎样描绘系统的体系结构? 3.怎样绘制复合规范的流程图。4.怎样组织对设计阶段工作的评审?
实验四:系统文档整理
实验学时:2
实验类型:验证性
一、目的与任务
目的:系统运行和软件后期制作。
任务:总结软件开发中的得失,正确书写软件说明书和用户手册。
二、内容、要求与安排方式
1、实验内容与要求:
完善系统所涉及的程序框图,源程序,模拟运行数据,打印报表,软件使用说明书和用户手册等。
2、验安排方式:
本实验为开放实验,各组可同时进行实验,每组2—3人。
三、思考题
1.怎样合理选择软件开发的工具?
2.怎样进行用户说明手册和使用手册的编写。3.总结项目实施中的得失。
附录一:
实验要求
软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。具体要求如下:
1. 班级按项目小组进行分组,每组不得超过4人
2. 每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目
3.项目开的每项任务要落实到人且规定该任务的起止日期和时间 4.每个项目小组可以参照附录中给定的文档规范标准提供项目文档 5.题目自定或采用附录二中的题目
6.软件开发的方法学自定(结构化或面向对象的方法学)
附录一:实验题目
题目一:“教务管理系统之子系统——学院课程安排”
1. 系统简介
每个学期的期中,学校教务处向各个学院发出下各学期的教学计划,包括课程名称、课程代码、课时、班级类别(本科、专科、成人教育、研究生)、班号等;学院教学主管人员根据教学任务和要求给出各个课程的相关限制(如:任课教师的职称、上课的班数、最高和最低周学时数等);任课教师自报本人授课计划,经所在教研室协调任可,将教学计划上交学院主管教学计划的人员,批准后上报学校教务处,最终由教务处给出下个学期全学院教师的教学任务书。
假设上述排课过程全部由人工操作,现要求为上述过程实现计算机自动处理过程。2. 限定条件
(1)每位教师的主讲课程门数不超过2门/学期:讲师以下职称的教师不能承担学院定主课的主讲任务。
(2)学院中层干部的主讲课时不能超过4学时/周。
(3)本学期出现严重教学事故的教师不能承担下各学期的主讲任务。
(4)本系统的输入项至少包括:教务处布置的教学计划,学院教师自报的授课计划和学院定的有关授课限制条件。
(5)本系统的输出项至少包括:教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。
题目二:“学校教材定购系统”
1. 系统简介
本系统可以细化为两个子系统:销售系统和采购系统。
销售系统的主要工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生可以到书库领书。
采购系统的主要工作过程为:若是教材脱销,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
以上功能要求在计算机上实现。2. 技术要求和限制条件
(1)当书库中的各种书籍数量发生变化(包括进书和出书)时,都应修改相关的书库记录,如库存表或进/出库表。
(2)在实现上述销售和采购的工作过程时,需考虑有关的合法性验证。
6(3)系统的外部项至少包括:教师、学生和教材工作人员。
(4)系统的相关数据存储至少包括:购书表、库存表、缺书登记表、待购教材表、进库表和出库表。
题目三:“机票预定系统”
1. 系统简介
航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。2. 技术要求和限制条件
(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。
(2)对于本系统还应补充以下功能:
旅客延误了取票时间的处理 航班取消后的处理 旅客临时更改航班的处理
(3)系统的外部输入项至少包括:旅客、旅行社和航空公司。
题目四:“实验室设备管理系统”
1. 系统简介
每学年要对实验室设备使用情况进行统计、更新。其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。
(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。
(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。
(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。
2. 技术要求及限制条件
7(1)所有工作由专门人员负责完成,其他人不得任意使用。
(2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。
(3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。(4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。
本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。
题目五:人事管理系统的设计系统简介和设计要求:(1)信息要求
本系统应该包含与人事管理相关的信息,如部门信息、职员信息,其中职员信息应该包含职员的基本信息(如职员的编号、姓名、性别等)职员的其他信息如(如:主要社会关系、奖惩情况等)。(2)功能要求
本系统的基本功能要求如下: 部门信息维护;
职员信息维护(含职员的部门调整); 职员信息查询(不确定查询); 人事信息查询(如人才结构的统计查询) 用户管理(含用户权限的设置)
辅助功能(如学历索引表、职称索引表的维护等)
题目六:工资管理系统的设计
系统简介和设计要求:(1)信息要求
本系统应该包含与工资管理相关的信息,如部门信息、职员工资信息,其中职员工资信息应该包含与支援工资相关的基本信息(如:职员的编号、姓名、基本工资、各种津贴以及其他应发工资项目,水电、煤气等各项扣款,以及公积金、会费等)、职员的其他信息(如工资调整情况)等。
(2)功能要求
本系统的基本功能要求如下: 部门信息维护;
职员工资信息维护; 显示打印职员工资表; 打印职员工资发放表; 打印部门工资汇总表;
用户管理(含用户权限的设置)。
题目七:毕业生管理信息系统
设计要求:(1)信息要求
本系统应该包含与毕业生管理相关的信息,如毕业生基本信息、毕业生就业信息、其中毕业生基本信息应该包括:毕业生的编号、姓名、性别、民族、籍贯、毕业时间、专业、政治面貌等信息;毕业生就业信息应该包括:毕业生的编号、就业时间、工作单位、工作性质、职务、地址等。
(2)功能要求
本系统的基本功能要求如下: 毕业生基本信息维护; 毕业生就业信息维护;
毕业生就业情况查询(不确定查询); 按专业划分的就业情况统计; 用户管理(含用户权限的设置)。
题目八:建立一个分布式、互动式的远程教学平台
为教师教学、学生学习提供比较完整的教学解决方案。其主要功能包括通知发布、参考资料发布、电子课件发布、学生作业提交、帮助教师批改学生作业、帮助学生复查批改后的作业。
题目九:开发一个基于WEB的网上机票查询和销售系统
该系统可以录入航班和机票信息,用户可以查询航班时刻表、查询机票可用信息和机票折扣信息,用户可以通过WEB订票。
题目十:开发一个基于WEB的网上投稿系统
该系统可以接受作者的电子投稿,以及作者信息(如姓名、单位、通信地址、电话、E-Mail等)注册,并能供投稿人查询稿件处理情况,以及在稿件处理后(退稿、录用、修改后再审等),能自动发送E-Mail通知投稿人。
题目十一:开发一个基于Web的BBS系统
包含一般BBS所具有的功能,如用户注册、用户信息管理、发贴功能、贴子管理、主题词查询、用户信息修改和查询等。
题目十二:开发一个基于Web的网上书店
该系统可以分类录入书籍和相关信息(如名称、页数、出版商、摘要、目录等),用户可以注册、登录,注册用户享受打折服务,所有用户都可以查询、浏览书籍。注册用户可以定购书籍并查询订单。
附录三:
软件开发文档指南 可行性研究报告
可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。可行性研究报告的编写内容要求如下:
1.1 引言
1.1.1 编写目的 1.1.2 背景
1.1.3 定义
1.1.4 参考资料
1.2 可行性研究的前提
1.2.1 要求
1.2.2 目标
1.2.3 条件、假定和限制
1.2.4 进行可行性研究的方法
1.2.5 评价尺度
1.3 对现有系统的分析
1.3.1 数据流程和处理流程
1.3.2 工作负荷
1.3.3 费用开支
1.3.4 人员
1.3.5 设备
1.3.6 局限性
1.4 所建议的系统
1.4.1 对所建议系统的说明
1.4.2 数据流程各处理流程
1.4.3 改进之处
1.4.4 影响
1.4.4.1 对象设备的影响
1.4.4.2 对软件的影响
1.4.4.3 对用户单位机构的影响
1.4.4.4 对系统动行的影响
1.4.4.5 对开发的影响
1.4.4.6 对地点和设施的影响
1.4.4.7 对经费开支的影响
1.4.5 局限性
1.4.6 技术条件方面的可行性
1.5 可选择其他系统方案
1.5.1 可选择的系统方案1
1.5.2 可选择的系统方案2
……
1.6 投资及收益分析
1.6.1 支出
1.6.1.1 基本建设投资
1.6.1.2 其他一次性支出
1.6.1.3 非一次性支出
1.6.2 收益
1.6.2.1 一次性收益
1.6.2.2 非一次性收益
1.6.2.3 不可定量的收益
1.6.3 收益/投资比
1.6.4 投资回收周期
1.6.5 敏感性分析
1.7 社会条件方面的可行性
1.7.1 法律方面的可行性
1.7.2 使用方面的可行性
1.8 结论 2 项目开发计划
编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度所需经费预算、所需软、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作。编制内容要求如下:
2.1 引言
2.1.1 编写目的 2.1.2 背景
2.1.3 定义
2.1.4 参考资料
2.2 项目概述
2.2.1 工作内容
2.2.2 主要参加人员
2.2.3 产品及成果
2.2.3.1 程序
2.2.3.2 文件
2.2.3.3 服务
2.2.3.4 非移交产品
2.2.4 验收标准
2.2.5 完成项目的最迟期限
2.2.6 本计划的审查者与批准者
2.3 实施总计划
2.3.1 工作任务的分解
2.3.2 接口人员
2.3.3 进度
2.3.4 预算
2.3.5 关键问题
2.4 支持条件
2.4.1 计算机系统支持
2.4.2 需要用户承担的工作
2.4.3 需由外单位提供的条件
2.5 专题计划要点 3 软件需求说明书
软件需求说明书的编制是为了使用户的软件开发者双方对该软件的起初规定有一个共同的理解,使之成为整个开发工作的基础。编制软件需求说明书的内容要求如下:
3.1 引言
3.1.1 编写的目的 3.1.2 背景
3.1.3 定义
3.1.1 参考资料
3.2 任务概述
3.2.1 目标
3.2.2 用户的点
3.2.3 假定与约束
3.3 需求规定
3.3.1 对功能的规定
3.3.2 对性能的规定
3.3.2.1 精度
3.3.2.2 时间特性要求
3.3.2.3 灵活性
3.3.3 输入输出要求
3.3.4 数据管理能力的要求
3.3.5 故障处理要求
3.3.6 其它的专门的要求
3.4 运行环境规定
3.4.1 设备
3.4.2 支持软件
3.4.3 接口
3.4.4 控制 4 数据需求说明书
数据要求说明书的编制目的是为了向整个开发时期提供关于处理数据的描述和数据采集要求的技术信息。编制数据要求说明书的内容要求如下:
4.1 引言
4.1.1 编写目的 4.1.2 背景
4.1.3 定义
4.1.4 参考资料
4.2 数据的逻辑描述
4.2.1 静态数据
4.2.2 动态输入数据
4.2.3 动态输出数据
4.2.4 内部生成数据
4.2.5 数据约定
4.3 数据的采集
4.3.1 要求和范围
4.3.2 输入的承担者
4.3.3 处理
4.3.4 影响 5 概要设计说明书
概要设计说明书可称作系统设计说明书,这里说的系统是指程序系统,编制的目的是说 15 明对程序的系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。编制概要设计说明书的内容要求如下:
5.1 引言
5.1.1 编写目的 5.1.2 背景
5.1.3 定义
5.1.4 参考资料
5.2 总体设计
5.2.1 需求规定
5.2.2 运行环境
5.2.3 基本设计概念和处理流程
5.2.4 结构
5.2.5 功能需求与程序的关系
5.2.6 人工处理过程
5.2.7 尚未解决的问题
5.3 接口设计
5.3.1 用户接口
5.3.2 内部接口
5.3.3 外部接口
5.4 运行设计
5.4.1 运行模块组合 5.4.2 运行控制
5.4.3 运行时间
5.5 系统数据结构设计
5.5.1 逻辑结构设计要点
5.5.2 物理结构设计要点
5.5.3 数据结构与程序的关系
5.6 系统出错处理设计
5.6.1 出错信息
5.6.2 补救措施
5.6.3 系统维护设计 6 详细设计说明书
详细说明书可称作程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并概要设计说明书。对详细设计说明书的内容要不得要求如下:
6.1 引言
6.1.1 编写目的 6.1.2 背景
6.1.3 定义
6.1.4 参考资料
6.2 程序系统的组织结构
6.3 程序1(标识符)设计说明
6.3.1 程序描述
6.3.2 功能
6.3.3 性能
6.3.4 输入项
6.3.5 输出项
6.3.6 算法
6.3.7 流程逻辑
6.3.8 接口
6.3.9 存储分配
6.3.10 注释设计
6.3.11 限制条件
6.3.12 测试计划
6.3.13 尚未解决的问题
6.4 程序2(标识符)设计说明
…… 数据库设计说明书
数据库设计说明书的编制目的是对于设计中的数据库所有标识、逻辑结构和理结构作出具体的设计规定。其内容要求如下:
7.1 引言
7.1.1 编写目的 7.1.2 背景
7.1.3 定义
7.1.4 参考资料
7.2 外部设计
7.2.1 标识符和状态
7.2.2 使用它的程序
7.2.3 约定
7.2.4 专门指导
7.2.5 支持软件
7.3 结构设计
7.3.1 概念结构设计
7.3.2 逻辑结构设计
7.3.3 理结构设计
7.4 运用设计
7.4.1 数据字典设计
7.4.2 安全保密设计 8 用户手册
用户手册的编制是要使用非专门术语的语言,充分地描述该软件系统工程所具有的功能及基本的使用方法。使用户(或潜在用户)通过本手册能够了解该软件的用途,并且能够确定在什么情况下,如何使用它。具体的内容要求如下:
8.1 引言
8.1.1 编写目的 8.1.2 背景
8.1.3 定义
8.1.4 参考资料
8.2 用途
8.2.1 功能
8.2.2 性能
8.2.2.1 精度
8.2.2.2 时间特性
8.2.2.3 灵活性
8.2.3 安全保密
8.3 运行环境
8.3.1 硬设备
8.3.2 支持软件
8.3.3 数据结构
8.4 使用过程
8.4.1 安装与初始化
8.4.2 输入
8.4.2.1 输入数据的现实背景
8.4.2.2 输入格式
8.4.2.3 输入举例
8.4.3 输出
8.4.3.1 输出数据的现实背景
8.4.3.2 输出格式
8.4.3.3 输出举例
8.4.4 文卷查询
8.4.5 出错处理与恢复
8.4.6 终端操作
操作手册
操作手册的编制是为了向操作人中提供该软件每一个运行的具体过程和有关知识,包括操作方法的细节。具体的内容要求如下:
9.1 引言
9.1.1 编写目的 9.1.2 背景
9.1.3 定义
9.1.2 参考资料
9.2 软件概述
9.2.1 软件的结构
9.2.2 程序表
9.2.3 文卷表
9.3 安装与初始化
9.4 运行说明
9.4.1 运行表
9.4.2 运行步骤
9.4.3 运行1(标识符)说明
9.4.3.1 运行控制
9.4.3.2 操作信息
9.4.3.3 输入-输出文卷
9.4.3.4 输出文段
9.4.3.5 输出文段的复制
9.4.3.6 启动恢复过程
9.4.4 运行2(标识符)说明
9.5 非常规过程
9.6 远程操作 10 模块开发卷宗
模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一级密切相关的 20 模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。编写的目的是记录和汇总低层次开发的进度和结果,以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。具体的内容要求如下:
10.1 标题
10.2 模块开发情况表
10.3 功能说明
10.4 设计说明
10.5 源代码清单
10.6 测试说明
10.7 复审的结论 11 测试计划
11.1 引言
11.1.1 编写目的 11.1.2 背景
11.1.3 定义
11.1.4 参考资料
11.2 计划
11.2.1 软件说明
11.2.2 测试内容
11.2.3 测试1(标识符)
11.2.3.1 进度安排
11.2.3.2 条件
11.2.3.3 测试资料
11.2.3.4 测试培训
11.2.4 测试2(标识符)
……
11.3 测试设计说明
11.3.1 测试1(标识符)21
11.3.1.1 控制
11.3.1.2 输入
11.3.1.3 输出
11.3.1.4 过程
11.3.2 测试2(标识符)
……
11.4 评价准则
11.4.1 范围
11.4.2 数据整理
11.4.3 尺度 12 测试分析报告
测试分析报告的编写是为了把组装测试和确认测试的结果、发现及分析写成文件加发记载,具体的编写内容要求如下:
12.1 引言
12.1.1 编写目的 12.1.2 背景
12.1.3 定义
12.1.4 参考资料
12.2 测度概要
12.3 测试结果及发现
12.3.1 测试1(标识符)
12.3.2 测试2(标识符)
……
12.4 对软件功能的结论
12.4.1 功能1(标识符)
12.4.1.1 能力
12.4.1.2 限制
12.4.2 功能2(标识符)
……
12.5 分析摘要
12.5.1 能力
12.5.2 缺陷和限制
12.5.3 建议
12.5.4 评价
12.6 测试资源消耗 13 开发进度月报
开发进度月报的编制目的是及时向有关管理部门汇报项目开发的进展和情况,以便函及时发现或处理开发过程中出现的问题。一般地,开发进度月报是以项目组为单位每月编写的。如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开发进度月报将以项目组为单位按月编写。具体的内容要求如下:
13.1 标题
13.2 工程进度与状态
13.2.1 进度
13.2.2 状态
13.3 资源耗用与状态
13.3.1 资源耗用
13.3.1.1 工时
13.3.1.2 机时
13.3.2 状态
13.4 经费支出与状态
13.4.1 经费支出
13.4.1.1 支持性费用
13.4.1.2 设备购置费
13.4.2 状态
13.5 下个月的工作计划
13.6 建议
14 项目开发总结报告
项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。具体的内容要求如下:
14.1 引言
14.1.1 编写目的 14.1.2 背景
14.1.3 定义
14.1.4 参考资料
14.2 实际开发结果
14.2.1 产品
14.2.2 主要功能和性能
14.2.3 基本流程
14.2.4 进度
14.2.5 费用
14.3 开发工作评价
14.3.1 对生产效率的评价
14.3.2 对产品质量的评价
14.3.3 对技术方法的评价
java程序设计实验指导 篇6
油缸液压回路设计与组装实验
实验指导书
重庆工学院汽车学院机电液控制实验室 2008年1月
学生实验守则
1.学生应按照实验教学计划和约定的时间,准时上实验课,不得迟到早退。
2.实验前认真阅读实验指导书,明确实验目的、步骤、原理,预习有关的理论知识,并接受实验教师的提问和检查。
3.进入实验室必须遵守实验室的规章制度。不得高声喧哗和打闹,不准抽烟、随地吐痰和乱丢杂物。
4.做实验时必须严格遵守仪器设备的操作规程,爱护仪器设备,服从实验教师和技术人员指导。未经许可不得动用与本实验无关的仪器设备及其它物品。
5.实验中要细心观察,认真记录各种试验数据。不准敷衍,不准抄袭别组数据,不得擅自离开操作岗位。
6.实验时必须注意安全,防止人身和设备事故的发生。若出现事故,应立即切断电源,及时向指导教师报告,并保护现场,不得自行处理。
7.实验完毕,应主动清理实验现场。经指导教师检查仪器设备、工具、材料和实验记录后方可离开。
8.实验后要认真完成实验报告,包括分析结果、处理数据、绘制曲线及图表。在规定时间内交指导教师批改。
9.在实验过程中,由于不慎造成仪器设备、器皿、工具损坏者,应写出损坏情况报告,并接受检查,由领导根据情况进行处理。
10.凡违反操作规程,擅自动用与本实验无关的仪器设备、私自拆卸仪器而造成事故和损失的,肇事者必须写出书面检查,视情节轻重和认识程度,按学院有关规定予以赔偿。
重庆工学院
说
明
1.同学可以登录学校的“实验选课系统”(从学校首页登陆:syxk.cqit.edu.cn或从数字校园登录),自己进行实验项目的选择。希望同学们能在每个实验项目开放的时间内尽早进行实验预约(预约时间必须比实验上课时间提前3天),因为学生数量比较多,如果某实验项目开放的时间内同学未能进行实验预约,则错过该实验项目的实验机会,补做就要在该实验项目下一次开放时进行。
2.在学期末因无法完成规定的实验项目个数,该门课程就必须重修。3.如有什么问题,同学可以拨打电话62563127联系李鑫老师。
油缸液压回路设计与组装实验
一. 实验目的
为了提高综合运用各科知识的能力,结合机电传动控制,液压传动与气压传动课程所学的内容,通过对组合机床动力滑台液压系统的分析,结合现有的液压元件,设计出能实现机床的一个典型运动轨迹的运动方案。通过对该液压系统的组装、调试,使之最终能够实现预期的运动轨迹。
通过本实验,要求熟悉常用液压元件的性能和使用方法,油缸的速度控制、定位控制的基本方式,进行一次小型工程设计、制作训练。锻炼大家的动手能力,以及分析和排除故障的能力。
二. 实验背景简介
组合机床是由通用部件和某些专用部件所组成的高效率和自动化程度较高的专用机床。它能完成钻、镗、铣、刮端面、倒角、攻螺纹等加工和工件的转位、定位、夹紧、输送等动作。
动力滑台是组合机床的一种通用部件。在滑台上可以配置各种工艺用途的切削头,例如安装动力箱和主轴箱、钻削头、铣削头、镗削头、镗孔、车端面等。在组合机床液压动力滑台上可以实现多种不同的工作循环,其中一种比较典型的工作循环是:快进-〉一工进-〉二工进-〉死挡铁停留-〉快退-〉停止。完成这一动作循环的动力滑台液压系统采用限压式变量叶片泵供油,并使液压缸差动联接以实现快速运动。由电液换向阀换向,用行程阀、液控顺序阀实现快进与工进的转换,用二位二通电磁换向阀实现一工进和二工进之间的速度换接。
三. 实验要求
1. 熟悉液压元件,电气元件,基本油路的构成。
2. 能根据提供的元件设计一个液压系统的动作循环,可参照油缸 “快进-〉一工进-〉二工进-〉停留-〉快退-〉原位停止”的速度控制和往复位移控制方案,也可自行选题。
3. 掌握液压元件的工作原理及连接方法,完成基本油路的设计及组装。
4. 完成一个从方案设计、油路设计到油路组装、连接以及系统调试、优化等涵盖工程设计实施全过程的训练。
四. 实验原理:
本实验要求同学根据如下液压系统的动作循环设计液压系统原理图
图
1、液压系统的动作循环
五. 实验器材和设备
1.机电液综合实验台 一台
2.液压泵站(含油箱、液压泵、电动机、三位四通阀、溢流阀、液压表)一套 3.五通接头 若干
4.油管(含快换接头)若干
5.油缸、三位四通换向阀,溢流阀 各一个 6.两位两通换向阀,节流阀 各二个
六. 实验步骤及内容
(一)检查、熟悉实验器材和设备:
熟悉实验台上的所有实验器材和设备的性能、用法,本次实验不涉及电气连接。(1)液压泵站:我们采用的液压泵站包含油箱、液压泵、电动机、溢流阀、液压表。液压泵站的输出油压可以通过溢流阀进行调节,在实验中我们的油压一般限制在2MP-3MP之间。
(2)油管、五通接头、油缸、三位四通换向阀,两位两通换向阀,节流阀等都是用快换接头连接的,操作十分方便、连接可靠。具体的连接方法实验指导老师会讲解。
(二)设计组装油路:
(1)油路设计:进行基本油路的设计(压力回路、换向回路和调速回路、液压站)和根据图1所示液压系统的动作循环设计液压系统原理图,经指导老师检查确认。根据同学所设计液压系统原理图,找齐搭建液压回路所需的液压元件。
(2)基本油路的组装:根据自己设计的基本油路进行基本油路的组装。
(3)参看原理图一一连接液压元件:从液压泵站供油口开始连接,注意连接快换接头一定要连接到位,否则在实验中漏油。对三位四通换向阀要找准其P、T、A、B口。
实验完成之后,拆除油路,将液压元件清点无误后,放回原处,并通知指导老师检查。
七. 实验结果及分析:
1、谈谈你在油路组装调试过程中的心得体会。
2、绘制设计的液压系统回路图
3、实验之后,你认为自己设计的液压系统回路有哪些地方需要改进,请详细说明。
八. 预习要求
1. 复习组合机床动力滑台液压系统的工作原理。
2. 设计并绘制基本油路图:液压站基本回路、换向回路、调速回路。3. 复习实验中用到的液压元件的工作原理及用法。
java程序设计实验指导 篇7
一、非项目驱动的Java实验教学方法
传统的非项目驱动的Java实验教学通常有“读、改、填、写”四种方式。
读———选择一个和实验目的紧密结合,且具有一定代表性的正确无误的程序,让学生来阅读并上机验证阅读结果。这可使学生对课上理解不够透彻、不够全面的知识点加深理解和记忆。
改———给出一个在相关的知识点上故意设置了错误的程序,让学生在上机实验过程中去改。在学生已经能够读懂程序、对实验相关的知识点有了一定的理解和把握的基础上,设置一个有错误的程序,让学生去查找其中的错误,并进行修改。这样可以使学生更进一步理解理论知识,并在理解的基础上学会简单的应用,而且能防止设计程序中类似错误的发生。
填———给出一个在重要知识点上留下空白的不完整程序,让学生在理解程序整体结构的基础上补充完整。这样不仅可以使学生对知识点的应用更加熟练,而且可以加深学生对于程序整体结构的把握。
写———给出程序功能的文字叙述,要求学生完成该程序的编写。通常对程序的功能要求不太强大,以能够运用到本实验知识点为宜。
总体来讲,非项目驱动的Java实验是围绕Java知识点和程序体系结构进行的,以掌握Java基本知识和程序基本结构为目标。学生没有主动思考的机会,而是被动接受知识,学生没有自主地感官体验,所学知识主要是应付考试。
二、项目驱动的Java实验教学方法
1、项目驱动教学法概述
项目驱动教学法是在建构主义学习理论下形成的一种教和学的模式,它集中关注于某一学科的中心概念和原则,旨在把学生融入到有意义的项目任务完成的过程中,让学生积极地学习、自主地进行知识的建构。
项目驱动教学法的核心是项目,师生通过实施一个相对完整的项目工作而进行教学活动。通过教师多媒体教学演示、学生分工实践、小组讨论、团队协作学习的方式,完成课程知识体系的学习。学生学习的过程就是一个探究的过程,学生通过项目的实现,了解并把握项目整个过程及每一个环节中的基本要求。学习过程是一个人人参与的创造实践活动,学生在项目实践过程中,理解和掌握课程要求的知识和技能,体验创新的艰辛与乐趣,培养分析问题和解决问题的能力。
2、项目驱动教学法教学过程
(1)明确任务
通常由教师本着规模适度、难度适中、实用性强、趣味性强的原则,提出项目任务设想,然后同学生一起讨论,最终确定项目的目标和任务。
(2)制定计划
由学生对项目的内容进行详细的规划和分析,以了解项目的功能和设计要求。制定出项目工作计划,确定工作步骤和程序,并最终得到教师的认可。
(3)实施计划
学生确定各自在小组中的分工以及小组成员合作的形式,然后按照已确立的工作步骤和程序工作。最终完成项目的Java代码设计。
(4)项目评价
完成项目的设计之后,首先,要在项目组内部进行自我评价,检查是否按照项目计划完成项目中的功能;其次,项目组之间进行互评,以发现各自的优点和不足,进而取长补短相互进步;最后,教师客观的对项目组的设计进行评价,要充分肯定每位同学的成绩和付出并给予恰当的评价。
(5)归档应用
项目工作结果应该归档或应用到企业、学校的生产教学实践中。
3、项目教学法的优势与不足
(1)项目教学法的优势
(1)促进了知识向能力的转化。项目教学法在实施中,要求学生能在解决实际问题或完成具体任务的过程中进行学习,学生获取的新知识和新技能也能在实践中得到充分的检验,学生时常感受到成功的喜悦,学生的学习积极性和主动性得到充分发挥,从而激发起学生的学习兴趣,提高了自主学习的能力。
(2)发挥了学生的创造潜能。项目教学法是一种教学战略,教师通过项目引导学生对现实生活中的问题进行深入地学习,摆脱了传统教育形式中唯一的标准答案对学生创造性思维的束缚。教师在实施项目教学时,适时引导学生寻找解决问题的办法,深入挖掘学生的创造潜能。
(3)培养和提高了团队合作精神。项目教学大多要分小组完成,通过小组内及小组间的充分交流、讨论、决策等,提高了学生的合作能力,强化了学生的团队意识。而合作能力和团队意识恰恰是软件开发人员要求的基本素质。
(2)项目教学法的不足之处
(1)学生获取知识的系统性不够。项目教学法的运用淡化了理论知识学习的系统性,学生在项目活动中获得的知识往往是零散的,专业知识学习的深入程度有一定局限,若学生的学习能力不足,则学生的可持续发展将无法保证。
(2)课堂组织、管理的难度增加。项目教学法没有特定的结构或一成不变的教案或教学材料,它是一个复杂但灵活的框架,它给学生提供了创造的空间,也给教师带来了课堂组织、管理的难题。项目教学中,教师已从课堂的权威转换为学生学习的引领者,这一角色的转换,往往会使教师难以把握课堂纪律,管得太多,不利于学生开展活动;管得太少,又会造成学生的放任自流,甚至影响项目任务的完成。
三、非项目驱动与项目驱动的Java实验教学学习效果比较
研究表明,非项目驱动与项目驱动的Java实验教学学生学习效果如表1所示。
四、结论
采用项目驱动的Java实验教学可以培养学生在Java语言程序设计中的分析问题、团队协作精神以及组织交往能力和自我管理的能力,更能够提高学生的实际操作能力。通过对项目的合理拆解,将项目分步骤划分,结合课堂上对项目从简单的结构分析到最后整体系统的分析,实现学生在实验上从简单的项目单元实现到最后的整体系统实现,每次实验甚至课堂均围绕这个项目来实施或者进行案例分析,让学生从开始就围绕着项目进行实践训练,组织学生分组讨论,提高学生对实验的兴趣,培养学生团队合作意识,体验项目开发的整体过程,从而培养学生的动手能力。
参考文献
[1]贺平.项目教学法的实践探索[J].中国职业技术教育,2006(3):41-44.
[2]迟全勃.项目教学法在高职实践教学中的尝试与探索[J].北京农业职业学院学报,2009(3):61-65.
[3]朱小英.以项目方式驱动Java实验课程教学的创新[J].成都大学学报(教育科学版),2008(8):93_96.
[4]朱剑锋.项目教学法在Java程序设计课程教学中的应用[J].琼州学院学报,2011(2):82_84.
java程序设计实验指导 篇8
关键词: Java; 面向对象; 程序设计课程; 教学方法
中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)01-37-03
Pondering over teaching of “java programming designing”
Lan Wenfei, Li Zimao
(School of Computer Science, South-central University of Nationalities, Wuhan, Hubei 430074, China)
Abstract: Java is becoming one of the most popular object-oriented programming languages in developing areas based on Internet and one of the core programming curriculums for universities. In this paper, some Java teaching problems are discussed, such as the choice of teaching materials, the choice of developing environment, filtering of teaching content, using of teaching method, design of the teaching cases. The feasible ideas for above are given.
Key words: Java; object-oriented; programming curriculum; teaching method
0 引言
在Java面世短短的十来年间,Java以其简单易学、安全可靠、面向对象、多线程及平台独立性等许多特点[1-3],被越来越多地推广和使用,它已成为Internet上最受欢迎的开发语言之一。
目前,许多高校已将“Java程序设计”列为程序设计的核心课程之一,肯定了它在培养计算机开发类人才中的地位和作用。
本人已连续多年担任高校计算机专业Java程序设计课程的主讲教师,针对Java教学中存在的问题,积累了一些教学经验,希望能与同仁共同探讨。
本文就Java语言的教学,包括教学时数的安排、教材的选择、开发环境的选取、教学内容的筛选、教学方法的运用、教学实例的选用等方面[4,5],给出了一些自己的做法,实践证明,这些方法是可行的。
1 教学准备环节
首先讨论Java程序设计课程教学的准备工作。
1.1 合理安排教学时数
我们授课的对象是软件工程实验班本科学生,该课程安排在大一第二学期,鉴于学生在大一第一学期已具备基本的计算机原理及专业基础知识,这样来安排教学计划是比较合理的。考虑到学生在大一已具备C/C++高级语言程序设计的基础,而多数学生在国内修完本科课程后会选择到国外继续深造学习,所以Java语言程序设计课程的教学设计必须考虑全方位,此外Java语言衍生自C++,它的基本语法同C语言,而其面向对象的基本特征同C++。鉴于此,我们将Java程序设计课程的上课时数设置为48个授课学时,18个实践学时,这样设置是比较合适的。
1.2 精选教材
选择合适的教材,是保证有效教学的重要手段之一[6]。合适的Java教材, 应具有较好的知识覆盖面,难度适中,适合学生的具体情况[4]。由于我们讲授的对象是实验班学生,需要使用全英文教学,此外,他们已具备一定的面向对象程序设计基础,所以诸如《Thinking in Java》、《Objects First with Java》、 《The Java Programming Language》等经典书籍都适合作为该课程的教材。
选择国外经典教材,能保证我们的教学内容与国外接轨[7]。学生在阅读英文原版教材的同时,可同时参考对应的中文翻译本,能使学生加强对所学知识的理解。
1.3 选择合适的实验环境
由于JDK(Java Development Kit)是命令行的编程环境,需要用编辑器建立Java源程序。如果选用Windows自带的记事本notepad来编辑程序,首先程序中若出现语法错误是很不容易被发现的;其次每次必须打开cmd窗口并输入一大堆命令,如编译命令、运行命令等;再就是对于applet小程序还要自编html文件,非常麻烦。但是,如果选用超智能、傻瓜型的集成开发环境,如JBuilder、NetBeans,因其耗内存,所以速度慢,慢到不能忍受;更重要的是不利于入门级的学生掌握Java的基本语法。因为Java上机实践的一个重要训练内容就是熟练使用Java编译器(java.exe)去检查语法错误,并能修改错误,这样做的目的是使学生能较快地掌握Java语法。
本文简要介绍一种既简单又方便入门者使用的Java编辑器TextPad。TextPad作为Java编辑器需要做简单配置,首先把TextPad装上(先装JDK),安装完毕就可按下面的方法配置:在菜单的Configure中选择Preference,选择Tools,点add下拉菜单,选择Java SDK commands。之后Tools中多了3项:Compile Java、Run Java Application、Run Java Applet。从这一点来看它确实比其他的Java编辑器更容易配置,如EditPlus。
按上述方法配置TextPad Java编辑器后,还可适当优化TextPad Java IDE环境,使它更适合编写、执行Java程序。优化环境方法在此省略,有兴趣的作者可参见文献[2]。
2 教学内容
根据多年的Java程序设计课程教学经验,我们认为讲授该课程的内容主要包括三个方面:一是Java语言基础;二是Java语言的新特性;三是在讲授上述内容时穿插介绍JDK类库的常用类。
Java语言基础包括:数据类型、表达式、基本语句、类和对象、继承和多态、异常处理机制、小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程。考虑到我们面授的学生已经掌握了C++面向对象程序设计基础内容,而且Java教学内容偏多、教学时数较少[8],因此对于衍生自C++的Java语言,它和C++类似的部分,包括数据类型和表达式、基本语句、类和对象、继承和多态及异常处理机制等,应讲授较少的学时数;而对于Java语言特有的部分,如小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程,则应讲授较多的学时数。由于篇幅有限,在此省去对每个章节学时数的具体编排。
1996年Sun公司发布了JDK1.0,在短短的十年时间里,JDK从1.0版本升级到6.0版本。特别值得一提的是2004年发布的JDK5.0版本,它在旧版本的基础上增加了一些非常有意义的新特性,比如,泛型编程、增强的for循环、自动装包/拆包、类型安全的枚举、可变参数和静态导入等,使用这些特性有助于我们编写更加清晰、精悍、安全的Java代码。为了与时俱进,让学生掌握较新的Java特性,我们认为很有必要在课堂上向学生传授新技术,以拓宽学生的知识面。
一方面为了节约有限的学时数,另一方面为了鼓励学生在课余积极使用、查阅JDK帮助文档,我们不安排专门的章节介绍JDK类库的使用,而是在讲授Java程序例子时,将重点介绍一些重要类的使用,比如,在讲授图形用户界面这一章时,则会讲授一些重要包的使用,包括java.awt、java.awt.event、java.applet、javax.swing等,概述这些包的类层次结构。这样做既节约了时间,也使学生通过对例子的学习较好地掌握了一些常用类的使用。特别需要说明的是,容器类很重要,这些类在程序设计中会普遍使用到。
总之,在教学内容的选择上,我们推崇简化的原则,忽略一些不常用的知识点,如带标号的跳转语句、复杂的表达式运算规则、嵌套类等,这样做既节约了课时,也能充分引导学生编写简单、可读性好的程序代码[4]。
3 教学方法
充分利用多媒体教学设施,为上课讲述的例子做编译、运行演示。对于学生编程时常常出现的错误,在编辑程序时可设置类似的错误障碍,让学生修改错误,以杜决今后再出现此类错误,此外还能现场教会学生如何使用JDK TextPad开发环境。到了学期的中后期,鉴于学生们已基本掌握Java的语法,上课可适当减少演示例子的次数。
对于Java基本类库的授课,根据多年的Java开发经历和教学实践,我们认为学生应该对基本类库有个整体了解,要重点掌握 Java类库中的Java.lang和Java.util两个包,特别是容器类的应用是难点,需要结合实际例子阐述。这两个包提供的是Java编程要用到的基本类,学生需要清楚这些类或接口的继承关系、主要功能[5]。我们在授课时适当介绍JDK API文档的使用和阅读,提倡使用最新版本的英文API文档;在教学中注意总结相关类的联系和区别,如String和StringBuffer在使用上的区别,以及FileInputStream和RandomAccessFile在用于读文件时的区别。
在实施Java教学时,应注意Java和C++的区别。Java和C++都是面向对象的语言,而且Java衍生自C++,在基本语法及面向对象特征方面均有很多相同之处。比如,我们在讲授Java的数据类型、常量、变量、表达式、语句、类和对象、继承和多态等内容时,应着重指出它和C++的区别,简略细节知识。这样既能节约课时,也能使学生快速掌握Java的基本语法和面向对象特征。
在学生掌握了Java的基本语法及面向对象特征的基础上,我们会考虑将重点放在图形用户界面、多线程、网络编程和数据库编程上,以使学生能进行一般的Java应用编程。
如果课堂教学时数比较宽裕,则可介绍Java和UML、Java和设计模式相关的知识,强调软件开发新技术,特别是对于软件工程专业的学生,更应该这么做。
4 教学实例
可将程序例子分为非算法型和算法型两种类型。在介绍Java基本语法时,我们提倡用非算法型的例程,利于学生对例子程序的阅读和理解。而在讲授计算机典型问题,如排序、查找、递归时,则使用算法型的例程,以加强学生对一些典型问题的掌握。
在选择例程时,以例程中是否含有JDK类作为筛选原则,目的在于能让学生掌握更多的JDK类。
此外,在期中阶段,可选择一两个游戏项目作为综合的例程,如用于Java学习的Robocode游戏实验项目。Robocode是IBM的一位工程师MatNelson用Java语言所创造的机器战斗仿真引擎,是一款专门为程序员设计的游戏半成品。利用该引擎,只要编写几行简单的代码,就可以创造出一个在屏幕上四处疾驰的机器人坦克,参加游戏对战[4]。这样能增强例子的实用性和趣味性,调动学生学习Java的积极性。在此基础上,再布置一个游戏项目,作为学生在课余时间的练兵题。
5 结束语
衍生于C++的Java语言,作为一种面世较晚的语言,它集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程、平台无关等[9],使其拥有众多优秀的特性,从而成为面向对象软件开发的首选语言。
出于“Java程序设计”这门课的重要性和教学中存在的问题,本文提出了“Java程序设计”教学实施的诸多方面,并在作者施教的班级进行了多次实践,实践表明,上述教学思路是可行的,能在一定程度上提高教学效果。
下一步我们将在“Java程序设计”实践教学和后续课程改革方面进行实践探讨。
作者多年从事Java教学和Java软件开发工作,积累了一些教学经验,本文将它提练总结,希望能给Java同仁一些启示。
参考文献:
[1] 秦学礼,汪迎,郑淑红.Java程序设计实用教程[M].清华大学出版社,2012.
[2] 刘正林等.Java技术基础(第2版)[M].华中科技大学出版社,2004:30-40
[3] 印旻.Java语言与面向对象程序设计(第二版)[M].清华大学出版社,2007.
[4] 叶恒舟.Java程序设计教学探讨[J].科技信息,2007.1:23-25
[5] 李纯玉,胡丽娜.Java语言程序设计教学中的几点思考[J].科技信息,2007.2:10-13
[6] 张延军,乔德军,温炎耿等.构建Java教学体系[J].邯郸学院学报,2007.17(9):41-44
[7] 蓝雯飞,郑波尽.高级语言程序设计课程建设思路[J].计算机教育,2012.6:30-32
[8] 陆萍.浅议Java程序设计教学改革[J].电脑知识与技术,2007.27:32-35
【java程序设计实验指导】推荐阅读:
java程序设计实验题目12-14
Java程序设计教学07-24
Java程序设计语言08-31
java程序设计教学大纲09-01
《Java程序设计》课程简介10-13
java程序设计实习报告10-25
java面向对象程序设计教案12-20
程序设计实验教程答案10-21
网络程序设计实验报告08-25