JAVA项目实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JA V A课程项目报告

项目题目:利用JA V A实现一个小时钟的程序专业班级:10软件工程

学生姓名:**

学生学号:E********

利用JAVA实现一个时钟的小程序

1.软件开发的需求分析

在当今的信息时代,时钟已经成为人们生活中必不可少的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java 语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

2.具体实现

2.1设计思路

Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。

因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了小时钟的基本功能。

2.2设计方法

在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。

小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。

2.3 运行环境

CPU:Pentium 2.8GHz以上

内存:256MB以上

硬盘空间:80G以上

操作系统:Windows XP

运行环境:JDK,JCreator

2.4 程序功能图及程序相关说明

2.4.1 主功能框

图1 程序基本框图

表1 小时钟基本功能表

2.4.2 程序分析

程序中引入的包:

package Clock

import java.awt.Clock

import java.awt.Graphics

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

import java.util.Calendar

import java.util.GregorianCalendar

用户自定义类:

类名:Clock

作用:定义小时钟

继承的父类:JFrame

public class clock extends JFrame{

定义的对象:

ClockPaint

size

Resizable

Location

Title

Visible

WindowListener,WindowClosing

主要成员方法:

public void center //定义小程序查看器的位置public void actionPerformed //定义处理异常机制

定义子类:ClockPaint

继承的父类名:JPanel

继承的接口名:Runnable

class ClockPaint extends JPanel implements Runnable

int h, m, s // 小时,分钟,秒

主要成员方法:

public ClockPaint

this.x = x

this.y = y

this.r = r

s = now.get(Calendar.SECOND) * 6 // 获得秒转换成度数

m = now.get(Calendar.MINUTE) * 6 // 获得分钟

h = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30+ now.get(Calendar.MINUTE) / 12 * 6 // 获得小时

主要成员方法:

public void paint(Graphics g) // 清屏

super.paint(g)

g.setColor(Color.BLACK)

g.fillRect(0, 0, r * 3, r * 3) // 画圆

g.setColor(Color.WHITE)

g.drawOval(x, y, r * 2, r * 2) // 秒针

g.setColor(Color.RED)

int x1 = (int) ((r - 10) * Math.sin(rad * s))

int y1 = (int) ((r - 10) * Math.cos(rad * s))

g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 分针

g.setColor(Color.BLUE)

x1 = (int) ((r - r / 2.5) * Math.sin(rad * m))

y1 = (int) ((r - r / 2.5) * Math.cos(rad * m))

g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 时针

g.setColor(Color.CYAN)

x1 = (int) ((r - r / 1.5) * Math.sin(rad * h))

y1 = (int) ((r - r / 1.5) * Math.cos(rad * h))

g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 数字

相关文档
最新文档