教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 经典范文大全 >

基本JAVA实验题及代码

来源:网络收集 时间:2024-11-01
导读: java代码 *^__^* JAVA*^__^* 一、熟悉Java编译器、Java解释器和Java反编译工具的使用方法 1.编写一个计算器类,要求实现加、减、乘、除运算,注意在进行除法运算时,如果除数为0,那么就直接输出Error来 下面代码为判断是否为数字,如果是数字,那么返回是t

java代码

*^__^*

JAVA*^__^*

一、熟悉Java编译器、Java解释器和Java反编译工具的使用方法

1.编写一个计算器类,要求实现加、减、乘、除运算,注意在进行除法运算时,如果除数为0,那么就直接输出Error来 下面代码为判断是否为数字,如果是数字,那么返回是true,否则返回false,在使用下面代码前,要在程序头导入包:import java.util.regex.*;

public static boolean isNumeric(String str) { Pattern pattern = http://www.77cn.com.cnpile("[0-9]*"); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ) { return false; } return true; }

2.要求用户通过命令行去执行程序,执行的时候以参数的形式输入两个操作数和一个操作法,例如第一步编译成功后的名称为MyCal.class,那么在命令行执行MyCal 10 + 15 ,那么就计算打印出10加15的结果,打印结果:输出:10+15=25。

3.要求用户在执行的时候必须要输入三个参数,如果参数不够,那么提示用户输入三个参数,然后退出。另外要判断用户输入的参数是否是数字,如果不是,那么也提示,然后直接退出。

二、熟悉Eclipse编写Java程序熟悉,Java中变量的定义和使用,Java中的程序结构 1、编写Java程序,要求在运行的时候输入一个数字,表示行数,程序计算出相应行数的杨辉三角数据,并在屏幕上显示出来。

(1)、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 (2)、第n行的数字个数为n个。 (3)、第n行数字和为2n 1。

(4)、每个数字等于上一行的左右两个数字之和。

(5)、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+2行第5个数 连成

一线,这些数的和是第2n个斐波那契数。将第2n行第2个数,跟第2n+1行第4个数、第2n+2行第6个数 这些数之和是第2n-1个斐波那契数。

(6)、第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×n×(n-1)/2,

第四个数为1×n×(n-1)/2×(n-2)/3 依此类推。

通过main方法中的args获取用户附带的参数,例如用户输入app 10 (注意

参数间有空格),那么args对应的值为:args[0]=10,然后通过Integer.parseInt(args[0]),即可得到int类型的数据。

代码如下:

import java.util.*; public class Yhsj { private int rows; public int getRows(){ return rows;

java代码

public void steRows(int rows) {

this.rows=rows; }

public Yhsj(int rows) {

this.rows=rows; }

static void show(int Row) {

int a[][]=new int[Row+1][]; for(int i=0;i<=Row;i++) {

a[i]=new int[i+1]; }

for(int i=0;i<=Row;i++) {

for(int j=0;j<=a[i].length-1;j++) {

if(i==0||j==0||j==a[i].length-1) a[i][j]=1; else

a[i][j]=a[i-1][j-1]+a[i-1][j]; } }

for(int i=0;i<=Row;i++) {

for(int k=i;k<Row;k++) System.out.print(" ");

for(int j=0;j<=a[i].length-1;j++) {

System.out.print(a[i][j]+" "); }

System.out.println(); } }

public static void main(String[] args) { int LN=0;

System.out.println("输入要打印的行数:"); Scanner sc = new Scanner(System.in); LN = sc.nextInt();

Yhsj aming=new Yhsj(LN); show(aming.getRows()-1);

java代码

}

运行结果:

此作用只是证明它有运行结果,所以小小的,呵呵。。。

三、熟悉Eclipse编写Java程序,Java中程序的结构,类的声明和定义,

掌握面向对象的基本思想,抽象对象并定义类,类的继承结构,理解并能熟练运用类的多态性,抽象类和接口及它们的区别,理解并熟练运用抽象类和接口解决耦合问题。 1、构造一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和周长,此外,它还有一个具体方法message(),能输出类的一些信息。

public abstract class Shape {

public abstract void area(); public void message(){ } }

//创建抽象类 //创建抽象方法

//创建具体方法

public abstract void perimeter(); //创建抽象方法

System.out.print("OY");

2、定义一个接口Graph,它有一个抽象的方法draw(),表示绘制Shape。

public interface Graph {

}

//创建接口

public abstract void draw(); //创建抽象方法

3、构造Shape的两个子类Circle和Rectangle,分别表示圆和矩形,并且实现接口Graph。

//创建Circle类,继承Shape类,并实现接口Graph

public class Circle extends Shape implements Graph { }

//创建Rectangle类,继承Shape类,并实现接口Graph public class Rectangle extends Shape implements Graph{

// 重写抽象类的抽象方法 public void area() { // 重写抽象类的抽象方法 public void area() { }

// 重写抽象类的抽象方法 public void perimeter() { }

// 重写接口的抽象方法 public void draw(){ };

java代码

}

// TODO Auto-generated method stub

// 重写抽象类的抽象方法 public void perimeter() { }

// 重写接口的抽象方法 public void draw(){ }; }

// TODO Auto-generated method stub

4、构造测试类Test,其有方法getShapeData(Shape s),它输出s的面积和周长,构造矩形实例和圆实例,体会area方法和perimeter方法的多态性。

public class Test { }

}

public static void main(String[] args) { }

s.area(); s.perimeter();

//创建Test类 //创建 方法

public static void getShapeData(Shape s){

getShapeData(new Circle());

getShapeData(new Rectangle());

//抽象类的多态 //抽象类的多态

5、类似上题,为Test添加方法drawGraph(Graph g),它“画出”Graph的图形----调用draw方法,构造矩形实例和圆实例,体会draw方法的多态性。

public class Test {

public void drawGraph(Graph g){ }

public static void main(String[] args) { } }

总结:

1、根据自己对实验的理解,说明一下在本实验中,抽象类Shape的作用是什么?

产生子类的同时给于子类一些特定的属性和方法 2、 分析说明抽象类和接口的异同?

抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可以被子类部分实现,接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可以实现多个接口。

1. 类是对对象的抽象;抽象是对类的抽象;接口是对行为的抽象。

//创建Test类

//创建 方法

g.draw();

Test t=new Test();

t.drawGraph(new Circle());

//接口的多态

t.drawGraph(new Rectangle());

//接口的多态

java代码

2. 如果行为跨越不同的对象,可使用 ;对于一些相似的类对象,用继承抽象类。

3. 抽象类是从子类发现公共的东西,泛化出父类,然后子类继承父类;而接口是根本不知子

类的存在,方法如何实现还不确定,预先定义。

四、

五、熟悉Eclipse编写Java程序,Java中程序的结构,接口的定义和使用

学校中有教师和学生两类人,而在职研究生既是教师又是学生。设计两个接口studentinterface和teacherinterface。其中,studentinterface接口包含setFee()getFee()方法,分别用于设置和获取学生的学费;teacherinterface接口包含setPay()和getPay()方法,分别用于设置和获取教师的工资。

定义一个研究生类graduate,实现studentinterface接口和teacherinterface接口,它的成员变量有name,sex,age,fee,pay。

创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。

要求:在graduate中实现各个接口定义的抽象方法。 实验代码:

定义接口IStudentinterface

public interface IStudentinterface //创建学生接口 { }

public void setFee(float fee); public float getFee();

//抽象(设置学生的学费)方法

//抽象(获取学生的学费)方法

定义接口ITeacherinterface

public interface ITeacherinterface //创建教师接口 { }

定义研究生类Graduate

public class Graduate implements IStudentinterface, ITeacherinterface { {

String name,sex; int age; float fee,pay;

public Graduate(String name,String sex,int age) //定义构造函数设置姓名,性别 }

@Override

public float getFee() {

//实现返回学费数据的方法

// TODO Auto-generated method stub http://www.77cn.com.cn = name; this.sex = sex; this.age = age;

public void setPay(float pay); public float getPay();

//抽象(设置教师工资)方法

//抽象(获取教师工资)方法

及年龄

java代码

}

}

return fee;

@Override

public void setFee(float fee) { }

@Override

public float getPay() { }

@Override

public void setPay(float pay) { }

this.pay = pay;

//实现设置工资数据的方法

// TODO Auto-generated method stub return pay;

//实现返回工资数据的方法

// TODO Auto-generated method stub this.fee = fee ;

//实现设置学费数据的方法

// TODO Auto-generated method stub

定义测试类Test实例化方法

public class Test { }

六、掌握Java高效类的特征,Java中如何设计高效的低耦合高聚合类,掌握接口在类的耦

/**

* @param args */

public static void main(String[] args) { }

// TODO Auto-generated method stub

Graduate zs = new Graduate("zhangsan","男",26); zs.setFee(1500); //设置学生学费 zs.setPay(2000); //设置教师工资 float zsf = zs.getFee(); float zsp = zs.getPay(); float zst = zsp - zsf; if(zst<2000){ }

System.out.print("provide a loan");

合性中的作用

java代码

1、设计一个学生信息管理系统,要求能对学生的信息进行增删改查的操作,在设计中要求能充分合理使用低耦合和高聚合的特征。注意,在对数据库的操作语句不需要完成,只需要进行相应的提示即可。

实验代码如下:

//创建学生基类 Students public class Students {

}

private String Name; private String Sex; private int Age;

public Students (String strName, String strSex, int iAge) //设置学生信息的构造{ }

public String GetStudnetName(String strName) { }

public String GetStudnetName() { }

public String GetStudentSex() { }

public int GetStudentAge() { }

return Age; return Sex; return Name;

this. Name = StrName; this. Name = StrName; this. Sex = StrSex; this. Age = IAge;

方法

//创建Manager类针对实现学生信息操作的具体方法实现

public class Manager {

public Student AddStudent(String strName, String strSex, int iAge) {

Student S1 = new Student (strName, strSex, iAge);

String strSql = "添加学生信息"

+" 姓名: " + S1.GetStudnetName() +" 性别: " + S1.GetStudentSex()

java代码

}

+" 年龄: " + S1.GetStudentAge();

System.out.println(str_Sql); return S1;

}//提供添加学生信息的方法

public void DeleteStudent(Student s1) {

public void DeleteStudent(String strName) {

String strSql = "修改学生信息"

+ " 姓名: " + S1.GetStudnetName();

System.out.println(strSql); String strSql = "删除学生信息"

+ " 姓名: " + S1.GetStudnetName();

System.out.println(strSql);

}//提供删除学生信息的方法

}//提供修改学生信息的方法

public void SelectStudnet(Student S1) {

String strSql = "查找结果:\n "

+ "姓名: " + S1.GetStudnetName() + "性别: " + S1.GetStudentSex() + "年龄: " + S1.GetStudentAge();

System.out.println(strSql);

}//提供查找学生信息的方法

书写测试类完成实际操作:

public class Test { }

public static void main(String[] args) { }

Manager M1 = new Manager ();

Student S1 = Manager.AddStudent("张三","男",22); M1.UpdateStudent (S1,”李四”); M1.SelectStudnet (S1); M1.DeleteStudent (S1);

七、掌握Java高效类的特征,Java中成员函数的设计,Java中常用的从Object中继承的

方法的作用,成员函数的重写 设计一个软件,实现以下功能:

1、 设计一个成绩类,具有课程编号、课程名称、分数 2、 设计一个学生信息类,具有学号、姓名、性别、成绩

java代码

3、 要求学生信息类能完成对象的克隆(Clone)、比较(Equals)、学号输出(HashCode)、

信息输出(ToString)等相关功能。

4、 克隆的时候,要求对新对象中成绩的修改不影响到旧对象的成绩

5、 比较的时候,只需要对对象中的学号进行比较,如果学号相等,那么就返回为真,

否则为假

6、 当运行对象的HashCode方法时,输出此对象的学号

7、 当执行对象的toString方法时,要求按照下面的格式输出数据

0001 张三 男 80 87 90 81

成绩类:

package http://www.77cn.com.cn;

public class Score { }

public Score(String courseID, String courseName, int courseScore) { }

private String courseID; public String getCourseID() { }

public void setCourseID(String courseID) { }

private String courseName; public String getCourseName() { }

public void setCourseName(String courseName) { }

private int courseScore; public int getCourseScore() { }

public void setCourseScore(int courseScore) { }

this.courseScore = courseScore; return courseScore;

this.courseName = courseName; return courseName; this.courseID = courseID; return courseID; super();

this.courseID = courseID; this.courseName = courseName; this.courseScore = courseScore;

学生信息类:

package http://www.77cn.com.cn;

java代码

public class Student implements Cloneable{

private String stuNo;

public String getStuNo() { }

public void setStuNo(String stuNo) { }

private String stuName;

public String getStuName() { }

public void setStuName(String stuName) { }

private String stuSex;

public String getStuSex() { }

public void setStuSex(String stuSex) { }

private Score[] stuScore;

public Score[] getStuScore() { }

public void setStuScore(Score[] stuScore) {

return stuScore; this.stuSex = stuSex; return stuSex;

this.stuName = stuName; return stuName; this.stuNo = stuNo; return stuNo;

public Student(String stuNo, String stuName, String stuSex, Score[] stuScore) { }

super();

this.stuNo = stuNo; this.stuName = stuName; this.stuSex = stuSex; this.stuScore = stuScore;

java代码

}

}

public int hashCode() { }

return Integer.parseInt(this.stuNo);

public boolean equals(Object obj) { }

@Override

public String toString() { }

protected Object clone() throws CloneNotSupportedException { }

Student stu=(Student)(super.clone()); stu.stuScore=this.stuScore; return stu;

String strTemp = this.stuNo+"\t"+this.stuName+"\t"+this.stuSex+"\t";

for(int i=0;i<stuScore.length;i++) { }

return strTemp;

strTemp+=this.stuScore[i].getCourseScore()+"\t";

if(this.stuNo== (String) obj ) { }

return true;

return false;

测试类:

package http://www.77cn.com.cn;

public class Test {

/**

* @param args

java代码

public static void main(String[] args) throws CloneNotSupportedException {

// TODO Auto-generated method stub Score sc=new Score("EN001","英语1",80); Score sc1=new Score("EN001","英语1",87); Score sc2=new Score("EN001","英语1",90); Score sc3=new Score("EN001","英语1",81);

Score[] score=new Score[4]; score[0]=sc; score[1]=sc1; score[2]=sc2; score[3]=sc3;

Student stu=new Student("10001","张三","男",score);

stu.setStuScore(score);

System.out.println("该对象的学号是:"+stu.hashCode());

if(stu.equals("10001")) { } else { }

Student stu1=(Student)stu.clone();

System.out.println("克隆对象后的学号是:"+stu1.hashCode());

Score sco=new Score("EN001","英语1",90); Score sco1=new Score("EN001","英语1",97); Score sco2=new Score("EN001","英语1",100); Score sco3=new Score("EN001","英语1",91);

Score[] score1=new Score[4]; score1[0]=sco; score1[1]=sco1; score1[2]=sco2; score1[3]=sco3;

stu1.setStuScore(score1);

System.out.println("10001 与 对象学号: "+stu.getStuNo()+" 不同啦"); System.out.println("10001 与 对象学号:"+stu.getStuNo()+" 相同啦");

java代码

}

}

System.out.println(stu.toString()); System.out.println(stu1.toString()); System.out.println(stu.toString());

程序结果:

八、掌握Java如何实现多线程程序的设计,Java中实现多线程的方法

参考书本多线程的代码,设计具有以下功能的程序 总共有1000张火车票

有四个售票点来销售(用四个线程来模拟实现)

当线程销售出去一张票时,显示线程销售的提示信息

(一)public class DuoThreah implements Runnable {

@Override

public void run() {

// TODO Auto-generated method stub int nonSharedValue = 100; nonSharedValue += 100;

System.out.println("Value:"+ nonSharedValue); } /**

* @param args */

public static void main(String[] args) { }

// TODO Auto-generated method stub DuoThreah ts = new DuoThreah(); Thread t1 = new Thread(ts); Thread t2 = new Thread(ts); t1.start(); t2.start();

java代码

}

(二)、

public class DuoThreah implements Runnable { }

/**

* @param args */

public static void main(String[] args) { }

// TODO Auto-generated method stub DuoThreah ts = new DuoThreah(); Thread t1 = new Thread(ts); Thread t2 = new Thread(ts); t1.start(); t2.start(); int SharedValue=100; @Override

public void run() {

// TODO Auto-generated method stub

SharedValue += 100;

System.out.println("Value:"+ SharedValue); }

(三)、

public class DuoThreah implements Runnable {

int SharedValue=0; @Override

public void run() {

// TODO Auto-generated method stub SharedValue += 1;

java代码

}

out} /**

* @param args */

public static void main(String[] args) { }

// TODO Auto-generated method stub DuoThreah ts = new DuoThreah(); Thread t1 = new Thread(ts); Thread t2 = new Thread(ts); Thread t3 = new Thread(ts); Thread t4 = new Thread(ts); t1.start(); t2.start(); t3.start(); t4.start();

(四)、

public class DuoThreah implements Runnable {

int SharedValue=0; int SurplusValue=1000; @Override

public void run() { {

SharedValue +=1; SurplusValue -= 1;

System.out.println("卖出票数为:"+ SharedValue+"张"+","+"剩余票数为:"+ } }

// TODO Auto-generated method stub

while(SurplusValue!=0)

SurplusValue+"张"+";");

java代码

}

* @param args */

public static void main(String[] args) { }

// TODO Auto-generated method stub

DuoThreah ts = new DuoThreah();

Thread t1 = new Thread(ts); Thread t2 = new Thread(ts); Thread t3 = new Thread(ts); Thread t4 = new Thread(ts); t1.start(); t2.start(); t3.start(); t4.start();

九、掌握Java如何实现多线程程序的设计,Java中实现多线程的方法,线程的启动、挂起、退

出等相关操作

参考书本P101至P132多线程的代码,设计一个多线程下载程序 a) 能够输入下载地址 b) 能够控制下载动作

c) 要求使用多线程来下载,下载时要能响应其它用户操作。 d) 要能够显示下载的进度

十、掌握Java集合的使用方法,Java中方法的重写步骤,面向对象程序设计的方法

设计一个Java程序,要求能完成以下功能: 1、程序要能够存储任意多个学生的信息。

2、学生的信息有:学号、姓名、性别、年龄等相关字段。 3、可以增加学生的信息,如果学号相同就不能添加 4、根据用户输入的学号信息,可以删除掉相应的学生信息

基本JAVA实验题及代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/765142.html(转载请注明文章来源)
Copyright © 2020-2021 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)