课程设计说明书
课题名称:        JAVA实现温度计的显示     
学生学号:                                 
专业班级:                                   
学生姓名:                                   
学生成绩:                                   
指导教师:                                 
课题工作时间:                       
一、课程设计任务的基本要求:
1)课程设计目的:
1、学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。
2、熟悉掌握Java程序设计语言的基础内容,了解用户图形界面设计知识。
3、通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
2)课程设计总体要求:
1、设计部分
①问题描述:利用JAVA编程语言实现一个温度计,要求以摄氏、华氏以及开尔文温度分别显示。如图1,以80℃为例,执行过程中输入参数80,显示如下效果。
1
2、设计要求:
①三种温度标准的转换方法
将摄氏度℃转成华氏度℉:将摄氏度直接乘以9,除以5,再加上32
将摄氏度℃转成开尔文度0K:将摄氏度加上27315
②三种情况:
温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold;在上下限之间以红显示温度。如图2
2
课程设计报告
第一章 课程设计目的与要求
1.1 课程设计目的
1、学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。
2、熟悉掌握Java程序设计语言的基础内容,了解用户图形界面设计知识。
3、 通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
1.2 课程设计的实验环境
1、安装JDK,安装过程中可以自定义安装目录为D:\java\jdk1.5.0;
2、安装完成后,安装完成后,右击“我的电脑”,点击“属性”;
3、选择“高级”选项卡,点击“环境变量”;
4、在“系统变量”中,设置3项属性,JAVA_HOMEPATHCLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”;
5、三个环境变量的含义及配置方法:
JAVA_HOME:该环境变量的值就是java所在的目录,一些Java版的软件和一些Java的工具需要用到该变量。它指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0,此路径下包括libbinjre等文件夹(此变量最好设置,因为以后运行tomcateclipse等都需要依此变量);
PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下到,则依次寻PATH中的每一个路径,直到到。或者完PATH中的路径也不能到,则报错。Java的编译命令(javac),执行命令(java)和一些工具命令(javadocjdb)都在其安装路径下的bin目录中。它使得系统可以在任何路径下识别java命令,设为:
      %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH:指定一个路径列表,用于搜索Java编译或者运行时需要用到的类,在CLASSPATH列表中除了可以包含路径外,还可以包含.jar文件。为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(要加.表示当前路径)  %JAVA_HOME%就是引用前面指定的JAVA_HOME
6、“开始”-->“运行”-->键入“cmd”;
7、键入命令“java  -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;
1.3 课程设计的要求
①三种温度标准的转换方法
将摄氏度℃转成华氏度℉:将摄氏度直接乘以9,除以5,再加上32
将摄氏度℃转成开尔文度0K:将摄氏度加上27315
②三种情况:
温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold;在上下限之间以红显示温度。如图
第二章 课程设计内容               
2.1 功能分析
该程序使用JAVA编程语言实现一个温度计。输入温度后运行该程序,会显示温度计及输入的温度,并将温度以红水银柱的形式显示出来,通过按下界面下方的三个按钮,可以将以摄氏、华氏以及开尔文温度分别显示。该温度计所能现实的温度范围为
-20 - 100℃。若温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold;在上下限之间以红显示温度
2.1 类和接口说明
一、类的继承
1、继承
继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。
运用继承,可以创建一个通用类定义一系列一般特性。通用类可以被更具体的类继承。
Object类是Java中所有类的父类,也就是说Java中的类都直接或间接由Object类派生而来。
2、继承的语法
extends关键字用于继承类。声明一个继承父类的类的通常形式如下:
class 子类名  extends  父类名 {
//类体
}
3super关键字
super关键字用来解决如何直接访问或初始化从父类继承来的属性。
super有两种通用形式:调用父类的构造函数、用来访问被子类的成员覆盖的父类成员。
super()必须是在子类构造函数中的第一个执行语句。
二、接口
接口是为支持动态方法解决设计的, Java语言通过接口实现了类间多重继承功能。它提供同一的接口,而一个方法也不实现,等待某类或某几个类去实现它的方法。它提供一些常量,实现它的类可以共享这些常量。
用类实现接口中的方法:
形式:
访问类型  class  类名 implements  接口名1,接口名2
{
        类自身的方法和属性;
        实现接口的抽象方法;   
}
要求:
2 接口抽象方法的默认修饰符为public,在实现接口时必须用public关键字在方法头上说明。
3 一个类在实现某接口的抽象方法时,必须使用完全相同的方法头。
4 如果一个类实现多接口,用逗号隔开。
5 如果一个类实现了声明相同方法的两个接口,则被多个接口共用。
6 类在实现接口时可以定义它自己的附加成员,这也是最常见的形式。
如果一个类不完全实现接口的所有方法,必须把类定义成abstract类型的类,任何继承该类的子类必须实现该接口。
2.2 界面设计(附上具体代码)
1、窗口设计
类继承Frame,创建一个窗口
Panel使用默认的布局管理器创建新面板。所有面板的默认布局管理器都是 FlowLayout
用法 【类名】panel= new 【类名】
Frame 是带有标题和边界的顶层窗口。窗口坐标从左上角开始,左上角的坐标位置为(0,0)
代码
setSize(350,750);  X设置宽度,Y设置高度
setVisible(true); 设置窗口可见性
setLayout(null);  设置Panel的布局管理器为空
3、按钮的设置
举例设置按钮如下:
private Button kalveinButton; 
centigradeButton=new Button("centigrade");
  centigradeButton.addActionListener(this);
  centigradeButton.setBounds(50,620,60,20);
  centigradeButton.setBackground(Color.lightGray);
  centigradeButton.setForeground(Color.black);
  add(centigradeButton);
3、窗口关闭设置
    public boolean handleEvent(Event e) {
        switch (e.id)  {
        case Event.WINDOW_DESTROY: // 窗口关闭
          it(0); // 系统退出,终止程序
          return true;
        default:  return false;
    }
}
4、为按钮添加动作
public void actionPerformed(ActionEvent e)
    { Source()==centigradeButton)
        {
            centigradeButton.disable();   
            able();
            able();
        n=0;
        repaint();
       
        }
       
        Source()==fahrenheitButton)
        {  able();   
            fahrenheitButton.disable();
            able();
            n=1;
            repaint();
        }
        Source()==kalveinButton)
        {  able();   
            able();
            kalveinButton.disable();
            n=2;
            repaint();
        }
    }
5利用画图工具画矩形及填充
{
g.setColor(new Color(255,0,0));
g.fillRect(175,(int)(570-(temp +20)*4),8,(int)(temp +20)*4 );
g.setColor(Color.black);
g.drawRect(175,90,8,480);
for(i=0;i<=480;i=i+80)
{g.setColor(Color.black);
g.drawRect(172,90+i,14,1);}
6、图形界面的重绘
所有代码如下:
import java.awt.*;
import java.awt.event.*;
public class a{ public static void main(String args[])
{      double temp;    //输入的温度
try {    Double Te=Double.valueOf(args[0]);//将输入的保存在args[]内的字符转换成常用的数字
    temp=Te.doubleValue();
    test panel=new test(temp); }
      catch(Exception e) {       
      }
}
}
class test extends Frame implements ActionListener
{  private Button centigradeButton;//this is for centigrade method.it will display the temperature
  private Button kalveinButton;         
    private Button fahrenheitButton;
    double temp;
    int n;
    public test(double tem )
    {temp=tem;
  setSize(350,750);
  setVisible(true);
    setLayout(null);
  centigradeButton=new Button("centigrade");
  centigradeButton.addActionListener(this);
  centigradeButton.setBounds(50,620,60,20);
  centigradeButton.setBackground(Color.lightGray);
  centigradeButton.setForeground(Color.black);
  add(centigradeButton);
  fahrenheitButton=new Button("fahrenheit");
  fahrenheitButton.addActionListener(this);
  fahrenheitButton.setBounds(145,620,60,20);
  fahrenheitButton.setBackground(Color.lightGray);
  fahrenheitButton.setForeground(Color.black);
  add(fahrenheitButton);
 
  kalveinButton=new Button("kalvein");
  kalveinButton.addActionListener(this);
  kalveinButton.setBounds(230,620,60,20);
  kalveinButton.setBackground(Color.lightGray);
  kalveinButton.setForeground(Color.black);
  add(kalveinButton);
  }
    public boolean handleEvent(Event e) {
        switch (e.id)  {
        case Event.WINDOW_DESTROY: // 窗口关闭
          it(0); // 系统退出,终止程序
          return true;
        default:  return false;
    }
}
public void actionPerformed(ActionEvent e)
    { Source()==centigradeButton)
        {            centigradeButton.disable();   
            able();
            able();
        n=0;
        repaint();
          }
          Source()==fahrenheitButton)
        {  able();   
            fahrenheitButton.disable();
            able();
            n=1;
            repaint();
        }
        Source()==kalveinButton)
        {  able();   
            able();
            kalveinButton.disable();
            n=2;
            repaint();
        }    }
public void paint(Graphics g)
  {  int i,sum=95;
super.paint(g);// 定义画图方法
setBackground(Color.white);
if(temp<-20)
{Font fnt20 = new Font("宋体",Font.PLAIN,20);
g.setFont(fnt20);
g.);
g.drawString("Too cold",70,130);    }
      if(temp>100)
{Font fnt20 = new Font("宋体",Font.PLAIN,20);
g.setFont(fnt20);
g.d);
g.drawString("Too hot",70,130);    }
    else    { g.setColor(new Color(255,0,0));
g.fillRect(175,(int)(570-(temp +20)*4),8,(int)(temp +20)*4 );
g.setColor(Color.black);
g.drawRect(175,90,8,480);
for(i=0;i<=480;i=i+80)
{g.setColor(Color.black);
g.drawRect(172,90+i,14,1);}
if(n==0)
{ setTitle("temp:");
  setTitle("temp:"+String((int)temp)+"");
centigradeButton.disable();   
            able();
      Font fnt12 = new Font("宋体",Font.PLAIN,12);
g.setFont(fnt12);
g.setColor(Color.black);
for(i=100;i>=-20;i=i-20)
{g.drawString(String.valueOf(i),200,sum);
sum=sum+80;}
g.drawString(String.valueOf(temp),100,150);
g.drawString("  ",127,150);
Font fnt20 = new Font("宋体",Font.PLAIN,20);
g.setFont(fnt20);
g.setColor(Color.black);
g.drawString("",150,100);
System.out.print(temp);}
if(n==1)
{setTitle("fahrenheit");
  setTitle("temp:"+String((int)temp*9/5)+"");
Font fnt12 = new Font("宋体",Font.PLAIN,12);
g.setFont(fnt12);
g.setColor(Color.black);
for(i=100;i>=-20;i=i-20)
{g.drawString(String.valueOf(i*9/5+32),200,sum);
sum=sum+80;}
java设置环境变量的方法代码
g.drawString(String.valueOf(temp*9/5+32),100,150);
g.drawString("  ",127,150);
Font fnt20 = new Font("宋体",Font.PLAIN,20);
g.setFont(fnt20);
g.setColor(Color.black);
g.drawString("",150,100);}
if(n==2)
{ setTitle("kalvein");
  setTitle("temp:"+String((int)temp+273)+"K");
Font fnt12 = new Font("宋体",Font.PLAIN,12);
g.setFont(fnt12);
g.setColor(Color.black);
for(i=100;i>=-20;i=i-20)
{g.drawString(String.valueOf(i+273),200,sum);
sum=sum+80;}
g.drawString(String.valueOf(temp+273),100,150);
g.drawString("  K",127,150);
Font fnt20 = new Font("宋体",Font.PLAIN,20);
g.setFont(fnt20);
g.setColor(Color.black);
g.drawString("K",150,100);}
for(i=0;i<=480;i=i+8)
{g.setColor(Color.black);
g.drawRect(174,90+i,10,0);}
}
}
第三章  课程设计总结
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下我最终解决了问题,并得到了最终结果。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它让我学会了在网上查阅资料,翻阅Java书籍来学习更多的Java知识。
在本次Java课程设计中,我要感谢我的老师和我的同学,老师教给了我很多的Java的编程知识,编程思想,我的同学,是他们在我遇到困难时给了我指导,在大家的帮助和指导下我得到了最终的结果。
参考文献
1 []Rogers Cadenhead. Java编程入门经典.梅兴文译.4.北京:人民邮电出版社,2007
2 []Bruce Eckel. Thinking In Java.英文第4.北京:机械工业出版社,2007
3 陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,2006
4 杨昭编著.二级Java语言程序设计教程.北京:中国水利水电出版社,2006
5 赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,2006
6 赵毅主编.跨平台程序设计语言——Java.西安:西安电子科技大学出版社,2006
7 王路.Java高级程序设计.北京:中国水利水电出版社,2006
8 雍俊海编著.Java程序设计习题集.北京:清华大学出版社,2006
四、课程设计摘要(中文):
本次课程设计是配合java程序设计课程,帮助我们深入学习掌握java语言,熟练运用这个工具来编写。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力。
本次课程设计使用JAVA编程语言实现一个温度计,主要完成以下功能:设计一个温度计程序,能够实现将以摄氏、华氏以及开尔文温度分别显示。该温度计所能现实的温度范围为-20 - 100℃。若温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold 
关键字:java,温度计
五、课程设计摘要(英文):
The course design is combined with Java programming course, helped us to learn Java the language, written using this tool. Through a comprehensive training curriculum design projects, cultivate students ' practical analysis, programming and operating ability. The course design using JAVA programming language that implements a thermometer, mainly through the following features: a thermometer designed programs to achieve will be displayed in Celsius, Fahrenheit, and Kelvin temperature, respectively. The reality of the thermometer temperature range is-20-100. If the temperature is too high, exceed the ceiling, showing too hot; the temperature is too low, below the lower limit, displays too cold.
Keywordjavathermometer
六、成绩评定:
指导教师评语:
                                      指导教师签字:
                                      2011         
 
评价
 
评价
调查论证
工作量、工作态度
实践能力
分析、解决问题能力
 
 
 
七、答辩纪录:
1. 编写Java程序之前应该完成什么工作?
  答:(1)、安装JDK,安装过程中可以自定义安装目录为D:\java\jdk1.5.0;
(2)、安装完成后,安装完成后,右击“我的电脑”,点击“属性”;
(3)、选择“高级”选项卡,点击“环境变量”;
(4)、在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”。
2. 怎样说明环境变量配置成功?
  答:(1).“开始”-->“运行”-->键入“cmd”;
(2).入命令“java  -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功键;
3. 设计温度计界面应该经过哪些步骤?
答:(1) 窗口设计。
(2) 窗口关闭设置。
(3) 按钮的设置。
(4) 为按钮添加动作。
(5) 利用画图工具画矩形及直线。
4. 怎样将摄氏温度化成华氏温度和开尔温度?
  答:将摄氏度℃转成华氏度℉:将摄氏度直接乘以9,除以5,再加上32
将摄氏度℃转成开尔文度0K:将摄氏度加上27315
5. 什么是继承?继承父类的形式是什么?
答:继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。
extends关键字用于继承类。声明一个继承父类的类的通常形式如下:
class 子类名  extends  父类名 {
    //类体
}