1、 Java课程设计报告题 目 中国象棋打谱系统 所在院系软件学院 2011年 7 月 22日大连交通大学JAVA课程设计报告第一章 总体设计1.1本系统的主要功能 本系统可以把对弈过程保存成文件,并可以重新演示对弈过程,可以制作实战棋谱和残局棋谱,并且能够在游戏者进行游戏时播放自己喜欢的歌曲和走棋时的声音,运行程序时还可以弹出另一个具有时钟的窗口,目的在于显示当前的时间,新增加工具和帮助菜单,其中工具菜单里有音量、画质、色彩。其他菜单项,帮助菜单里有有技术问题请咨询R机械095班郝涛广同学的选项1.2系统包含的类及类之间的关系本系统共包括13个java源文件。如图1-1所示。图1-1 类之间的
2、关系类似JAVA课程设计书中的2页的图,5号字2.2 java源文件及其功能1.AudioClipWindow.java该文件用于播放歌曲的功能2.CalendarImage.java该文件用于显示图片3.ChessBoard.java该文件负责创建中国象棋打谱系统的棋盘。4. ChessBox.java该文件负责创建中国象棋打谱系统棋盘的棋盒。5. Chesspiece.java该文件负责创建中国象棋打谱系统棋盘的棋子。6. Clock.java该文件负责即时显示时间的钟表窗口,方便用户掌握时间。7. DemoManuDialog.java该文件负责演示棋谱,即给出详细棋谱对弈步骤。8. H
3、andleMouse.java该文件负责在用户开始对弈时处理鼠标事件,以便用户拖动棋子。9. InitCanju.java该文件负责实现用户制作残局棋谱的要求,开局要用户来确定。10. MoveRule.java该文件负责验证用户的棋子走法是否符合象棋规则。11. Point.java该文件负责确定ChessPiece对象在ChessBoard对象中的位置。12. InitPieceLocation.java该文件负责安排棋子在棋盘中的初始位置13.ChinaChess.java该文件负责创建中国象棋打谱系统的窗口,主函数该类含有方法main 程序从该类开始执行。 第二章 详细设计2.1主类
4、ChinaChess.java(1)成员变量见表2-1表2-1 主要成员变量(属性)写几个变量即可成员变量描述变量类型名称描绘棋盘ChessBoardboard显示提示标题JTextFieldhintMessage演示棋谱DemoManulDialogdemoManul开始创建棋谱JButtonstartMakeManul(2)方法见表2-2表2-2 主要方法写几个方法即可成员变量描述功能备注ChinaChess()完成窗口初始化构造方法actionPerformed实现接口监视器动作接口main程序运行入口方法主函数(3)源代码见文件ChinaChess.java2.2类ChessBoard
5、(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称表示黑棋盒ChessBoxblackBox表示棋盘行列数Intm,n红旗子名字StringredName(2)方法见表2-4表2-4 主要方法方法名功能备注getPoint()返回point数组确定位置getStep()返回step数组表确定步数(3)源代码见文件ChessBoard.java2.3类ChessPiece(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称棋子的名字Stringname棋子在棋盘的位置Pointpoint黑棋booleaniBlack(2)方法见表2-4表2-4 主要方法方法
6、名功能备注getAtPoint()setIsRad返回point对象的引用是否为红棋getName()返回棋子的名字(3)源代码见文件ChessPiece.java2.4类Point(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称容器的y轴坐标Pointy判断是否在point点上booleanhaveChessPiece棋子在当前Point对象上ChessPiecechessPiece(2)方法见表2-4表2-4 主要方法方法名功能备注Equals(TowerPoint)getChessPiece()判断是否与参数Point相同返回Point上的对象getStep()返回
7、step数组表(3)源代码见文件Point.java2.5类ChessBox(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称棋盒中point对象之间距离Intdistance每单元表示一个point对象pointboxPoint(2)方法见表2-4表2-4 主要方法方法名功能备注ChessBox()构造方法putPieceToBox()将指定的棋子放入棋盒中(3)源代码见文件ChessBox.java2.6类InitPieceLocation(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称存放playPointPointplayPoint存放blac
8、kPieceChessPieceblackPiece存放redChessBoxChessBoxredChessBox(2)方法见表2-4表2-4 主要方法方法名功能备注putAllPieceToPlayChessArea()按实战棋谱开局,将棋子放置在棋盘的对弈棋点上putAllPieceToChessBox()按残局棋谱开局,将棋子放置在棋盒中 (3)源代码见文件InitPieceLocation.java2.7类InitCanju(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称存放playPointPointpoint存放redPieceChessPieceredPi
9、ece存放blackChessBoxChessBoxblackChessBox(2)方法见表2-4表2-4 主要方法方法名功能备注mouseDragged()允许用户拖动棋子时不必遵守象棋规则mouseReleased允许用户将拖动的棋子放在棋盘中的棋点上棋盒中(3)源代码见文件InitCanju.java2.8类HandleMouse(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称存放playPointPointpoint判断用户拖动时符合规则MoveRulerule存放stepStringstep(2)方法见表2-4表2-4 主要方法方法名功能备注mouseDragg
10、ed()要求用户按着象棋规则拖动棋子mouseReleased()按规则拖动棋子放在棋盘中的棋点或吃掉棋子(3)源代码见文件HandleMouse.java2.9类MoveRule(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称存放被拖动的棋子的引用ChessPiecepiece存放playPointPointpoint存放棋子的起点PointstartPoint(2)方法见表2-4表2-4 主要方法方法名功能备注SetPoint()将playPoint引用传递给pointmovePieceRule()判断棋子piece从startPiece点走到endPiece点是否符
11、合规则(3)源代码见文件MoveRule.java2.10类DemoManulDialog(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称存放棋谱文件的引用stringfile存放stepstringstep(2)方法见表2-4表2-4 主要方法方法名功能备注showBoardManul()提供图形化界面的棋谱showTextManul()提供文本化得棋谱(3)源代码见文件DemoManulDialog.java.12类AudioClipPanel(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称创建音频对象AudioClipClip创建播放按钮ButtonbuttonPlay创建子线程Threadthread(2)方法见表2-4表2-4 主要方法方法名功能备注AudioClipPanel创建播放控制面板itemStateChanged监视选择列表(3)源代码见文件AudioClipPanel.java第三章 运行效果截2个图即可3.1 系统主界面 图3-1 系统主窗口要把图适当的缩小3.2 实战棋谱录入界面图3-2 实战棋谱录入界面忽略此处. - 12 -