加载中…
个人资料
BLUCE
BLUCE
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,603
  • 关注人气:9
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

《Java语言》上机实验(第一次)

(2015-11-10 23:57:56)
标签:

《java语言》上机实验

java

it

教育

分类: java编程作业

lzy291@gdut.edu.cn

Java语言程序设计基础教程》

上机实验指导手册

 

实验一   Java环境演练

 

【目的】 

①安装并配置Java运行开发环境;

②掌握开发Java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序;

掌握开发Java Applet程序的3个步骤:编写源文件、编译源文件和运行Java Applet程序;

学习同时编译多个Java源文件。

【内容】

1.一个简单的应用程序

² 实验要求:

编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板:

 Hello.java

public class Hello

    

     public static void main (String args[ ])

     

        【代码1】    //命令行窗口输出"你好,很高兴学习Java"

         a=new A();

         a.fA();

     }

}

class A

{

      void fA()

      {

         【代码2】    //命令行窗口输出"We are students"

      }

}

² 实验后的练习:

1. 编译器怎样提示丢失大括号的错误?

2. 编译器怎样提示语句丢失分号的错误?

3. 编译器怎样提示将System写成system这一错误?

4. 编译器怎样提示将String写成string这一错误?

2.一个简单的Java Applet程序 

² 实验要求:

编写一个简单的Java Applet程序,并在Java Applet中写两行文字:“这是一个Java Applet程序”和“我改变了字体”。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板

FirstApplet.java

import java.applet.*; 

import java.awt.*;

public class FirstApplet extends Applet

 

    public void paint(Graphics g)

    {

          g.setColor(Color.blue);   

        【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”

         g.setColor(Color.red);

          g.setFont(new Font("宋体",Font.BOLD,36));

         【代码2】//在Java Applet中绘制一行文字:“我改变了字体”

    }

}

² 实验后的练习:

5. 程序中的主类如果不用public修饰,编译能通过吗?

6. 程序中的主类如果不用public修饰,程序能正确运行吗?

7. 程序将paint方法误写成Paint,编译能通过么?

8. 程序将paint方法误写成Paint,运行时能看到有关的输出信息吗?

3.联合编译

² 实验要求:

编写4个源文件:Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。将4个源文件保存到同一目录中,例如:C:\100,然后编译Hello.java。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板

模板1Hello.java

public class MainClass

    

     public static void main (String args[ ])

     

        【代码1】    //命令行窗口输出"你好,只需编译我"

        a=new A();

        a.fA();

        b=new B();

        b.fB();

c=new C();

        c.fC();

     }

}

模板A.java

public class A

{

      void fA()

      {

           【代码2】    //命令行窗口输出"I am A"

      }

}

模板B.java

public class B

{

    void fB()

      {

         【代码3】    //命令行窗口输出"I am B"

      }

}

模板C.java

public class C

{

    void fC()

      {

          【代码4】    //命令行窗口输出"I am C"

      }

}

² 实验后的练习:

9. 将Hello.java编译通过后,不断修改A.java源文件中的代码,比如,在命令行窗口输出“我是A类”或“我被修改了”。要求每次修改A.java源文件后,单独编译A.java,然后直接运行应用程序Hello。

10. 如果需要编译某个目录下的全部Java源文件,比如C:\1000目录,可以使用如下命令:c:\1000\javac *.java

 

 java实验二、基本输入输出

一、实验目的
 1.掌握标准输入输出处理。
 2.掌握BufferedReader类的使用方法。
 二、实验内容
 1.运行下面的程序,掌握Java Application标准输入输出。
 import java.io.*;
 public class SimpleCharInOut{
        public static void main(String arg[]){
               char c='' '';
               System.out.print("Enter character please:");
               try{
                      c=(char)System.in.read();
               }catch(IOException e){};
        System.out.println("You''re entered character "+c);
        }
 }
 2.运行下面的程序,掌握BufferedReader类的使用方法。
 import java.io.*;
 public class a{
 public static void main(String args[]) throws IOException{
               int i;
               float f,r;
 BufferedReader din new BufferedReader(new InputStreamReader(System.in));
               System.out.print("input i: ");
               i=Integer.parseInt(din.readLine());
               System.out.print("input f: ");
               f=Float.parseFloat(din.readLine());
               r=i+f;
               System.out.println(i+"+"+f+"="+r);
        }
 }

实验后的练习:

1. 去掉例子1中的try- catch后,程序应如何修改?

2. 去掉例子2中的throws IOException后,看看程序编译的结果。

3. 尝试使用Scanner类达到上述目的!

 三、思考题
 1.使用BufferedReader类从键盘接收一个整数和一个实数,计算它们的和,然后在屏幕上输出。
 提示:关键语句如下:
        BufferedReader din new BufferedReader( new InputStreamReader(System.in));
        i=Integer.parseInt(din.readLine());
        f=Float.parseFloat(din.readLine());
 2.本实验的实验内容1中为什么要使用try-catch语句?

 

实验三   Java基本数据类型与控制语句

 

【目的】 

① 掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;

② 掌握使用ifelse if多分支语句;

③ 使用ifelse分支和while循环语句解决问题。

【内容】

1.输出希腊字母表。

² 实验要求:

编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板

GreekAlphabet.java

public class GreekAlphabet

    

     public static void main (String args[ ])

     

       int startPosition=0,endPosition=0;

       char cStart='α',cEnd='ω';

      【代码1】   //cStartint型转换据运算,并将结果赋值给startPosition

      【代码2】   //cEndint型转换运算,并将结果赋值给endPosition   

       System.out.println("希腊字母\'α\'unicode表中的顺序位置:"+(int) cStart);

       System.out.println("希腊字母表:");

       for(int i=startPosition;i<=endPosition;i++)

        {

           char c='\0';

           【代码3】  //ichar型转换运算,并将结果赋值给c

           System.out.print(" "+c);

if((i-startPosition+1)==0)

              System.out.println("");  

              

    }

}

² 实验后的练习:

1. 将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?

2. 在应用程序的main方法中增加语句:

float x=0.618;

程序能编译通过么? 

3. 在应用程序的main方法中增加语句:

byte y=128;

程序能编译通过么? 

4. 在应用程序的main方法中增加语句:

int z=(byte)128;

程序输出变量z的值是多少? 

2.回文数。

² 实验要求:

编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板

Number.java

import javax.swing.JOptionPane;

public class Number

 

    public static void main(String args[])

    {

        int number=0,d5,d4,d3,d2,d1;

        String str=JOptionPane.showInputDialog("输入一个199999之间的数");

        number=Integer.parseInt(str);

        if(【代码1//判断number199999之间的条件

            {

               【代码2】   //计算number的最高位(万位)d5

               【代码3】   //计算number的千位d4

               【代码4】   //计算number的百位d3

                d2=number0/10;

                d1=number;

              if(【代码5 //判断number5位数的条件

                {

                  System.out.println(number+"5位数");

                  if(【代码6//判断number是回文数的条件

                   {

                      System.out.println(number+"是回文数");

                   }

                  else

                   

                     System.out.println(number+"不是回文数");

                   }

                }

              else if(【代码7 //判断number4位数的条件

                {

                   System.out.println(number+"4位数");

                   if(【代码8//判断number是回文数的条件码

                   {

                        System.out.println(number+"是回文数");

                   }

                  else

                   

                      System.out.println(number+"不是回文数");

                   }

                }

                else if(【代码9 //判断number3位数的条件

                {

                   System.out.println(number+"3位数");

                   if(【代码10//判断number是回文数的条件

                   {

                        System.out.println(number+"是回文数");

                   }

                  else

                   

                    System.out.println(number+"不是回文数");

                   }

                }

             else if(d2!=0)

                {

                  System.out.println(number+"2位数");

                   if(d1==d2)

                   {

                       System.out.println(number+"是回文数");

                   }

                  else

                   

                     System.out.println(number+"不是回文数");

                   }

                }

             else if(d1!=0)

                {

                  System.out.println(number+"1位数");

                   System.out.println(number+"是回文数");

                }

            }

         else

            {

               System.out.printf("\n%d不在199999之间",number);

            }

    }

}

² 实验后的练习:

1. 程序运行时,用户从键盘输入2332,程序提示怎样的信息? 

2. 程序运行时,用户从键盘输入654321,程序提示怎样的信息? 

3. 程序运行时,用户从键盘输入33321,程序提示怎样的信息? 

3.猜数字游戏。

² 实验要求:

编写一个Java应用程序,实现下列功能:

1) 程序随机分配给客户一个1100之间的整数

2) 用户在输入对话框中输入自己的猜测

3) 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”。

4) 用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。

² 程序运行效果示例:

程序运行效果如下图所示:

² 程序模板

GuessNumber.java

import javax.swing.JOptionPane;

public class GuessNumber

    

     public static void main (String args[ ])

     

           System.out.println("给你一个1100之间的整数,请猜测这个数");

           int realNumber=(int)(Math.random()*100)+1;

           int yourGuess=0;

           String str=JOptionPane.showInputDialog("输入您的猜测:");  

           yourGuess=Integer.parseInt(str); 

           while(【代码1//循环条件

           {

              if(【代码2//条件代码

               {

                   str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");

                   yourGuess=Integer.parseInt(str); 

               }

             else if(【代码3//条件代码

               {

                   str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");

                   yourGuess=Integer.parseInt(str); 

               }

           }

          System.out.println("猜对了!");

      }

}

² 实验后的练习:

1. 用“yourGuess>realNumber”替换【代码1,可以么?

2. 语句:“System.out.println(猜对了!);”为何要放在while循环语句之后?放在while语句的循环体中合理吗?

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有