ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:296.83KB ,
资源ID:6430269      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6430269.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java课程设计模版.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java课程设计模版.docx

1、java课程设计模版课程设计(论文)任务书 学院 专业 2班 号 一、课程设计(论文)题目: 人机对弈五子棋游戏 二、课程设计(论文)工作:自 2015 年 6 月 23 日起至 2015 年 6 月 25日止三、课程设计(论文) 地点: 5-205 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握软件开发的基本工作流程; (2)巩固JAVA程序设计课程所学的内容; (3)培养学生的计算机思维能力以及合作的精神;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行系统需求分析;(2)对系统进行

2、总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (4)系统组装,测试、完善系统。2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:(1)丁振凡,JAVA语言程序设计,清华大学出版社(2)丁振凡,JAVA语言程序设计实验指导与习题解答,清华大学出版社(3)5)课程设计进度安排内容 天数 地点系统总体设计 1 实验室软件设计及调试 2 实验室

3、答辩及撰写报告 2 实验室、图书馆 学生签名: 2015年6月25日课程设计(论文)评审意见(1) 课程设计过程(20分):优()、良()、中()、一般()、差( );(2) 是否完成调试,系统运行效果(30分):优()、良()、中()、 一般( )、差( );(3)回答问题(20分):优()、良()、中()、一般()、差();(4)课程设计报告(30分):优()、良()、中()、一般()、差( );(5)格式规范性及考勤是否降等级:是()、否() 评阅人: 职称:教授 2015年 6月27日人机对弈五子棋游戏设计摘要:近些年来五子棋游戏成为了人们的最爱,游戏的下载量很高可以说一直排在前几位,

4、也是人们日常生活中放松娱乐的最爱,特别是最近IT行业的发展,人工智能的实现,移动客户端的发展和普及为我们五子棋游戏的发展带来了新的生机,新的高潮,人工智能与五子棋的完美结合是五子棋的又一项重要发展,而我们现在开发的人机对弈更是掀起了五子棋发展的新篇章,为五子棋的发展与传播提供了新的机会,但是机会与挑战并存,我们相信通过我们对五子棋程序的不断优化和完善,五子棋一定会越来越受到大家的欢迎。五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。在Windows操作系统下,用VC实现了这个人机对战的五子棋程序。采用了博弈树的方法,应用了剪枝和最大最小树原理进行搜索发现最好的下

5、子位置。介绍了五子棋程序的数据结构、评分规则、胜负判断方法和搜索算法过程。 目录1、项目内容、要求与分组情况总体介绍 12、概要设计 12.1开发工具及环境 12.2 任务及需求分析 12.3 工作原理 13、具体实现 13.1 类设计 13.2 关键技术处理 24、运行调试与分析讨论 35、设计体会与小结 36、参考文献 4附录:(源程序) 41、项目内容、要求与分组情况总体介绍本次实验的目标是制作一个计算器,可以进行简单的四则运算(加、减、乘、除)。小组的具体分工情况见下表:2、概要设计2.1开发工具及环境文本编辑器:记事本;运行环境:命令提示符(DOS环境)。2.2 任务及需求分析设计简

6、易计算器程序,实现简单的运算(加减乘除),具体任务如下:(1)计算器窗口界面布局设计;(2)各种计算功能的算法分析;(3)编程实现具体的计算功能,实现类的封装处理;(4)运行测试程序,调试纠正运行错误。2.3 工作原理(1)工作过程点击相应的数字键,即会在显示文档中显示该数字。进行相应的运算,首先输入第一个计算数字,然后输入运算符,再输入第二个计算数字,点击“=”按钮即得计算结果。同时,还有归零功能,点击该按钮,显示栏中即可归零。(2)工作原理利用图形界面编程实现,利用到的知识点包括: 窗体的创建和应用界面布局; 事件处理,包括按钮的动作事件处理,窗体事件。 接口知识:事件处理中通过接口约束事

7、件监听者必须实现相应接口中定义的方法。 流程控制语句:通过条件判断区分不同按钮,作不同操作处理。3、 具体实现3.1 类设计(1) 类名:jisuanqi作用:实现窗口的布局设定,事件注册。该类继承WindowAdapter类。类中含有的方法介绍: frame()方法:实现窗体的界面布局及按钮的事件注册。 main()方法:应用程序的入口,完成创建对象并调用frame()方法。(2) 类名:close该类为jisuanqi的内嵌类,作用是实现对关闭按钮的动作事件监听处理。该类实现ActionListener接口。类中含有的方法介绍: actionPerformed方法:实现关闭按钮的动作事件处

8、理。(3) 类名:buttonlistener该类为jisuanqi的内嵌类,作用是实现计算器中数字按钮和各类运算按钮等的动作事件监听处理。该类实现ActionListener接口。类中含有的方法介绍: actionPerformed方法:实现各类按钮的动作事件处理。 jisuan()方法:实现具体运算操作。3.2 关键技术处理(1) 窗体界面设计及注册事件监听Frame fm = new Frame(简单计算器); for (int i = 0; i = 16; i+) bi = new Button(ssi); for (int i = 0; i = 15; i+) p2.add(bi);

9、 /创建按钮 并添加到P2 b16.setBackground(Color.yellow); txt = new TextField(15); txt.setEditable(false); for (int i = 0; i = 16; i+) bi.addActionListener(new buttonlistener(); 注:此方法主要设置窗口、面板、各个按键。对各个按键进行定义(定义好各按键该实现什么功能)、排布,将各个按键注册到监听器上。(2) 按钮事件处理 区分事件源:通过事件对象的getSource()方法得到事件源。关键代码如下:Button btn = (Button)

10、e.getSource();if (btn.getLabel() = =) 改变计算器的结果。更改文本框的显示,先读原有的数据。txt.setText(txt.getText() + btn.getLabel(); 清除计算器的显示 if (btn.getLabel() = 归零) txt.setText(); (3) 窗体关闭class close implements ActionListener /退出 public void actionPerformed(ActionEvent e) System.exit(0); 【注】也可以执行窗体的dispose()方法实现窗体关闭。(4) 记

11、住前一个运算符 引入一个字符串类型的类变量 s记录前一个运算符,每次按运算符是先执行前一个运算符的结果。4、运行调试与分析讨论调试运行4*5运算,运算过程如下所示: 测试程序,点击数字键可将数据输入到文本框,点击“+”、“-”、“*”、“/”按钮可进行前一个运算,点击“=”可完成整个运算。从而达到能进行加、减、乘、除运算的简易计算器的功能。点击关闭图标可关闭计算器。5、设计体会与小结 通过独立完成五子棋对弈系统的后,发现自己在进行软件开发方面提高不少,同时积极利用所学到的新技术用于自己的设计开发过程。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。如:没有讨论五

12、子棋禁手的问题。另一个就是电脑按即定的算法去与玩家下子。这种算法有“固定”。不太会变,玩家若是仔细观察,可以掌握其规律。还有就是界面不是很华丽有待改进。尽管本系统存在着很多不足,但其实现了最重要的功能就是有人工智能。这也让我对计算机中的人工智能领域有一定的了解。另一个就在做系统的过程中,我学到了VisualC+的一些基本结构,尤其对于MFC有一定的了解。还有就是对于C+有更深一步的认识。6、参考文献1 丁振凡,JAVA语言程序设计,清华大学出版社.2 丁振凡,JAVA语言程序设计实验指导与习题解答,清华大学出版社.3 4 附录:(源程序)import java.awt.*;import jav

13、a.awt.event.*;import javax.swing.*;class ChessFrame extends JFrame implements ActionListenerprivate String strsize=标准棋盘,大号棋盘,超大号棋盘;private String strmode=人机对弈,人人对战;public static boolean iscomputer=true,checkcomputer=true;private int width,height;private ChessModel cm;private MainPanel mp;public Ches

14、sFrame() this.setTitle(五子棋游戏); cm=new ChessModel(1); mp=new MainPanel(cm); Container con=this.getContentPane(); con.add(mp,Center); this.setResizable(false); this.addWindowListener(new ChessWindowEvent(); MapSize(14,14); JMenuBar mbar = new JMenuBar(); this.setJMenuBar(mbar); JMenu gameMenu = new JM

15、enu(游戏); mbar.add(makeMenu(gameMenu, new Object 再来一局, null, 棋盘,null,模式, null,认输, null, 悔棋, null, 退出, this); JMenu lookMenu =new JMenu(外观); mbar.add(makeMenu(lookMenu,new Object 类型一,类型二,类型三,this); JMenu helpMenu = new JMenu(版本); mbar.add(makeMenu(helpMenu, new Object 关于, this);public JMenu makeMenu(O

16、bject parent, Object items, Object target) JMenu m = null; if(parent instanceof JMenu) m = (JMenu)parent; else if(parent instanceof String) m = new JMenu(String)parent); else return null; for(int i = 0; i items.length; i+) if(itemsi = null) m.addSeparator(); else if(itemsi = 棋盘) JMenu jm = new JMenu

17、(棋盘); ButtonGroup group=new ButtonGroup(); JRadioButtonMenuItem rmenu; for (int j=0;jstrsize.length;j+) rmenu=makeRadioButtonMenuItem(strsizej,target); if (j=0) rmenu.setSelected(true); jm.add(rmenu); group.add(rmenu); m.add(jm); else if(itemsi = 模式) JMenu jm = new JMenu(模式); ButtonGroup group=new B

18、uttonGroup(); JRadioButtonMenuItem rmenu; for (int h=0;hstrmode.length;h+) rmenu=makeRadioButtonMenuItem(strmodeh,target); if(h=0) rmenu.setSelected(true); jm.add(rmenu); group.add(rmenu); m.add(jm); else m.add(makeMenuItem(itemsi, target); return m;public JMenuItem makeMenuItem(Object item, Object

19、target) JMenuItem r = null; if(item instanceof String) r = new JMenuItem(String)item); else if(item instanceof JMenuItem) r = (JMenuItem)item; else return null; if(target instanceof ActionListener) r.addActionListener(ActionListener)target); return r;public JRadioButtonMenuItem makeRadioButtonMenuIt

20、em( Object item, Object target) JRadioButtonMenuItem r = null; if(item instanceof String) r = new JRadioButtonMenuItem(String)item); else if(item instanceof JRadioButtonMenuItem) r = (JRadioButtonMenuItem)item; else return null; if(target instanceof ActionListener) r.addActionListener(ActionListener

21、)target); return r; public void MapSize(int w,int h) setSize(w * 24, h * 27); if(this.checkcomputer) this.iscomputer=true; else this.iscomputer=false; mp.setModel(cm); mp.repaint(); public boolean getiscomputer() return this.iscomputer; public void restart() int modeChess = cm.getModeChess(); if(mod

22、eChess = 0) cm = new ChessModel(modeChess); MapSize(cm.getWidth(),cm.getHeight(); public void actionPerformed(ActionEvent e) String arg=e.getActionCommand(); try if (arg.equals(类型三) UIManager.setLookAndFeel( com.sun.java.swing.plaf.windows.WindowsLookAndFeel); else if(arg.equals(类型二) UIManager.setLo

23、okAndFeel( com.sun.java.swing.plaf.motif.MotifLookAndFeel); else UIManager.setLookAndFeel( javax.swing.plaf.metal.MetalLookAndFeel ); SwingUtilities.updateComponentTreeUI(this); catch(Exception ee) if(arg.equals(标准棋盘) this.width=14; this.height=14; cm=new ChessModel(1); MapSize(this.width,this.heigh

24、t); SwingUtilities.updateComponentTreeUI(this); if(arg.equals(大号棋盘) this.width=18; this.height=18; cm=new ChessModel(2); MapSize(this.width,this.height); SwingUtilities.updateComponentTreeUI(this); if(arg.equals(超大号棋盘) this.width=22; this.height=22; cm=new ChessModel(3); MapSize(this.width,this.heig

25、ht); SwingUtilities.updateComponentTreeUI(this); if(arg.equals(人机对弈) this.checkcomputer=true; this.iscomputer=true; cm=new ChessModel(cm.getModeChess(); MapSize(cm.getWidth(),cm.getHeight(); SwingUtilities.updateComponentTreeUI(this); if(arg.equals(人人对战) this.checkcomputer=false; this.iscomputer=fal

26、se; cm=new ChessModel(cm.getModeChess(); MapSize(cm.getWidth(),cm.getHeight(); SwingUtilities.updateComponentTreeUI(this); if(arg.equals(再来一局) restart(); if(arg.equals(悔棋) if(!checkcomputer) int result = JOptionPane.showConfirmDialog(this, (FiveChessAppletDemo.isBlack=false?白方悔棋,黑方是否同意?:黑方悔棋,白方是否同意?

27、); if (result = 0) JOptionPane.showMessageDialog(this, 双方同意悔棋决定,棋盘清空!请继续.); restart(); if(arg.equals(认输) int result = JOptionPane.showConfirmDialog(this, 是否认输?); if (result = 0) JOptionPane.showMessageDialog(this,游戏结束,+(FiveChessAppletDemo.isBlack=true?黑方认输,白方获胜!:白方认输,黑方获胜!); if(arg.equals(关于) JOpti

28、onPane.showMessageDialog(null, 制作者:n 制作时间:2015年6月25日, 课程设计制作介绍,JOptionPane.PLAIN_MESSAGE ); if(arg.equals(退出) System.exit(0);class ChessModel private int width,height,modeChess;private int x=0,y=0;private int arrMapShow;private boolean isOdd,isExist;public ChessModel() public ChessModel(int modeChes

29、s) this.isOdd=true; if(modeChess = 1)PanelInit(14, 14, modeChess); if(modeChess = 2)PanelInit(18, 18, modeChess); if(modeChess = 3)PanelInit(22, 22, modeChess);private void PanelInit(int width, int height, int modeChess) this.width = width; this.height = height; this.modeChess = modeChess; arrMapShow = new intwidth+1height+1; for(int i = 0; i = width; i+)for(int j = 0; j = height; j+) arrMapShowij

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1