JAVA课程设计报告材料

合集下载

java类的设计实验报告

java类的设计实验报告

java类的设计实验报告Java 类的设计实验报告一、实验目的本次实验的主要目的是深入理解和掌握 Java 类的设计原则、方法和技巧,通过实际的编程实践,提高对面向对象编程思想的应用能力,培养良好的编程习惯和代码规范。

二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容1、设计一个简单的学生类(Student),包含学生的姓名(name)、年龄(age)、学号(studentId)等属性,并提供相应的构造方法、getter 和 setter 方法。

2、设计一个课程类(Course),包含课程名称(courseName)、课程编号(courseId)、授课教师(teacher)等属性,同样提供构造方法和相关的访问方法。

3、设计一个学生选课类(StudentCourse),用于关联学生和课程,包含学生对象(student)、课程对象(course)、选课时间(selectTime)等属性,并实现相应的方法来获取和设置这些属性。

四、实验步骤(一)学生类(Student)的设计```javapublic class Student {private String name;private int age;private String studentId;//无参构造方法public Student(){}//有参构造方法public Student(String name, int age, String studentId) {thisname = name;thisage = age;thisstudentId = studentId;}// getter 和 setter 方法public String getName(){return name;}public void setName(String name) {thisname = name;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}}```(二)课程类(Course)的设计```javapublic class Course {private String courseName;private String courseId;private String teacher;//无参构造方法public Course(){}//有参构造方法public Course(String courseName, String courseId, String teacher) {thiscourseName = courseName;thiscourseId = courseId;thisteacher = teacher;}// getter 和 setter 方法public String getCourseName(){return courseName;}public void setCourseName(String courseName) {thiscourseName = courseName;}public String getCourseId(){return courseId;}public void setCourseId(String courseId) {thiscourseId = courseId;}public String getTeacher(){return teacher;}public void setTeacher(String teacher) {thisteacher = teacher;}}```(三)学生选课类(StudentCourse)的设计```javapublic class StudentCourse {private Student student;private Course course;private String selectTime;//无参构造方法public StudentCourse(){}//有参构造方法public StudentCourse(Student student, Course course, String selectTime) {thisstudent = student;thiscourse = course;thisselectTime = selectTime;}// getter 和 setter 方法public Student getStudent(){return student;}public void setStudent(Student student) {thisstudent = student;}public Course getCourse(){return course;}public void setCourse(Course course) {thiscourse = course;}public String getSelectTime(){return selectTime;}public void setSelectTime(String selectTime) {thisselectTime = selectTime;}}```(四)测试类```javapublic class Test {public static void main(String args) {//创建学生对象Student student1 = new Student("张三", 20, "001");//创建课程对象Course course1 = new Course("Java 编程","001","李老师");//创建学生选课对象StudentCourse studentCourse1 = new StudentCourse(student1,course1, "2023-09-01");//输出学生选课信息Systemoutprintln("学生姓名:"+ studentCourse1getStudent()getName());Systemoutprintln("学生年龄:"+ studentCourse1getStudent()getAge());Systemoutprintln("学生学号:"+ studentCourse1getStudent()getStudentId());Systemoutprintln("课程名称:"+ studentCourse1getCourse()getCourseName());Systemoutprintln("课程编号:"+ studentCourse1getCourse()getCourseId());Systemoutprintln("授课教师:"+ studentCourse1getCourse()getTeacher());Systemoutprintln("选课时间:"+studentCourse1getSelectTime());}}```五、实验结果与分析通过运行测试类,成功输出了学生选课的相关信息,包括学生的姓名、年龄、学号,课程的名称、编号、授课教师以及选课时间。

java课程设计实验报告样例(一)

java课程设计实验报告样例(一)

java课程设计实验报告样例(一)Java课程设计实验报告样例引言:本篇实验报告主要介绍Java课程设计中所涉及的实验内容、实验过程及实验结果,旨在帮助同学们更好地理解Java编程的基本知识和应用。

一、实验内容:本实验的具体任务是编写一个java程序,实现对一个文本文件中的单词进行统计,包括出现次数、平均长度、以及排序输出出现频率较高的单词。

其中,单词包含字母和数字,大小写敏感,在解析时必须分离出来。

二、实验过程:在编写程序之前,我们首先要了解实验要求及限制,才能确定需要使用什么类型的数据结构、算法和方法等。

接着,我们通过分析题目要求,将问题划分为三部分:分离单词、统计出现次数、以及排序输出。

根据这样的思路,我们开发了如下的实验流程图:[IMG]file:///C:/Users/Administrator/AppData/Local/Temp/msohtm lclip1/01/clip_image002.png[/IMG]具体实现细节如下:1、读取文件,使用StringTokenizer类将文件中的每个单词分离出来;2、定义一个HashMap,以单词作为键值,单词出现次数为value,并依次统计每个单词出现次数;3、遍历HashMap,计算平均单词长度,并保存出现次数较高的单词及其出现次数,同时将HashMap重新排序输出。

三、实验结果:通过我们这样的一个实验流程,我们得到了:[IMG]file:///C:/Users/Administrator/AppData/Local/Temp/msohtm lclip1/01/clip_image004.png[/IMG]分析如下:1、统计了单词总数、平均长度,并输出;2、按出现次数由高到低输出出现频率较高的单词及其出现次数。

四、思考和总结:通过这次实验,我深刻地认识到了实践和理论的重要性,正如听取课程学习Java,与实际操作大有不同一样,是因为它们有不同的目的和方法。

JAVA语言课程设计报告

JAVA语言课程设计报告

JAVA语言课程设计报告目录1. 课程设计介绍 (2)1.1 课程设计的目的和意义 (2)1.2 实验环境介绍 (3)2. 课程设计项目概述 (4)2.1 项目背景及设立的目的 (5)2.2 用户需求分析 (6)2.3 功能模块划分 (7)3. Java语言基础知识回顾 (7)3.1 Java程序的基础概述 (8)3.2 Java开发环境搭建 (9)3.3 基本语法及常用数据类型 (10)3.4 类与对象的基本知识 (11)3.5 常用API介绍 (11)4. 项目开发过程 (11)4.1 设计方案 (13)4.2 项目需求分析 (14)5. 课程设计关键技术应用 (15)5.1 错误处理机制 (16)5.2 数据库应用 (17)6. 类库及设计模式的应用 (17)6.1 Java类库的基础知识 (19)6.2 设计模式的功能与应用 (20)7. 课程设计总结与展望 (21)7.1 课程设计总结 (22)7.2 缺陷分析与解决方案 (23)7.3 课程设计展望 (23)1. 课程设计介绍本课程设计旨在通过实际项目实践,让学生深入理解和掌握语言的核心编程技能和设计思想。

本次设计选择了一个具有实际应用背景的项目作为案例,即“简易在线考试系统”。

该系统旨在模拟现实中的在线考试流程,实现考生在线答题、自动评分、成绩查询等功能。

本次课程设计以语言为基础,结合框架、数据库等技术,引导学生从需求分析、系统设计、编码实现到系统测试的完整软件开发流程。

通过本课程设计,学生能够:在本次课程设计中,学生将独立完成系统需求分析、系统设计、编码实现、测试与优化等环节,最终提交一个功能完善、性能稳定的在线考试系统。

通过这一过程,学生不仅能够巩固和提升自身的编程能力,还能培养解决实际问题的能力和创新思维。

1.1 课程设计的目的和意义课程设计目的在于深入理解语言的核心概念与实际应用,通过具体的项目实施巩固和应用课堂上所学的知识点。

java课程设计报告

java课程设计报告

java课程设计报告Java课程设计报告。

一、引言。

Java作为一种跨平台的编程语言,具有广泛的应用领域和强大的功能,因此在计算机专业课程中占据着重要的地位。

本次课程设计旨在通过对Java语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。

二、课程设计内容。

1. 课程设计主题。

本次课程设计的主题为“学生成绩管理系统的设计与实现”。

通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。

2. 课程设计目标。

(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。

三、课程设计过程。

1. 需求分析。

首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。

通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。

2. 系统设计。

在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。

通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。

同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。

3. 编码实现。

在系统设计完成后,团队成员按照设计文档进行了编码实现工作。

在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。

通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。

4. 测试与调试。

在编码实现完成后,团队成员进行了系统的测试与调试工作。

通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。

JAVA_课程设计报告材料

JAVA_课程设计报告材料

《JAVA程序设计》课程设计报告设计题目:学生信息管理系统学院名称:信息工程学院专业班级:13计本1姓名:学号:目录一需求分析。

3 二概要设计。

3 三详细设计。

33.1 数据库设计。

33.2 模块及窗体设计。

33.2.1 数据库模块设计。

33.2.2 用户登录识别模块。

53.2.3用户信息管理模块。

6 (1)密码修改。

6 (2)用户信息添加和删除。

83.2.4 学生息管理模块。

10 (1)添加信息。

10 (2)信息查看。

11 (3)信息修改。

12 (4)删除信息。

143.2.5 系统管理模块。

153.2.6 主窗体菜单设计。

15四软件测试。

15 五总结。

15 参考资料:.......................................................17一需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.系统中需要对拥护身份进行管理,采取登陆进入系统的形式.二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。

项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。

概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。

概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。

2.1 概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。

概要设计要坚持以下几个原则。

(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。

解决复杂问题的方法是将其分解成几个小问题,一个个来解决。

JAVA程序设计报告材料

JAVA程序设计报告材料

JAVA程序设计报告材料一、引言随着计算机科学技术的发展,程序设计已经成为计算机科学专业的一门基础课程。

其中,JAVA程序设计作为一种流行的程序设计语言,具有广泛应用的特点,受到了学生和行业的广泛关注。

在本次JAVA程序设计报告中,我们将对JAVA程序设计的相关内容进行探讨和分析。

二、背景知识JAVA是一种通用、高级、并发、面向对象的计算机程序设计语言。

它由Sun公司(现在是Oracle公司)于1995年推出,并且可以在不同平台上运行。

JAVA具有广泛的应用领域,包括企业级Web应用开发、移动应用开发、嵌入式系统开发等。

三、程序设计原则1.面向对象设计原则JAVA是一种面向对象的语言,因此面向对象的设计原则在JAVA程序设计中非常重要。

其中,封装、继承、多态是JAVA的三大基本特性,应当在程序设计中充分利用。

2.模块化设计原则模块化设计原则是软件开发的重要原则之一,它将程序划分为多个模块,每个模块只负责一个功能。

在JAVA程序设计中,可以使用包和类的方式进行模块化设计,提高代码的可维护性和可重用性。

3.异常处理原则在JAVA程序设计中,异常处理是非常重要的,它可以有效地处理程序运行时可能出现的错误和异常情况。

通过合理地设计异常处理机制,可以降低程序崩溃的风险,提高程序的稳定性。

四、实际案例分析在本次JAVA程序设计报告中,我们选取了一个实际案例进行分析,以便更好地理解和应用JAVA程序设计原则。

案例:设计一个学生信息管理系统该学生信息管理系统是一个简单的JAVA程序,用于管理学生的基本信息,包括姓名、学号、成绩等。

系统包括以下功能:1.添加学生信息2.删除学生信息3.修改学生信息4.查询学生信息5.显示所有学生的信息在设计此系统时,我们遵循了上述的程序设计原则,使用面向对象、模块化和异常处理的方法进行设计。

我们将学生信息封装为一个类,并在系统中增加了合适的异常处理机制。

五、总结和展望通过本次JAVA程序设计报告,我们了解了JAVA程序设计的相关内容和基本原则。

java课程设计及实验报告

java课程设计及实验报告

java课程设计及实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、面向对象编程思想以及常用的数据结构与算法。

通过课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。

具体的教学目标如下:1.知识目标:–掌握Java基本语法和编程规范;–理解面向对象编程的基本概念和方法;–熟悉常用的数据结构(如数组、链表、栈、队列等)和算法(如排序、查找等)。

2.技能目标:–能够使用Java编写简单的程序,解决实际问题;–能够运用面向对象编程思想进行程序设计;–能够运用常用的数据结构与算法解决编程问题。

3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的创新精神和解决问题的能力;–培养学生的自主学习能力和持续学习的兴趣。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.Java基本语法和编程规范;2.面向对象编程思想,包括类与对象、继承与多态、封装等;3.常用的数据结构与算法,包括数组、链表、栈、队列、排序、查找等;4.Java标准库的使用,包括字符串、数学运算、输入输出等;5.简单的Java编程实例和实战项目。

教学内容的安排和进度如下:•第1-2周:Java基本语法和编程规范;•第3-4周:面向对象编程思想;•第5-6周:常用的数据结构与算法;•第7-8周:Java标准库的使用;•第9-10周:简单的Java编程实例和实战项目。

三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:讲解Java基本语法、面向对象编程思想和常用的数据结构与算法;2.案例分析法:分析实际的编程案例,让学生更好地理解和运用Java编程知识;3.实验法:让学生通过动手实践,巩固所学知识和技能;4.讨论法:学生进行小组讨论,培养学生的团队合作意识和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java编程思想》;2.参考书:《Java核心技术》、《Head First Java》;3.多媒体资料:教学PPT、视频教程、在线编程练习题等;4.实验设备:计算机、网络环境、编程开发环境(如Eclipse、IntelliJIDEA等)。

Java课程设计报告样本

Java课程设计报告样本

《Flash程序设计》课程设计报告课程名称: Flash程序设计实验项目名称: 4屏flash焦点图上下切换效果程序院系: 物理与电子信息学院学号: ***********: ***班级: 10数字媒体日期: 2011 年12 月实验地点:课程设计成绩:实验指导教师签字:4屏flash焦点图上下切换效果程序一、课程设计目标此次课程设计的目的是通过对文本、图像、音频和视频媒体的制作方法和工具的学习, 使自己能够独立地运用相关软件进行图像处理和动画制作, 并在此次实践中检验自己的掌握程度。

1.运用动画制作软件Flash设计制作动画。

2、具体目的是:Flash作品要求做一个动画短片, 主题自定, 内容健康向上。

要求时长30秒以上, 使用按钮、脚本、遮罩、引导动画、背景音乐。

开发环境:Windows 7Flash cs3.0需求分析:在这个flash中我需要建立若干图层, 一步步建立背景、个人图片, 制造出环境效果;需要人物照片和数字的原件, 需要在人照片的图层上建立引导层;;需要创建补间动画来实现上下变化照片等效果;需要添加按钮来开始动画。

二、课程设计内容1.使用Flash cs3.0设计一个人物焦点图片上下变换。

在其中建立图片、数字、动作、音乐等图层2.利用flash制作出简单的效果三、过程设计1、利用不同的图片, 在变换数字的角度下观察到上下不同的切换效果2、设计思路第一步: 首先准备要滚动的图片, 将4张图片导入到flash库中, 分别在库中右击它们, 选择属性, 将“使用导入的JPEG品质”前的钩去掉, 这样文档的体积会小很多。

点击插入>新建元件, 新建一图形元件, 将库的图片拖到舞台上, 图片上下拼接好。

第二步: 回到主场景, 将图片元件拖到舞台上, 打开对齐面板, 选择相对舞台, 把图片变成影片剪辑。

第三步:依次加入1、2、3、4四个图层用来设置数字做出的影片剪辑添加数字的动作事件s t o p()图层数字影片剪辑第四步:图层L1-L12,用来制作出不同的数字按钮,控制好线条的颜色,单击数字时颜色的变化第五步:建立新的图层代码层,写下制作的全部代码下面是一下重要代码解释1,w h i l e(i <= s l i d e N u m){i f(s l i d e O v e r==i) {i f(t h i s["s l i d e M c" +i]._c u r r e n t f r a m e<t h i s["s l i d e M c"+i]._t o t a l f r a m e s){t h i s["s l i d e M c" + i].n e x t F r a m e(); t a r g e t y = (-i m g H e i g h t) * (i -1);}}e l s e i f(t h i s["s l i d e M c"+i]._c u r r e n t f r a m e>1){t h i s["s l i d e M c" + i].p r e v F r a m e(); }这些循环语句用来增加变量数字,2,M o v i e C l i p.p r o t o t y p e.i m g R o l l O v e r=f u n c t i o n();m o u s e O v e r=t r u e;};M o v i e C l i p.p r o t o t y p e.i m g R o l l O u t=f u n c t i o n() {m o u s e O v e r = f a l s e;};M o v i e C l i p.p r o t o t y p e.b t n R o l l O v e r = f u n c t i o n (){s l i d e O v e r=t h i s._n a m e.s l i c e(7);m o u s e O v e r=t r u e;};M o v i e C l i p.p r o t o t y p e.b t n R o l l O u t=f u n c t i o n(){m o u s e O v e r=f a l s e;};用来判断影片剪辑的是否上下移动第六步:把音乐导入到库里建立新的图层“音乐”。

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

《Java面向对象程序设计》课程设计报告(2013— 2014学年第一学期)专业:软件服务班级:二班姓名:学号:1207132208指导教师:成绩:计算机与信息工程学院2014 年 1 月17 日目录目的 (1)条状图 (1)虐待鼠标 (5)挂钟 (8)绘图程序 (13)目的本课程是软件工程、信息技术外包专业所开设的一门重要实践课程,主要要求学生掌握Java语言和面向对象在实践中的应用。

本课程设计的目的是使学生在理论学习的基础上,动手编写程序,通过应用所学习的知识,来解决一些实际的问题。

在此基础上,真正理解和掌握Java面向对象程序设计的相关理论,具备程序设计的能力。

条状图一、设计内容设计实现一个应用程序,创建一个条状图,用于查看一组JA V A成绩的分布情况。

程序初始化一组0-100的整数,根据整数值进行分类,通过调用fillRect 方法绘图。

二、方案设计与论证1.随机产生10个整数,范围在0到100之间。

2.将这十个数分5种水平累加。

累加的数值大小的十倍即为条状图的长度。

3.调用fillRect方法绘图。

三、程序运行结果(截图)四、心得体会1.在规定条状图大小位置较麻烦。

2.在BarChart类中一直出现不匹配的问题。

解决方法:将for循环移入paintComponent()方法中。

3. 为了代码的严谨性,在BarChart类中增添了构造方法,在构造方法中初始化了背景色和面板大小,规定了条状图的大小。

五、参考资料与致谢参考Java书本4.6图形对象中的例题4.5的格式。

六、源程序1.Bar.javaimport javax.swing.JFrame;public class Bar{//-----------------------------------------------------------------// Creates the main program frame.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Bar Chart");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);BarChart panel = new BarChart();frame.getContentPane().add(panel);frame.pack();frame.setVisible(true);}}2.BarChart.javaimport javax.swing.JPanel;import java.awt.*;import java.util.Random;public class BarChart extends JPanel{Random generator = new Random();int score;int l1 ;i nt l2 ;i nt l3 ;i nt l4 ;i nt l5 ;public BarChart(){setBackground (Color.cyan);setPreferredSize (new Dimension(400, 300)); }public void paintComponent (Graphics page){super.paintComponent(page);for (int i = 0 ; i <10 ; i++){score = generator.nextInt(101);if(score>= 91 && score<=100)l1++;if(score>= 81 && score<=90)l2++;if(score>= 71 && score<=80)l3++;if(score>= 60 && score<=70)l4++;if(score>= 0 && score<=59)l5++;}page.setColor(Color.lightGray);page.fillRect(150,50,155,110);page.setColor(Color.black);page.drawLine(180, 50, 180, 160);page.drawLine(210, 50, 210, 160);page.drawLine(240, 50, 240, 160);page.drawLine(270, 50, 270, 160);page.drawString("0", 150, 170);page.drawString("2", 180, 170);page.drawString("4", 210, 170);page.drawString("6", 240, 170);page.drawString("8", 270, 170);page.drawString("10", 300, 170);page.setColor(Color.magenta);page.fillRect(150,60,l1*10,10);page.setColor(Color.magenta);page.fillRect(150,80,l2*10,10);page.setColor(Color.magenta);page.fillRect(150,100,l3*10,10);page.setColor(Color.magenta);page.fillRect(150,120,l4*10,10);page.setColor(Color.magenta);page.fillRect(150,140,l5*10,10);page.setColor(Color.black);page.drawString("91到100", 100, 67);page.drawString("81到90", 100, 87);page.drawString("71到80", 100, 108);page.drawString("60到70", 100, 130);page.drawString("0到59", 100, 155);}}虐待鼠标一、设计内容鼠标是一个易损器件,损坏的原因往往是因为过量的点击。

请参考第四章的例题4.10设计一款程序测试在一分钟内你能点击鼠标多少次,找你的同学来试试看看谁的食指更灵活。

二、方案设计与论证1.建一个界面(用框架)2.建一个面板介入到框架中面板中添加按钮,标签(显示时间和点击鼠标次数)面板中添加监听器(监听点击鼠标次数和计时)提示:时间差计算方法Calendar begin=Calendar.getInstance(); //获取起点时间Calendar end = Calendar.getInstance(); //获取终点时间long between=end.getTimeInMillis() - begin.getTimeInMillis()/1000; //除以1000是为了将毫秒转换成秒三、程序运行结果(截图)四、心得体会1.本题需要两部分任务,倒计时Timber的调用,和记录点击鼠标的次数。

2.刚开始对题目所要用到的方法不太清楚,结合书本上的内容和上网查阅相关资料获得。

3.原本新建一个类,用来进行计时问题,但是程序出现错误。

因为对API不是很了解,上网查阅了API关于Calendar类及getInstance()方法和getTimeInMillis()方法的用法,运用监听器方法实现倒计时。

五、参考资料与致谢参考java书本上第四章的例题4.10,按钮点击次数。

网上获取计时器Calendar类的用法。

六、源程序1. Push.java//******************************************************************* *// PushCounter.java Authors: Lewis/Loftus//// Demonstrates a graphical user interface and an event listener.//******************************************************************* *import javax.swing.JFrame;public class Push{//-----------------------------------------------------------------// Creates the main program frame.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Push Counter");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(new PushPanel());frame.pack();frame.setVisible(true);}}2. PushPanel.java//******************************************************************* *// PushCounterPanel.java Authors: Lewis/Loftus//// Demonstrates a graphical user interface and an event listener.//******************************************************************* *import java.awt.*;import java.awt.event.*;import javax.swing.*;public class PushPanel extends JPanel{private int count;private JButton push;private JLabel label;private JLabel label1;private long between;java.util.Calendar begin=java.util.Calendar.getInstance(); //获取起点时间//-----------------------------------------------------------------// Constructor: Sets up the GUI.//-----------------------------------------------------------------public PushPanel (){count = 0;push = new JButton ("Push!");push.addActionListener (new ButtonListener());label = new JLabel ("Pushes: " + count);label1 = new JLabel ("Times: " + between);add (push);add (label);add (label1);setPreferredSize (new Dimension(300, 50));setBackground (Color.cyan);}//***************************************************************** // Represents a listener for button push (action) events.//***************************************************************** private class ButtonListener implements ActionListener{//--------------------------------------------------------------// Updates the counter and label when the button is pushed.//--------------------------------------------------------------public void actionPerformed (ActionEvent event){java.util.Calendar end=java.util.Calendar.getInstance(); //获取终点时间between=(end.getTimeInMillis() - begin.getTimeInMillis())/1000; //除以1000是为了将毫秒转换成秒if(event.getSource() == push )//获取点击鼠标的信息{count++;label.setText("Pushes: " + count);}if (between <= 60)//时间设定为1分钟即60秒{between ++;label1.setText("Times: " + between);}else{System.out.println("Time is over!");}}}}挂钟一、设计内容设计一款如下的挂钟提示:Calendar calendar=Calendar.getInstance(); //获取当前时间int year=calendar.get(Calendar.YEAR); //获取年int month=calendar.get(Calendar.MONTH); //获取月int day=calendar.get(Calendar.DATE); //获取日int weekDay=calendar.get((Calendar.DAY_OF_WEEK));int am_pm=calendar.get(Calendar.AM_PM);int hour=calendar.get(Calendar.HOUR_OF_DAY); //获取小时int minute=calendar.get(Calendar.MINUTE); //获取分钟int second=calendar.get(Calendar.SECOND); //获取秒二、方案设计与论证运用定时器Timer设计运行时钟运用Graphics绘制时钟图像及表针三、程序运行结果(截图)四、心得体会1.起初不懂画表针如何得到坐标,查阅相关资料得代码如下:sx=195+95*Math.sin((6*second*Math.PI)/180);sy=195-95*Math.cos((6*second*Math.PI)/180);mx=195+80*Math.sin((6*minute*Math.PI)/180+(6*second*Math.PI)/180/60);my=195-80*Math.cos((6*minute*Math.PI)/180+(6*second*Math.PI)/180/60);2.画表针方法如下:g.setColor(Color.black);g.drawLine(195, 195, (int)sx, (int)sy);g.drawLine(195, 195, (int)mx, (int)my);g.drawLine(195, 195, (int)hx, (int)hy);五、参考资料与致谢参考Java书上9.8定时器类的例题9.15六、源程序1.clock.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.JFrame;public class clock{public static void main(String[] args){JFrame frame=new JFrame("clock");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(new clockPanel());frame.pack();frame.setVisible(true);}}2.clockPanel.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Calendar;public class clockPanel extends JPanel{private final double PI=3.14;private int DELAY=1000;private Timer timer;private Calendar calendar;private double sx,sy,mx,my,hx,hy;private int second,minute,hour;private int s;public clockPanel(){timer=new Timer(DELAY,new clockListener());setPreferredSize(new Dimension(300,300));setBackground(Color.white);timer.start();}public void paint(Graphics g){super.paint(g);g.setColor(Color.gray);g.fillOval(75, 75, 240, 240);g.setColor(Color.yellow);g.fillOval(100, 100, 190, 190);g.setColor(Color.black);g.drawOval(75, 75, 240, 240);g.setColor(Color.black);g.drawOval(100, 100, 190, 190);g.setColor(Color.black);g.fillOval(190, 190, 10, 10);calendar=Calendar.getInstance();second=calendar.get(Calendar.SECOND);minute=calendar.get(Calendar.MINUTE);hour=calendar.get(Calendar.HOUR_OF_DAY);g.setColor(Color.black);g.setFont(new Font("TimesRoman",Font.PLAIN,20));for(int i=1;i<13;i++){int X=(int)(195+100*Math.sin((6*i*5*Math.PI)/180));int Y=(int)(195-100*Math.cos((6*i*5*Math.PI)/180));if(i<4)g.drawString(""+i, X-2,Y+3);if(i<7&&i>=4)g.drawString(""+i, X-6,Y+16);if(i>=7&&i<10)g.drawString(""+i, X-10,Y+12);if(i>=10&&i<=12)g.drawString(""+i, X-17,Y+3);}for(int a=1;a<13;a++){int X=(int)(195+95*Math.sin((6*a*5*Math.PI)/180));int Y=(int)(195-95*Math.cos((6*a*5*Math.PI)/180));g.setColor(Color.black);g.fillOval(X-2,Y-2,4,4);}g.setColor(Color.black);g.drawLine(195, 195, (int)sx, (int)sy);g.setColor(Color.black);g.drawLine(195, 195, (int)mx, (int)my);g.setColor(Color.black);g.drawLine(195, 195, (int)hx, (int)hy);}public class clockListener implements ActionListener{public void actionPerformed(ActionEvent event){sx=195+95*Math.sin((6*second*Math.PI)/180);sy=195-95*Math.cos((6*second*Math.PI)/180);mx=195+80*Math.sin((6*minute*Math.PI)/180+(6*second*Math.PI)/180/60); my=195-80*Math.cos((6*minute*Math.PI)/180+(6*second*Math.PI)/180/60);if(hour<=12){hx=195+65*Math.sin((30*hour*Math.PI)/180+(6*minute*Math.PI)/180/12);hy=195-65*Math.cos((30*hour*Math.PI)/180+(6*minute*Math.PI)/180/12); }if(hour>12){hx=195+65*Math.sin((30*(hour-12)*Math.PI)/180+(6*minute*Math.PI)/180/ 12);hy=195-65*Math.cos((30*(hour-12)*Math.PI)/180+(6*minute*Math.PI)/180/ 12);}repaint();}}}绘图程序一、设计内容编写Java Application程序,使它在GUI界面中通过响应功能按钮的点击事件绘制各种简单的几何图形(矩形、圆形、扇形、多边形和他们的填充效果),并且能够通过接收传递参数控制图形的绘制。

相关文档
最新文档