课程设计说明书
课题名称: JAVA实现温度计的显示
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师:
课题工作时间: 至
一、课程设计任务的基本要求: (1)课程设计目的: 1、学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。 2、熟悉掌握Java程序设计语言的基础内容,了解用户图形界面设计知识。 3、通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 (2)课程设计总体要求: 1、设计部分 ①问题描述:利用JAVA编程语言实现一个温度计,要求以摄氏、华氏以及开尔文温度分别显示。如图1,以80℃为例,执行过程中输入参数80,显示如下效果。 图1 2、设计要求: ①三种温度标准的转换方法 将摄氏度℃转成华氏度℉:将摄氏度直接乘以9,除以5,再加上32; 将摄氏度℃转成开尔文度0K:将摄氏度加上273.15。 ②三种情况: 温度过高,超过上限,显示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_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”; 5、三个环境变量的含义及配置方法: ● JAVA_HOME:该环境变量的值就是java所在的目录,一些Java版的软件和一些Java的工具需要用到该变量。它指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0,此路径下包括lib、bin、jre等文件夹(此变量最好设置,因为以后运行tomcat、eclipse等都需要依此变量); ● PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下到,则依次寻PATH中的每一个路径,直到到。或者完PATH中的路径也不能到,则报错。Java的编译命令(javac),执行命令(java)和一些工具命令(javadoc,jdb等)都在其安装路径下的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:将摄氏度加上273.15。 ②三种情况: 温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold;在上下限之间以红显示温度。如图 第二章 课程设计内容 2.1 功能分析 该程序使用JAVA编程语言实现一个温度计。输入温度后运行该程序,会显示温度计及输入的温度,并将温度以红水银柱的形式显示出来,通过按下界面下方的三个按钮,可以将以摄氏、华氏以及开尔文温度分别显示。该温度计所能现实的温度范围为 -20 - 100℃。若温度过高,超过上限,显示too hot;温度过低,低于下限,显示too cold;在上下限之间以红显示温度 2.1 类和接口说明 一、类的继承 1、继承 继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。 运用继承,可以创建一个通用类定义一系列一般特性。通用类可以被更具体的类继承。 Object类是Java中所有类的父类,也就是说Java中的类都直接或间接由Object类派生而来。 2、继承的语法 extends关键字用于继承类。声明一个继承父类的类的通常形式如下: class 子类名 extends 父类名 { //类体 } 3、super关键字 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. Keyword:java,thermometer | |||||
六、成绩评定: 指导教师评语: 指导教师签字: 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:将摄氏度加上273.15。 5. 什么是继承?继承父类的形式是什么? 答:继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。 extends关键字用于继承类。声明一个继承父类的类的通常形式如下: class 子类名 extends 父类名 { //类体 } | |||||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论