java实验指导.doc_第1页
java实验指导.doc_第2页
java实验指导.doc_第3页
java实验指导.doc_第4页
java实验指导.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 Java开发环境实验目的:1. 掌握Java开发环境的组成,软件的下载、安装和配置。2. 掌握在Java开发环境中建立、编辑、调试和运行Java源代码的方法。实验内容:1. Java开发环境的下载Java开发环境使用的所有软件都支持多平台多系统,下载的时候请注意选择针对于当前操作系统(Windows)及位数(32位还是64位)的版本。(1) jdk到oracle官网下载频道的Java SE7栏目中找到jdk7或直接在网络搜索jdk7,下载jdk7的任意版本,jdk7的最新版本是jdk7u55。(2) netbeans到网站或网络搜索netbeans7.3,下载netbeans的7.3版本。2. Java开发环境的安装(1) 安装jdk.运行安装程序后打开如下界面。多次点击下一步进行安装,等待进度条完成,跳转到结束页面。点击关闭按钮完成安装。(2) 安装netbeansNetBeans的安装需要先安安装jdk。 运行安装程序过程中需要选择应用服务器,如果需要开发Java Web应用选择安装tomcat7。如果仅仅是学习java语言可不做选择。Junit无需安装。然后点击下一步直至安装完成。3. Netbeans的使用(1) 新建项目点击打开开发环境界面左上角“文件”菜单,选择“新建项目”,打开如下窗口。左边“分类”选择框选择第一个java,右边“项目”选择框也选第一个java应用程序,然后点击下一步。在第一个输入框输入项目名称(示例中使用默认名称JavaApplication3),第二输入框填入或者选择项目文件夹的位置。最下面的复选框根据需要选择是否在新建项目中创建包含主方法的主类,默认选中。然后点击“完成”按钮。左边的项目窗格中出现新建的项目树状结构。 项目(JavaApplication3)下有两个文件夹,上面的源包中可以建多层的包结构存放java源文件,下面一个文件夹用于存在类库。自动生成的主类与项目名称相同,放在源包文件夹下同名的包中。(2) 新建源代码文件任何Java源代码文件必须包含于项目中,在新建项目的同时可以同时生成第一个源代码文件,也可以在已有项目中新建多个Java源代码文件。在左边的项目窗格的项目名称上单击鼠标的右键,在上下文菜单中选择“新建”“Java类”,弹出如下窗口。在类名(Class Name)输入框中输入新建类的名称,在包(Package)输入框中输入新建类所在的包名。最后点击右下方的完成(Finish)按钮。(3) 编辑源代码文件在左边的项目窗格双击java源文件,右边的编辑区域将打开文件的内容。如果源文件中已生成主方法main的声明,那就可以直接编写程序语句。如果类中不包含main方法的声明,则需手动添加。(4) 运行源代码文件运行文件有两种方式:第一种,在编辑区域点击鼠标右键,在上下文菜单中选择“运行文件”选项,即可运行当前的源代码文件。第二种,在项目窗格的Java源代码文件名上点击鼠标右键,在弹出菜单中选择“运行文件”选项,即可运行选中的源代码文件。代码的运行结果将会在编辑区域下方的窗格中显示。(5).调试源代码文件在准备调试代码之前,先在可能出现问题的代码行,点击行标,设置断点。然后使用调试方式来运行程序,调试运行的选项就在正常运行文件选项(见上节介绍)的下方。程序运行到设置了断点的行会自动停止运行,行标处有小箭头表示当前程序运行到的位置,可按F8键进行单步运行,同时可在下方的变量窗格中查看程序变量的值。实验二 类和对象的初步认识实验目的:1.掌握Java语言中类的定义、对象的创建、对象引用方法。2.初步了解面向对象设计方法。实验内容:1. 设计一个自动铅笔类AutoPencil,有1个属性boolean penPoint(笔尖是否伸出),有4个函数: (1)构造函数AotoPencil(),将penPoint置为false (2)按压操作函数void Knock(),将penPoint置反 (3)获取笔尖状态函数 boollean GetPenPoint() (4)main函数 创建对象并对实例对象进行按压操作,显示笔尖的状态。2. 设计一个汽车类Car,有2个属性车主owner和油量oil,有7个函数: (1)构造函数Car(String owner,double oil) (2)构造函数Car(String owner),油量置为0 (3)加油操作函数void AddOil(double oil) (4)行驶操作函数void Drive(int distance) 假设每100公里的耗油量为定值(自己设置),根据行驶的公里数更新油 量。 (5)获得车主信息函数String GetOwner() (6)获得油量函数double GetOil() (7)main函数 创建对象并对实例对象进行加油、行驶操作,显示车主、油量。实验三 Java程序设计基础实验目的:1.掌握Java语言的数据类型,熟悉如何定义和使用各种类型。2.掌握Java语言顺序结构、选择结构和循环结构程序设计。实验内容:1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方 和等于该数本身。例如 153是一个水仙花数,因为 15313+53+332. 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问前24个月的兔子总对数依次为多少?提示: fn=fn-1+fn-2 3. 有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?输出这些3位数。 4. 可以用整型数的16个二进制位表示16支足球队小组出线的情况,每一位代表一支参赛队,其值为1表时该队出线,其值为0表示该队未能出线。假定从int的低16位由低位向高位分别代表第1队、第2队、第3队第16队,如果当前表示出线情况的int型值为50083,请输出哪些队获得了出线权?提示:n=50083,如果 n & 1 的结果等于1,说明第一队出线。 5. 两位数13和62具有很有趣的性质:把它们个位数字和十位数字对调,其乘积不变, 即13*6231*26。 编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11、22,重复出现的不在此列,如 13*62与62*13)。6. 验证歌德巴赫猜想。一个充分大的偶数(大于或等于6)可以分解为两个素数之和。 试编程序,将 6至50之间全部偶数表示为两个素数之和。7. 输入1到7之间的某个整数,输出相应的星期:Monday、 Tuesday 等等,用switch语句实现。提示:格式输入import java.util.Scanner;public class test public static void main(String args) Scanner input=new Scanner(System.in); /定义扫描键盘输入的对象 int a = input.nextInt; /从键盘输入文本中,读入一个整数 int b = input.nextFloat(); /从键盘输入文本中,读入一个浮点数 int c = input.nextFloat(); /相当于C语言的scanf(“%d%f%f”,&a,&b,&c); 实验四 数组实验目的:1.掌握数组的声明、定义、初始化和使用。2.掌握对一维或二维数组元素的访问方法。实验内容:1编写一个程序打印出有10个元素的数组a中最大值和最小值。2输出一个保存在二维数组中3*3矩阵,并求对角线元素之和。3某个一维数组中有10个元素,编写一个顺序查找程序,从中查找值为x的元素在数组中的位置。如果x不在数组中,输出-1。4打印如下形式的杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 输出前10行。5. 编写程序,完成下列功能:(1)输入20个整数到数组中;(2)对20个数按从大到小的顺序排序,输出排序后的数组;(3)输入一个整数x;(4)在数组中,用二分法查找x。如果找到了输出x在数组中的下标,找不到输出-1。6. 有M个人围成一圈,每人一个的编号(1.2.3.M),从第一个人数起,报到N时这个人就出圈,再继续数,报到N时这个人又出圈。直到只剩下一个人为止,输出出圈人的顺序。M、N从键盘输入。7. 编写一个模拟的Java发牌程序,要求将两副牌,也就是108张,发给4个人,并留8张底牌,最后输出底牌和每个人手中的牌。提示:(1) 对每张牌进行编号 红桃按照从小到大依次为113。 方块按照从小到大依次为1426。 黑桃按照从小到大依次为2739。 梅花按照从小到大依次为4052。 小王为53,大王为54。(2) 产生随机数 Import java.util.*; Public class testPublic static void main(String args) Int ranNumber;Random random = new Random(); /生成Random对象,用以生成随机数 ranNumber = random.nextInt(108); /产生0,108)之间的随机整数实验五 Java标准类库实验目的:1.掌握Java中的一些常用的基本类库的结构和主要功能。2.掌握Java字符串类、Vector类的主要功能和使用方法。实验内容:1. 输入两个字符串str1、str2,统计字符串str2出现在str1中的次数。如:str1=”aaas lkaaas” ,str2=” as” ,则应输出 22. 输入一行字符串,将所有的大写字母改成小写字母,把小写字母改成大写字母。3. 输入一行字符串(只有26个字母构成),统计有多少个字母(不区分大小写)及每个字母出现的个数。4. 输入一个数字串,先将它转换为整数,再分别以2进制、8进制、16进制输出。6. 使用数组保存书、CD、磁带等信息,并能实现插入、删除、查找功能。插入、删除时,要显示操作正确与否的信息;查找时按关键字值进行查找,显示查找结果。实验六 进一步探讨对象和类实验目的:1.使用类来封装对象的属性和功能。2.掌握使用package和import语句。;3.掌握子类的继承性、子类对象的创建过程、成员变量的继承与隐藏、方法的继承与重写。实验内容:1. 定义一个复数类 complex ,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚部,编程实现要求的数学运算。(1)实现两个复数相加。复数加运算的原则是:复数的实部和虚部分别相加。(2)实现两个复数相减。复数减运算的原则是:复数的实部和虚部分别相减。(3)输出运算结果,判断是否正确。2.设计一个Point类,该类包含两个int类型的成员变量:x、y,一个Color类型的成员变量mycolor。请给出此类的三种不同的构造方法,分别是一个不带参数的,一个带两个参数(x,y),一个带三个参数的构造方法。还要给出对应的get方法和set方法,最后重写equals和toString方法。提示:(1)使用Color类时,要用:import java.awt.Color, 颜色的常量:用Color.BLACK等(2)equals方法有1个参数p,Point类型。如果p.x、p.y、p.mycolor与本对象都相等则返回true,否则返回flase。(3)toString()返回一个字符串,内容为本对象的x和y坐标及颜色。3.模拟银行ATM机编写一个具有简单操作界面的Java应用程序,实现包括存款、取款、查询等功能在内的简单应用。(1)创建三个类:代表储户的账户信息类,代表银行ATM机的ATM类,外加一个主类(负责实例化及其它操作)(2)Account类记录储户的卡号、姓名、密码、账户余额信息,提供get方法获取每个属性值,对账户余额属性提供sub_Balance()方法和add_Balance()方法以实现余额增加、减少功能。注意:为加强对属性数据的控制访问,将其定义为private。(3)ATM类实现ATM机的主要功能,根据对银行ATM机的了解,设计以下主要方法。Welcome()方法:欢迎显示功能,并显示取款、存款、查询、退出系统的菜单功能。Load_Sys()方法:登录功能。SysOpter()方法:根据用户选择菜单,调用相应的方法。Inqu_Info()方法:查询账户余额 GetBalance()方法:取款Addbalance()方法:存款isBalance()方法:判断余额是否足够。isRight()方法:判断卡号、密码是否正确(3) Test类为主类:是整个程序执行的入口,主要完成创建ATM类实例的功能。并通过对Welcome()和Load_Sys()方法的调用显示欢迎画面,提示用户完成系统登录。提示:通过创建键盘输入输出流,读取键盘输入。import java.io.*;public class ATM public void XXXX( ) throws Exception String str; int n; double d; BufferedReader br=new BufferedReader (new InputStreamReader(System.in); /创建键盘输入输出流 n=br.read(); /从键盘读取一个字符,将该字符的ASCII码赋给n . str=br.readLine(); /从键盘读取一行 d=Double.valueOf(str).doubleValue();/将str转换为Double对象,/再调用这个对象的doubleValue()方法返回其对应的double数值4. 利用Java的多态性创建一个图形(Shape)类,并编程实现求正方形、三角形、圆面积的功能。(1) 要定义3个图形类(Square、Triangle、Circle),它们虽然形状不同,但具有相似的行为:计算面积、周长等,因此可以先抽象出一个父类,并定义一个公共的接口函数,再在子类中重写计算面积的方法,以求得不同形状的面积。(2) 定义一个测试类(主类),创建正方形、三角形、圆的实例,计算各图形面积。实验七 异常处理实验目的:1.掌握Java异常的概念、工作机制及分类。2.掌握抛出异常(throw)、抛出捕获处理(trycatchfinally)、上抛异常语句的使用(throws)。3.掌握创建自定义异常。实验内容:1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。2、编写程序,从键盘输入2个整数a和b,计算a/b。当分母为0时,抛出自己定义的异常。实验八 输入/输出处理实验目的:1. 理解Java技术体系中“流“的概念。2. 掌握System.in和System.out的基本使用方法3. 掌握字节流和字符流的常用类及使用方法。4. 掌握Java程序对文件的基本操作。实验内容:1. 使用基本输入输出流(不使用Scanner类)编制程序,当程序运行时。首先询问需要输入的数据个数,然后依次输入指定个数的整数,输入完毕后,输出所有输入整数的和及平均值。2. 从键盘输入一段字符串,写入d盘文件s.txt中。3. 读取一个文件的内容,对其内容进行修改,再写于另一个文件。参考程序实验二 类和对象的初步认识第1题样例程序:public class AutoPencil boolean penPoint;AutoPencil()penPoint=false;public void Knock()if(penPoint=true) penPoint=false;elsepenPoint=true;public boolean getPenPoint()return penPoint;public static void main(String args)AutoPencil p = new AutoPencil();System.out.println(p.getPenPoint();p.Knock();System.out.println(p.getPenPoint();p.Knock();System.out.println(p.getPenPoint();第2题样例程序public class Car String owner; /车主 double oil; /油量 Car(String owner) /构造函数1,油量为0 this.owner=owner; oil=0; Car(String owner,double oil) /构造函数2 this.owner=owner; this.oil=oil; public void AddOil(double oil) /加油 this.oil=this.oil+oil; public void Drive(int distance) /行驶,假定行驶100公里耗油量为p double p=6.0;/this.oil=this.oil-distance*p/100; oil=oil-distance*p/100; public String DisplayOwner() /显示油量 return owner; / 或 return this.owner; public double DisplayOil() /显示油量 return oil; / 或 return this.oil; public static void main(String args) Car car1 = new Car(张三); /张三买了一辆车,对象名为car1,油量为0 car1.AddOil(100); /张三去加了100升油 car1.Drive(120); /张三开车行驶了120公里 Car car2 = new Car(李四,20); /李四买了一辆车,对象名为car2,油量为20 car2.AddOil(50); /李四去加了50升油 car2.Drive(200); /李四开车行驶了200公里 car1.Drive(100); /张三开车行驶了100公里 System.out.println(car1.DisplayOwner()+的车,剩+car1.DisplayOil()+升油); System.out.println(car2.DisplayOwner()+的车,剩+car2.DisplayOil()+升油); System.out.println(car1.owner+的车,剩+car1.oil+升油); System.out.println(car2.owner+的车,剩+car2.oil+升油); 实验三 Java程序设计基础实验四 数组第7题样例程序import java.util.Random;public class Exp3 public static void main(String args) int total=new int108;/存储108张牌 int player=new int425;/存储4个玩家的牌 int leftNum=108;/当前剩余牌的数量 int ranNumber; Random random=new Random(); /生成Random对象,用以生成随机数 for(int i=0;itotal.length;i+) /初始化2副牌,i: 0107 totali=(i+1)%54; if(totali=0) /将2副牌编号1-54,存入total数组中 totali=54; /循环发牌 for(int i=0;i25;i+) /为每个玩家发25张牌 for(int j=0;jplayer.length;j+) /给4个玩家发牌/产生在0,leftNum)区间内的随机整数,随机产生一张牌 ranNumber=random.nextInt(leftNum); playerji=totalranNumber; /将牌发给第j个玩家,第i张牌 /删除已发过的牌,把最后一张牌放到已发的牌的位置 totalranNumber=totalleftNum-1; leftNum-; /剩余的牌的张数减1 /循环输出玩家手中的牌 for(int i=0;iplayer.length;i+) System.out.print(玩家+i+的牌); for(int j=0;jplayeri.length;j+) System.out.print( +playerij); System.out.println(); /底牌 System.out.print(底牌:); for(int i=0;i8;i+) System.out.print( +totali); System.out.println(); 实验五 Java标准类库实验六 进一步探讨对象和类第1题样例程序:public class Complex int RealPart; int ImaginPart; Complex() RealPart=0; ImaginPart=0; Complex(int r,int i) RealPart=r; ImaginPart=i; /方法一 Complex ComplexAdd(Complex a) Complex x = new Complex(); x.RealPart=RealPart+a.RealPart; x.ImaginPart=ImaginPart+a.ImaginPart; return x; /方法二 static void Add(Complex x,Complex a,Complex b) x.RealPart=a.RealPart+b.RealPart; x.ImaginPart=a.ImaginPart+b.ImaginPart; public static void main(String args) Complex x = new Complex(); Complex y = new Complex(); Complex a = new Complex(1,2); Complex b = new Complex(3,4); x=a.ComplexAdd(b); System.out.println(a+b=+x.RealPart+x.ImaginPart+i); Complex.Add(y,a,b); System.out.println(a+b=+y.RealPart+y.ImaginPart+i); 第2题样例程序public class Point int x,y; Color mycolor; Point()x=0;y=0;mycolor=Color.BLACK; Point(int x, int y) this.x=x; this.y=y; mycolor=Color.BLACK; Point(int x, int y,Color color) this.x=x; this.y=y; mycolor=color; public int getX() return x; public int getY() return y; public Color getColor() return mycolor; public void setX(int x) this.x=x; public void setY(int y) this.y=y; public void setColor(Color color) mycolor=color; public boolean equals(Point p) if(p.x=x & p.y=y & p.mycolor=mycolor) return true; else return false; public String toString() return 点(+x+,+y+)的颜色是+mycolor; public static void main(String argc) Color c=new Color(1,2,3); Point p1=new Point(1,2,c); /Point p2=new Point(1,2,Color.BLACK); Point p2=new Point(1,2,c); Point p3=new Point(); p3.setX(1);p3.setY(2);p3.setColor(Color.yellow); System.out.println(p1=p2?+p1.equals(p2); System.out.println(p1=p3?+p1.equals(p3); System.out.println(p1.toString(); System.out.println(点(+p1.getX()+,+p1.getY()+)的颜色是+p1.mycolor); System.out.println(点(+p1.getX()+,+p1.getY()+)的颜色是(+p1.mycolor.getRed() +,+p1.mycolor.getGreen()+,+p1.mycolor.getBlue()+); 第3题样例程序import java.io.*;class Account private String number=null; /卡号 private String name=null; /客户姓名 private String password=null; /客户密码 private double money=0.0; /客户余额 public Account(String number,String name,String password,double money) this.number=number; =name; this.password=password; this.money=money; protected String get_Number() return number; protected String get_Name() return name; protected String get_Password() return password; protected double get_Money() return money; protected void sub_Balance(double mon) /取款 money-=mon; protected void add_Balance(double mon) /存款 money+=mon; import java.io.*;public class ATM Account act; public ATM() act=new Account(000,test,111,5000); /生成Account实例 /* 欢迎界面 */ public void Menu() String str=; System.out.println(str); System.out.print(1.取款.n+2.查询.n+3.存款.n+4.退出系统.n); System.out.println(str); System.out.println(请选择您要操作的项目(1-4):); /* 登录系统 */ public void Load_Sys() throws Exception String card,pwd; int counter=0; BufferedReader br=new BufferedReader (new InputStreamReader(System.in); do System.out.println(请输入您的卡号:); card=br.readLine(); System.out.println(请输入您的密码:); pwd=br.readLine(); if(!isRight(card,pwd) System.out.println(您的卡号或密码输入错误。); counter+; else SysOpter(); while(counteract.get_Money() System.out.println(余额不足,请重新输入您要取的数目:); else act.sub_Balance(qu); System.out.println(取款成功,您的账户余额为:+act.get_Money(); SysOpter(); while(true); /* 存款 */ protected void AddBalance() throws Exception String str; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); do System.out.println(请输入存款的数目); str=br.readLine(); double qu=Double.valueOf(str); /将字符串转换为double类型 act.add_Balance(qu); System.out.println(存款成功,您的账户余额为:+act.get_Money(); SysOpter(); while(true); /* 判断卡内是否有钱 */ protected boolean isBalance() throws Exception if(act.get_Money()0) return false; return true; /* 卡号密码是否正确 */ protected boolean isRight(String card,String pwd) throws Exception if(act.get_Number().equals(card) & act.get_Password().equals(pwd) return true; else re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论