java上机实验报告(完整高分打印版)
Java上机实验报告(1)
Java上机实验报告(1)任务简要描述⼀、任务简要描述⼀、1、实现Java版本的快速排序。
2、编写⼀个学⽣和教师数据输⼊和显⽰程序,学⽣数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输⼊和显⽰设计成⼀个类Person,并作为学⽣数据操作类Student 和教师数据操作类Teacher 的基类。
3、请设计 3 个类 , 分别是学⽣类 Student, 本科⽣类Undergaduate, 研究⽣类 Postgraduate, 其中 Student 类是⼀个抽象类 , 它包含⼀些基本的学⽣信息如姓名、所学课程、课程成绩等 , ⽽Undergraduate 类和 Postgraduate 都是 Student 类的⼦类 , 它们之间的主要差别是计算课程成绩等级的⽅法有所不同 , 研究⽣的标准要⽐本科⽣的标准⾼⼀些。
假设某班级⾥既有本科⽣也有研究⽣ , 请编写程序统计出全班学⽣的成绩等级并显⽰出来。
此题关键是设计⼀个学⽣数组 , 既能存放本科⽣对象 , ⼜能存放研究⽣对象。
问题及解决⼆、⼆、问题及解决1、算法思想:基于分治的思想,是冒泡排序的改进型。
⾸先在数组中选择⼀个基准点(该基准点的选取可能影响快速排序的效率,后⾯讲解选取的⽅法),然后分别从数组的两端扫描数组,设两个指⽰标志(lo指向起始位置,hi指向末尾),⾸先从后半部分开始,如果发现有元素⽐该基准点的值⼩,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素⼤于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。
⼀次排序就完成了。
以后采⽤递归的⽅式分别对前半部分和后半部分排序,当前半部分和后半部分均有序时该数组就⾃然有序了。
排序过程:输出结果:2、Person类:1public class person {2 String name;3 String number;45 person(){ }6 person(String number, String name){7this.number = number; = name;9 }10public void setNumber(String n){11 number = n;12 }13public String getNumber(){14return number;15 }16public void setName(String c){17 name = c;18 }19public String getName(){20return name;21 }22public void input(){23 Scanner sc = new Scanner(System.in);24 System.out.println("Please input the name:");25 name = sc.nextLine();26 System.out.println("Please input the number:");27 number = sc.nextLine();28 }29public void showInfo(){30 System.out.println("The number is:" + getNumber() + ", name is:" + getName());31 }32 }Teacher类:1class Teacher extends person{2 String title; //职称3 String dept; //部门4 Teacher(){5super();6 }7 Teacher(String number, String name, String title, String dept){8super(number, name);9this.title = title;10this.dept = dept;11 }12public void setTitle(String t){13 title = t;14 }15public String getTitle(){16return title;17 }18public void setDept(String d){19 dept = d;20 }21public String getDept() {22return dept;23 }24//⼦类重载⽗类⽅法25public void input(){26super.input();27 System.out.println("Please input the title:");28 Scanner sc = new Scanner(System.in);29 setTitle(sc.nextLine());30//title = sc.nextLine();31 System.out.println("Please input the dept:");32 dept = sc.nextLine();33 }34public void showInfo(){35super.showInfo();36 System.out.println("The teacher's title is:" + getTitle() + ", department is:" + getDept());37 }38 }Student类:1class Student extends person{2 String classnumber; //班号3int grade; //成绩4 Student(){5super();6 }7 Student(String number, String name, String classnumber, int grade){8super(number, name);9this.classnumber = classnumber;10this.grade = grade;11 }12public void setClassnumber(String c){13 classnumber = c;14 }15public String getClassnumber(){16return classnumber;17 }18public void setGrade(int g){19 grade = g;20 }21public int getGrade() {22return grade;23 }24//⼦类重载⽗类⽅法25public void input(){26super.input();27 System.out.println("Please input the classnumber:");28 Scanner sc = new Scanner(System.in);29 setClassnumber(sc.nextLine());30//classnumber = sc.nextLine();31 System.out.println("Please input the grade:");32 grade = sc.nextInt();33 }34public void showInfo(){35super.showInfo();36 System.out.println("The student's classnumber is:" + getClassnumber() + ", grade is:" + getGrade());37 }38 }输出结果:3、对象数组:1 Student[] students = new Student[5];Student类:1public abstract class Student2 {3 String name;4 String type;5int courseScore;6 String courseGrade;78public Student(String name)9 { = name;11 courseGrade="";12 }14public abstract void calculateGrade();1516public String getName()17 {18return name;19 }2021public String getType()22 {23return type;24 }2526public String getCourseGrade()27 {28return courseGrade;29 }3031public int getCourseScore()32 {33return courseScore;34 }3536public void setName(String name)37 { = name;39 }4041public void setType(String type)42 {43this.type = type;44 }4546public void setCourseScore(int courseScore)47 {48this.courseScore = courseScore;49 }5051 }本科⽣类:1class Undergraduate extends Student2 {3public Undergraduate(String name, int courseScore)4 {5super(name);6 type = "本科⽣";7this.courseScore = courseScore;8 }910public void calculateGrade()11 {12if (courseScore >= 80 && courseScore < 100) courseGrade = "优秀"; 13else if (courseScore >= 70 && courseScore < 80) courseGrade = "良好"; 14else if (courseScore >= 60 && courseScore < 70) courseGrade = "⼀般"; 15else if (courseScore >= 50 && courseScore < 60) courseGrade = "及格"; 16else courseGrade = "不及格";1718 }19 }研究⽣类:1class Postgraduate extends Student2 {3public Postgraduate(String name, int courseScore)4 {5super(name);6 type = "研究⽣" ;7this.courseScore = courseScore;8 }9public void calculateGrade()10 {11if (courseScore >= 90 && courseScore < 100) courseGrade = "优秀"; 12else if (courseScore >= 80 && courseScore < 90) courseGrade = "良好"; 13else if (courseScore >= 70 && courseScore < 80) courseGrade = "⼀般"; 14else if (courseScore >= 60 && courseScore < 70) courseGrade = "及格"; 15else courseGrade = "不及格";17 }18 }19成绩计算类:1public class Polymorphism2 {3int total = 0;4double average;56public void showInfo(){7 Student[] students = new Student[5];89 students[0] = new Undergraduate("ABC", 95);10 students[1] = new Undergraduate("DEF", 85);11 students[2] = new Postgraduate("GHI", 75);12 students[3] = new Undergraduate("JKL", 65);13 students[4] = new Postgraduate("MNO", 55);14for (int i=0; i<5; i++)15 {16 total += students[i].courseScore;17 students[i].calculateGrade();18 }19 average = total / 5;20 System.out.println("姓名" + " 类型" +" 成绩");21 System.out.println("-----------------------");2223for (int i=0; i<5; i++)24 {25 System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));26 }2728//Student st = new Student("李明");29 System.out.println("平均成绩:" + average);30 System.out.println();31for(int i=0; i<5; i++)32 {33if(students[i] instanceof Undergraduate )34 {35 System.out.println(students[i].getName()+"是本科⽣");36 }37else38 {39 System.out.println(students[i].getName()+"是研究⽣");40 }41 }42 }43public static void main(String[] args)44 {45 Polymorphism show = new Polymorphism();46 show.showInfo();4748 }49 }输出结果:总结: 练习使⽤了创建对象数组的⽅法,使⽤⾯向对象的思想,⼦类继承⽗类的属性和⽅法,并对⽗类的⽅法进⾏重写,在题⽬三中,我本来将计算成绩的内容全部写在main⽅法⾥,经过⽼师讲解,我重新修改了程序,将创建对象数组和成绩计算的相关程序单独写在⼀个类⾥⾯。
java上机实验报告(二)
JA V A程序设计实验报告(二)院系:专业:班级:姓名:指导老师:试验时间:1.了解java的数据类型。
2.理解运算符的优先级。
3.理解java的程序语法结构,掌握程序结构。
4.通过编程,熟悉java语言编程规则。
二,实验要求熟悉java编程的基本要求,正确的编程,正确的输出运行程序,处理运算时出现的错误,基本达到熟练使用java编写程序。
三,实验设备与环境装有java的语言工具软件(myeclipse)的计算机四,实验内容题目:编写程序找出所有三位的降序数。
(个位数小于十位数且十位数小于百位数即升序数,如210。
)代码分析:public class test6{public static void main(String args[]){int x,a,b,c;for(x=100;x<1000;x++){a=x/100;b=(x-a*100)/10;c=x%10;if(a>b&&b>c){System.out.println("结果:"+x);}}}}六,心得体会通过对这两次的上机操作实验,使我对java语言编程有了更多的认识和感触。
我觉得java语言编程并不是想象中的那么困难,如果对其进行深入了解的话还是一门十分有趣的学科。
在编写程序中,一次次的对错误的更改也是一种全新的学习,而当算出了正确的结果后那心中又会产生一个小小的成就感。
我会尽力去学好这一门学科的!。
java上机实验报告
Java与面向对象程序设计上机报告第一题:修改第五章中StyleOptions程序,允许用户指定字体大小,用单行文本框得到字体大小。
源程序:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class StyleOptionsPanel extends JPanel{private JLabel saying,inputLabel,resultLabel;private JCheckBox bold, italic;private JTextField num;public StyleOptionsPanel(){String numStr;inputLabel=new JLabel("Font Size:");num=new JTextField(8);num.addActionListener(new TempListener());saying = new JLabel ("Say it with style!");saying.setFont (new Font ("Helvetica", Font.PLAIN, 36));bold = new JCheckBox ("Bold");bold.setBackground (Color.green);italic = new JCheckBox ("Italic");italic.setBackground (Color.green);StyleListener listener = new StyleListener();bold.addItemListener (listener);italic.addItemListener (listener);add (saying);add (bold);add (italic);add(inputLabel);import javax.swing.JFrame;public class StyleOptions{public static void main (String[] args){JFrame frame = new JFrame ("Style Options");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);StyleOptionsPanel panel = new StyleOptionsPanel();frame.getContentPane().add (panel);frame.pack();frame.setVisible(true);}}运行情况及结果截图:完成情况说明:第二题:PP6.1 修改第四章的Account类,使其也允许仅使用账户名和账号建立账户,并假设初始余额为0。
java上机实验报告
java上机实验报告Java上机实验报告引言:Java作为一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象等优点,因此在计算机科学教育中被广泛使用。
本文将介绍我在Java上机实验中所掌握的内容和经验。
一、实验目的本次实验的主要目的是通过实际操作,掌握Java编程语言的基本语法和常用类库的使用方法,加深对面向对象编程的理解,并培养解决问题的能力。
二、实验过程1. 实验环境准备在开始实验前,我首先安装了Java开发环境(JDK)并配置好相关的环境变量。
这样我就可以在本地计算机上进行Java编程了。
2. 实验内容本次实验主要涉及以下几个方面的内容:a. 基本语法:学习了Java的基本数据类型、运算符、流程控制语句等。
通过编写简单的程序,我能够熟练地使用这些语法来解决实际问题。
b. 面向对象编程:学习了类、对象、继承、封装、多态等面向对象的概念和技术。
通过定义类和对象,我可以更好地组织和管理代码。
c. 异常处理:学习了如何使用try-catch语句来捕获和处理异常。
这对于编写健壮的程序非常重要,可以有效地避免程序崩溃或出现不可预料的错误。
d. 输入输出:学习了如何使用Java的输入输出类库来实现数据的读取和写入。
这对于与用户进行交互或者读取外部文件非常有用。
3. 实验结果通过本次实验,我成功完成了多个编程任务,并获得了满意的结果。
例如,我实现了一个简单的学生管理系统,可以添加、查询和删除学生信息。
这个程序不仅让我熟悉了Java的面向对象编程思想,还提升了我的编程能力。
三、实验心得通过这次实验,我深刻体会到了实践的重要性。
仅仅理论上了解一门编程语言是远远不够的,只有通过实际编写程序,才能真正掌握它。
在实验过程中,我遇到了很多问题,比如语法错误、逻辑错误等,但通过不断的调试和修改,我最终解决了这些问题。
这个过程让我学会了如何分析问题、查找错误并解决它们。
此外,我还意识到编程是一项需要耐心和细心的工作。
Java上机实验报告
Homework3实验报告一、实验目的与要求1、掌握Java中类和接口的基本知识;2、继承的基本知识;3、集合的基本操作二、实验内容1.PIMCollection 类创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合(2).getTodos();返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。
则返回一个空集合(4).getContacts();返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合(5).getItemsForDate(Date d);返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,则返回一个空集合(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。
2.TestPIMCollection类(自己的测试类)向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection 类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。
三、实验器材计算机+windows操作系统+eclipse四、实验步骤1.程序源代码(压缩在文件夹里)2.编译执行程序3.记录执行结果五、实验结果1.TestPIMCollection的测试代码:2.程序的执行结果:如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。
Java上机实验报告(3)
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()之类的⽅法,允许添加,删除,设定元素,还能向前或向后遍历。
《Java程序设计》上机实验报告 实验五 流、文件及基于文本的应用
信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)2.编写一个程序,能将一个源程序中的空行及注释去掉,并将处理后的内容写到目标文件中。
(源文件名称和目标文件名称均要求以命令行参数形式输入)import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class CopyFile {static String delComm(String s){if(s==null)return s;int pos=s.indexOf("//"); //去掉以//开始的注释if(pos<0)return s;return s.substring(0,pos);}public static void main(String args[]){String infname="CopyFile.java";String outfname="CopyFile.txt";if(args.length>=1)infname=args[0];if(args.length>=2)outfname=args[1];try{File fin=new File(infname);File fout=new File(outfname);BufferedReader in = new BufferedReader(new FileReader(fin));PrintWriter out = new PrintWriter(new FileWriter(fout));int cnt=0;String s = in.readLine(); //写字符串while(s != null){主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)cnt ++;s=delComm(s); //去掉以//开始的注释out.println(cnt+":\t"+s);//写出s=in.readLine(); //读入}in.close(); //关闭缓冲读入流及文件读入流的连接out.close();}catch (FileNotFoundException e1){System.out.println("File not found");}catch(IOException e2){e2.printStackTrace();}}}主要问题的出错现象:1)运行程序后,无对应的输出结果出现2)源程序编写过程中,出现方法和类的调用无法完成.出错原因:1)函数调用时候,相关函数输入变量错误2)方法名的书写不符合规范,使得方法变为变量.解决方法及效果:1) 编写和调用类的方法时,注意参数的类型和数量的对应.2)规范命名.常量用大写字母,变量用小写字母开始,类以大写字母开始.实验小结:1) 为每个类分配正确的职责.尽量保持类功能单一. 不要在一个类中做太多事.2) BufferedReader的方法:readLine():String ,当他的返回值是null时,就表示读取完毕了。
Java语言上机实验报告(1-17)
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上机实验报告
JAVA上机实验报告实验名称:Java编程实验实验目的:1. 掌握Java编程语言的基本语法和常用类库的使用;2. 熟悉Java程序的运行过程和调试方法;3.提高解决实际问题的能力。
实验环境与工具:1. JDK(Java Development Kit);2. IDE(集成开发环境),如Eclipse、IntelliJ IDEA等。
实验内容:1. 编写一个Java程序,实现一个简单的计算器;2.要求程序能够根据用户输入的两个操作数和运算符,进行相应的运算,并返回结果;3.为了增加程序的健壮性,需要对用户的输入进行合法性检查,例如运算符必须是"+","-","*","/"之一,操作数必须是合法的数字;4.对于输入不合法的情况,程序应给出相应的提示。
实验步骤:1. 首先创建一个Java项目,在项目中创建一个名为Calculator的类;2. 在Calculator类中添加一个名为main的静态方法作为程序的入口;3. 在main方法中使用Scanner类从控制台获取用户输入的操作数和运算符;4.对用户输入进行合法性检查,如果不合法则给出提示并结束程序;5.根据运算符进行相应的运算,并返回结果;6.将结果打印到控制台。
实验源码如下:```javaimport java.util.Scanner;public class Calculatorpublic static void main(String[] args)Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double operand1 = scanner.nextDouble(;System.out.print("请输入第二个操作数:");double operand2 = scanner.nextDouble(;System.out.print("请输入运算符:");String operator = scanner.next(;double result;if (operator.equals("+"))result = operand1 + operand2;} else if (operator.equals("-"))result = operand1 - operand2;} else if (operator.equals("*"))result = operand1 * operand2;} else if (operator.equals("/"))result = operand1 / operand2;} elseSystem.out.println("请输入合法的运算符!");return;}System.out.println("计算结果为:" + result);}```实验总结:通过本次实验,我学会了如何编写一个简单的Java程序,了解了Java语言的基本语法和常用类库的使用。
上机实验报告
上机实验报告实验名称:实现基于Java的学生成绩管理系统实验目的:通过实现学生成绩管理系统,掌握Java编程语言的基本语法和常用类的使用,理解面向对象编程的基本原理。
实验设备:计算机一台,Java开发环境(例如Eclipse、Intellij IDEA等)实验步骤:1. 创建一个Java Project,并创建一个新的类Student。
2. 在Student类中定义学生的属性,包括学号、姓名、性别和成绩。
3. 在Student类中定义构造方法和成员方法。
- 构造方法:用于创建学生对象并初始化学生的属性。
- 成员方法:用于获取和设置学生的属性。
4. 创建一个新的类StudentManagementSystem,并在该类的main方法中编写学生成绩管理的逻辑。
5. 在StudentManagementSystem类中创建一个学生列表,并实现以下功能:- 添加学生:从键盘输入学生的信息,创建学生对象,并将学生对象加入学生列表。
- 删除学生:从键盘输入学生的学号,查找学生对象,并将该学生对象从学生列表中删除。
- 查询学生:从键盘输入学生的学号,查找学生对象,并输出学生的信息。
- 查询所有学生:遍历学生列表,输出所有学生的信息。
- 修改学生成绩:从键盘输入学生的学号和新的成绩,查找学生对象,并修改学生的成绩。
6. 在main方法中测试学生成绩管理系统的功能。
实验结果:成功实现了基于Java的学生成绩管理系统,可以通过控制台输入指令来添加学生、删除学生、查询学生、查询所有学生和修改学生成绩。
实验总结:通过本次实验,我深入理解了Java编程语言的基本语法和面向对象编程的基本原理。
通过实践,我进一步掌握了类的定义和使用、对象的创建和属性的操作、方法的定义和调用等基本概念和技巧。
在实验过程中,我遇到了一些问题,如如何正确处理输入输出、如何遍历列表等,但通过查阅资料和思考,我成功解决了这些问题。
这次实验让我对Java编程有了更深入的理解,并提高了我的编程技能。
《java程序设计上机实验报告》
《面向对象原理与语言》实验内容包括8个必做实验,在规定的16学时内完成。
实验一面向对象程程序设计(一)(必做实验,验证性实验,2学时)1.实验目的掌握Java语言的类和对象的定义及使用的基本方法;掌握继承机制以及子类和父类之间的转换;掌握多态性的概念及程序设计。
2.实验内容上机实现下列程序(1)P69, J_Finaliz.java; P72, J_teacher.java;P76, J_Student.java;P79,J_Employee.java, J_teacher.java。
(2)习题3.7, 习题3.9。
3.实验要求(1)熟悉从已知父类派生出子类的方法.(2)熟悉多态性的本质及其应用意义。
实验二面向对象程序设计(二)(必做实验,验证性实验,2学时)1.实验目的理解Java语言的封装性;掌握成员访问修饰符的使用和包的定义及使用;掌握静态成员的使用;掌握接口的定义和使用方法。
2.实验内容上机实现下列程序:(1)P83, J_Employee.java等三个程序;P87, J_employee.java, J_Month.java;P91, J_Book.java;P102, J_InnerClass.java, P104, J_InnerInterface.java。
(2)习题3.12,习题3.13。
3. 实验要求(1)熟悉四种访问修饰符类型的成员的访问方法。
(2)熟悉静态成员与非静态成员的区别。
(3)掌握匿名内部类的使用。
实验三数组、字符串、向量与哈希表的使用(必做实验,验证性实验,2学时)1. 实验目的掌握数组、字符串、向量和哈希表的使用。
2.实验内容上机实现下列程序:(1)P129, J_Grid15.java; P150,J_stringBuffer.java,P136, J_Intern.java;P158, J_HashTable.java;(2)P161,习题4.4,习题4.5,习题4.10。
软件学院上机实验报告(3篇)
实验名称:Java面向对象编程实验实验日期:2023年3月15日实验地点:软件学院实验室一、实验目的1. 理解Java面向对象编程的基本概念,包括类、对象、继承、多态等。
2. 掌握Java面向对象编程的基本语法和操作。
3. 能够运用面向对象编程思想设计简单的Java程序。
二、实验内容1. 创建一个名为“Student”的类,包含以下属性:姓名(name)、年龄(age)、性别(gender)。
2. 在“Student”类中定义一个构造方法,用于初始化对象的属性。
3. 定义一个名为“printInfo”的方法,用于打印学生的信息。
4. 创建两个“Student”对象,并分别设置其属性。
5. 调用“printInfo”方法,打印两个学生的信息。
三、实验步骤1. 打开IDEA软件,创建一个名为“Experiment1”的新项目。
2. 在项目中创建一个名为“Student”的Java类。
3. 在“Student”类中定义属性:name、age、gender。
4. 定义构造方法,初始化属性。
5. 定义“printInfo”方法,打印学生信息。
6. 在主类中创建“Student”对象,设置属性。
7. 调用“printInfo”方法,打印学生信息。
四、实验代码public class Student {private String name;private int age;private String gender;public Student(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}public void printInfo() {System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + gender);}public static void main(String[] args) {Student student1 = new Student("张三", 20, "男");Student student2 = new Student("李四", 21, "女");student1.printInfo();student2.printInfo();}}```五、实验结果与分析1. 编译并运行程序,控制台输出如下信息:```姓名:张三,年龄:20,性别:男姓名:李四,年龄:21,性别:女```2. 通过本次实验,掌握了Java面向对象编程的基本概念和操作,能够运用面向对象编程思想设计简单的Java程序。
JAVA上机实验报告
JAVA上机实验报告实验报告:JAVA上机实验一、实验目的本实验旨在通过使用JAVA编程语言完成一项具体的任务,掌握JAVA 的基本语法和编程思想,并能够运用所学知识解决实际问题。
二、实验背景JAVA作为一种面向对象的编程语言,被广泛应用于软件开发领域。
本实验要求使用JAVA编写一个简单的应用程序,能够实现输入两个整数并进行相加、相减、相乘、相除等基本运算。
三、实验内容和步骤1.实验环境本实验使用Java JDK作为编程环境,并需要在计算机上安装Java开发工具,如Eclipse或IntelliJ IDEA。
2.实验步骤(1)创建一个新的JAVA项目,在项目中创建一个新的类文件。
(2)在类中定义两个变量,用于存储输入的两个整数。
(3) 使用Scanner类获取用户输入的两个整数,并分别将其赋值给定义的变量。
(4)实现加法、减法、乘法、除法等基本运算函数,通过定义方法来实现不同的操作。
(5) 在main方法中调用相应的运算函数,并输出运算结果。
四、实验结果和分析本实验中,通过输入两个整数,使用JAVA编程语言实现了加法、减法、乘法、除法等基本运算功能。
在实验中,我们可以用不同的输入数据进行测试,验证程序的正确性。
实验结果如下:请输入第一个整数:5请输入第二个整数:3两个整数的和为:8两个整数的差为:2两个整数的积为:15两个整数的商为:1通过测试,可以发现程序正确地实现了加法、减法、乘法、除法等基本运算。
这说明我们的代码编写正确,程序逻辑也是正确的。
五、实验总结通过本次实验,我学会了使用JAVA编程语言进行简单的计算,并且能够将复杂的问题通过定义方法和使用变量来进行解决。
在实验中,我熟悉了JAVA的基本语法和编程规范,提高了我的编程能力和实际问题解决能力。
总的来说,本次实验对我来说是一次很好的练习和提高,对于以后的学习和工作将有很大的帮助。
通过这次实验,我对JAVA编程语言有了更深入的了解,解决问题的思路也更加清晰。
Java上机实验报告1
inta=s.nextInt();
intb=s.nextInt();
intc=s.nextInt();
intt;
t=a;
if(b<=t)
t=b;
if(c<=t)
t=c;
System.out.println("三者最小的数是:"+t);
}
}
++j;
}
if(j%5==0)
System.out.print("\n");
}
System.out.println();
System.out.println("while循环:");
i=10;
j=0;
while(i>=10&&i<=50)
{
if(i%3==0)
{
System.out.printf("%d ",i);
本次上机实验也遇到了一些困难,比如说,第五题打印图案,开头要有空格,“*”从大到小减少。还有第三题,输出三的倍数,并且要求每行5个数字。本题中一开始,我的输出每行数字数量不够,后来将控制换行的变量自加放入找出三的倍数的循环当中,才满足要求。
五、指导教师评语
成 绩
批阅人
日 期
a=s.nextInt();
}
switch(a)
{
case1:System.out.println("Mon");break;
case2:System.out.println("Tues");break;
case3:System.out.println("Wed");break;
JAVA上机实验报告
JAVA上机实验报告学号:姓名:班级:1.实验题目:编写一个名为Octagon的类,它扩展GeometricObject并实现Comaparable和Cloneable接口。
假设八边形八条边的变长都相等。
它的面积可以使用下面的公式计算:面积=(2+4)*边长*边长画出包括Octagon,GeometricObject,Comaparable,Cloneable的UML图。
编写一个测试程序,创建一个边长值为5的Octagon对象,然后显示它的面积和周长。
使用clone方法创建一个新对象,并使用compareTo方法比较这两个对象。
2.实验目的:通过编写这个程序,让学生逐步了解本章所学习的抽象类和接口的知识重点,会运用本章知识编写程序解决实际问题。
3.实验内容:package CalculateOctagon;import java.util.Scanner;public class CalculateOctagon{public static void main(String[]args){public abstract class GeometricObject{private String color="white";private boolean filled;private java.util.Date dateCreated;protected GeometricObject(){dateCreated=new java.util.Date();}protected GeometricObject(String color,boolean filled){dateCreated=new java.util.Date();this.color=color;this.filled=filled;}public String getcolor(){return color;}public void setcolor(String color){this.color=color;}public boolean isFilled(){return filled;}public void setFilled(boolean filled){this.filled=filled;}public java.util.Date getDateCreated(){return dateCreated;}public String toString(){return"created on"+dateCreated+"\ncolor:"+color+"and filled:"+filled;}public abstract double getArea();public abstract double getPerimeter();}public class Octagon extends GeometricObject implements Comparable{public Object clone()throws CloneNotSupportedException{return super.clone();}public int compareto(Object o){if(Area>((Octagon)o).Area)return1;else if(Area<((Octagon)o).Area)return-1;elsereturn0;}}System.out.print("Please enter a number:");Scanner input=new Scanner(System.in);int length=input.nextInt();int Perimeter=8*length;double Area=(2+4/Math.sqrt(2))*length*length;System.out.println("The area is:"+Area);System.out.println("The Perimeter is:"+Perimeter);}}4.实验总结:通过本次试验我发现本章内容虽然表面上理解了,质实还是不懂,虽说听得还可以,但是编程序还是不行,没思路,知识点掌握不好。
java上机实验实验报告
java上机实验实验报告Java上机实验实验报告引言:在学习Java编程语言的过程中,进行上机实验是非常重要的一环。
通过实际操作和编码,我们可以更好地理解和掌握Java的各种语法规则和编程技巧。
本文将对我进行的一次Java上机实验进行详细的实验报告。
实验目的:本次实验的目的是通过编写Java程序,实现一个简单的学生信息管理系统。
该系统可以实现学生信息的录入、查询、修改和删除等功能。
通过这个实验,我希望能够熟悉Java的面向对象编程思想,掌握Java的基本语法和常用类的使用。
实验过程:1. 设计学生类:首先,我设计了一个学生类,包含学生的姓名、学号、年龄和性别等属性,以及相应的get和set方法。
这样可以方便地对学生信息进行操作和管理。
2. 编写学生信息管理系统:接下来,我编写了一个学生信息管理系统的主类。
在该类中,我使用了Java的集合类ArrayList来存储学生对象,并实现了学生信息的录入、查询、修改和删除等功能。
通过使用循环和条件语句,我可以根据用户的选择来执行相应的操作。
3. 运行和测试:编写完毕后,我运行了该程序,并进行了一系列的测试。
我输入了学生信息,然后查询了该学生的信息,并进行了修改和删除操作。
通过测试,我发现程序能够正常运行,并且实现了预期的功能。
实验结果:通过本次实验,我成功地实现了一个简单的学生信息管理系统。
该系统可以方便地录入、查询、修改和删除学生信息,提高了信息管理的效率和准确性。
同时,通过编写这个系统,我对Java的面向对象编程有了更深入的理解,熟悉了Java的基本语法和常用类的使用。
实验总结:通过这次实验,我收获了很多。
首先,我熟悉了Java的面向对象编程思想,掌握了Java的基本语法和常用类的使用。
其次,通过实际操作和编码,我加深了对Java编程的理解和掌握。
最后,通过设计和实现一个学生信息管理系统,我提高了问题解决和编程能力。
不过,在实验过程中也遇到了一些困难和问题。
Java上机实验内容
Java上机实验报告内容:实验一JDK系统环境日期:2.24(第一章)目的:1.熟悉Java应用环境。
熟练掌握JDK环境的基本使用方法,掌握环境变量的设置方法。
2.熟练掌握Java应用程序的编辑、编译和运行过程。
3.理解Java应用程序的基本结构。
内容:第一章实验题实验二运算符及表达式日期:3.3目的:1.掌握Java语言的基本数据类型及其变量的定义方法。
2.掌握各种运算符及表达式的应用。
内容:第二章实验题实验三程序基本结构日期:3.10目的:1.掌握Java语言各语句的语法及应用。
2.熟悉顺序、选择、循环结构程序的编制方法。
3.掌握数组的定义、数组元素的引用及数组的实际应用。
内容:第三、四章实验题实验四类的声明及对象的创建日期:3.17目的:1.掌握类的声明、对象的创建方法。
2.掌握this关键字的用法。
3.注意实例变量与静态变量、实例方法与静态方法的区别。
内容:第五章实验题实验五继承和重载日期:3.24目的:1.理解继承、父类、子类、方法重载、方法重写概念,掌握super的关键字的用法。
2.掌握抽象类和接口的概念及其定义方法。
内容:第六章实验题实验六字符串应用日期:3.31目的:1.掌握字符串的基本操作方法。
2.理解String和StringBuffer类的异同。
内容:第七章实验题实验七包与APPLET日期:4.7目的:1.掌握包的定义、导入方法。
2.掌握applet程序的基本结构和程序中常用的方法。
3.掌握applet程序的运行过程。
内容:第八章实验题实验八布局管理与事件处理日期:4.14目的:1.掌握布局管理器的应用方法。
2.掌握常用UI对象(标签、按钮、文本组件、单选按钮、复选框)的使用方法。
3.掌握事件的处理方法,重点掌握动作事件。
内容:第九章实验9-1实验九UI组件的应用日期:4.21目的:1.掌握UI对象(组合框、滚动条、滚动面板、菜单)的应用方法。
2.掌握键盘、鼠标等事件的处理方法。
java上机实验报告
JAVA上机实验报告实验一 JA V A 基本语法一、实验目地了解Java 地数据类型,掌握各种变量地声明方式,理解运算符地优先级,掌握Java 基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法地程序设计方法.二、实验要求1、编写一个声明Java 不同数据类型变量地程序.2、编写使用不同选择结构地程序.3、编写使用不同循环结构结构地程序.三、实验内容和步骤1、程序代码:public class SimpleTypes{public static void main(String args[]){byte b=0x55。
short s=0x55ff。
int i=1000000。
long l=0xfffL。
char c='c'。
float f=0.23F。
double d=0.7E-3。
boolean bool=true。
System.out.println("b="+b)。
System.out.println("s="+s)。
System.out.println("i="+i)。
System.out.println("l="+l)。
System.out.println("c="+c)。
System.out.println("f="+f)。
System.out.println("d="+d)。
System.out.println("bool="+bool)。
}}运行结果:2、程序代码:public class TestIf{public static void main(String args[]){boolean leap。
int year=2005。
if((year%4==0&&year%100!=0)||(year%400==0)) //方法1System.out.println(year+" 年是闰年")。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java语言程序设计实验报告学生所在学院:里仁学院学生所在班级:08计算机一班学生姓名:hejinhai指导教师:崔勇强教务处2010年6月第1篇核心基础篇实验一第3章Java语言基础3.2 表达式与语句3.2.2 运算符与表达式9 Java强制类型转换一,实验目的:掌握和理解强制类型转换原理格式及使用方法。
二,实验内容:编写程序定义整形变量x,把他强制类型转换成byte类型,观察输出结果。
三,源程序:public class Test {public static void main(String[] args) {int x=1200;byte b=(byte)x;System.out.println("转换结果是:"+b);}}输出结果:-80四,原理:根据低级数据和高级数据的相互转换规则,把输入的整形数1200转换成二进制数,转换成补码形式取前八位,输出结果。
实验二第3章Java语言基础3.2 表达式与语句3.2.2 运算符与表达式4 位运算符一,实验目的:理解和掌握移位运算符操作,使用方法,和格式。
二,实验内容:编写程序,定义两个整型变量,采用左移右移运算符 >> ,<<,和不带符号右移运算符 >>>,对整型变量进行移位运算,输出结果,观察结果。
三,源程序:public class Test {public static void main(String[] args) {int s1=1357;int s2=-1357;int s3=s1>>5;int s4=s2>>5;int s5=s1>>>5;int s6=s2>>>5;int s7=s1<<5;int s8=s2<<5;int s9=s1>>37;int s10=s2>>37;System.out.println("数字一是"+s1);System.out.println("数字二是"+s2);System.out.println("数字一的<<左移五位结果是"+s7);System.out.println("数字一的>>右移五位结果是"+s3);System.out.println("数字一的>>>右移五位结果是"+s5);System.out.println("数字二的<<左移五位结果是"+s8);System.out.println("数字二的>>右移五位结果是"+s4);System.out.println("数字二的>>>右移五位结果是"+s6);System.out.println("数字一的>>右移三十七位的结果是"+s9);System.out.println("数字二的>>右移三十七位的结果是"+s10);}}输出结果:数字一是1357数字二是-1357数字一的<<左移五位结果是43424数字一的>>右移五位结果是42数字一的>>>右移五位结果是42数字二的<<左移五位结果是-43424数字二的>>右移五位结果是-43数字二的>>>右移五位结果是134217685数字一的>>右移三十七位的结果是42数字二的>>右移三十七位的结果是-43四,实验原理:将输入的正型变量1357,-1357转换成补码形式,1357的补码,就是它他的二进制本身,-1357是二进制数诸位取反加1,按照要求进行移位运算(>> <<),若是左(右移),就按要求移相应的位数,高位补与符号位相同的数若是1就补1,若是0,就补0。
若是>>>,右移时不带符号移动,不管符号位是1,还是0,都补0。
再转成十进制形式输出。
实验三第3章 Java 语言基础3.3 程序流控制3.3.1-3.3.5语句(while , for ,if/else ,switch ,循环 )一,实验目的 理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用。
二,实验内容对无穷数列⋯⋯-+-71513111121)1(+*-n n 求解:1211n+*-n )( 。
三,源程序public class qiuhe{public static void main (String[] args){ double sum=0;Int sign=1;for (int i=0;i<100;i++) {double item=1.0/(2*i+1);if ( item<0.000001) break;item=item*sign;sum=item;sign=sign*(-1);}int i=0while (true){double item=1.0/(2*i+1);if(item<0.0001) break;item=item*sign;sum=item;sign=sign*(-1);i++;}System.out.println(sum);}}输出结果:0.004975124五, 原理该程序取n=100,使用for 循环语句实现⋯⋯-+-71513111121)1(+*-n n ,而条件语句if 判断121)1(+*-n n 前面的符号是+还是-,最后计算出结果。
实验四第3章 Java 语言基础3.3 程序流控制3.3.1-3.3.5语句(while , for ,if/else ,switch ,循环 )以及一元运算符的使用一,实验目的理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用。
二,实验内容以乒乓球从高度为n 处自由下落,求t 时间该球的高度。
三,源程序// ① t%T gS T 2= ② if (t/t1)t=T-t③ s=221at④ s h h -=' //条件列举class A{public static void mian ( string[] args){double h=10.0;double t=5.0;double g=9.8;double downTime=Math.sqrt(2.0*h/g);double T=2.0*downTime;t=t%T;if (t>dowmTime)t=T-t;//第一个t为下落时间double s=0.5*g*t*t;double CurrentH=h-s;Syestem.out.println(CurrentH)}}运行结果:输入,t=1,输出H=5.4四,原理该物理远动涉及往复运动,显然h=10,t=1s<T,故H=h-s=5.4实验五第3章 Java语言基础3.3 程序流控制3.3.1-3.3.5语句(while,for ,if/else ,switch ,循环)以及一元运算符的使用一,实验目的理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用二,实验内容:画出下列图形: MMMMMMMMMMMMMMMMMMMMMMMMM三,源程序public class char Testpublic static void mian(string[] args){for(int i=0;i<=9;i++)for(int j=0;j<i;j++)System.out.print(“ ”);for(int k=0;k<(2*(9-i)+1);k++)System.out.print(“M”);System.out.println();}}}输出结果:MMMMMMMMMMMMMMMMMMMMMMMMM四,原理图形是第一行输出9个M,然后空一行输出(9-2)个M,然后到空n行时输出(9-n)个M,直到只输出一个M为止,输出完毕。
实验六第4章面向对象特性4.2 类的定义4.2.5 this一,实验目的明确this是Java使用的一个特有意义的引用,它指向当前对象本身,掌握它的使用。
二,实验内容创建同名成员变量两个,用上this,使输出为对象本身。
三,源程序public class Text1{public int x=2;public int y=2;public Text1(int x,int y){this.x=x;this.y=y;}Public static void main (String[] args){Text1 .a=new Text1(1,2);System.out.println(“a.x=”+a.x+ “a.y=”+a.y);}}输出结果:a.x=1 a.y=2四,原理从程序来看,this.x指的是x本身,this.y指的是y本身,而x,y是通过构造方法Text1()创建出来的,当成员变量Text1.a被赋值为1,2时,通过this,那么a.x=1,a.y=2.第2篇应用基础篇实验七第10章线程10.2 线程的创建10.2.2 通过实现Runnable接口创建线程一,实验目的熟悉和掌握通过实现Runnable接口创建线程的定义和步骤。
二,实验内容通过实现Runnable接口创建线程的举例三,源程序public class ThreadTest{public static void main(String args[]){Thread t1 =new Thread(new Hello());Thread t2 =new Thread(new Hello()); t1.start();t2.start();}}class Hello implements Runnable{int I;public void run(){while(true){System.out.prinln(“Hello”+i++); If(i==5) break;}}}某次运行结果;Hello0Hello1Hello2Hello3Hello4Hello0Hello1Hello2Hello3Hello4四,原理Hello类实现了Runnable接口。
在ThreadTest类的main()方法中,以Hello类的两个实例对象分别创建了t1,t2两个线程,并将线程启动。