java实验五六
- 格式:doc
- 大小:29.00 KB
- 文档页数:3
实验五六: 猜拳游戏实验目的:•掌握如何创建类和类方法。
•练习使用类、方法、条件语句等相关知识解决实际问题。
实验内容和步骤:•设计并编写一个猜拳游戏,游戏相关要求见附属文件,猜拳游戏.txt。
•要求:完成基本功能(【刘备,孙权,曹操】无属性)•扩展:完成全部功能(【刘备,孙权,曹操】有各自属性)代码如下:Game类:package tom.jiafei;public class Game {public static void main(String[] args ) {int score=0;Computer com = new Computer();Player per = new Player();Liubei xue = new Liubei();System.out.println("- - 开始猜拳游戏 - -");System.out.println("*********************");System.out.println("** 猜拳,开始 **");System.out.println("*********************");();if(per.renwu==1)per.xueliang=xue.xueliang;while(per.xueliang>0){int c=0;System.out.printf("第%d轮:\n",per.count);System.out.println("请出拳:1.剪刀 2.石头 3.布 (输入相应数字): ");per.fist();com.fist();if(per.fist==1&&com.fist==2 || per.fist==2&&com.fist==3 ||per.fist==3&&com.fist==1){System.out.printf("结果:你输了,");if(per.renwu==3){Caocao cao=new Caocao();c=cao.score();if(c==0)System.out.print("***曹操触发技能!!!***");}elsec=2;score-=c;per.xueliang-=1;System.out.printf("-%d分,共%d分,血量为:%d\n",c,score,per.xueliang);}else if(per.fist==1&&com.fist==3 || per.fist==2&&com.fist==1 || per.fist==3&&com.fist==2){System.out.printf("结果:你赢了,");if(per.renwu==2){Sunquan sun = new Sunquan();c=sun.score();if(c==3)System.out.print("***孙权触发技能!!!***");}elsec=2;score+=c;System.out.printf("+%d分,共%d分,血量为:%d\n",c,score,per.xueliang);}else{System.out.printf("结果:平局,");c=1;score+=c;System.out.printf("+%d分,共%d分,血量为:%d\n",c,score,per.xueliang);}}System.out.println("*********游戏结束**********");}}Computer类:package tom.jiafei;import java.util.Random;public class Computer {int fist;String quan;public void fist(){Random rand = new Random();fist = rand.nextInt(3)+1;if(fist == 1)quan = "剪刀";else if(fist == 2)quan = "石头";elsequan = "布";System.out.println("电脑出的是:"+quan);}}Player类:package tom.jiafei;import java.util.Scanner;public class Player {int count=1;int fist;int xueliang=4;int renwu;String name,quan;public void fist(){Scanner sc = new Scanner(System.in);fist = sc.nextInt();if(fist == 1)quan = "剪刀";else if(fist == 2)quan = "石头";elsequan = "布";System.out.println(name+"出的是:"+quan);count++;}public void name(){System.out.println("请选择角色(1:刘备(6点血)2.孙权(【1/2几率】+1.5倍分数)3.曹操(【1/2几率】)输了不减分))(输入相应数字):");Scanner sc = new Scanner(System.in);renwu = sc.nextInt();if(renwu==1)name="刘备";else if(renwu==2)name="孙权";elsename="曹操";System.out.println("你选择的是"+name);}}Sunquan类:package tom.jiafei;public class Sunquan extends Player{public int score(){int a = (int) (Math.random()*2+0);int score = a+2;return score;}}Caocao类:package tom.jiafei;public class Caocao extends Player{public int score(){int a = (int) (Math.random()*2+0);int score = a*2;return score;}}Liubei类:package tom.jiafei;public class Liubei { int xueliang=6;}实验截图:曹操:孙权:刘备:。
java实训报告(通用7篇)在当下这个社会中,报告有着举足轻重的地位,写报告的时候要注意内容的完整。
我们应当如何写报告呢?下面是小编整理的java实训报告,供大家参考借鉴,希望可以帮助到有需要的朋友。
java实训报告1一、课程设计名称及主要内容:1、课程设计名称:时钟动画2、课程设计的主要内容:以下题目任选一个:(1)图形界面类,如科学计算器、绘图板、日历、游戏程序等。
(2)动画类,编制功能较复杂、效果较好的Applet动画程序。
(3)数据处理类,如学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序。
(4)其他类型,自选题目,须经指导老师同意。
我所选的题目是动画类的Applet动画程序,主要任务是用Java 程序设计一个时钟动画。
二、程序的设计思想和流程图:1、设计思想:现在的各种时钟花样百出,千奇百怪,功能亦是越来越先进了。
我很喜欢这些各式各样的时钟,所以希望自己也能设计出一个来。
于是,我希望自己能够用自己所学的Java知识设计出一个自己的时钟动画,即使是最简单的,但我相信这是暂时的。
只要我能够努力学好Java知识,将来一定能够设计出更好更完美的时钟动画。
2、流程图:三、程序介绍:1、设计方法及步骤:题目分析:根据《课程设计任务书》要求,分析题目,构造出程序的基本思路(算法设计)。
画出程序设计结构框图。
构造数据结构:根据程序结构框图和题目分析结果(采用算法),构造程序所用各项数据,各种窗体及他们之间的联系。
构造程序框架:在窗体确定之后,根据算法设计出所用各个窗体之间的调用关系。
程序设计:①画出程序功能框图和结构框图;②根据框图设计程序;③编译程序调试程序,使程序可以使用;④完备程序功能。
程序打包:所设计程序汇总,将程序分类归入相应子目录,完成程序所有设计要求。
2、完成情况:经过一系列的Java程序代码的设计,虽然过程中遇到了许多的问题,但是最终解决了所有的问题,准确的设计出了时钟动画,运行情况正常。
java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。
是组织、管理和控制信息系统开发过程的一种基本框架。
其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。
JAVA实验报告5异常处理实验异常处理是Java程序设计中非常重要的一部分,能够有效地处理程序在运行过程中可能出现的异常情况。
在本次实验中,我们主要学习了Java中的异常处理机制,并对其进行了实践。
一、实验目的:1、学习Java中的异常处理机制;2、掌握如何使用try-catch来处理异常;3、了解Java中常见的异常类和异常处理语句的使用方法。
二、实验内容:1、编写一个Java程序,在程序中故意引发一个异常,然后使用try-catch语句来处理该异常,并在catch块中打印异常的详细信息;2、使用多个catch块来处理不同类型的异常,并在每个catch块中打印对应异常的详细信息;3、使用finally块来执行一些必须要执行的代码,比如关闭文件等。
三、实验步骤:1、首先,我们编写一个简单的Java程序,使用try-catch语句来处理异常。
假设我们在程序中故意除以0,然后在catch块中打印出异常信息。
代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)tryint result = 10 / 0;} catch (ArithmeticException e)System.out.println("发生异常:" + e);}}```2、接下来,我们使用多个catch块来处理不同类型的异常。
假设我们在程序中使用一个空数组,然后尝试访问数组的第一个元素。
如果数组为空,则会抛出ArrayIndexOutOfBoundsException异常。
代码如下:```public class ExceptionHandlingDemopublic static void main(String[] args)int[] array = new int[0];tryint firstElement = array[0];} catch (ArrayIndexOutOfBoundsException e)System.out.println("发生异常:" + e);} catch (Exception e)System.out.println("未知异常:" + e);}}```3、最后,我们使用finally块来执行一些必须要执行的代码。
JAVA实验报告5异常处理实验一、实验目的1. 了解Java异常处理机制;2. 掌握Java中异常处理的方式;3.熟悉自定义异常的方法。
二、实验内容本实验通过编写代码来体验Java中的异常处理机制,主要包括以下几个方面:1.了解异常的基本知识;2. 学习try-catch语句的使用方法;3. 掌握throws关键字的用法;4.编写自定义异常类。
三、实验步骤1. 编写一个“除法计算器”类DivideCalculator,该类有一个名为divide的方法,用于计算两个整数的商,并返回结果。
如果除数为0,则会抛出一个自定义的异常类DivideByZeroException;2. 在DivideCalculator类中,先使用try-catch语句来捕获DivideByZeroException异常,如果除数为0,则在控制台上打印出“不能除以0”的错误信息;3. 在该方法中再使用throws关键字将异常抛出,以便调用方能捕获该异常;4. 编写一个测试类CalculatorTest来测试DivideCalculator类,将两个整数输入给divide方法,观察控制台输出的结果;5. 在CalculatorTest类中使用try-catch语句来捕获DivideByZeroException异常,并打印出错误信息;6. 在CalculatorTest的main方法中调用divide方法,传入5和0作为参数;7.运行程序,观察控制台输出的结果。
四、实验结果根据实验步骤中的代码编写,可得到以下实验结果:1.当传入的除数为非零整数时,程序正常执行并返回正确结果;2. 当传入的除数为0时,程序会抛出自定义的异常DivideByZeroException,并在控制台上打印出错误信息"不能除以0";3. 在CalculatorTest的try-catch语句中捕获到DivideByZeroException异常,并打印出错误信息"不能除以0"。
java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。
同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。
通过定义和使用这些变量,我们能够存储和操作各种类型的数据。
```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。
这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。
```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。
java 实验报告Java 实验报告引言:Java 是一种广泛应用于软件开发的计算机编程语言,具有跨平台、面向对象、简单易学等特点。
本实验报告将介绍我在学习 Java 过程中进行的一系列实验,包括实验目的、实验过程、实验结果和实验总结。
实验一:Hello World 程序实验目的:通过编写一个简单的 Hello World 程序,熟悉 Java 的开发环境和基本语法。
实验过程:1. 安装 Java Development Kit(JDK)并配置环境变量。
2. 使用文本编辑器编写以下代码:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```3. 将代码保存为 HelloWorld.java。
4. 打开命令提示符,切换到代码所在目录,输入以下命令编译代码:```javac HelloWorld.java```5. 输入以下命令运行程序:```java HelloWorld```实验结果:命令提示符中输出 "Hello, World!"。
实验二:数据类型和运算符实验目的:了解 Java 的数据类型和运算符,并能够正确使用它们进行计算。
实验过程:1. 声明并初始化不同类型的变量,例如整数、浮点数和布尔类型。
2. 使用算术运算符进行基本的数值计算。
3. 使用逻辑运算符进行布尔类型的操作。
实验结果:根据实验过程中的代码和输入,得到相应的计算结果。
实验三:条件语句和循环结构实验目的:掌握 Java 中的条件语句和循环结构,能够根据不同的条件执行相应的代码块。
实验过程:1. 使用 if-else 语句实现条件判断。
2. 使用 switch-case 语句实现多分支选择。
3. 使用 for 循环、while 循环和 do-while 循环实现不同的循环结构。
实验5Windows图形程序设计一、实验目的:1、学习使用框架、面板、和简单用户界面UI组件。
2、学习使用布局管理器。
3、学习使用JavaBean组件创建图形用户界面应用程序。
4、理解和学习Windows事件驱动程序。
5、熟悉Java事件委托模式:事件的注册、监听和处理。
6、学习掌握掌握对象数组深复制的方法。
二、实验任务:1、使用Java SDK创建一个Windows图形界面应用程序。
2、实现一个能做算术运算的用户界面。
界面包括标签和文本域Number1、Number2、Result。
Result文本域用于显示Number1和Number2的算术运算的结果。
程序使用四个按钮,它们分别标有Add、Subtract、Multiply和Divide。
程序也创建了完成相同功能运算的菜单。
三、实验步骤:1、首先设置环境变量,保证在任何目录下都可以使用Java SDK编程工具。
如果Java SDK的安装目录为C:\j2sdk1.4.2_09,则在命令提示符状态(从附件中进入)下键入如下命令行设置环境变量:path C:\j2sdk1.4.2_09\bin2、使用Windows写字板编辑应用程序,源代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MenuDemo extends JFrame implements ActionListener{// Text fields for Number 1, Number 2, and Resultprivate JTextField jtfNum1, jtfNum2, jtfResult;// Buttons "Add", "Subtract", "Multiply" and "Divide"private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;// Menu items "Add", "Subtract", "Multiply","Divide" and "Close"private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;// Main Methodpublic static void main(String[] args){MenuDemo frame = new MenuDemo();// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}// Default Constructorpublic MenuDemo(){setTitle("Menu Demo");// Create menu barJMenuBar jmb = new JMenuBar();// Set menu bar to the framesetJMenuBar(jmb);// Add menu "Operation" to menu barJMenu operationMenu = new JMenu("Operation");operationMenu.setMnemonic('O');jmb.add(operationMenu);// Add menu "Exit" in menu barJMenu exitMenu = new JMenu("Exit");exitMenu.setMnemonic('E');jmb.add(exitMenu);// Add menu items with mnemonics to menu "Operation"operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));// Set keyboard acceleratorsjmiAdd.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));jmiSub.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));jmiMul.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));jmiDiv.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));// Panel p1 to hold text fields and labelsJPanel p1 = new JPanel();p1.setLayout(new FlowLayout());p1.add(new JLabel("Number 1"));p1.add(jtfNum1 = new JTextField(3));p1.add(new JLabel("Number 2"));p1.add(jtfNum2 = new JTextField(3));p1.add(new JLabel("Result"));p1.add(jtfResult = new JTextField(4)); jtfResult.setEditable(false);// Panel p2 to hold buttonsJPanel p2 = new JPanel();p2.setLayout(new FlowLayout());p2.add(jbtAdd = new JButton("Add"));p2.add(jbtSub = new JButton("Subtract"));p2.add(jbtMul = new JButton("Multiply"));p2.add(jbtDiv = new JButton("Divide"));// Add panels to the framegetContentPane().setLayout(new BorderLayout()); getContentPane().add(p1, BorderLayout.CENTER); getContentPane().add(p2, BorderLayout.SOUTH); // Register listenersjbtAdd.addActionListener(this);jbtSub.addActionListener(this);jbtMul.addActionListener(this);jbtDiv.addActionListener(this);jmiAdd.addActionListener(this);jmiSub.addActionListener(this);jmiMul.addActionListener(this);jmiDiv.addActionListener(this);jmiClose.addActionListener(this);}// Handle ActionEvent from buttons and menu items public void actionPerformed(ActionEvent e){String actionCommand = e.getActionCommand(); // Handle button eventsif (e.getSource() instanceof JButton){if ("Add".equals(actionCommand))calculate('+');else if ("Subtract".equals(actionCommand))calculate('-');else if ("Multiply".equals(actionCommand))calculate('*');else if ("Divide".equals(actionCommand))calculate('/');}else if (e.getSource() instanceof JMenuItem){// Handle menu item eventsif ("Add".equals(actionCommand))calculate('+');else if ("Subtract".equals(actionCommand))calculate('-');else if ("Multiply".equals(actionCommand))calculate('*');else if ("Divide".equals(actionCommand))calculate('/');else if ("Close".equals(actionCommand))System.exit(0);}}// Calculate and show the result in jtfResultprivate void calculate(char operator){// Obtain Number 1 and Number 2int num1 = (Integer.parseInt(jtfNum1.getText().trim())); int num2 = (Integer.parseInt(jtfNum2.getText().trim())); int result = 0;// Perform selected operationswitch (operator){case '+': result = num1 + num2;break;case '-': result = num1 - num2;break;case '*': result = num1 * num2;break;case '/': result = num1 / num2;}// Set result in jtfResultjtfResult.setText(String.valueOf(result));}}3、把上面编辑的源程序保存成Java源程序文件(扩展名为java),程序文件名分别是MenuDemo .java。
实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。
二、预习内容安装工具软件的基本方法。
三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。
1、打开Eclipse的安装盘安装Eclipse。
2、在相同目录下安装J2SDK。
3、打开Eclipse软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。
Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。
实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑A verage.java。
class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。
Lab #5(2009/10/14)
Applying OO Concepts Using Java
Create a class called Circle.java with fields named radius, area, and diameter. Include methods named setRadius(), getRadius, and computeDiameter(), which calculates the circle's diameter, and computeArea(), which computes the circle's area.
Hint: diameter of a circle is twice its radius.
Hint: area of a circle is 3.14 multiplied by the square of the radius.
Create a class called TestCircle. java whose main method declares 2 Circle objects. Using setRadius() method, assign one Circle a small radius value and assign another a larger radius value. Call computeDiameter() and computeArea for each circle and display the results.
Output result of using command input "5 8":
The area of a is 78.5
The diameter of a is 10.0
The area of b is 200.96
The diameter of b is 16.0
Lab #6(2009/10/21)
Write a class called Person with the following attributes:
title (Mr., Mrs., Ms., etc.)
first name
last name
nickname
age in years
sex (boolean - true/false to indicated either male or female)
Write a constructor that takes no parameters and performs no initializations.
Write a constructor that takes a parameter for each of the attributes listed above and sets them within the objects by calling the setter methods listed below.
The Person class should have a setter method and a getter method with public access for each attribute.
In the setter methods, get rid of any leading or trailing spaces (String trim() method).
For a Person with the following attributes:
title = "Mr."
first name = "Michael"
last name = "Zheng"
nickname = "Mike"
age = 22
sex = true (true is male, false is female)
The Person class should have the following public access methods that return Strings as follows:
standardName()
concatenation of the first and last names
(i.e., "Michael Zheng")
formalName()
concatenation of the title, first name, lastname
(i.e., "Mr. Michael Zheng")
casualName()
return the nickname if it is not null, otherwise return the first name (i.e., "Mike")
Be realistic when generating names. If a particular attribute does not exist for a given person, don't try to concatenate it. If necessary, add appropriate spacing and punctuation, but do not leave any leading or trailing spaces in the String that is returned.
MakePerson
Write a class called MakePerson with a main() method that instantiates 2 Person objects.
Initialize the attributes of one of the Person objects by supplying parameters to it's constructor. Instantiate the other Person object with the default constructor (that does not accept any parameters), then set it's attributes via the appropriate setter methods.
For each of the Person objects, execute and print
(System.out.println()) the results of all of the getter methods and of the standardName(), formalName(), and casualName() methods.。