北邮国际学院JAVA大作业

合集下载

北邮《Java技术》期末复习题(含答案)

北邮《Java技术》期末复习题(含答案)

<<Java技术>>综合练习题填空题1.Java 不仅仅是一种编程环境,它实际上是一个完整的计算平台,包括完整的程序开发环境和运行环境。

2.完整的Java体系结构包括四个组件,分别是Java编程语言、Java类文件格式、Java应用程序编程接口和Java虚拟机。

3.Java运行时环境是由Java虚拟机和核心类组合形成的。

4.在Java类文件中存储的二进制代码称为字节码,它们是JVM的指令。

5.当Java虚拟机是在主机操作系统上由软件实现时,它实际上是用本地(如C/C++等)语言编写的程序。

6.Java虚拟机主要包括两个模块,一个是类装载器,另一个是执行引擎。

7.在面向对象系统中,对象是程序的基本组成实体。

8.对象是程序的基本组成实体,类是创建对象的模板。

9.Java 源程序中的类可以分为两种,分别是系统类和用户自己定义类。

10.编译程序的时候会自动导入到程序中的系统包是ng。

11.把基本数据类型包装成类包装成类的好处是可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作。

12.在Java中,int类型的包装类是Integer, char 类型的包装类是Character。

13.Integer 类的 parseInt( ) 方法的功能是把一个字符串转换为一个整型数据。

14.Java 把数据输出到控制台是使用System.out完成的。

15.Scanner 类是在java.util包中定义的。

16.创建一个连接到标准输入流对象 System.in 的Scanner 对象的语句是Scanner myScanner = new Scanner(System.in);。

17.设 myS 是一个 Scanner 类的实例,则语句“int x= myS.nextInt();”的作用是读取一个整数,然后把这个整数赋给变量x。

18.Java 提供的专门用于格式化输出数据的方法是System.out.printf()。

北邮-Java技术-阶段三

北邮-Java技术-阶段三

一、单项选择题(共10道小题,共100.0分)1. 请看下面未完成的代码public class Foo implements Runnable {public void run (Thread t) {System.out.println("Running.");}public static void main (String[] args) {new Thread(new Foo()).start();}}结果是?()A. 运行时抛出一个异常B. 程序能够运行,但是没有任何输出C. 没有实现Runnable 接口中的方法导致编译错误D. 程序运行后输出“Running”2. 下面关于“守护线程(daemon thread)”的说法错误的是()A. “守护线程”和“非守护线程”本质上并没有什么区别,只是JVM 对其控制的方式有所不同而已。

B. 守护线程一般是在后台提供某种服务,而非程序核心部分的线程,所以它的优先级最低C. 一个程序的任何非守护线程的执行代码都要执行完程序才结束。

而守护线程的执行代码不一定都要执行完。

D. 不允许在程序中用代码把一个非守护线程转变为守护线程3. 下面关于Java 线程的说法错误的是()A. 当一个Java 程序启动时,系统就为它创建好一个线程,用这个线程执行main() 方法中的代码序列B. 除了主线程,JVM 还创建了其它线程C. 程序员可以使用代码自己创建线程并启动执行D. Java Application 程序有主线程,而JavaApplet 程序没有主线程4. 下面哪一个可以将“<end>”加到文件“file.txt”文件末尾?()A. OutputStream out= new FileOutputStream (“file.txt”);Out.writeBytes (“<end>/n”);B. OutputStream os= new FileOutputStream (“file.txt”, true);DataOutputStream out = new DataOutputStream(os);out.writeBytes (“<end>/n”);C. OutputStream os= new FileOutputStream (“file.txt”);DataOutputStream out = new DataOutputStream(os);out.writeBytes (“<end>/n”);D. OutputStream os= new OutputStream (“file.txt”, true);DataOutputStream out = new DataOutputStream(os);out.writeBytes (“<end>/n”);5. 下面哪一个可以创建一个数据输出流?()A. new dataOutputStream(“out.txt”);B. new dataOutputStream(new file(“out.txt”));C. new dataOutputStream(new FileOutputStream(“out.txt”));D. new dataOutputStream(new FileWriter(“out.txt”));6. 设系统中已经存在ASCII码文件“file.txt”,给定下面程序import java.io.*;public class Try2 {public static void main (String[]args) throws Exception {try {File f = new File("file.txt");FileOutputStream out = new FileOutputStream(f, true);}catch (IOException ) {}}则结果是()A. 不能通过编译B. 程序可以通过编译,运行后文件“file.txt”没有任何改变C. 程序可以通过编译,运行后文件“file.txt”的长度变为0D. 由于文件f 没有关闭,所以运行程序时会有一个异常产生7. 下面能够得到文件“file.txt”的父路径的是()A. String name= File.getParentName(“file.txt”);B. String name= (new File(“file.txt”)).getParent();C. String name = (new File(“file.txt”)).getParentName();D. String name= (new File(“file.txt”)).getParentFile();8. 设有如下程序2. public class Try2 {3. public static void main (String[]args) throws Exception {4, FileOutputStream out = new FileOutputStream ( "BytesCopy.txt" );5. }6.}则需要在第一行加入哪条语句能使程序通过编译和运行?()A. include java.io.OutputStream;B. import java.io.FileOutputStream;C. import java.io.OutputStream;D. import java.io.FileOutputStream;9. 下面哪个基于Unicode字符的输出流?()A. ReaderB. WriterC. InputStreamD. OutputStream10. 下面哪个是基于二进制字节的输出流?()A. ReaderB. WriterC. InputStreamD. OutputStream11.。

北邮Java本科选修 作业报告

北邮Java本科选修 作业报告

Java日历软件1.设计思路1.1面板样式设计在“当前年月”位置处,可以切换到其他年月;“日期”处,显示天数的信息,不同日期用不同颜色标注;“今天”处,显示今天的年月日;一键返回今天;在功能选项卡栏,以后可以添加新的功能,设计对应的面板,比如“记录”等功能,由于时间关系没有做具体的内容。

1.2代码结构calendar包,包括五个类Wannianli类2.功能分析主要介绍日历的算法和图形界面等内容。

2.1calendar包放置与日历相关的类。

2.1.1.MButton类每个天数button的显示设计。

定义两种参数类型的构造方法,分别用于CalendarDialog类和CalendarPanel类。

2.1.2.MTableModel类继承自抽象类AbstractTableModel,定义成员变量columnNames列标题、tableDatas存放表格数据的线性表,实现的方法如下图。

2.1.3.MTableCell类JTable负责管理表格的可视外观,在绘制每个单元格时,调用TableCellRenderer 接口,其中row和column标识一个单元格。

使用这个接口,封装和复用已有标量型组件的渲染代码,可以降低代码重复率。

部分代码:2.1.4.CalendarDialog类小型简化版日历。

成员变量,其中YEAR、MOUTH、DAY、daysOfMouth用final修饰,是常量;行文本输入框JTextField类的对象yearTextField、monthTextField,用于输入年月;MTableModel类的对象tableModel,存储数据,最后放到JTable中;JTable类的对象table,建立显示二维数组数据的表格,可以显示列的名称。

成员方法,主要有CalendarDialog()方法、initTableModel()方法和各个事件处理方法。

图为成员变量,(黑框圈起来的)事件处理方法。

北邮-Java技术-阶段二

北邮-Java技术-阶段二

一、单项选择题(共10道小题,共100.0分)1. 给定下面程序段public class Try2 {public static void main(String[] args) {try {return;}finally {System.out.println("Finally");}}}则下面说法正确的是()A. 程序能运行,没有输出结果B. 程序能运行,输出FinallyC. 程序可以编译通过,但是运行时会抛出异常D. 因为缺少了catch块,所以程序不能编译2. 请看下面的代码public void fun( ) {int i;try {i = System .in .read( );System .out .println(“location 1”);}catch (IOException e) {System .out .println(“location 2”);}finally {System .out .println(“location 3”);}System .out .println(“location 4”);}如果IOException块执行,程序的输出结果为()A. location 1location 3B. location 2location 3C. location 2location 3location 4D. location 43. 给定下面程序段public class MyProgram {public static void main(String args[]) {try {System.out.print("Hello world ");}finally {System.out.print("Finally executing ");}}}则下面正确的选项是()A. 由于没有表明异常,所以程序不能编译B. 由于缺少catch语句,所以程序不能编译C. 程序运行结果:Hello world.D. 程序运行结果:Hello world Finally executing4. 关于Java 处理异常的方法的叙述错误是()A. Java通过面向对象的方法来处理异常B. Java 要求程序员编写的程序时,必须对可检测的异常进行处理,否则不能通过编译C. Java 异常处理机制接收到异常对象后,通常会调用程序员编写的一些异常处理程序,以便将程序从错误状态中恢复或者做一些简单地处理后结束程序D. 异常对象只能由系统产生,程序员不能自己“创造”异常对象5. 下面不属于“异常”现象的是()A. 程序创建对象时没有足够的内存创建对象了B. 程序要打开文件“D:\file.txt”,但是该文件已经被误删除了C. 预期用户由键盘输入整数,但用户运行程序时实际输入的却是英文字母D. 定义方法时忘记写方法的返回值类型6. 有如下代码段class COuter {int x = 10;void showA() {System.out.println(x);}void print() {(new CInner() {void showB() {System.out.println(x);}}).showB();}class CInner {int x = 20;}}public class Try2 {public static void main(String[] args) {COuter o = new COuter();o.print();}}则下面说法正确的是()A. 程序有错,方法print()内的代码有语法错误B. 程序有错,Try2类的声明有语法错误C. 输出为20D. 输出为107. 有如下代码段class COuter {int x = 10;void showA() {System.out.println(x);}void print() {(new CInner()).showB();}class CInner {int x = 20;void showB() {System.out.println(x);}}}public class Try2 {public static void main(String[] args) {COuter o = new COuter();o.print();}}则下面说法正确的是()A. 编译时发生错误B. 运行时发生错误C. 输出为20D. 输出为108. 下面关于“回调”的说法错误的是()A. “回调”是一种程序设计模式,而不是Java的专门语法规则B. 通过回调,对象被赋予一些信息,这些信息允许它在稍后的某个时刻返回头去调用初始对象C. Java通过指针实现回调D. Java通过接口实现回调9. 设有如下接口定义interface IShape {double Pi = 3.14;void getArea();}则下面说法错误的是()A. 在程序的任何一个地方都可以调用getArea()B. getArea()是抽象方法C. getArea()是静态方法D. getArea()不带有返回值10. Java中用于定义接口的关键字是()A. importB. packageC. classD. interface11.。

北邮Java程序设计作业3

北邮Java程序设计作业3

Java程序设计题目:课程作业三——实验报告一、题目要求作业要求:按如下要求编写图形用户界面程序,最后提交纸质报告报告要求:包括设计思路、关键代码及运行结果题目:在以下题目中任选一题,也可以自由发挥,要求使用Java事件处理机制。

Java简易计算器Java日历软件Java记事本Java学生信息管理系统二、设计思路1、设计图形界面月份,按下查询按键,日历即可显示,最顶上的标题可以动态更新。

这是各个组件的关系示意图,其中,图中的p0、p1、p2为JPanel 对象,方便安排我们的格局;label0、label1、label2三个对象,为JLable 对象,用于显示三个标签,text1、text2、text3三个对象,为JTextField 对象,用于输入年份月份,button1为JButton 对象,用于按下以查询日历。

2、 程序流程图开始程序初始化输出2014年12月的日历输入希望查询的月份,按下查询键判断是否合法是输出新日历否输出日历为空程序开始显示2014年12月的日历,当输入一个年份和月份时,判断是否合法,合法则输出该月的日历,不合法则输出一个空日历。

3、 程序逻辑框图getStartDay()找到这一个月第一天getTotalDay()这一天是1800年来第几天leapYear()是否闰年getMonthDay()返回这个月共几天Showcal()修改内部参数Cal()显示结果以上是我们程序的逻辑框图。

首先利用leapYear()判断这一年是否为闰年;然后利用getMonthDay(),各个月份的日期相加,求出1800年以来,这个月之前共有多少天;然后利用getStartDay(),求出这个月开始的一天为星期几,再配合getMonthDay(),即可得到该月的日历。

再使用Showcal(),修改内部参数,即可在程序中显示出来。

三、关键代码分析①构造方法:public cal() {super("2012210637郑晨宇——Java作业·日历软件"); //框架命名this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数this.setBounds(400,150,550,340);//设置窗口的位置和大小Container c=getContentPane();p1 = new JPanel();//面板对象,p3 = new JPanel(new GridLayout(8,1,3,3));//在面板对象p3里使用网格布局管理器p2 = new JPanel(new GridLayout(7,7,10,1));//网格布局管理器label0=new JLabel("年份:");//标签组件label1=new JLabel("月份:");label2=new JLabel("备忘录:");label3=new JLabel("");text1=new JTextField("2014",1);//文本框text2=new JTextField("12",1);text3=new JTextField(1);button1=new JButton("查看");//按钮int i;//中心面板中各个标签初始化(用显示日历7行7列)for(i=0;i<7;i++)p2.add(ai[i]=new JLabel(ast[i]));//第一行显示是周几(星期日到星期六)for (i= 7; i< 49; i++)p2.add(ai[i]=new JLabel(""));//暂时为空,在showcal中具体定义各月不同的显示p3.add(label0);p3.add(text1);p3.add(label1);p3.add(text2);p3.add(button1);p3.add(label2);p3.add(text3);p1.add(label3);setVisible(true);c.add(p1,BorderLayout.NORTH);c.add(p3,BorderLayout.EAST);c.add(p2,BorderLayout.CENTER);button1.addActionListener(this);//注册年份、月份输入和ok按钮监听器this.setVisible(true);//窗口可见} //main主函数这个构造方法首先构造了一个JFrame对象并初始化,然后将各个标签、输入框、按键赋初值,填入预定的panel中,在将panel填入框架的指定位置,最后设定了按键的监听器。

北邮java第一次实验报告

北邮java第一次实验报告

JAVA实验报告信通院28班2012210773一:设计思路:1.我们需要先定义一个student类,然后在类中定义成员变量以及构造方法,利用构造方法对其进行初始化,然后定义一个getter和setter分别实现对类对象get到对象的属性,并利用setter的方法对其进行set,另外有toString 的成员方法,来对其转化为字符串输出。

2.第二步我们需要定义一个Graduatestudent的子类来继承父类student,那么我们想到我们用extends就可以实现继承,在整个过程,我们需要想到对于子类中和父类相同的部分,我们可以直接用super来继承,对于子类中那些父类没有定义的地方我们需要加进去,在题目中要求我们加入两个属性,那么我们只需要用同样的构造方法,在后面传入新加入的属性并对其进行构造即可。

对于父类中的方法与子类中想用的不同,那么这个时候我们需要重写方法toString(),重写的方法是:将方法命名为与父类相同的类方法名称,然后对其进行重写,写入我们想要的方法。

3.第三步,我们需要创建多个Graduatestudent的对象,然后将它加到一个集合当中,我的思路是将之加入Arraylist集合,用add的方法将之加入即可,然后通过写入一个comparator来控制其排序的方式,最后调用Collections.sort(list,comparator),即可完成我们想要的排序(即根据学号进行排序),然后对Arraylist进行遍历即可输出全部的对象。

4.第四步需要我们将分数的最大值和最小值以及平均值输出,那么我们知道我们仍然可以用第二步中同样的方法写入一个comparator1,来实现对对象分数的排序,那么我们只需要再调用SORT即可实现一个新的Arraylist,然后我们输出list.get(0)和list.get(list.size()-1)即可输出最大值和最小值,平均值只需要把所有的score放入一个数组array相加之后处以array 的长度length即可得出。

北邮Java作业

北邮Java作业

一、单项选择题(共10道小题,共100.0分)1.Java中用于定义程序包的关键字是()A.importB.packageC.classD.interface知识点: 阶段作业一学生答案:[B;]得分: [10] 试题分值:10.0提示:2.(错误)设有如下程序public class Try2 {public static void main(String[] args) {B objb = new B();A obja = objb;B objc = (B)obja;objc.show();}}class A {void show() {System.out.println("a");}}class B extends A { void show() { System.out.println("b");}} 则下面说法正确的是( D )A.编译时发生错误B.运行时发生错误C.输出为aD输出为b知识点: 阶段作业一学生答案:[C;]得分: [0] 试题分值:10.0提示:3.设有如下程序public class Try2 {public static void main(String[] args) {B objb = (B) new A();objb.show();}}class A {void show() {System.out.println("a");}}class B extends A { void show() { System.out.println("b");}} 则下面说法正确的是()A.编译时发生错误B.运行时发生错误C.输出为aD.输出为b知识点: 阶段作业一学生答案:[B;]得分: [10] 试题分值:10.0提示:4.设有如下程序public class Try2 {public static void main(String[] args) {A obja = new B();obja.show();}}class A {void show() {System.out.println("a");}}class B extends A { void show() { System.out.println("b");}} 则下面说法正确的是()A.编译时发生错误B.运行时发生错误C.输出为aD.输出为b知识点: 阶段作业一学生答案:[D;]得分: [10] 试题分值:10.0提示:5.设有如下程序:class A {void show() {System.out.println("a");}}class B extends A { void show() { System.out.println("b");}} class Ctry1 {public static void main(String args[]) {A obja;B objb = new B();obja = objb;objb.show(); obja. show();}}则输出结果是()A. aaB. abC. baD. bb知识点: 阶段作业一学生答案:[D;]得分: [10] 试题分值:10.0提示:6.设有下面程序:public class Person {static int arr[] = new int[10];public static void main(String args[]) {System.out.println(arr[0]);}}则以下叙述正确的是()A.编译时发生错误B.运行时发生错误C.输出为0D.输出为null知识点: 阶段作业一学生答案:[C;]得分: [10] 试题分值:10.0提示:7.设有如下类定义class Fruit { // 水果类int grams; // 克数(质量)int totalCalories(){ // 卡路里(热量)return grams * 10;}}则创建一个Fruit类的对象变量的语句是()A.Fruit f;B.new Fruit();C.new Fruit;D.int f;知识点: 阶段作业一学生答[A;]案:得分: [10] 试题分值:10.0提示:8.(错误)设有以下程序段class B{void show(){// code;}}class A{public static void main (String args[]){// code;}}下面叙述中正确的是( C )A.保存源文件的时候,源文件名必须是B.javaB.保存源文件的时候,源文件名必须是A.javaC.保存源文件的时候,源文件名可以是扩展名为java的任何符合操作系统文件命名规则的文件名D.保存源文件的时候,源文件名可以是任何符合操作系统文件命名规则的文件名知识点: 阶段作业一学生答案:[A;]得分: [0] 试题分值:10.0提示:9.下面叙述中哪个是正确的()A.当编译Java程序时,源程序中的每个类都将被分别编译成不同的文件,每个文件名都与所对应的类名相同,并以扩展名class结束B.当编译Java程序时,源程序中的每个类都将被分别编译成不同的文件,每个文件名都与所对应的类名相同,并以扩展名javax结束C.当编译Java程序时,源程序中的每个类都将被编译到同一个文件中,文件名与主类的类名相同,并以扩展名class结束D.当编译Java程序时,源程序中的每个类都将被编译到同一个文件中,文件名与主类的类名相同,并以扩展名javax结束知识点: 阶段作业一学生答案:[A;]得分: [10] 试题分值:10.0提示:10.下面关于 Java 类文件的说法错误的是()A.编译时程序时,Java 编译器会为源程序中的每个类单独生成一个类文件B.Java 类文件中存储的代码必须符合 JVM 规范C.Java 类文件中存储的代码是二进制形式的代码D.Java 类文件必须用Java语言编写得到知识点: 阶段作业一学生答案: [D;]得分: [10] 试题分值: 10.0提示:一、单项选择题(共10道小题,共100.0分)1.设有如下程序public class Try2 {public static void main(String[] args) {Try2 obj = new Try2();obj.test();}void oneMethod() { }public void test() {try {oneMethod( );System.out.prin tln("condition 1");}catch(ArrayIndexOutOfBoundsException e) {System.out.prin tln("condition 2");}catch (Exception e) {System.out.prin tln("condition 3");}finally {System.out.prin tln("finally");}}}则程序的输出结果的是()A.condition 1B.condition 1finallyC.condition 1condition 2condition 3D.condition 1condition 2condition 3finally知识点: 阶段作业二学生答案:[B;]得分: [10] 试题分值:10.0提示:2.使用catch(Exception e)的好处是()A.只会捕获个别类型的异常B.捕获try块中产生的所有类型的异常C.忽略一些异常D.执行一些程序知识点: 阶段作业二学生答案:[B;]得分: [10] 试题分值:10.0提示:3.给定下面程序段class Equals {public static void main(String args[]) {int x = 100;double y = 100.1;boolean b = ( x = y );System.out.println(b);}}下面选项正确的是()A.输出:trueB.输出:flaseC.编译失败D.抛出一个运行时异常知识点: 阶段作业二学生答案:[C;]得分: [10] 试题分值:10.0提示:4.关于Java 处理异常的方法的叙述错误是()A.Java通过面向对象的方法来处理异常B.Java 要求程序员编写的程序时,必须对可检测的异常进行处理,否则不能通过编译C.Java 异常处理机制接收到异常对象后,通常会调用程序员编写的一些异常处理程序,以便将程序从错误状态中恢复或者做一些简单地处理后结束程序D.异常对象只能由系统产生,程序员不能自己“创造”异常对象知识点: 阶段作业二学生答案:[D;]得分: [10] 试题分值:10.0提示:5.关于Java 处理异常的方法的叙述错误是()A.Java通过面向对象的方法来处理异常B.在一个方法的运行过程中,如果发生了一个异常,则 Java虚拟机会创建一个异常对象,然后把这个异常对象交给Java 的异常处理机制去处理C.由于 Java 有专门处理异常的机制,所以我们自己在写程序的时候对异常就可以什么都不做了D.Java 异常处理机制接收到异常对象后,通常会调用程序员编写的一些异常处理程序,以便将程序从错误状态中恢复或者做一些简单地处理后结束程序知识点: 阶段作业二学生答案:[C;]得分: [10] 试题分值:10.0提示:6.有如下代码段class COuter {int x = 10;void showA() {System.out.println(x);}void print() {(new CInner() {void showB() {S ystem.out.println(x);}}).showB();}class CInner {int x = 20;}}public class Try2 {public static void main(String[] args) {COuter o = new COuter();o.print();}}则下面说法正确的是()A.程序有错,方法print()内的代码有语法错误B.程序有错,Try2类的声明有语法错误C.输出为20D.输出为10知识点: 阶段作业二学生答案:[C;]得分: [10] 试题分值:10.0提示:7.(错误)有如下代码段class COuter {int x = 10;void showA() {System.out.println(x);}void print() {showB();}class CInner {int x = 20;void showB() {System.out.prin tln(x);}}}则下面说法正确的是()A.这段程序有错,原因是CInner类的定义放到了COuter类的类体中,而这是不允许的B.这段程序有错,原因是外部类直接使用了内部类的成员,而这是不对的C.这段程序有错,原因是内部类重复定义了外部类的变量x,而这是不允许的D.这段程序完全正确知识点: 阶段作业二学生答案:[CA;]得分: [0] 试题分值:10.0提示:8.设有如下程序public class Try2 {public static void main(String[] args) {Circle c = new Circle(2);System.out.println(c.getArea());}}interface IShape {double PI = 3.14;double getArea();}class Circle implements IShape {private double radius;Circle(double radius) {this.radius = radius;}public double getArea() {return (PI * radius * radius);}}则下面说法正确的是()A.编译时发生错误B.运行时发生错误C.输出为12.56D.输出为0知识阶段作业二点:学生[C;]答案:得[10] 试题分值: 10.0分:提Java 类文件实际上不一定非要用 Java 语言编写示: 源程序然后用 Java 编译器编译得到,实际上还有许多其它的办法得到。

北邮函授Java技术时期作业2

北邮函授Java技术时期作业2
o.print();
}
}
则下面说法正确的是()
A.编译时发生错误
B.运行时发生错误
C.输出为20
D.输出为10
知识点:
阶段作业二
学生答案:
[C;]
得分:
[10]
试题分值:
10.0
提示:
8.下面关于“回调”的说法错误的是( )
A.“回调”是一种程序设计模式,而不是Java的专门语法规则
B.通过回调,对象被赋予一些信息,这些信息允许它在稍后的某个时刻返回头去调用初始对象
}
catch (ArrayIndexOutOfBoundsExceptione) {
System.out.println("condition 2");
}
catch (Exception e) {
System.out.println("condition 3");
}
finally {
System.out.println("finally");
B.程序有错,Try2类的声明有语法错误
C.输出为20
D.输出为10
知识点:
阶段作业二
学生答案:
[C;]
得分:
[10]
试题分值:
10.0
提示:
7.有如下代码段
classCOuter{
intx = 10;
voidshowA() {
System.out.println(x);
}
void print() {
booleanb = ( x = y );
System.out.println(b);
}
}

北邮国际学院大二Java实验-lab1

北邮国际学院大二Java实验-lab1

IntroduCourse Cod1. In a Jav or moreThis proi) MoYour pr ii) Ca iii) Ca pro a.2. Write a the com statemethe com uctory de: EBU4201va applicatio e String pa ogram outpu odify file Te java T rogram shou all the progra all the progra ogram call? .christie a Java progra mmand line ents or a swi mmand line toJava P 1n’s main()arameters. C uts the follow estArgs.j TestArgs ld be named am you just wam again witFor examp e . Try this wi am called We and prints o itch statem o an integer:rogram Lab She method, St onsider the f wing when ca ava so that,Agatha C TestArgs wrote, Test th your own d ple, call the ith your deta eekDayCon out the corre ent. The foll mming eet 1: Jav tring[] a following Jav alled with ja , when called Christie s.java .tArgs.java details. Wha e program w ails . Why do nverter th esponding da lowing line o Sch a Basicsargs indica va program:ava TestA d with 14213118a , with your at happens if with java you think yo hat reads an i ay of the we of code will c hool of Ele and Com ates that this Args howdy 8 1406756r own details you omit yo TestArgs ou got the res integer value eek. You ma convert the S ectronic En mputer Scie s method can dy : 601 it output .our student nu Agatha sults you did e between 1ay use eithe String valu ngineering ence n take in one ts:umber in the Christie d?and 7 from er if…else ue read from e e e m e mint weekDay = Integer.parseInt(args[0]);Therefore, calling the program as follows:java WeekDayConverter 4will output:The 4th day of the week is Thursday.3. Write a program to calculate your BMI and give weight status. Body Mass Index (BMI) is an internationally used measurement to check if you have a healthy weight for your height. The metric BMI formula accepts weight in kilograms and height in metres, as follows:BMI = weight(kg)/height 2(m 2)BMI Weight Status categories’ table: BMI range – kg/m 2 Category< 18.5Underweight 18.5 – 24.9Normal 25 – 29.9Overweight ≥ 30 ObeseUse the command line arguments to give weight in kilograms and height in centimetres. For example:java BMICalculator 80 175should output:Your weight: 80 kgYour height: 1.75 mYour BMI: 26.12You are in the Overweight range.Hint : The data you read from the command line argument is of type String , and to convert a String to an int , you must use the Integer.parseInt()method; e.g. int anInt = Integer.parseInt(aString);4. Below is a Java program that uses a while loop:i) Write a new version of the program above using a do-while loop and name its fileDoublingNumbers1.java .ii) Write a new version of the program above using a for loop and name its fileDoublingNumbers2.java .Note : The three programs must have the same output.。

北邮函授--Java-技术--阶段作业-3

北邮函授--Java-技术--阶段作业-3
北邮函授Java技术 阶段作业3
一、单项选择题(共10道小题,共100.0分)
1.下面哪一个可以创建一个新线程?()
A.继承并且覆盖start()方法
B.实现并且实现run()方法
C.实现并且实现run()方法
D.实现并且实现run()方法
知识点:
阶段作业三
学生答案:
[C;]
得分:
[10]
试题分值:
t.run(); //4
} //5
public void run() { //6
for (int i=1;i<3;++i) { //7
(i+".."); //8
} //9
} //10
} //11
则下面正确的选项是()
A.由于第3行程序不能编译
B.由于第4行程序不能编译
C.程序运行结果是
1..2..
D.程序运行结果是
MyThread t = new MyThread();
MyThread s = new MyThread来自);t.start();
("one.");
s.start();
("two.");
}
public void run() {
("Thread");
}
}
则下面正确的选项是()
A.编译失败
B.程序运行结果为:
知识点:
阶段作业三
学生答案:
[B;]
得分:
[10]
试题分值:
10.0
提示:
9.下面哪个基于Unicode字符的输入流?()
A.Reader

北邮JAVA第三次作业科学计算器(附源代码)

北邮JAVA第三次作业科学计算器(附源代码)

北邮JAVA第三次作业科学计算器(附源代码)JAVA第三次作业选题:科学计算器一、设计思路(1)布局1.数字键盘有0~9和小数点2.符号键盘有+某÷,幂,开方,lg,ln3.功能按键有清屏(AC)和删除(Del)(2)计算器流程状态转移图设定的标志位和变量有:booleannumflag=fale;//标志:是否输入数字booleanopflag=fale;//标志:是否输入运算操作符Stringt某t=null;//显示到文本框里的字符串Stringnum_t某t=\;//当前操作数的字符串形式Stringop=\;//存放输入的运算操作符num1=0;//第一个操作数num2=0;//第二个操作数privateBigDecimalbig_num1=newBigDecimal(Double.toString(0)); //解决浮点数的精度丢失问题privateBigDecimalbig_num2=newBigDecimal(Double.toString(0));1.关于操作数操作数为输入数字时会改变的数,有num1和num2。

按下运算符和控制字符,会设定当前下在键入的操作数,由opflag控制,fale表示正在操作num1,true表示正在操作num2。

初始状态下的操作数为num1。

按下AC会恢复操作数为初始状态num1。

按Delete、开方、lg、ln不会改变当前的操作数。

其中后三者只对num1有效。

其他的运算符和控制符都会使操作数为num2。

2.计算器的状态框图输入第一个数,比如53numflag=true(num1)opflag=falenum_t某t=”53”op=””t某t=”53”初始状态numflag=faleopflag=falenum_t某t=””op=””t某t=nullnum1,num2=0按下一个运算符,比如+numflag=faleopflag=truenum_t某t=””op=”+”t某t=”num1+”其中按下按=显示结果,恢复初始状态numflag=true(num1)opflag=falenum_t某t=””op=””t某t=”reult”“=”后,结果存输入第二个数,比如66入numflag=true(num2)opflag=truenum_t某t=”66”op=””t某t=”num1+66”num1,继续输入数字会在num1的结果上处理。

4北邮JAVA期末大作业 聊天室开发文档

4北邮JAVA期末大作业  聊天室开发文档

JAVA期末大作业开发文档学院:电子工程学院专业:电子信息科学与技术班级:2013211202姓名:学号:小组成员:一.选题我们三人选择了网络通信程序这一题目,题目要求包括:能够实现双方通过服务器建立通信连接,实现一对一的聊天;能够通过服务器,采用多线程实现多人间的群聊;能够实现文字通信和传输图片;能够保存通信记录到本地。

我们在此基础上还实现了发送振动消息以及发送文件的功能。

二.需求分析1.首先我们进行了系统的功能分析,这个通信程序分为客户端和服务器两个部分:服务器端主要负责监听客户端的连接请求,把这个请求通过网络发送给服务器端进行处理,把客户端(请求方)的聊天请求、发送文件请求、发送振动消息请求等转发给目标客户端(接收方):而客户端负责发送请求并处理服务器端返回的响应消息。

整体框图构造如下1.当前在线用户服 1.ServerMain.java---启动监听器 2.已注册的用户务 3.当前监听端口器监 1.用户注册听 2.用户登录模 2.server.controller.java—处理客户端的请求 3.断开连接块 4.聊天5.振动6.文件收发网络 1.当前在线用户通 3.server.ui.java—服务器信息显示窗体 2.所有注册用户信 3.时间系 1.clientMain.java---连接服务器、启动登录窗口统 1.登录窗体用 2.注册窗体整户 2.client.ui.java—显示客户端各个窗体 3.聊天窗体体模 4.提示对话框构块 5.窗体振动器架搭建3.client.clientThread.java—--客户端后台线程接收和处理服务器返回的响应4.client.util.JFrameShaker---实现窗体振动三.概要设计通过之前的需求分析,可以看出项目的包主要包括服务器和客户端两个包,然而主要功能的实现,具体需要分为以下六个模块:1)服务器监听模块2)客户端用户登录模块3)客户端客户注册模块4)聊天模块5)发送文件模块6)发送振动消息模块四.主要功能实现及大体设计过程1.服务器监听模块功能实现服务器监听模块实现了在服务器监听窗口中显示当前在线用户列表和已注册用户列表,可以通过单击标签切换选项卡。

2020年11月北邮java语言程序设计实践试题及答案

2020年11月北邮java语言程序设计实践试题及答案
}
}
}
【5】
packageshijian2;
publicclassTest4 {
publicstaticvoidmain(String[]argv){
Buybuy=newBuy();
Bookb1=newBook("西游记","吴承恩","北京出版社");
Bookb2=newBook("水浒传","施耐庵","北京出版社");
this.chubanshe=chubanshe;
}
publicString getBookName() {
returnbookName;
}
publicvoidsetBookName(StringbookName) {
this.bookName=bookName;
}
publicString getAuthorName() {
super();
this.customer=customer;
this.book=book;
this.num=num;
}
publicCustomer getCustomer() {
returncustomer;
}
publicvoidsetCustomer(Customercustomer) {
this.customer=customer;
=name;
this.phone=phone;
}
publicString getName() {
returnname;
}
publicvoidsetName(Stringname) {
=name;

JAVA丁振凡北邮版答案

JAVA丁振凡北邮版答案

JAVA丁振凡北邮版答案1、下面这段代码的输出为( D )int year = 2046;if(year % 2 == 0){System、out、println("进入了if");}else{System、out、println("进入了else");}System、out、println("退出");A、进入了ifB、进入了elseC、进入了elseD、进入了if 退出退出2、关于Java程序的main()方法的说法中,错误的是( A )A、一个Java程序可以有多个main()方法B、 main()方法是Java程序的入口C、 main()方法使用public、static和void修饰,且顺序不能改变D、main()方法后面要有一对大括号,计算机需要执行的命令都写在大括号里3、分析如下Java代码,编译运行后的输出结果是( B)public static void main(String[] args){boolean b = true;System、out、print(b);if(b){System、out、print("真");}else{System、out、print("假");}}A、trueB、true 真C、true 假D、14、在Java程序的程序控制流语句中,可以省略且不影响编译通过的子句是( BC)A、caseB、breakC、defaultD、switch5、在Java语言中,下面( B)是逻辑运算符中优先级最高的A、&amp;&amp;B、!C、||D、|6、在Java中,以下变量赋值无法通过编译的是( A)A、char c1 = "男";B、char c2 = '女';C、int f1 = 128;D、double d1 =1、2;7、以下是文件HELLO、java中的源代码,请分析该代码的运行结果( B )public class Hello{public static void main(String[] args){String str = "Hello World";System、out、print(str);}}A、Hello WorldB、提示:公共类型Hello必须在它自己的文件中定义C、strD、提示:数据类型错误8、在Java中,如下代码输出结果是( A)public static void main(String[] args){int i=0;System、out、print(i+=2);System、out、print(i+=2);}A、2B、2C、0D、0。

2022北邮高级语言程序设计(java)作业

2022北邮高级语言程序设计(java)作业

2022北邮高级语言程序设计(java)作业第一阶段作业一、多项选择题(共1道小题,共10.0分)1.window下安装Java开发工具包时需要配置路径修改的变量名为____A.ClapathB.PathC.TEMPD.windir知识点:第一单元过关习题学生答[A;B;]案:得分:[10]提示:多选题2.二、单项选择题(共9道小题,共90.0分)1.利用Java开发工具包编译和运行Java程序需要用到哪两个命令____A.java、javacB.java、javaC.javac、javadocD.javadoc、java知识点:第一单元过关习题学生答[A;]案:得分:[10]提示:2.(错误)用Java虚拟机执行类名为Hello的应用程序的正确命令是____A.javaHello.claB.Hello.claC.javaHello.javaD.javaHello试题分10.0值:试题分10.0值:知识点:第一单元过关习题学生答[C;]案:得分:[0]试题分10.0值:提示:3.4.编译一个Java程序Hello.java的正确命令形式是____A.javacHelloB.JavacHelloC.javacHello.javaD.javac.hello知识点:第一单元过关习题学生答[C;]案:得分:[10]试题分10.0值:提示:5.6.只包含一个带public方法的Java类Abc的java程序的正确命名是____A.AbcB.Abc.javaC.abc.javaD.一个任意的标识符后带后缀.java知识点:第一单元过关习题学生答[B;]案:得分:[10]试题分10.0提示:7.8.JVM机制的意义在于可以确立Java程序的____A.平台无关B.简单性C.安全性D.多线程知识点:第一单元过关习题学生答[A;]案:得分:[10]试题分10.0值:提示:9.10.最早的程序语言是____A.机器语言B.汇编语言C.面向对象的程序语言D.面向过程的程序语言知识点:第一单元过关习题学生答[A;]案:得分:[10]试题分值:提示:11.12.小王编了一个打印他名字的程序publicclaicHello{publicvoidmain(String[]arg){Sytem.out.printIn(“你好,王凯”);}}该程序有如下哪种可能的结果____A.执行时产生异常B.程序不能编译C.执行后输出:“你好,王凯”D.执行后不输出任何东西知识点:第一单元过关习题学生答[A;]案:得分:[10]提示:13.一般来说,程序的执行方式有____试题分10.0值:A.解释执行B.编译执行C.解释执行和编译执行D.上述都不正确知识点:第一单元过关习题学生答[C;]案:得分:[10]试题分值:提示:14.15.Java语言的特点不包括_____A.平台无关B.面向对象C.多重继承D.多线程知识点:第一单元过关习题学生答案:[C;]得分:[10]试题分值:提示:16.第二阶段作业一、多项选择题(共1道小题,共5.0分)下列变量的声明中,正确的是____int$某;10.010.0知识点:学生答案:得分:int123;int_123;int#dim;int%percent;int某divide;intcentral_ale_region_Summer_2005_gro_ale;第二单元过关自测[A;C;G;][5]试题分值:5.0提示:二、单项选择题(共19道小题,共95.0分)阅读分析下列程序段:if(某>0){Sytem.out.println(“firt”);}eleif(某<20){Sytem.out.println(“econd”);}ele{Sytem.out.println(“third”)}当程序输出“econd”时,某的范围为____某<=0某<20&&某>0某>0某>=20知识主题5自测点:学生答[A;]案:试题分[5]5.0得分:值:提示:下列程序片段输出的是什么_____inta=3;intb=1;if(a=b) Sytem.out.println(“a=”+a);a=1。

北邮高级程序语言Java阶段作业二

北邮高级程序语言Java阶段作业二

一、单项选择题(共20道小题,共100.0分)1.下列语句执行后,z的值为()int x=3,y=4,z=0;switch(x+y){case 3:z=x*y ;break ;case 4:z=x/y ;break;case 7:z=x-y;break;default:z=x*y-x;}A.12B.9C.-1D. 1知识点: 新主题5自测学生答案:[C;]得分: [5] 试题分值:5.0提示:2.下列程序片段输出的是什么?()int a=3;int b=1;if(a=b)System.out.println(“a=”+a);A.a=1B.a=3C.编译错误,没有输出D.正常运行,但没有输出知识点: 新主题5自测学生答[C;]得分: [5] 试题分值:5.0提示:3.当条件为真和条件为假时,()控制结构可以执行不同的动作。

A.switchB.whileC.forD.if…else知识点: 新主题5自测学生答案:[D;]得分: [5] 试题分值:5.0提示:4.5.在switch语句块中,哪条语句用于处理其他所有情况?()A.defaultB.otherwiseC.elseifD.else知识点: 新主题5自测学生答案:[A;]得分: [5] 试题分值:5.0提示:6.7.所有的程序均可用下面几种控制类型控制结构编写。

()A.顺序结构、选择结构、循环结构B.顺序结构、循环结构C.顺序结构、选择结构D.选择结构、循环结构知识点: 新主题5自测案:[A;]得分: [5] 试题分值:5.0提示:8.9.do-while语句与while语句的区别在于先执行循环体中的语句再计算条件表达式, 所以do-while语句的循环体至少被执行1次。

()A.正确B.错误知识点: 新主题6自测学生答案:[A;]得分: [5] 试题分值:5.0提示:10.11.下列语句执行后,输出结果是()。

for(int i=1;i<10;i++){for (int j=0;j<i;j++)System.out.print(“*”);System.out.print(“\n”);}A.1行B.9行C.10行D.以上都不对知识点: 新主题6自测学生答案:[B;]得分: [5] 试题分值:5.0提示:12.13.下列语句执行后,i的值是()。

【免费下载】北邮高级语言程序设计(基于Java)第二次阶段作业

【免费下载】北邮高级语言程序设计(基于Java)第二次阶段作业

学生答
案:
得分: [5]
提示:
[A;]
2. 3. 下列换行的转义符是____
试题分
值:
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

StartGame00.java/*** A class that takes in Hangman game in GUI interface, which extends StartGame.* @author Yuewen Li* @created 2013* @version 1.0* @version 1.1*/import javax.swing.*;import java.awt.*;import java.io.*;import java.util.*;public class StartGame00 extends StartGame{JPanel thePanel; //The new variable for painting.int miss=0; //This variable is to determine the steps of drawing the hangman. It increaces in each round of//guess with the wrong guess./*** Override the constructor of parent class. Add the initialization of thePanel.*/public StartGame00(){super();this.thePanel=new StartGameGUI();}/*** Override super.go(). Add two instructions in super.go() to repaint thePanel.*/public void go(){getDictionary();startGuess();System.out.println("Would you like to play again?");System.out.println("Yes----------------Enter 1");System.out.println("No-----------------Enter 2");Scanner myChoice=new Scanner(System.in);int choice=myChoice.nextInt();switch(choice){case 1:this.miss=0; //This is the new partthePanel.repaint(); //to repaint.go();case 2:System.out.println("Game over!");System.exit(1);}}/*** Override super.startGuess(). Add the new function to repaint thePanel for every wrong guess. */public void startGuess(){this.guessNum++;int missTime=0;String missLetter="";int allRightLetters=0;String questWord=this.dictionary.toLowerCase();ArrayList<Character> display=new ArrayList<Character>();ArrayList<Character> myScanner=new ArrayList<Character>();System.out.print("Word: ");for(int i=0;i<questWord.length();i++){display.add('_');}for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: ");System.out.print("Enter Guess: ");do{Scanner myGuess=new Scanner(System.in);String word=myGuess.next();word=check(word);word=word.toLowerCase();char theLetter=word.charAt(0);int rightLetter=0;for(int j=0;j<questWord.length();j++){if(theLetter==questWord.charAt(j)){int u=0;for(int y=0;y<myScanner.size();y++){if(theLetter==myScanner.get(y)){u++;}}if(u==0){rightLetter++;display.remove(j);display.add(j,this.dictionary.charAt(j));myScanner.add(theLetter);}}}allRightLetters+=rightLetter;if(rightLetter==0){missTime++;this.miss=missTime; //This is the new partthePanel.repaint(); //to repaint.missLetter+=word;System.out.print("Word: ");for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: "+missLetter);System.out.print("Enter Guess: ");}else{if(allRightLetters==questWord.length()){System.out.println("Congratulations, you win! You have guessed the word: "+this.dictionary+" in "+(missTime+1)+" guesses.");missTime=10;}else{System.out.print("Word: ");for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: "+missLetter);System.out.print("Enter Guess: ");}}}while(missTime<6);if(missTime!=10){System.out.println("");System.out.println("You have run out of guesses. The word was: "+this.dictionary+".");}}/*** Inner class to create thePanel and paint the hangman in GUI.*/public class StartGameGUI extends JPanel{public void paintComponent(Graphics g){g.setColor(Color.white);g.fillRect(0,0,300,500);g.setColor(Color.blue);g.drawLine(30,450,100,450);g.drawLine(65,450,65,50);g.drawLine(65,50,180,50);g.drawLine(180,50,180,80);g.setColor(Color.black);if(miss>=1){ //Steps of drawing with the wrong guess.g.drawOval(150,80,60,60);}if(miss>=2){g.drawLine(180,140,180,300);}if(miss>=3){g.drawLine(100,160,180,220);}if(miss>=4){g.drawLine(260,160,180,220);}if(miss>=5){g.drawLine(180,300,120,400);}if(miss>=6){g.drawLine(180,300,240,400);}}}}StartGame.java/*** A class that takes in Hangman game in command line interface.* @author Yuewen Li* @created 2013* @version 1.0* @version 1.1*/import java.io.*;import java.util.*;public class StartGame{String fileName="dictionary.txt";String dictionary=""; //The word for once guessstatic int wordNum=0; //The number of words in dictionary.txt.static int randomWord=0; //Generate a random word.static int guessNum=0; //Count how many rounds.static ArrayList<String> tempDictionary; //Generate a word list for game./*** Constructor. Read the file "dictionary.txt" and get an ArrayList of words, tempDictionary.*/public StartGame(){tempDictionary=new ArrayList<String>();try{FileReader fileReader=new FileReader(fileName);BufferedReader bufferedReader=new BufferedReader(fileReader);String aWord="";aWord=bufferedReader.readLine();while(aWord!=null){tempDictionary.add(aWord);this.wordNum++;aWord=bufferedReader.readLine();}bufferedReader.close();fileReader.close();}catch(IOException e){System.out.println("Error occured");System.exit(1);}}/*** A getDictionary() method to get a word randomly for game.*/public void getDictionary(){if(guessNum==wordNum){System.out.println("Words run out! Game over!");System.exit(1);}else{this.randomWord=(int)(Math.random()*(wordNum-1-guessNum));this.dictionary=tempDictionary.get(randomWord);tempDictionary.remove(randomWord); //This part is to generate a} //different word for every round.}/*** A startGuess() method to start one round of the game.*/public void startGuess(){this.guessNum++;int missTime=0;String missLetter="";int allRightLetters=0;String questWord=this.dictionary.toLowerCase();ArrayList<Character> display=new ArrayList<Character>();ArrayList<Character> myScanner=new ArrayList<Character>(); //This list, myScanner is toSystem.out.print("Word: "); //avoid that a same letter isfor(int i=0;i<questWord.length();i++){ //typed many times.display.add('_');}for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: ");System.out.print("Enter Guess: ");do{ //This loop is to help finishi one round ofScanner myGuess=new Scanner(System.in); //guess.String word=myGuess.next();word=check(word);word=word.toLowerCase();char theLetter=word.charAt(0);int rightLetter=0;for(int j=0;j<questWord.length();j++){if(theLetter==questWord.charAt(j)){int u=0;for(int y=0;y<myScanner.size();y++){ //myScanner works inif(theLetter==myScanner.get(y)){ //this part.u++;}}if(u==0){rightLetter++;display.remove(j);display.add(j,this.dictionary.charAt(j));myScanner.add(theLetter);}}}allRightLetters+=rightLetter; //That allRightLetters equals the length ofif(rightLetter==0){ //questWord indicates the user has won.missTime++;missLetter+=word;System.out.print("Word: ");for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: "+missLetter);System.out.print("Enter Guess: ");}else{if(allRightLetters==questWord.length()){System.out.println("Congratulations, you win! You have guessed the word: "+this.dictionary+" in "+(missTime+1)+" guesses.");missTime=10; //Make missTime the value of 10 to break} //the do-while loopelse{System.out.print("Word: ");for(int p=0;p<display.size();p++){System.out.print(display.get(p)+" ");}System.out.println("");System.out.println("Misses: "+missLetter);System.out.print("Enter Guess: ");}}}while(missTime<6);if(missTime!=10){System.out.println("");System.out.println("You have run out of guesses. The word was: "+this.dictionary+".");}}/*** A check(String) method to ensure the entered character is valid.*/public String check(String word){boolean a=word.matches("[A-z]{1}");if(!a){System.out.println("Words only contain letters, no number or other characters.");Scanner newGuess=new Scanner(System.in);word=newGuess.next();word=check(word);return word;}elsereturn word;}/*** A go() method to start and end the Hangman Game. Ask users to continue or end game.*/public void go(){this.getDictionary();this.startGuess(); //start a round of guess.System.out.println("Would you like to play again?");System.out.println("Yes----------------Enter 1");System.out.println("No-----------------Enter 2"); //Ask user whether to continue or not.Scanner myChoice=new Scanner(System.in);int choice=myChoice.nextInt();switch(choice){case 1:go(); //Start another guess and ask and choice again. This//loop is to control the whole game.case 2:System.out.println("Game over!");System.exit(1); //Exit the game.}}}HangmanCL.java/*** A class that starts Hangman game in command line interface. * @author Yuewen Li* @created 2013* @version 1.0* @version 1.1*/public class HangmanCL{/***A main method to start the Hangman game.*/public static void main(String[] args){StartGame a=new StartGame();System.out.println("Welcome to Hangman:");a.go();}}HangmanGUI.java/*** A class that starts Hangman game in GUI interface.* @author Yuewen Li* @created 2013* @version 1.0* @version 1.1*/import javax.swing.*;import java.awt.*;import java.util.*;public class HangmanGUI extends JFrame{/***A main method to start Hangman game in GUI interface.*/public static void main(String[] args){JFrame frame=new JFrame("Hangman");StartGame00 a=new StartGame00();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(a.thePanel);frame.setSize(300,500);frame.setVisible(true);System.out.println("Welcome to Hangman:");a.go();}}。

相关文档
最新文档