Java课程设计--蒋武林
J2EE课程设计《技术应用指导》——第1章 Java集合和泛型技术及应用(第4部分)
第1章Java集合和泛型技术及应用(第4/4部分)1.1深入理解和应用Java泛型技术1.1.1有届泛型类型及在项目中的应用1、对泛型的“类型通用性”加以一定的限制(1)泛型的“类型通用性”会为应用系统在运行过程中带来一定的性能开销泛型的“类型通用性”能够为读者带来代码的灵活性和功能实现的通用性,但这样的“灵活性”和“通用性”也为应用系统在运行过程中带来一定的系统性能开销。
因此,如果在具体应用中并不需要程序代码具有非常高的“灵活性”和“通用性”的要求,如果读者能够预知或者能够确定数据的可能类型的编程应用场合下,可以对泛型的“类型通用性”加以一定的限制。
这样的限制能够减少参数的数据类型在转换过程中所可能带来的系统性能开销,而且也能够在一定的程度上避免类型转换过程中有可能会出现的各种可能的错误。
(2)对泛型的“类型通用性”加以一定的限制在许多应用环境下,方法的功能实现代码中的各种参数的数据类型是已知的数据类型或者是有类型范围的,比如下面的泛型类代码示例中的泛型类型GenericType在具体应用时实际只能为UserInfoBase类及其子类的类型范围。
public class GenericTypeDemo<GenericType> {}由于在上面的代码示例中的泛型类型GenericType定义符是没有任何的类型限制的,实际上也就相当于该类为ng.Object类型——也就是相当于下面的有届泛型类定义:public class GenericTypeDemo<GenericType extends Object> {}这样的泛型类定义有点“太泛”了,因为系统中的数据类型实际只能是UserInfoBase 类及其子类的类型范围,不可能为其他的数据类型。
因此,读者可以对上面的有届泛型类型定义进一步类型具体化以缩小数据类型的范围。
2、有届泛型类型定义的语法在Java中的有届泛型类型定义是利用extends关键字来限定类型参数只能是某个类或它的子类的数据类型,如果存在有多个不同的限定时,则要采用“&”符号分开不同的类型名称。
《Java 2实用教程(第5版)》
一、课程的性质和教学目的课程性质:Java不依赖平台的特点使得它受到广泛的关注,已成为网络时代最重要的编程语言之一。
目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件开发人员应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java。
国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。
《Java程序设计》是软件工程专业、计算机科学与技术等相关专业的一门重要的程序设计语言类的必修课程。
教学目的:通过本课程的学习,要求学生达到下列目标。
1. 理解面向对象程序设计的思想,掌握面向对象的3个特性:封装性、继承性和多态性。
2. 理解Java的平台无关性,掌握用Java语言进行面向对象程序设计的方法。
3. 掌握Java中常用工具类的使用,及用Java设计图形用户界面程序的方法和技巧。
4. 培养学生应用Java解决和处理实际问题的思维方法与基本能力。
二、课程教学内容1. Java语言基础知识Java程序的开发环境;Java程序的基本结构;Java语言的基本数据类型、表达式、语句、数组。
Java 编程规范。
2. 类与对象类的定义,对象的创建和使用,对象的访问权限。
对象的封装性。
3. 继承、多态与接口子类的定义,继承的含义,方法的重写和接口及接口回调。
理解继承性、与多态性。
4. 字符串与常用类字符串,正则表达式,Data类,Math类和Calendar类。
5. GUI编程Java事件处理模型,常用组件的使用。
6. 输入、输出流Java 输入/出流类;文件和文件的读写。
掌握流的套接。
7. JDBCDerby数据库的实用,使用JDBC连接数据库的过程,进行查询、更新、插入数据的方法。
8.网络编程URL类 ,InetAdress类,套接字,UDP数据报9.集合框架三、课程教学的基本要求1.基本知识了解Java的特点,理解Java的平台无关性,掌握Java语言的语法知识和常用工具类的使用,掌握Java事件的处理模型及GUI编程。
javaee课程设计报告书
软件学院课程设计报告书课程名称 Java EE 与中间件课程设计设计题目社团管理系统专业班级软件12-5班学号 1220010518 姓名王义武指导教师常戬2015 年 1 月目录1 设计时间 (3)2 设计目的 (3)3 设计任务 (3)4 设计容 (3)4.1 需求分析 (3)4.1.1 总体目标 (3)4.1.2具体目标 (4)4.1.3 系统数据建模 (4)4.1.4 系统功能建模 (4)4.1.5 数据字典 (5)4.2 总体设计 (6)4.3详细设计 (9)4.3.1模块详细设计 (9)4.3.2流程设计 (10)4.4运行与测试 (11)5 总结与展望 (14)附录 (15)参考文献 (29)成绩评定 (29)图4.2.2 数据库表users2)shetuan表表二社团表列名数据类型长度允许空文字描述 sid int 5 社团编号 sname varchar 20 Y 社团名称type varchar 20 Y 社团性质图4.2.3 数据库表shetuan3)activity表表三 activity表列名数据类型长度允许空文字描述 aid int 5 活动编号 aname varchar 20 Y 活动名称score int 10 Y 获得分数sname varchar 20 Y 参与社团place varchar 20 Y 举办地点time date 0 Y 活动时间图4.2.4 是数据库表activity4.3详细设计4.3.1模块详细设计本系统具有以下几个功能模块:用户登录模块、查看信息模块、添加社团和活动信息模块、删除社团信息模块。
1)用户登录模块流程图:图4.3.1.1 系统程序流程图N开始输入用户名和密码判断用户名和密码选择操作功能 结束Y1)登陆测试图4.4.1 登陆界面图4.4.2 管理员登陆成功界面图4.4.3 普通用户登录界面2)操作测试图4.4.4 查看用户信息图4.4.5 查看活动信息图4.4.6 查看社团信息图4.4.7 添加社团图4.4.8 删除社团图4.4.9 添加活动5 总结与展望通过本次的程序设计本次的课程设计让我对,对struts与hibernate框架的操作使用也进一步熟练,了解了项目开发的相关步骤,但也有问题如对数据的操作问题,通过muyclpse自动生成dao 包,相关配置文件的配置还不熟练,最大的问题还是类间的调用不清楚和明确。
Java课程设计记忆测试系统
获取方块翻开时的图标
获取关闭时的图标
获取方块关闭时的图标
设置翻开时的图标
设置翻开时的图标
设置关闭时的图标
设置关闭时的图标
设置图标
设置方块上的图标
actionPerformed
处理ActionEvent事件
处理ActionEvent事件
(3).类MemoryTestPane
a).成员变量(见表4.5)
Block[]
block
显示成绩
ShowRecord
显示成绩表对话框
图标数组
ImageIcon[]
icon
b).方法(见表4.2)
表4.2主要方法
名称
功能
备注
Memory
创建窗口
构造方法
给出级别测试
选择级别
actionPerformed
处理ActionEvent事件
接口方法
Main
主程序开始执行
3).流程图(见图4.1)
success
用来计时的对象
Timer
计时器
记忆测试板的行数和列数
int
行数,列数
b).方法(见表4.6)
表4.6主要方法
名称
功能
备注
MemoryTestPane
创建记忆测试板对象的构造方法
actionPerformed
处理ActionEvent事件
接口方法
c).流程图(见图4.2)
图4.2MemoryTestPane流程图
RandomSetIcon.java
该文件生成的类负责为MemoryTestPane创建“排列图标”对象,“排列图标”可以随机设置MemoryTestPane对象中“方块”上的图标。
JAVA课程设计说明书参考
{ double shuzhi=Double.parseDouble(text.getText()); text.setText(""); if(fuhao=="+") text.setText(qian+shuzhi+"");
6
if(fuhao=="-") text.setText(qian-shuzhi+""); if(fuhao=="*") text.setText(qian*shuzhi+""); 下面这段代码的含义是:当单击负号时,判断数值是否是负数,如果是负数则弹出消息 框,提示错误消息,即除数不能为0. if(fuhao=="/")
二、题目说明 ......................................... 3 2.1 题目说明 .................................... 3 2.2 开发工具介绍 ................................. 3
《Java程序设计》课程设计要求-南信大方巍
《Java程序设计》课程设计要求一、课程设计目的Java语言是目前IT行业应用最多,也是最主流的开发语言之一(另一主流是.NET),其应用前景很广。
Java语言本身主要用于开发桌面应用程序。
与此相对应,JSP、Servlet和JavaBean等是基于Java语言开发Web应用程序的技术。
本课程设计的任务就是使用Java或JSP、Servlet和JavaBean等组件开发一套桌面或Web应用程序。
本课程所涉及的知识量大,应用面广,需要结合课程设计这个实践环节来贯通学生所学的各方面的知识。
并在实际动手的过程中,进一步熟悉这门语言,以求能熟练应用,并扩展课堂所学的知识,达到提高学习效果的目的。
对于课堂上未学过的知识点,在课程设计过程中应通过查阅资料来了解和应用,同时在这个过程中培养学生独立分析问题和解决问题的能力,为今后的学习和应用建立良好的基础。
二、课程设计要求学生可在老师给定的几个任务选题中,选择难度适合自己的课题,通过自己对设计目标的理解,独立完成所选课题要求实现的功能目标,编写软件代码和设计报告。
也可以根据自己的兴趣自选题目,难度适中符合要求即可。
课设要求独立完成。
可相互讨论或查阅参考资料,但不得与他人雷同,不得直接从网上或其它地方抄袭代码。
验收时和最后提交代码后会进行是否抄袭的检验,发现雷同或抄袭者成绩为不及格。
三、课程设计参考选题同学们可从如下选题中选择题目来完成,选题一旦选定,不得随意变更。
并请注意同宿舍同班同学尽量不要集中选择某些题目。
对于学生成绩管理之类的普通性题目,验收时要求必须完成得比较完善。
对于相对来说有难度些的题目,验收时要求会相对低些,选题难度较高且完成得较好、完成的作品不大众化而是有自己的特色和创新之处等等,会获得更好的成绩。
严禁同一个选题的代码相似或雷同,否则成绩为不及格。
所有选题最终都必须设计成图形界面的程序、软件或系统。
功能越完善、越丰富、越有自己的特色与创新、越不与他人雷同,则成绩越高。
javaee课程设计12860
软件学院课程设计报告书课程名称Java EE 与中间件课程设计设计题目社团管理系统专业班级软件12-5班学号1220010518姓名王义武指导教师常戬2015 年1 月目录1 设计时间 (3)2 设计目的 (3)3 设计任务 (3)4 设计容 (3)4.1需求分析 (3)4.1.1 总体目标 (3)4.1.2具体目标 (4)4.1.3 系统数据建模 (4)4.1.4 系统功能建模 (4)4.1.5 数据字典 (5)4.2 总体设计 (6)4.3详细设计 (9)4.3.1模块详细设计 (9)4.3.2流程设计 (10)4.4运行与测试 (11)5 总结与展望 (14)附录 (15)参考文献 (29)成绩评定 (29)图4.2.2 数据库表users2)shetuan表表二社团表列名数据类型长度允许空文字描述sid int 5 社团编号sname varchar 20 Y 社团名称type varchar 20 Y 社团性质图4.2.3 数据库表shetuan 3)activity表表三activity表列名数据类型长度允许空文字描述aid int 5 活动编号aname varchar 20 Y 活动名称score int 10 Y 获得分数sname varchar 20 Y 参与社团place varchar 20 Y 举办地点time date 0 Y 活动时间图4.2.4 是数据库表activity4.3详细设计4.3.1模块详细设计本系统具有以下几个功能模块:用户登录模块、查看信息模块、添加社团和活动信息模块、删除社团信息模块。
1)用户登录模块流程图:图4.3.1.1 系统程序流程图N开始输入用户名和密码判断用户名和密码选择操作功能 结束Y1)登陆测试图4.4.1 登陆界面图4.4.2 管理员登陆成功界面图4.4.3 普通用户登录界面2)操作测试图4.4.4 查看用户信息图4.4.5 查看活动信息图4.4.6 查看社团信息图4.4.7 添加社团图4.4.8 删除社团图4.4.9 添加活动5 总结与展望通过本次的程序设计本次的课程设计让我对,对struts与hibernate框架的操作使用也进一步熟练,了解了项目开发的相关步骤,但也有问题如对数据的操作问题,通过muyclpse自动生成dao包,相关配置文件的配置还不熟练,最大的问题还是类间的调用不清楚和明确。
2315190207_JAVA程序设计_张席_实验教学大纲doc
《Java程序设计》实验教学大纲课程名称:Java程序设计英文名称:Java Program Design课程编号:2315190207课程性质:课程类型:专业选修是否为独立设课的实验课:否适用专业:计算机科学与技术专业学时与学分:总学时:72 总学分:3.5 实验学时:18 实验学分:0.5执笔人:张席制定时间:2013年9月修订一、实验课的任务、性质与目的:本实验课的任务是配合课堂讲解的内容,巩固所学的基本知识,编程课程是一门理论与实践高度结合的课程,学生必须自己多动手,上机多练习才能消化掉所学的知识,我们所给出的实验均是由浅入深,一方面培养学生的兴趣,另一方面能使学生融会贯通、举一反三,真正掌握面向对象程序设计的精髓。
二、主要仪器设备及环境:本课程的实验包括硬件环境及软件环境:硬件环境:PC机软件环境:Eclipse集成开发环境或Netbeans。
四、教材、实验教材(指导书)1.张席,Java语言程序设计教程,西安电子科技大学出版社,2003.82.Bruce Eckel,Thinking in Java,China Machine Press,2002.53.An Introduction to Programming and Object-Oriented Design Using JAVA 4.Java, Java, Java Object-Oriented Problem Solving 2e5.耿祥义,张跃平,Java2实用教程实验指导与习题解答,清华大学出版社,2005.3五、考核方式与评分办法由于本课程的学时有限,所以不可能涉及到Java的所有知识点,所给出的实验均是基础的内容,同时根据教学内容的不同,对实验部分可能还会作出适当的调整,同学们课后需要40或更多的学时来配合课程的进行。
具体的实验考核方式与评分办法如下:1.没有具体的实验说明,只给出凌乱的代码:不及格2.基本完成要求,符合实验报告的要求:60分3.在2的基础上,代码完整,具有可读性(有注释):60-70分4.在3的基础上,实验报告整洁,内容完整:70-80分5.在4的基础上,代码优化,算法精练,界面友好,思路清晰:80-90分6.在5的基础上,实现了全部的要求并进行扩展,有自己的结论:90-100分六、大纲审核人:王志强。
java课程设计实训报告-记忆测试系统
沈阳工程学院课程设计设计题目:Java程序设计课程设计-----记忆测试系统系别信息工程系班级软件072学生姓名学号36 22 27 11指导教师职称起止日期:2009 年6月15 日起——至2009年6月26 日止沈阳工程学院课程设计任务书课程设计题目:Java程序设计课程设计-----记忆测试系统系别信息工程系班级软件072学生姓名杜黎明周雷刘洋吴佳文学号 36 22 27 11指导教师李波、衣云龙职称讲师、助教课程设计进行地点:实训F任务下达时间: 2009 年 6 月 15 日起止日期:2009年 6 月 15 日起——至 2009年 6月 26 日止教研室主任费雅洁 2009年 6月 12 日批准1.设计的原始资料及依据通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。
2.设计的主要内容及要求本小组设计题目:记忆测试系统需要完成的功能:⑴单击“选择级别”菜单可以选择初级、中级或高级。
⑵单击“查看排行榜”菜单可以查看初级记忆榜、中级记忆榜和高级记忆榜,通过记忆榜存储每个级别的成绩。
⑶选择级别后,将出现相应级别的测试区。
测试区共有m*n个方块组成,程序通过设置m和n的值来确定相应的测试级别,例如,对于初级级别,m=5,n=6。
每个方块上都有一个图标,但该图标默认不可见,用鼠标单击测试区的任何一个方块,则计时器开始启动,同时在该方块上的图标将显示出来。
⑷m*n个方块测试区中共有m中图标,每个图标重复出现n次,并且随即分布在m*n个方块上。
用户必须用鼠标连续点击出n个相同的方块。
⑸测试区能显示用户的用时,并根据级别的不同,提示用户必须用鼠标连续单击出多个图标相同的方块。
⑹测试区有提示图标所在位置的功能。
用户单击测试区中的“提示”按钮后,测试区将持续1.2秒为用户显示全部方块上的图标。
用户每次单击一次“提示”按钮,用户的用时将增加10秒。
《Java实训》课程一体化教学改革探索——以平顶山学院软件学院为例
数据库 等相关 知识 和技术 的综合应 用开展教 学 。
二 、教 学模 式 和授 课 方 式 改革
2 . 1教学 模 式改 革 。结合 课程 性 质 和学 习 目标 ,教学 中 要求 所有 学生在 掌握 基本 知识 的同时 ,重点 突 出对 知识综 合
长 期 以来 我院对 于实训 课程 的建设 还不够 完善 ,没 有建 立 统一 的模 式和规 范 ,以至于 实训课程 的教 学也 只是和 以前 的实验 课程 教学差 不多 。课程 考核也仅 仅通 过学 生最后 完成
主观 能动性 ,最终 实现 课程教 学 目标 。小 组划 分 时避 免 “ 强 强联 合”形 式 ,充 分调 动每个 学生 学 习积极性 ,形成 团队合 作 的意识 。在实 训项 目的选 择上 ,根据 学生对 事物 的接受 程
一
、
课程教学 目标和 内容定位
J a v a 实 训 》课 程 的学 习 ,学
2 . 技能 目标 :培养学 生运用所 学知 识和技 能解决 开发 过
程 中所 遇到 的实 际 问题 的能 力 、掌 握基 本编程 规范 、养成 良
好 的编程 习惯 。 ( 1 )培 养学 生按 软 件过程 设计 J a v a 程 序 应 用 的技 能 。 ( 2)培养 学 生对 J a v a 程 序进 行 软件开 发 的理 解
列 的探 索 和实践 。经过 两个 学期 的建设 ,我们 积累 了一定 的 经验 和资 源。在 教学过 程 中主要进 行 了以下几个 方 面的教 学
改革
结合 的一 体化 教学方 式 。课堂组 织形 式为 任务驱 动方 式 ,针 对 每一个 项 目,教师 先从 一个 参考项 目中抽 取相关 知识 点进 行 讲解 ,接着 布置 相关 任务让 学生 补充 ,最后 学生 以 5 人一 小 组 为单位进 行项 目开 发与扩 展创新 ,充 分发 挥每位 学生 的
java课程设计实验报告
java课程设计实验报告Java课程设计实验报告。
一、实验目的。
本次实验旨在通过设计一个简单的Java程序,加深对Java语言的理解和应用,同时锻炼学生的编程能力和解决问题的能力。
二、实验内容。
本次实验要求设计一个简单的学生成绩管理系统,实现对学生成绩的录入、查询、修改和删除等功能。
具体要求如下:1. 设计一个学生类,包括学生的基本信息(学号、姓名、性别等)和成绩信息(语文、数学、英语等科目成绩)。
2. 实现学生成绩的录入功能,可以一次性录入多个学生的成绩信息。
3. 实现学生成绩的查询功能,可以根据学号或姓名查询学生的成绩信息。
4. 实现学生成绩的修改功能,可以修改指定学生的成绩信息。
5. 实现学生成绩的删除功能,可以删除指定学生的成绩信息。
三、实验设计。
在本次实验中,我首先设计了一个学生类,包括学号、姓名、性别和成绩等属性,并提供了相应的构造方法和get、set方法。
然后,我设计了一个学生成绩管理系统的主类,其中包括录入、查询、修改和删除等功能的实现。
在录入功能中,我使用Scanner类实现了从控制台输入学生信息的功能,并将学生信息保存到一个ArrayList中。
在查询功能中,我通过学号或姓名遍历ArrayList,找到相应的学生信息并输出。
在修改功能中,我同样通过遍历ArrayList找到指定学生信息,并提供修改选项,用户可以选择要修改的成绩信息进行修改。
在删除功能中,我也是通过遍历ArrayList找到指定学生信息,并进行删除操作。
四、实验结果。
经过一系列的调试和测试,我成功实现了学生成绩管理系统的设计要求。
用户可以通过简单的命令行界面,实现学生成绩的录入、查询、修改和删除等功能。
系统运行稳定,操作简单,符合设计要求。
五、实验总结。
通过本次实验,我对Java语言的面向对象编程有了更深入的理解,掌握了ArrayList的使用方法,提高了编程能力和问题解决能力。
同时,通过设计一个实用的学生成绩管理系统,我也加深了对Java语言的应用和实践,为以后的学习和工作打下了坚实的基础。
java课程设计报告40755
南京晓庄学院凯里学院Java课程设计报告题目風云J-20所在院系计科学院学生姓名张仁华专业计算机科学与技术班级09计本1班学号20094060102011年12月15日页脚内容1一、游戏项目分析与设计1、游戏项目功能分析本游戏通过玩家飞机(J-20)发射子弹攻击敌机,当敌机被飞机子弹打中的时候飞发生爆炸,使得敌机消失,并且同时播放效果音乐以及爆炸效果。
本游戏中的角色J-20、敌机、B-2等均能发射子弹攻击对方,其中B-2能够发射导弹。
当敌机子弹打中J-20时J-20的生命值J-20_HP会相应的减少,当B-2的子弹或者导弹击中J-20时J-20的HP也相应的减少。
当飞机与敌机相撞的时候,敌机爆炸(同时播放效果),J-20_HP 减少,J-20与B-2相撞的时候J-20发生爆炸且游戏结束。
当J-20_HP为0时,游戏结束,当J-20的子弹打中B-2时B-2_HP 减少,当减少到0的时候B-2死亡,游戏胜利即游戏通关。
2、本系统共包括六个Java源文件页脚内容- 1 -类之间的关系如图1.1所示。
图1.1 类之间的关系3、Java源文件及其功能如表1.1所示。
页脚内容- 2 -表1.1 文件清单二、系统实现1、主类StartGame(其中有一个内部类(线程类))(1)成员变量如表2.1所示表2.1 成员变量页脚内容- 4 -页脚内容- 5 -(2)方法如表2.2所示表2.2 方法(3)源文件StartGame.java代码如下给出。
页脚内容- 6 -import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Toolkit;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.ArrayList;public class StartGame extends Frame {// Toolkit.getDefaultToolkit()→获取默认工具包public Toolkit tool = Toolkit.getDefaultToolkit();页脚内容- 7 -Image hc_img = null;// 设置游戏状态0初始1进行中2胜利3失败4暂停int game_type = 0;// 敌机死亡数量int DJNum = 0;int zd_y;// 创建一个飞机类对象FeiJi fj = null;// 创建一个Boss对象Boss bs = null;// 创建一个背景对象BeiJing bj = null;// 创建一个子弹集合,ArrayList zd_List = new ArrayList();页脚内容- 8 -// 创建一个敌机集合,ArrayList dj_List = new ArrayList();// 创建敌机子弹集合ArrayList djzd_List = new ArrayList();// 创建Boss子弹集合ArrayList bosszd_List = new ArrayList(); ArrayList bosszd01_List = new ArrayList();// 创建Boss导弹集合ArrayList bossdd_List = new ArrayList();// 创建一个子弹爆炸集合ArrayList bz_List = new ArrayList();// 定义一个爆炸图片数组Image[] bz_img = new Image[15];// 定义一个媒体跟踪器页脚内容- 9 -MediaTracker mt = new MediaTracker(this);// 创建一个声音类对象GameSound music = new GameSound();// 创建一个计数器public int num = 0;// 创建一个线程类public void showWindow() {// 把爆炸图片存到图片数组中for (int i = 0; i < m.bz_img.length; i++) {Image img = tool.getImage(StartGame.class.getResource("Images/largeBurst" + i + ".png"));bz_img[i] = img;mt.addImage(img, 0);}页脚内容- 10 -try {mt.waitForID(0);} catch (InterruptedException e1) {e1.printStackTrace();}// 播放音乐music.playBgSound("go.mp3");// 设置窗体的标题setTitle("風云J-20 I");// 获取屏幕的x,y坐标int x = tool.getScreenSize().width;int y = tool.getScreenSize().height;// 设置窗体的大小setSize(600, 700);页脚内容- 11 -// 创建一个飞机对象fj = new FeiJi(getWidth() / 2 - 30, getHeight() - 80, this);// 创建一个线程对象MyThread my = new MyThread();// 启动线程my.start();// 创建一个背景对象bj = new BeiJing(this);// 创建一个Boss对象bs = new Boss(getWidth() / 2 - 120, this);// 设置窗体的初始位置设置居中.屏幕x坐标的一半减去组件x坐标的一半,屏幕y坐标的一半减去组件y坐标的一半.setLocation(x / 2 - getWidth() / 2, y / 2 - getHeight() / 2);// 是否允许用户改变窗体大小页脚内容- 12 -setResizable(false);// 设置窗体是否可见setVisible(true);// 调用提供关闭的方法Guanbi gb = new Guanbi();addWindowListener(gb);// 添加键盘监听器addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {// 游戏状态必须为0,同时必须按下enter键if (e.getKeyCode() == 10 && game_type == 0) { game_type = 1;// 播放游戏开始的musicmusic.playBgSound("BGM_0001.mp3");页脚内容- 13 -}//当游戏失败的时候按Enter键初始化游戏状态if (e.getKeyCode() == 10 && game_type == 3) {// 游戏状态为3,同时必须按下enter键game_type = 1;// 播放游戏开始的musicmusic.playBgSound("BGM_0001.mp3");m.fj.hp = 120;// 玩家HPfj = new FeiJi(getWidth() / 2 - 30, getHeight() - 80, m);//飞机返回初始坐标zd_List.removeAll(zd_List);//移除所有的子弹集合bz_List.removeAll(bz_List);//移除所有的爆炸集合bosszd_List.removeAll(bosszd_List);//移除Boss子弹集合bosszd01_List.removeAll(bosszd01_List);//移除Boss子弹集合bossdd_List.removeAll(bossdd_List);//移除Boss导弹集合页脚内容- 14 -}// 飞机移动fj.moveFeiJi(e);}});}// 创建一个窗体对象StartGame m = this;// 定义一个计数器,用于记住子弹打死敌机的个数int djNum = 0;class MyThread extends Thread {// 重写Thread类的run()public void run() {while (true) {页脚内容- 15 -try {Thread.sleep(30);num++;if (num == 80) {DiJi dj = new DiJi(m);dj_List.add(dj);num = 0;djNum++;}} catch (InterruptedException e) {e.printStackTrace();}repaint();}页脚内容- 16 -}}// 创建图片缓冲区public void update(Graphics g) {if (hc_img == null) {// 创建缓冲图片hc_img = createImage(getWidth(), getHeight());}// 得到缓冲图片的画笔Graphics hc_g = hc_img.getGraphics();// 把窗体图片画在缓冲图片上paint(hc_g);// 把缓冲图片画到窗体上g.drawImage(hc_img, 0, 0, getWidth(), getHeight(), this);页脚内容- 17 -}//重写paint方法public void paint(Graphics g) {if (game_type == 0) {bj.paintBJ(g);} else if (game_type == 1) {bj.paintStartingBJ(g);// 画一个飞机fj.paintFeiJi(g);// 从子弹集合中取出子弹for (int i = 0; i < zd_List.size(); i++) {ZiDan zd = (ZiDan) zd_List.get(i);// 画子弹zd.paintZiDan(g);页脚内容- 18 -}// 如果打死的敌机数超过10,这画Boss if (djNum >= 10) {// 画Bossbs.paintBoss(g);}// 从敌机集合里面讲敌机取出来for (int j = 0; j < dj_List.size(); j++) { DiJi dj = (DiJi) dj_List.get(j);// 画敌机dj.paintDiJi(g);// 如果Boss出现则移除所有的敌机if (bs.boss_y >= 0) {dj_List.removeAll(dj_List);页脚内容- 19 -}}// 从敌机子弹集合里面将敌机子弹取出来for (int k = 0; k < djzd_List.size(); k++) { DiJiZiDan djzd = (DiJiZiDan) djzd_List.get(k);// 画敌机子弹djzd.paintDiJiZiDan(g);// 如果Boss出现则移除所有的敌机if (bs.boss_y >= 0) {djzd_List.removeAll(djzd_List);}}// 从Boss子弹集合里面将Boss子弹取出来for (int k = 0; k < bosszd_List.size(); k++) {页脚内容- 20 -BossZiDan bosszd = (BossZiDan) bosszd_List.get(k);// 画敌机子弹bosszd.paintBossZiDan(g);}// 从Boss子弹集合里面将Boss子弹取出来for (int k = 0; k < bosszd01_List.size(); k++) {BossZiDan bosszd01 = (BossZiDan) bosszd01_List.get(k);// 画敌机子弹bosszd01.paintBossZiDan(g);}// 从Boss导弹集合里面将Boss导弹取出来for (int k = 0; k < bossdd_List.size(); k++) {BossZiDan bossdd = (BossZiDan) bossdd_List.get(k);// 画敌机子弹页脚内容- 21 -bossdd.paintBossDaoDan(g);}// 画子弹打中目标时的爆炸for (int j = 0; j < bz_List.size(); j++) {BaoZha bz = (BaoZha) bz_List.get(j);// 画敌机子弹bz.paintBaoZha(g);}} else if (game_type == 2) {// 游戏胜利// 画一个游戏胜利的图片bj.paintStartingBJ(g);// 设置画笔颜色g.setColor(Color.RED);// 设置画笔字体大小和类型页脚内容- 22 -g.setFont(new Font("华文行楷", Font.BOLD, 40));// 在窗体上打印“Game Over!!”g.drawString("Game Win!", getWidth() / 2 - 100, getHeight() / 2);g.drawString("You are so great!", getWidth() / 2 - 150,getHeight() / 2 + 50);} else if (game_type == 3) {// 游戏失败// 画一个游戏失败的图片bj.paintStartingBJ(g);// 设置画笔颜色g.setColor(Color.RED);// 设置画笔字体大小和类型g.setFont(new Font("华文行楷", Font.BOLD, 40));// 在窗体上打印“Game Over!!”g.drawString("Game Over !", getWidth() / 2 - 100, getHeight() / 2);页脚内容- 23 -g.drawString("按Enter键继续游戏!", getWidth() / 2 - 180,getHeight() / 2 + 50);}}// 主方法public static void main(String[] args) {StartGame m = new StartGame();m.showWindow();}}2、类FeiJi(1)成员变量如表2.3所示表2.3 成员变量页脚内容- 24 -(2)方法如表2.4所示表2.4 方法页脚内容- 25 -(3)源文件FeiJi.java如下列出。
java象棋课程设计报告书
课程名称:JAVA课程设计题目:“网络象棋”游戏的设计与开发系名:信息工程系专业班级:软件工程姓名:学号:指导教师:2012年 6 月18日课程设计任务书学生:专业班级:指导教师:工作单位:信息工程系设计题目:“网络象棋”游戏的设计与开发初始条件:《网络象棋》,网络版的棋类游戏。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)使用JAVA开发一个网络版的象棋游戏。
该游戏包括网络功能,棋盘功能和辅助功能。
本系统使用JAVA SWING技术和事件处理机制进行棋盘界面的设计,开发和功能实现, 使用Socket网络编程和多线程技术进行多客户端之间的对战。
系统总体架构如下:设计报告撰写格式要求:一、课程设计说明书(或报告书)正文容【设计题目】例如:“即时通”网络通信系统的设计与开发【开发环境】硬件环境:微机系列,存在1G以上,软件环境:Microsoft Windows XP 【开发工具】 NetBeans IDE【完成时间】2012.6 .4-----2012.6.15【需求分析】分析阐述要实现的系统应具有什么样的功能。
【系统总体设计方案】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。
让读者了解方案的总体设计和关键技术。
要阐述自己的设计方案,说明为什么要选择或设计这样的方案。
具体包括:系统总的设计思路,体系结构, 总体架构, 功能模块图;各功能模块所要达到的设计目标的简单介绍;设计的数据字典(数据库、表的结构);使用的设计软硬件环境和开发技术和平台等。
【系统详细设计】在这部分中,要将整个开发工作的容进行详细的介绍。
一般按照功能模块分成几部分来介绍。
每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。
【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。
测试:介绍如何测试系统,测试中发现的问题和解决方案。
【结束语】这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。
javagui课程设计
javagui课程设计一、课程目标知识目标:1. 学生能理解Java GUI编程的基本概念,掌握Swing组件的使用方法。
2. 学生能运用布局管理器设计窗口界面,掌握事件处理机制。
3. 学生了解Java GUI编程中的常用设计模式,例如MVC。
技能目标:1. 学生能独立创建简单的图形用户界面,如计算器、文本编辑器等。
2. 学生具备分析问题、设计GUI界面并解决问题的能力。
3. 学生能运用所学知识,对已有GUI程序进行优化和改进。
情感态度价值观目标:1. 学生培养对编程的兴趣和热情,增强学习Java语言的自信心。
2. 学生树立良好的编程习惯,注重代码规范和界面美观。
3. 学生学会团队协作,共同解决问题,培养沟通能力和合作精神。
课程性质分析:本课程为Java语言高级课程,旨在帮助学生掌握图形用户界面编程技术,提高编程实践能力。
学生特点分析:学生具备一定的Java基础,对编程有初步了解,但对GUI编程可能较为陌生。
教学要求:1. 理论与实践相结合,注重培养学生的动手能力。
2. 以案例驱动教学,引导学生主动探索和解决问题。
3. 注重培养学生的编程思维和创新能力。
二、教学内容1. Swing组件概述- JFrame、JPanel等基本容器组件的使用- JLabel、JButton、JTextField等基本组件的创建与使用2. 布局管理器- 流式布局(FlowLayout)- 东南西北中布局(BorderLayout)- 网格布局(GridLayout)- 盒式布局(BoxLayout)3. 事件处理- 事件监听器接口- 事件适配器- 动作事件、鼠标事件、键盘事件等处理机制4. 常用组件与布局组合- 计算器界面设计- 文本编辑器界面设计- 菜单、工具栏等高级组件的使用5. MVC设计模式- 模型(Model)- 视图(View)- 控制器(Controller)- MVC模式在GUI编程中的应用实例6. GUI程序调试与优化- 代码规范与优化- 界面美观与用户体验- 异常处理与调试技巧教学进度安排:1. 第1周:Swing组件概述、基本组件的使用2. 第2周:布局管理器、事件处理3. 第3周:常用组件与布局组合、计算器界面设计4. 第4周:文本编辑器界面设计、菜单、工具栏等高级组件的使用5. 第5周:MVC设计模式、GUI程序调试与优化教学内容关联教材章节:1. Swing组件与布局管理器:第X章2. 事件处理:第X章3. 常用组件与布局组合:第X章4. MVC设计模式:第X章5. GUI程序调试与优化:第X章三、教学方法1. 讲授法:- 对于Swing组件、布局管理器等基本概念和原理,采用讲授法进行教学,结合PPT展示,使学生对知识点有清晰的认识。
JAVA课 程 设 计 报 告
JAVA课程设计报告-27 杨姣一、设计时间2012年6月11 日—2012年6月16 日(第18周)二、设计地点湖南城市学院一实验楼计算机机房510三、设计目的1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;3、培养学生在项目开发中团队合作精神、创新意识及能力。
四、设计小组成员-27 杨姣五、指导老师何骞老师.六、设计课题我的文本编辑器设计一个类似于Windows记事本(Notepad)的Java程序。
可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。
七、基本思路及关键问题的解决方法;JFrame类的setJMenuBar的方法为窗口添加菜单栏JMenuBar,JMenuBar的add方法为菜单栏添加菜单JMenu,JMenu的add方法为菜单添加菜单项JMenuItem,它们之间的关系是树形关系。
需要为每个菜单项添加事件处理器,当单击菜单项时,触发事件。
在编译和运行Java程序时,需要调用本地的java和javac命令,通过Runtime的exec方法可以调用本地命令。
八、算法及流程图九、调试过程中出现的问题及相应解决办法;第一、导包问题,不知道安歇要导包,解决办法,百度搜索,查找JDK。
第二、很多细节问题,解决办法,检查修改。
第三:有的功能实现不了,解决办法,百度,问老师。
十、课程设计心得体会;本次课程设计我选做的题目是文本编辑器的设计。
要求设计一个类似于Windows记事本的Java程序,可以打开、新建、保存一个文本文件,而且能对选中的文本进行各种编辑操作,如设置字体、背景、复制、粘贴。
软件工程Java语言实训课程设计方案
****大学(学院)整周实训方案一、总体要求运用所学的Java 程序设计课程的知识,完成基础实训任务和综合实训任务,以个人为单位独立完成,实训完成后,提交与项目相关的所有程序、文档和数据等(电子档命名规则:班级-学号-姓名,如:10软工1班-01-张三),填写并完成纸质实训报告。
二、基础实训任务根据题目描述,编写程序,得到正确的结果。
用户输入一个日期,编写程序输出这个日期所在年份和月份的月历,每星期占一行,星期日在左边或者右边均可,上下月份的日期不需要输出。
(提示:日期之间可使用’\t ’分隔,输入的是一个字符串,程序涉及SimpleDateFormat ,Calendar 等相关类)系别:计算机系专业: 软件工程课程: JA V A 课程设计 制订人: Java 课程组 审核人: Java 课程组 制订时间: 20**年*月例如:输入 2015-7-1输出完成时间:6个课时三、综合实训任务说明:题目一,题目二,题目四是必做,题目三为选做,可作为老师实训加分的项。
题目一:设计简易记事本软件1.使用Java图形界面组件设计记事本软件的界面,参考如图1所示。
2.程序代码规范,逻辑正确,能够正常运行。
3.“文件”菜单,包括“新建”、“打开”、“保存”、“另存为”和“退出”等功能。
4.“编辑”菜单功能,包括“复制”、“剪切”、“粘贴”、“全选”功能。
(选做)5.“格式”菜单功能,包括“字体”和“颜色”设置功能。
(选做)6.“查看”菜单实现,“自动换行”和“显示隐藏状态栏”功能。
(选做)7.“帮助”菜单,弹出一个对话框,显示作者信息。
8.在软件中添加工具栏,并为工具栏按钮编写事件代码。
(选做)图1 记事本程序进度安排(参考)时间工作内容说明第1周星期一完成基础实训任务及综合实训需求分析编写Java代码,实现题目描述的功能及综合实训需求分析第1周星期二完成综合实训任务:界面设计,设计软件业务逻辑程序, 软件编码实现,设计界面,创建布局和组件等, 实现软件的功能第1周星期三软件测试,填写项目实训报告,提交实训作品。
java飞机大战游戏课程设计
java飞机大战游戏课程设计一、课程目标知识目标:1. 学生能理解Java编程语言的基本语法和结构,掌握面向对象编程的基本思想。
2. 学生能运用Java语言实现飞机大战游戏的基本功能,如角色移动、发射子弹、碰撞检测等。
3. 学生了解游戏开发中的坐标系统、动画效果实现及事件处理机制。
技能目标:1. 学生能运用Java编程环境进行代码编写、调试和运行,培养编程实践能力。
2. 学生通过分析问题、设计解决方案,培养解决问题和逻辑思维能力。
3. 学生通过团队协作,提高沟通与协作能力,共同完成飞机大战游戏的开发。
情感态度价值观目标:1. 学生对Java编程产生兴趣,树立学习自信心,养成主动学习的习惯。
2. 学生在游戏开发过程中,体验编程的乐趣,培养创新精神和探索精神。
3. 学生在团队协作中,学会尊重他人、倾听他人意见,培养团队精神和集体荣誉感。
课程性质:本课程为实践性强的课程,结合游戏开发,提高学生对Java编程的兴趣和动手能力。
学生特点:学生对游戏有浓厚的兴趣,具有较强的动手能力和好奇心,但可能缺乏编程基础和团队协作经验。
教学要求:注重理论与实践相结合,引导学生通过实践掌握Java编程技能,培养团队协作能力和创新精神。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. Java基本语法和结构复习:包括变量、数据类型、运算符、控制流程(条件语句、循环语句)等,为学生编程基础打下坚实基础。
教材章节:第一章至第三章2. 面向对象编程基础:介绍类、对象、封装、继承、多态等概念,让学生理解并掌握面向对象编程的基本思想。
教材章节:第四章至第六章3. Java图形用户界面(GUI)编程:学习Swing库,实现飞机大战游戏的窗口、界面设计。
教材章节:第七章4. 游戏开发相关技术:介绍坐标系统、动画效果实现、事件处理机制、碰撞检测等,为学生开发飞机大战游戏提供技术支持。
教材章节:第八章、第十章5. 实践项目:飞机大战游戏开发。
javawuziqi课程设计
javawuziqi 课程设计一、教学目标本课程旨在让学生掌握Java编写五子棋游戏的基本技能,培养他们运用Java编程解决问题的能力。
具体目标如下:1.知识目标:学生能理解并掌握Java基本语法、面向对象编程思想、常用数据结构等知识。
2.技能目标:学生能运用Java编写简单的五子棋游戏,掌握调试和优化代码的方法。
3.情感态度价值观目标:学生通过课程学习,培养自主学习、合作交流、勇于创新的精神,增强对计算机科学的兴趣。
二、教学内容本课程的教学内容主要包括Java基本语法、面向对象编程、常用数据结构、五子棋游戏算法等。
具体安排如下:1.第一章:Java基本语法,包括变量、数据类型、运算符、控制语句等。
2.第二章:面向对象编程,包括类、对象、封装、继承、多态等。
3.第三章:常用数据结构,包括数组、链表、栈、队列、树等。
4.第四章:五子棋游戏算法,包括棋盘表示、棋局判断、算法实现等。
5.第五章:项目实践,学生分组完成五子棋游戏的编写、调试和优化。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解Java基本语法、面向对象编程、数据结构等理论知识。
2.案例分析法:分析经典五子棋游戏案例,引导学生掌握游戏算法。
3.实验法:学生动手编写五子棋游戏,培养实际编程能力。
4.讨论法:分组讨论编程过程中遇到的问题,促进同学之间的交流与合作。
四、教学资源为实现教学目标,我们将提供以下教学资源:1.教材:《Java编程入门》、《Java进阶教程》等。
2.参考书:《Java核心技术》、《数据结构与算法》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程工具等。
5.辅助工具:在线评测系统、代码调试工具等。
五、教学评估本课程的教学评估采用多元化方式,全面客观地评价学生的学习成果。
具体评估方式如下:1.平时表现:学生课堂参与度、提问回答、小组讨论等,占总成绩的30%。
Java2实用教程第五版课程设计
Java2实用教程第五版课程设计一、课程设计概述Java2实用教程第五版课程设计旨在帮助学生掌握和运用Java编程语言的高级特性。
本次课程设计主要包含以下内容:•项目背景:本次课程设计的项目背景是一个银行账户管理系统。
•项目要求:学生需要根据项目需求,设计并实现该系统的功能,并能够理解和应用Java的高级特性。
•项目目标:通过本次课程设计,学生能够掌握Java编程语言的高级特性,提高编程技能和实践能力。
二、项目需求银行账户管理系统的主要功能包括:1.添加账户:用户可以通过该功能添加新的账户,包括账户名、密码、账户类型和初始余额。
2.删除账户:用户可以通过该功能删除账户。
3.修改账户:用户可以通过该功能修改账户信息,包括账户名、密码、账户类型和余额。
4.查询账户:用户可以通过该功能查询账户信息。
5.转账功能:用户可以通过该功能进行账户之间的转账操作,包括转账金额、转出账户和转入账户。
三、设计思路本次课程设计采用MVC(Model-View-Controller)设计模式,以实现系统的高效、灵活和可维护性。
具体设计思路如下:1.Model层:该层负责处理数据和业务逻辑,包括实现账户的增删改查和转账操作,同时完成与数据库的交互操作等。
2.View层:该层负责系统的展示和用户交互,包括实现视图的渲染和响应用户的输入操作。
3.Controller层:该层负责连接Model层和View层,负责处理业务逻辑和控制系统的运行状态。
四、实现技术本次课程设计采用Java语言,同时结合以下技术实现:1.Spring框架:该框架可以方便地管理Java对象和控制反转,提高系统的解耦性和可维护性。
2.MyBatis框架:该框架可以方便地实现Java对象与数据库的交互操作,提高系统的性能和灵活性。
3.Bootstrap框架:该框架可以方便地实现系统的界面美化和响应式布局,提高用户体验。
五、系统架构系统架构+-----+ +--------+|View | ----- |Control |+-----+ +--------+| |+---------+ +--------+| Model | |Database|+---------+ +--------+六、实现步骤本次课程设计的具体实现步骤如下:1.设计并编写系统的数据库,包括表结构和数据内容。
GUI设计java课程设计
GUI设计java课程设计一、教学目标本课程旨在通过GUI设计java课程设计,让学生掌握图形用户界面(GUI)的设计与编程的基本知识和技能。
在学习过程中,学生将了解GUI设计的基本原则和方法,学习Java编程语言在GUI开发中的应用,并通过实际操作,完成一个简单的GUI应用程序的设计与实现。
1.理解图形用户界面(GUI)的基本概念和设计原则。
2.掌握Java编程语言在GUI开发中的基本语法和常用类库。
3.能够使用Java编程语言设计并实现一个简单的GUI应用程序。
4.能够运用所学知识和技能解决实际问题,进行创新性设计。
情感态度价值观目标:1.培养学生的创新意识和团队合作精神。
2.增强学生对计算机科学和软件工程的兴趣和热情。
二、教学内容本课程的教学内容主要包括三个部分:GUI设计的基本原理、Java编程语言在GUI开发中的应用、GUI应用程序的设计与实现。
1.GUI设计的基本原理:包括GUI的设计原则、常见界面元素和布局管理器等。
2.Java编程语言在GUI开发中的应用:包括Swing和JavaFX两个常用类库的使用方法。
3.GUI应用程序的设计与实现:通过实际操作,完成一个简单的GUI应用程序的设计与实现,包括界面设计、事件处理、数据绑定等。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
1.讲授法:用于讲解GUI设计的基本原理和Java编程语言在GUI开发中的应用。
2.讨论法:通过小组讨论,促进学生对GUI设计原则和Java编程语言在GUI开发中的应用的理解和思考。
3.案例分析法:分析实际案例,让学生了解GUI设计的原则和方法在实际项目中的应用。
4.实验法:通过实际操作,让学生掌握Java编程语言在GUI开发中的应用,完成一个简单的GUI应用程序的设计与实现。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计》课程设计报告题目 Windows操作系统计算器的模拟实现院系计算机科学与技术学院年级班级 09本一班学号 091210134 学生姓名蒋武林指导教师李冰2011年 12 月 09 日目录一、课程设计目的、任务及要求 (1)二、设计思路 (1)三、详细设计 (1)四、运行调试与分析 (2)五、设计小结 (11)一、课程设计目的、任务及要求课程设计目的:1、熟练掌握Java的swing组件或awt组件。
2、熟练掌握事件处理的方法。
课程设计任务及要求:使用swing组件或awt组件(推荐使用swing组件)模拟实现Windows 操作系统的计算器。
具体要求如下:1、该计算器可以进行简单的十进制数据的四则运算(加、减、乘、除)2、该计算器可以进行二进制、八进制、十进制、十六进制之间的相互转换。
(选做)3、该计算器可以实现求阶乘、平方、立方、n次方、绝对值、正弦、余弦、正切等运算。
(选做)设计环境:Java SE Development Kit二、设计思路1.运用两个面板的叠加做出界面2.通过在按钮的单击事件处理方法中调用类的成员函数calculate()来惊醒简易计算器的各种运算,并正确实现运算功能3.调用Math包中的方法实现函数功能4.添加菜单条,列出选项,进制转换,帮助等菜单选项,并分别实现选项中的退出功能,通过调用integer包中的方法实现二进制,八进制的转换,帮助菜单栏中用法的提示对话框5.整个程序对话框可实现最小化,最大化,关闭。
三、详细设计import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.event.*;import javax.swing.*;import java.awt.*;@SuppressWarnings("serial")public class Mianban extends JFrame implements ActionListener{Boolean f=false;Double shu=0.0;String s="";JPanel p;JMenu bianji,chakan,bangzhu;JMenuBar cdtiao;JMenuItem fuzhi,zhantie,biaozhun,kexue,bzzhuti,guanyu;JTextField t1,t2;Button butt1,butt2,butt3,butt4,butt5,butt6,butt7,butt8,butt9,butt0,buttdian,buttfu;Button buttjia,buttjian,buttcheng,buttchu,buttsqrt,buttb,buttce,buttc,buttbai,buttdao ,buttdeng,buttmc,buttmr,buttms,buttmj;Mianban(){p=new JPanel();p.setLayout(null);cdtiao=new JMenuBar();//JSeparator js=new JSeparator(); js.setOrientation(JSeparator.VERTICAL);bianji=new JMenu("编辑(E)"); chakan=new JMenu("查看(V)"); bangzhu=new JMenu("帮助(H)");fuzhi=new JMenuItem("复制(C)"); zhantie=new JMenuItem("粘贴(P)"); biaozhun=new JMenuItem("标准型(T)");kexue=new JMenuItem("科学型(S)"); bzzhuti=new JMenuItem("帮助主题(H)"); guanyu=new JMenuItem("关于计算器(A)");bianji.add(fuzhi); bianji.add(zhantie);chakan.add(biaozhun); chakan.add(kexue);bangzhu.add(bzzhuti); bangzhu.add(guanyu);cdtiao.add(bianji); cdtiao.add(chakan); cdt iao.add(bangzhu);cdtiao.setBounds(0, 3, 300, 20);buttb=new Button("Backspace"); buttb.setBounds(60, 70, 90, 30); buttb.setForeground(Color.red);buttce=new Button("C E"); buttce.setBounds(160, 70, 60, 30); buttce.setForeground(Color.red);buttc=new Button("C"); buttc.setBounds(230, 70, 50, 30); buttc.setForeground(Color.red);t1.setEnabled(false); t2.setEnabled(false);buttmc=new Button("MC"); buttmc.setBounds(10, 110, 40, 30); buttmc.setForeground(Color.red);butt7=new Button("7"); butt7.setBounds(60, 110, 40, 30); butt7.setForeground(Color.BLUE);butt8=new Button("8"); butt8.setBounds(105, 110, 40, 30); butt8.setForeground(Color.BLUE);butt9=new Button("9"); butt9.setBounds(150, 110, 40, 30); butt9.setForeground(Color.BLUE);buttchu=new Button("/"); buttchu.setBounds(195, 110, 40, 30); buttchu.setForeground(Color.red);buttms=new Button("MS"); buttms.setBounds(10, 190, 40, 30); buttms.setForeground(Color.red);butt1=new Button("1"); butt1.setBounds(60, 190, 40, 30); butt1.setForeground(Color.BLUE);butt2=new Button("2"); butt2.setBounds(105, 190, 40, 30); butt2.setForeground(Color.BLUE);butt3=new Button("3"); butt3.setBounds(150, 190, 40, 30); butt3.setForeground(Color.BLUE);buttjian=new Button("-"); buttjian.setBounds(195, 190,40, 30); buttjian.setForeground(Color.red);buttdao=new Button("1/x"); buttdao.setBounds(240, 190,40, 30); buttdao.setForeground(Color.BLUE);buttmj=new Button("M+"); buttmj.setBounds(10, 230, 40, 30); buttmj.setForeground(Color.red);butt0=new Button("0"); butt0.setBounds(60, 230, 40, 30); butt0.setForeground(Color.BLUE);buttfu=new Button("+/-"); buttfu.setBounds(105, 230, 40, 30); buttfu.setForeground(Color.BLUE);buttdian=new Button("."); buttdian.setBounds(150, 230, 40, 30); buttdian.setForeground(Color.BLUE);buttjia=new Button("+"); buttjia.setBounds(195, 230, 40, 30); buttjia.setForeground(Color.red);buttdeng=new Button("="); buttdeng.setBounds(240, 230, 40, 30); buttdeng.setForeground(Color.red);p.add(t1); p.add(cdtiao); // setJMenuBar(cdtiao); p.add(buttb); p.add(buttce); p.add(buttc); p.add(bu ttmr); p.add(butt4); p.add(butt5); p.add(butt6); p.add(butt cheng); p.add(buttbai);p.add(buttms); p.add(butt1); p.add(butt2); p.add(butt3);p.add(buttjian); p.add(buttdao);p.add(buttmj); p.add(butt0); p.add(buttfu); p.add(buttdian) ; p.add(buttjia); p.add(buttdeng);add(p);//给按钮添加、菜单添加监听butt1.addActionListener(this); butt2.addActionListener(this); butt3.addActionListener(this); butt4.addActionListener(this); butt5.addActionListener(this); butt6.addActionListener(this); butt7.addActionListener(this); butt8.addActionListener(this); butt9.addActionListener(this); butt0.addActionListener(this); buttce.addActionListener(this); buttc.addActionListener(th is);buttbai.addActionListener(this); buttdao.addActionListener(this );buttdeng.addActionListener(this); buttmc.addActionListener(this); buttmr.addActionListener(this); buttms.addActionListener(this); buttmj.addActionListener(this);fuzhi.addActionListener(this); zhantie.addActionListener(this );biaozhun.addActionListener(this); kexue.addActionListener(this); bzzhuti.addActionListener(this); guanyu.addActionListener(this);//设置面板的背景色p.setBackground(Color.WHITE);setSize(300, 330);//设置文本框的内容居右t1.setHorizontalAlignment(JTextField.RIGHT);//获取屏幕的长宽int width=Toolkit.getDefaultToolkit().getScreenSize().width;int heigth=Toolkit.getDefaultToolkit().getScreenSize().height;//获取窗口的长宽int wc=getWidth()setResizable(false);//设置窗口的关闭setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// System.out.println(width);// System.out.println(heigth);// System.out.println(wc);// System.out.println(hc);}public void actionPerformed(ActionEvent e){if(f){t1.setText("0");f=false;}//单击数值1if(e.getSource()==butt1){ String a=t1.getText(); if(a.equals("0")){t1.setText("1"); }else{t1.setText(a+"1"); }}//单击数值2if(e.getSource()==butt2){ String a=t1.getText(); if(a.equals("0")){t1.setText("2"); }else{t1.setText(a+"2"); }}//单击数值3if(e.getSource()==butt3){ String a=t1.getText(); if(a.equals("0")){t1.setText("3"); }else{t1.setText(a+"3"); }}//单击数值4if(e.getSource()==butt4){ String a=t1.getText(); if(a.equals("0")){t1.setText("4"); }else{t1.setText(a+"4"); }}//单击数值5if(e.getSource()==butt5){ String a=t1.getText(); if(a.equals("0")){t1.setText("5"); }else{t1.setText(a+"5"); }}//单击数值6if(e.getSource()==butt6){ String a=t1.getText(); if(a.equals("0")){t1.setText("6"); }else{t1.setText(a+"6"); }}//单击数值7if(e.getSource()==butt7){ String a=t1.getText(); if(a.equals("0")){t1.setText("7"); }else{t1.setText(a+"7"); }}//单击数值8if(e.getSource()==butt8){ String a=t1.getText(); if(a.equals("0")){t1.setText("8"); }else{t1.setText(a+"8"); }}//单击数值9if(e.getSource()==butt9){ String a=t1.getText(); if(a.equals("0")){t1.setText("9"); }else{t1.setText(a+"9"); }}//单击数值0if(e.getSource()==butt0){ String a=t1.getText(); if(a.equals("0")){t1.setText("0"); }else{t1.setText(a+"0");}}//单击.if(e.getSource()==buttdian){String a=t1.getText();int m=a.indexOf(".");if(m==-1)t1.setText(a+".");}//单击+/-键if(e.getSource()==buttfu){String a=t1.getText();String b=a.substring(0,1);if(b.equals("-")){String z=a.substring(1);t1.setText(z);}else{t1.setText("-"+a);}}//单击1/x键if(e.getSource()==buttdao){String a=t1.getText();//字符型转换为浮点型Double s=1/Double.valueOf(a).doubleValue(); String b=String.valueOf(s);t1.setText(b);}//单击sqrt键if(e.getSource()==buttsqrt){f=true;String a=t1.getText();//float s=Integer.parseInt(a);//字符型抓换为浮点型Double s=Double.valueOf(a).doubleValue();if(s>0){double z=Math.sqrt(s);String b=String.valueOf(z);t1.setText(b);}}//点击 %if(e.getSource()==buttbai){String a=t1.getText();Double s=Double.valueOf(a).doubleValue()/100;//if(this.shu!=0.0)//this.shu=this.shu/100;String t=String.valueOf(s);t1.setText(t);System.out.println(shu);}//单击CE键if(e.getSource()==buttce){t1.setText("0");}// 单击 C 键if(e.getSource()==buttc){t1.setText("0");this.s="";this.shu=0.0;}//单击Backspace键if(e.getSource()==buttb){String a=t1.getText();int n=a.length();if(n==1){t1.setText("0");}else{String z=a.substring(0, n-1);t1.setText(z);}System.out.println(n);}//点击+if(e.getSource()==buttjia){f=true;String a=t1.getText();if(this.s.equals("")&&this.shu==0.0){shu(a);yunsuan("+");}else{Double b=Double.valueOf(a).doubleValue(); //Double z=this.shu+b;Double z=0.0;if(this.s.endsWith("+")){z=this.shu+b;}else if(this.s.endsWith("-")){z=this.shu-b;}else if(this.s.endsWith("*")){z=this.shu*b;}else if(this.s.endsWith("/")){z=this.shu/b;}shu(String.valueOf(z));yunsuan("+");t1.setText(String.valueOf(z));}}else if(this.s.endsWith("-")){z=this.shu-b;}else if(this.s.endsWith("*")){z=this.shu*b;}else if(this.s.endsWith("/")){z=this.shu/b;}shu(String.valueOf(z));yunsuan("-");t1.setText(String.valueOf(z));}}// 点击 *if(e.getSource()==buttcheng){f=true;String a=t1.getText();if(this.s.equals("")&&this.shu==0.0){shu(a);yunsuan("*");}else{Double b=Double.valueOf(a).doubleValue(); Double z=0.0;if(this.s.endsWith("+")){z=this.shu+b;}else if(this.s.endsWith("-")){z=this.shu-b;}else if(this.s.endsWith("*")){z=this.shu*b;}else if(this.s.endsWith("/")){z=this.shu/b;}shu(String.valueOf(z));yunsuan("*");t1.setText(String.valueOf(z));}}// 点击 /if(e.getSource()==buttchu){f=true;String a=t1.getText();if(this.s.equals("")&&this.shu==0.0){shu(a);yunsuan("/");}else{Double b=Double.valueOf(a).doubleValue(); Double z=0.0;if(this.s.endsWith("+")){z=this.shu+b;}else if(this.s.endsWith("-")){z=this.shu-b;}else if(this.s.endsWith("*")){z=this.shu*b;}else if(this.s.endsWith("/")){z=this.shu/b;}shu(String.valueOf(z));yunsuan("/");t1.setText(String.valueOf(z));}}// 点击=if(e.getSource()==buttdeng){f=true;String a=t1.getText();if(this.s.equals("")&&this.shu==0.0){}else{Double b=Double.valueOf(a).doubleValue(); Double z=0.0;if(this.s.endsWith("+")){z=this.shu+b;}else if(this.s.endsWith("-")){z=this.shu-b;}else if(this.s.endsWith("*")){z=this.shu*b;}else if(this.s.endsWith("/")){z=this.shu/b;}shu(String.valueOf(z));t1.setText(String.valueOf(z));}}void yunsuan(String a){this.s=a;}void shu(String a){Double b=Double.valueOf(a).doubleValue();this.shu=b;}public static void main(String args[]){new Mianban();}}四、运行调试与分析。