JAVA 上机实验三
- 格式:doc
- 大小:362.00 KB
- 文档页数:8
大一学生java上机实验报告大一学生Java上机实验报告实验名称:Java基础语法练习实验目的:通过完成一系列Java基础语法的练习,熟悉Java 的语法规则和基本操作,加深对Java编程的理解。
实验内容及步骤:1. 编写一个Java程序,实现计算器功能。
该程序需要接收用户输入的两个数字和一个运算符,然后根据运算符的不同进行相应的运算,并将结果输出。
代码示例:```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字:");double num1 = scanner.nextDouble();System.out.print("请输入第二个数字:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):");String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("输入的运算符无效!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java程序,实现2到100之间的所有素数的查找和输出。
Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。
2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。
3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。
四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。
java上机实验报告Java上机实验报告引言:Java作为一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象等优点,因此在计算机科学教育中被广泛使用。
本文将介绍我在Java上机实验中所掌握的内容和经验。
一、实验目的本次实验的主要目的是通过实际操作,掌握Java编程语言的基本语法和常用类库的使用方法,加深对面向对象编程的理解,并培养解决问题的能力。
二、实验过程1. 实验环境准备在开始实验前,我首先安装了Java开发环境(JDK)并配置好相关的环境变量。
这样我就可以在本地计算机上进行Java编程了。
2. 实验内容本次实验主要涉及以下几个方面的内容:a. 基本语法:学习了Java的基本数据类型、运算符、流程控制语句等。
通过编写简单的程序,我能够熟练地使用这些语法来解决实际问题。
b. 面向对象编程:学习了类、对象、继承、封装、多态等面向对象的概念和技术。
通过定义类和对象,我可以更好地组织和管理代码。
c. 异常处理:学习了如何使用try-catch语句来捕获和处理异常。
这对于编写健壮的程序非常重要,可以有效地避免程序崩溃或出现不可预料的错误。
d. 输入输出:学习了如何使用Java的输入输出类库来实现数据的读取和写入。
这对于与用户进行交互或者读取外部文件非常有用。
3. 实验结果通过本次实验,我成功完成了多个编程任务,并获得了满意的结果。
例如,我实现了一个简单的学生管理系统,可以添加、查询和删除学生信息。
这个程序不仅让我熟悉了Java的面向对象编程思想,还提升了我的编程能力。
三、实验心得通过这次实验,我深刻体会到了实践的重要性。
仅仅理论上了解一门编程语言是远远不够的,只有通过实际编写程序,才能真正掌握它。
在实验过程中,我遇到了很多问题,比如语法错误、逻辑错误等,但通过不断的调试和修改,我最终解决了这些问题。
这个过程让我学会了如何分析问题、查找错误并解决它们。
此外,我还意识到编程是一项需要耐心和细心的工作。
上机指导手册(3)一、实验目的与要求1、掌握类的声明,对象的创建以及方法的定义和调用;2、掌握字符串类String的常用方法。
二、实验内容【知识点】:●类的定义包括类的声明和类体两部分,而类体又由成员变量、构造方法和成员方法组成。
其一般形式为:[public] class 类名{[成员变量];[构造方法];[成员方法];}其中,class是定义类的关键字,类名必须符合标识符命名规则,public 是访问权限修饰符。
如果一个类被声明为public则该类可以被外部其他程序访问,并且包含该类的java源文件,其文件名与该类的类名相同。
●成员变量用于描述类的属性,不在任何方法中定义的变量就是成员变量,最基本的声明方式为:类型成员变量名;在某个方法中声明的变量称为局部变量,局部变量只在声明该方法的范围内有效,而成员变量的作用域是整个类的范围。
●成员方法用于描述类的行为,方法的定义由两部分组成,即方法声明和方法体。
基本形式如下:返回类型方法名(形式参数)//方法声明部分{【方法体,即处理数据的程序段】}其中,方法名的命名规则符合标识符命名规则;返回类型是指该方法调用后需要返回的数据的类型,由方法体中的return语句指明需要返回的数据,没有return语句返回数据时,返回类型需要声明为void;形式参数是声明调用该方法时需要提供的初始数据(已知条件)。
●构造方法主要用于创建对象时初始化对象的属性(即成员变量),其方法名必须与类名相同,而且无返回值,也不能用void来修饰。
只能在创建对象时用new操作符调用。
【示例】:定义一个圆环类Ring,圆环类有3个成员变量,分别是内半径innerRadius,外半径outerRadius和颜色color;有一个成员方法getArea可以返回其面积;有一个构造方法可以在创建对象时初始化设置圆环的内外半径和颜色。
该类定义如下:(建立java源文件,文件名Ring.java)public class Ring{double innerRadius,outerRadius ;//圆环的内外半径String color ;//圆环的颜色public Ring(double ir,double or,String color) //构造方法声明部分{innerRadius = ir ; //将形参分别赋值给成员变量outerRadius = or ;this.color = color ;}public double getArea() //求圆环面积的成员方法{double area = 3.14*outerRadius* outerRadius-3.14* innerRadius*innerRadius ;return area ;}}测试类:(建立java源文件,文件名Test01.java)public class Test01{public static void main(String args[]){Ring ring = new Ring(5.0,6.0, “red” );//通过new操作符调用构造方法创建圆环Ring的对象,对象引用名ring。
实验二:Java基本语法练习之迟辟智美创作一、实验目的及任务熟悉Java法式结构,掌握基本数据类型的使用方法,熟练运用分支、循环的使用方法.二、实验环境主机把持系统为Windows2000或Windows XP,已经配置好的JDK及Java编纂软件UltraEdit、Editplus或者TextPad 等软件中一种或多种.三、实验步伐1、使用Java编纂软件验证教材例题,参照教材对例题进行编写、编译并执行.2、课下在实验陈说纸上编写以下法式,并在上机课时编译并执行你所编写的法式,将编译及执行结果写在实验陈说纸上.1)设i是一个整数类型变量,写出下列问题对应的法式.(1)判断i为奇数或偶数;(2)判断i的值是否在0~9之间.public class Shu {public static void main(String[] args) {Scanner input = new Scanner(System.in);int i;System.out.println("请输入一个整数:(按回车)");i = input.nextInt();if(i % 2==0){System.out.println(i+"是一个偶数.");}elseSystem.out.printf(i+"是一个奇数.");if(0<=i&&i<=9){System.out.println(i+"在0~9之间");}elseSystem.out.println(i+"不在0~9之间");}}2)设ch是一个字符变量,写出下列问题对应的法式.(1)判断ch是一个十进制的数字字符;(2)判断ch是一个英文字母,不论年夜写或者小写;(3)将一个十进制的数字字符ch转换成对应的整数类型值.public class fun{public static void main(String[] args){char ch='A';if(ch>='0' && ch<='9'){System.out.println(ch+"是十进制数字符\n");}else if(ch>='a' && ch<='z'){System.out.println(ch+"是小写字母\n");}else if(ch>='A' && ch<='Z'){System.out.println(ch+"是年夜写字母\n");}}}public class haha2 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubchar a='h';if((a>=65 && a<=90)||(a>=97 && a<=122)){ System.out.println("a是字母");}if(a>=48 && a<=57){System.out.println("a是数字");}System.out.println("a转化为整形是"+(a+0));}}3、输出下列数字形式:11 2 11 2 3 2 11 2 3 4 3 2 1public class haha3 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint[][] a=new int[4][7];for(int i=0;i<4;i++){a[i][3]=i+1;a[i][2]=a[i][4]=i;a[i][1]=a[i][5]=i-1;a[i][0]=a[i][6]=i-2;for(int j=0;j<7;j++){if(a[i][j]>=1)System.out.print(a[i][j]);else{if(j==6){System.out.println(" ");}else{System.out.print(" ");}}}}}}四、实验陈说内容1、步伐2中所编写的法式,并将执行结果写在实验陈说纸上.实验三:数组和字符串练习一、实验目的及任务掌握Java数组、字符串的使用.二、实验环境主机把持系统为Windows2000或Windows XP,已经配置好的JDK及Java编纂软件UltraEdit、Editplus或者TextPad 等软件中一种或多种.三、实验步伐1、使用Java编纂软件验证教材例题,参照教材对例题进行编写、编译并执行.2、课下在实验陈说纸上编写以下法式,并在上机课时编译并执行你所编写的法式,将编译及执行结果写在实验陈说纸上.1)设一个一维数组的元素值为:7 4 8 9 1 5,请输出具有以下内容的方阵:2)找出两个字符串中所有共同的字符.public class e32 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubString a="hf",b="hfhh";for(int i=0;i<a.length();i++){for(int j=0;j<b.length();j++){if(a.charAt(i)==b.charAt(j)){System.out.print(b.charAt(j));}}}}}3)读入一个字符串str,判断其是否为标识符. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class e33 {public static void main(String[] args) {BufferedReader str=new BufferedReader( new InputStreamReader(System.in));try {String a=str.readLine();} catch (IOException e) {e.printStackTrace();}}}public class e3 {/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubint[] a={7,4,8,9,1,5};for(int i=0;i<a.length;i++){System.out.print(a[i]);}System.out.println();System.out.print(a[5]);for(int i=0;i<a.length-1;i++){System.out.print(a[i]);}System.out.println();System.out.print(a[4]);System.out.print(a[5]);for(int i=0;i<a.length-2;i++){System.out.print(a[i]);}System.out.println();for(int i=3;i<a.length;i++){System.out.print(a[i]);}System.out.print(a[0]);System.out.print(a[1]);System.out.println(a[2]);for(int i=2;i<a.length;i++){System.out.print(a[i]);}System.out.print(a[0]);System.out.println(a[1]);for(int i=1;i<a.length;i++){System.out.print(a[i]);}System.out.println(a[0]);}}3、提高练习.根据题意边思考边将法式使用Java编纂软件编写出来.题意:读入一个浮点数值,将其转化为中文金额的年夜写方式,如123.45,转化为:壹佰贰拾叁元肆角伍分.编写法式实现题意并调试通过,针对以下多种数据情况下进一步完善法式.1)当金额为整数时,只暗示整数部份,省略小数部份,并添加“整”字.如123暗示为壹佰贰拾叁元整.2)当金额中含有连续的0时,只需写一个“零”即可.例如,10005暗示为:壹万零伍元整. 3)10的暗示方式.例如,110暗示为:壹佰一拾元整,而10暗示为拾元整.金额的中文年夜写方式.四、实验陈说内容1、步伐2、3中所编写的法式及其编译及执行结果写在实验陈说纸上.实验四:类和对象法式设计一、实验目的及任务理解面向对象封装性、继承性和多态性的基本概念,掌握声明类、封装类、继承类以及运行时多态性的实现方法.二、实验环境主机把持系统为Windows2000或Windows XP,已经配置好的JDK及Java编纂软件UltraEdit、Editplus或者TextPad 等软件中一种或多种.三、实验步伐1、使用Java编纂软件验证教材例题,参照教材对例题进行编写、编译并执行.2、课下在实验陈说纸上编写以下法式,并在上机课时编译并执行你所编写的法式,将编译及执行结果写在实验陈说纸上.1)界说一个类People,成员变量有姓名、出身日期、性别、身高、体重等,成员方法有计算年龄,并创立该类的对象. public class People {String name;String birth;String sex;Double hight;double weight;public People(){}public void age(){System.out.print(2012-Integer.parseInt(birth));}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubPeople p=new People();}}2)设已有类声明如下:public class Date1{int year, month, day;public void tomorrow() { }public void yestoday() { }}请写出实现其中tomorrow()方法和yestoday()方法的代码. public class Date1 {/*** @param args*/int year, month, day;public void tomorrow() {day++;System.out.println(year+":"+month+":"+day);}public void yestoday() {day--;System.out.println(year+":"+month+":"+day);}public static void main(String[] args) {// TODO Auto-generated method stub}}3)设计Number类(1)设计一个类Number1,有一个方法:求n的阶乘.(2)设计一个类Number2 ,它是Number1的子类,它有一个方法:求1+2+3+…+n.public class Number1 {int n;public int jiecheng(int n){int result;if(n==0){return 1;}else{return jiecheng(n-1)*n;}}/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubNumber1 a=new Number1();System.out.print(a.jiecheng(4));}}public class Number2 {public void sum(int n){System.out.print(n*(n+1)/2);}/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubNumber2 a=new Number2();a.sum(4);}}3、提高练习.根据题意边思考边将法式使用Java编纂软件编写出来.题意:设计银行账户类及存取款把持方法.设计一个银行账户类,其中包括:1)账户信息:账号、姓名、开户时间、身份证号码等.2)存款方法.3)取款方法.银行账户类声明为public,其中的功效变量声明为private,方法声明为public.public class Bank {private String name;private String bankno;private String idno;private String time;private static double moneny;public void add(double savemoney){this.moneny=this.moneny+savemoney;}public void fetch(double fetchmoney){this.moneny=this.moneny-fetchmoney;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub}}四、实验陈说内容1、步伐2、3中所编写的法式及其编译及执行结果写在实验陈说纸上.。
1、实验一:多线程程序设计:炮打飞机实验目的:学会使用多线程进行并发程序设计实验内容:编写一个应用程序模拟大炮打飞机。
在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。
当炮弹碰着飞机后,飞机坠落。
2、实验二:数据库编程:书目信息管理实验目的:掌握数据库编程技术。
能正确连接数据库,能对数据库中信息进行查询、插入、删除、修改。
实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书号、价格字段。
设计一个GUI界面进行书目管理。
在该界面上有四个选项卡,分别是查询、插入、删除、修改。
点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。
文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。
点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。
在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。
点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。
点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。
输入的书名必须是已存在的,否则会弹出消息框显示出错信息。
输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
3、实验三:Applet编程:鸭子的移动实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。
能在Applet中实现动画的平滑显示,避免闪烁现象。
实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。
在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。
Java上机实验报告(3)任务简要描述⼀、⼀、任务简要描述1、集合类的使⽤举例Collection接⼝ Collection是最基本的集合接⼝,⼀个Collection代表⼀组Object,即Collection的元素(Elements)。
⼀些 Collection允许相同的元素⽽另⼀些不⾏。
⼀些能排序⽽另⼀些不⾏。
Java SDK不提供直接继承⾃Collection的类,Java SDK提供的类都是继承⾃Collection的“⼦接⼝”如List和Set。
所有实现Collection接⼝的类都必须提供两个标准的构造函数:⽆参数的构造函数⽤于创建⼀个空的Collection,有⼀个 Collection参数的构造函数⽤于创建⼀个新的Collection,这个新的Collection与传⼊的Collection有相同的元素。
后⼀个构造函数允许⽤户复制⼀个Collection。
如何遍历Collection中的每⼀个元素?不论Collection的实际类型如何,它都⽀持⼀个iterator()的⽅法,该⽅法返回⼀个迭代⼦,使⽤该迭代⼦即可逐⼀访问Collection中每⼀个元素。
典型的⽤法如下:1 Iterator it = collection.iterator(); // 获得⼀个迭代⼦2 while(it.hasNext()) {3 Object obj = it.next(); // 得到下⼀个元素 由Collection接⼝派⽣的两个接⼝是List和Set。
List接⼝ List是有序的Collection,使⽤此接⼝能够精确的控制每个元素插⼊的位置。
⽤户能够使⽤索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
和下⾯要提到的Set不同,List允许有相同的元素。
除了具有Collection接⼝必备的iterator()⽅法外,List还提供⼀个listIterator()⽅法,返回⼀个 ListIterator接⼝,和标准的Iterator接⼝相⽐,ListIterator多了⼀些add()之类的⽅法,允许添加,删除,设定元素,还能向前或向后遍历。
JA V A实验报告班级:计科1301姓名:雷云洁学号:0902130112实验日期:2014.11.20实验报告(1)实验内容:内容1:基本输出,以及同一个文件建立两个类public class My{public static void main(String[] args){System.out.println();}}class you{static String info="同学们好";}实验结果展示:内容2:基本框架的输出public class SimpleMenu{public static void main(String[] args){System.out.println("***************");System.out.println("* 1.求圆面积 *");System.out.println("* 2.求圆周长 *");System.out.println("* 0.退出 *");System.out.println("***************");}}实验结果展示:内容3:输出三角形(利用Applet类)import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;public class Triangle extends Applet {public void paint(Graphics g){// TODO Auto-generated method stub super.paint(g);g.setColor(Color.red);g.drawLine(80, 20, 20,100);g.drawLine(20, 100, 140,100);g.drawLine(140, 100, 80, 20);g.setColor(Color.blue);g.drawString("三角形", 65, 80);}}实验结果展示:实验心得:通过这次上机我了解了Java的基本编程语句以及如何利用Applet类来编辑界面窗口等等,总之,我觉得学习Java主要考自己多钻研多调试才能出成果。
上机实验报告(三)
--------Java数组、字符串、异常处理和输入输出
1、在1000以内随机生成50个元素组成一维数组A,利用arraycopy 和copyof 方法分别实现数组A和数组B的内容拷贝,并利用foreach语法显示数组A和数组B的元素内容,输出数组A中的最大值、最小值、所有元素总和,以及最大值和最小值在数组A中的位置。
2、定义二维数组,并存放杨辉三角形前10行,注意:先找杨辉三角形的规律。
3、编写一个Java程序,完成以下功能:
1)声明一个名为name的String对象,内容是“My name is NetworkCrazy”;
2)屏幕打印出该字符串的长度、第一个字符和最后一个字符;
3)屏幕打印子字符串NetworkCrazy(用substring()方法提取子字符串);
4)利用lastIndexOf()方法搜索字符’a’最后一次出现的位置。
4、利用StringBuffer类实现在字符缓冲区中存放字符串"Happy new year!",并通过setCharAt和charAt实现字符设置和替换,利用insert实现字符的插入,利用append实现在字符串末尾添加相应的内容。
5、编写Java应用程序,计算两数的商。
输入的数字用数组num[0]、num[1]存储,用异常处理语句处理输入数使得数组下标越界异常以及除数为零的异常。
若将num【1】不小心错写为num【2】(如下图所示),则会出现下标越界。
6、在标准输入输出设备上建立字符串缓冲输入流(或者采用Scanner),键盘输入六个学生的基本信息(姓名sname、学号sno、Java课成绩sscore),统计学生的平均分(Average score),并将学生的基本信息和计算结果保存到文件Student.txt中。
7、从上面存储的文件Student.txt只读取六个学生的基本信息,按照提取出的Java课成绩递减排序,并输出学生的最高分(Highest score)最低分(Lowest score),最后将学生的基本信息(姓名sname、学号sno、Java课成绩sscore)(按照递减排序后的结果)以及最高分、最低分信息,保存到文件StudentScore.txt中。