Java程序设计实训报告.docx
- 文档编号:2831912
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:28
- 大小:51.13KB
Java程序设计实训报告.docx
《Java程序设计实训报告.docx》由会员分享,可在线阅读,更多相关《Java程序设计实训报告.docx(28页珍藏版)》请在冰豆网上搜索。
Java程序设计实训报告
陕西国际商贸学院
Java实训报告
专业:
计算机科学与技术
班级:
姓名:
学号:
指导老师:
前言
Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示了鹏程万里的美好前景。
作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。
以Java为代表的网络的成长,改变了我们的联系方式、生活方式、学习方式和经营方式。
它的来到使我们目睹了一场类似印刷术的重大变革。
毫无疑问,它将影响人类社会的发展,这就是:
Java加速人类进入网络时代!
本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。
通过课程设计各个项目的综合训练,不仅培养学生实际分析问题、编程和动手能力,而且还提高了学生的综合素质。
本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习以及正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。
本次课程设计主要是用JAVA实现围棋系统,能够实现画笔、画直线、画圆形、并修改该画笔的大小以及颜色。
该围棋程序还需具有悔棋功能以及选择棋盘大小的功能。
2014年6月11日
一、实训目的及要求
1.1实训目的
1.使学生熟练掌握,java编成的基础知识,以及巩固图形界面及绘图知识点。
2.结合软件工程,熟悉软件开发过程。
3.训练了学生学生独立编程以及调试程序的能力。
4.训练学生对于算法的理解和设计能力。
5.加强了学生实际动手能力,以及对于面向对象方法学的理解。
6.巩固图形界面排版,以及界面的设计能力。
7.加强学生对于所学知识的理解及运用。
1.2实训要求
1.需交电子版和纸制板实训报告各一份,电子版海源程序。
2.程序必须可运行。
3.界面必须保证美观。
4.操作简单易学。
5.各项功能不可缺损。
6.报告版面美观,易读。
二、概要设计
1.整个围棋程序分为3个部分:
棋盘、棋子、围棋主类
软件结构图(见图一):
围棋程序控制
接收鼠标事件
控制面板调控度
棋手操作
重新开始控制
悔棋控制
棋盘大小控制
更新棋盘
更新标签
棋盘控制
绘制棋盘及棋子
图1软件结构图
2.围棋软件中的棋盘主类都将采用绘制。
3.整个程序界面将采用固定大小。
三、详细设计
棋手
围棋程序处理
棋盘和标签
棋子信息
1.围棋程序顶层数据流程图如下:
鼠标操作信息棋盘标签信息
图2顶层数据流程图
鼠标坐标
棋手
重新开始处理
棋盘大小选择处理
下棋位置捕获处理
悔棋处理
棋盘大小处理
绘制将要下棋位置处理
下棋处理
棋子信息
棋子信息
棋盘标签信息
更新棋盘标签
鼠标操作信息
2.功能级数据流图如下:
棋子信息
棋盘大小
棋盘大小信息
重置棋盘信息
鼠标坐标
图3功能级数据流程图
四、功能分析
整个围棋程序分为3个部分:
棋盘、棋子、围棋主类
1.棋盘主类主要功能有:
《1》绘制棋谱及落棋,程序实现重写的pint方法如下:
publicvoidpaint(Graphicsg){
offg.setColor(newColor(180,150,100));
offg.fillRect(0,0,size,size);
//画出棋盘格子
offg.setColor(Color.black);
for(inti=0;i intx1=left+i*gridLen; intx2=x1; inty1=top; inty2=top+gridNum*gridLen; offg.drawLine(x1,y1,x2,y2); x1=left; x2=left+gridNum*gridLen; y1=top+i*gridLen; y2=y1; offg.drawLine(x1,y1,x2,y2); } //画出棋子 for(inti=0;i for(intj=0;j if(map[i][j]==null) continue; offg.setColor(map[i][j].color==Chesspoint.black? Color.black : Color.white); offg.fillOval(left+i*gridLen-chessmanLength/2,top+j *gridLen-chessmanLength/2,chessmanLength, chessmanLength); } //画出鼠标的位置,即下一步将要下的位置 if(mouseLoc! =null){ offg.setColor(currentTurn==Chesspoint.black? Color.gray : newColor(200,200,250)); offg.fillOval(left+mouseLoc.x*gridLen-chessmanLength/2,top +mouseLoc.y*gridLen-chessmanLength/2, chessmanLength,chessmanLength); } //把画面一次性画出 g.drawImage(offscreen,80,0,this); } 《2》吃子,程序实现见源程序。 《3》悔棋,并保存所有已下的棋子,包括在棋盘上的所有棋子和被提掉的,程序实现悔棋back()方法如下: //悔棋 publicvoidback(){ if(alreadyNum==0){ controlPanel.setMsg("无子可悔"); return; } Objectobj=chessman.elementAt(--alreadyNum); if(objinstanceofChesspoint){ Chesspointqizi=(Chesspoint)obj; map[qizi.x][qizi.y]=null; currentTurn=qizi.color; }else{ Vectorv=(Vector)obj; for(inti=0;i Chesspointq=(Chesspoint)(v.elementAt(i)); if(i==v.size()-1){ map[q.x][q.y]=null; intindex=chessman.indexOf(v); chessman.setElementAt(q,index); currentTurn=q.color; }else{ map[q.x][q.y]=q; } } } controlPanel.setLabel(); repaint(); } 《4》在该类中使用Vector类型保存踢掉的棋子及这个棋子本身。 2.棋子主类主要功能有: 获得实际的棋子位置,程序实现如下: publicclassChesspoint { publicstaticintblack=0,white=1; intx,y; intcolor; publicChesspoint(inti,intj,intc) { x=i; y=j; color=c; } publicStringtoString() {//储存x,y位置和颜色 Stringc=(color==black? "black": "white"); return"["+x+","+y+"]: "+c; } } 3.围棋主类主要功能: (1)对围棋界面外观进行初始化,构造方法Chess实现如下: publicChess(){ this.setTitle("围棋程序"); this.setLayout(newBorderLayout()); jp.setSize(550,490); jp.setLayout(newBorderLayout()); jp.add(Chessboard.controlPanel,"West"); jp.add(qipan,"Center"); add(jp); jp.setSize(550,490); this.setResizable(false); this.setLayout(newBorderLayout()); this.setSize(550,490); this.setVisible(true); } (2)创建围棋对象,main方法实现如下: publicstaticvoidmain(String[]args){ //开始下棋程序 ChessIgo=newChess(); 五、测试数据及运行结果 1.初始界面如图图5.1所示: 图5.1运行结果图 2.18x18棋盘测试如图: 图5.2运行结果图 3.2.7x7棋盘测试如图: 图5.3运行结果图 4.悔棋标签反映无子可悔如图: 图5.4运行结果图 六、总结 时光如梭,光阴似箭,java实训一晃而过,通过这一期的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。 当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。 克服了java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。 我很清楚以后的路还很长,再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。 任何业绩的质变都来自于量变的积累,成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成,让我们将事前的忧虑,换为事前的思考和计划吧! 在实训的过程中,我深深感觉到自身所学知识的有限。 以后要更加努力学习. 源代码: 1、Chessboard类 importjava.awt.*; importjava.awt.event.*; importjava.util.*; importjava
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 报告