《java课程设计蜘蛛纸牌以及atm模拟柜台无需修改程序实验报告》由会员分享,可在线阅读,更多相关《java课程设计蜘蛛纸牌以及atm模拟柜台无需修改程序实验报告(48页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 共 48 页Java 课程设计实验报告课程设计实验报告专业:专业: 信息与计算机科学信息与计算机科学 姓名:姓名: 吕奇吕奇 学号:学号: 1412010042 班级:班级: 信计信计 1402 班班 指导老师:指导老师: 贾瑜贾瑜 完成时间:完成时间: 2016 年年 6 月月 22 日日 第 2 页 共 48 页目录目录目录2蜘蛛纸牌31.概述.31.1 课程设计的目的31.2 课程设计的内容与要求31.3 课程设计的环境31.4 课程设计的功能模块31.4.1 程序的 UML 图31.4.2 程序的源代码61.4.3 程序的截图301.5 课程设计问题与小结.30ATM 柜员
2、机模拟程序.311.1 课程设计的目的311.2 课程设计的内容与要求311.3 课程设计的环境311.4 课程设计的功能模块321.4.1 程序的 UML 图.321.4.2 程序的源代码.33第 3 页 共 48 页1.4.3 程序的截图.461.5 课程设计问题与小结48蜘蛛纸牌游戏蜘蛛纸牌游戏1.概述1.1 课程设计的目的1.1.1 加深对Java 语言与面向对象技术课程基础知识的理解,掌握 Java 语言面向对象程序设计的开发方法和步骤;1.1.2 进一步理解面向对象程序设计的思想和方法,利用 Java 语言进行程序设计的能力;1.1.3 课程设计将课本上的理论知识和实际应用相结合,
3、锻炼学生发现问题、分析问题和解决问题的能力。加强学生研发、编写、调试程序的能力;1.1.4 培养学生在项目开发中团队合作精神、创新意识及能力;1.1.5 提高学生科技论文写作能力,规范完成课程设计报告。1.2 课程设计的内容与要求1.2.1该程序是由四个子程序组成的,Spider.java,SpiderMenuBar.java,PKcard.java,AboutDialog.javaAboutDialog.java 和相关图片组成的一个窗口游戏。1.2.2 该程序为一个窗口游戏,上方为一排牌,相互可以按 K 到 A 的顺序堆叠后则 将牌放到左下角,当无牌排序时,右下方的牌继续排序,直到所有的牌
4、牌好为止。1.2.3该程序分为三个级别:初级:单花色,中级:双花色,高级:四花色,上方有 个菜单栏显示各个操作,以及关于和帮助。1.3程序的环境:JDK1.6.0,eclipse第 4 页 共 48 页1.4程序的功能模块:1.4.1 程序的 UML 图:JDialogJDialogAboutDialogAboutDialog+AboutDialog() +pack()JLabelJLabelMouseListenerMouseListenerMouseMotionListenerMouseMotionListenerPKcardPKcard+ getCardType():int + getC
5、ardValue():int + isCardCanMove():boolean + setCanMove(boolean can):void + moveto(Point point):void + turnRear():void + turnFront():void +PKCard(String name, Spider spider) + mouseMoved(MouseEvent arg0):void + moving(int x, int y):void + mouseDragged(MouseEvent arg0):void + mouseExited(MouseEvent arg
6、0):void + whichColumnAvailable(Point point):int + setNextCardLocation(Point point):void第 5 页 共 48 页+ mouseReleased(MouseEvent mr):void + mousePressed(MouseEvent mp):void + run():void + flashCard(PKCard card):void + mouseClicked(MouseEvent arg0): voidJFrameJFrameSpider+ haveFinish(int column):void +
7、setGroundLabelZOrder():void + deal():void + showEnableOperator():void + setCardsLocation():void + setNA():void + randomCards():void + initCards():void + setGrade(int grade):void + getC():int + newGame():void +Spider():JMenuBarSpiderMenuBar+ run():void SpiderMenuBar(Spider spider)第 6 页 共 48 页1.4.2 程序
8、的源代码:AboutDialog import javax.swing.*;import java.awt.*;/*“关于”窗口*/public class AboutDialog extends JDialogJPanel jMainPane = new JPanel();JTabbedPane jTabbedPane = new JTabbedPane();private JPanel jPanel1 = new JPanel();private JPanel jPanel2 = new JPanel();private JTextArea jt1 = new JTextArea(“将电脑
9、多次分发给你的牌按照相同的花色由大至小排列起来。直到桌面上的牌全都消失。“); private JTextArea jt2 = new JTextArea(“该游戏中,纸牌的图片来自于 Windows XP 的纸牌游戏,图片权属于原作者所有!“); /*构造函数*/public AboutDialog()setTitle(“蜘蛛牌“);setSize(300,200);setResizable(false);setDefaultCloseOperation (WindowConstants.DISPOSE_ON_CLOSE); Container c = this.getContentPane
10、();jt1.setSize(260,200);jt2.setSize(260,200);jt1.setEditable(false);jt2.setEditable(false);jt1.setLineWrap(true); jt2.setLineWrap(true); 第 7 页 共 48 页jt1.setFont(new Font(“楷体_GB2312“, java.awt.Font.BOLD, 13);jt1.setForeground(Color.blue);jt2.setFont(new Font(“楷体_GB2312“, java.awt.Font.BOLD, 13);jt2.s
11、etForeground(Color.black);jPanel1.add(jt1);jPanel2.add(jt2);jTabbedPane.setSize(300,200);jTabbedPane.addTab(“游戏规则“, null, jPanel1, null);jTabbedPane.addTab(“声明“, null, jPanel2, null);jMainPane.add(jTabbedPane);c.add(jMainPane);pack();this.setVisible(true); PKCard import java.awt.*;import java.awt.ev
12、ent.*;import javax.swing.*;public class PKCard extends JLabel implements MouseListener,MouseMotionListener/纸牌的位置Point point = null;Point initPoint = null;int value = 0;int type = 0;String name = null;Container pane = null;第 8 页 共 48 页Spider main = null;boolean canMove = false;boolean isFront = false
13、;PKCard previousCard = null;public void mouseClicked(MouseEvent arg0)public void flashCard(PKCard card)/启动 Flash 线程new Flash(card).start();/不停的获得下一张牌,直到完成if(main.getNextCard(card) != null)card.flashCard(main.getNextCard(card);class Flash extends Threadprivate PKCard card = null;public Flash(PKCard c
14、ard)this.card = card;/*线程的 run()方法*为纸牌的正面设置白色图片*/public void run()boolean is = false;ImageIcon icon = new ImageIcon(“images/white.gif“);for (int i = 0; i 30 else if (b 71)a = -1;if (a != -1)Point p = main.getLastCardLocation(a);if (p = null) p = main.getGroundLabelLocation(a);b = y - p.y;if (b = 96)
15、a = -1;第 12 页 共 48 页return a;public void mouseEntered(MouseEvent arg0)public void mouseExited(MouseEvent arg0)/*用鼠标拖动纸牌*/public void mouseDragged(MouseEvent arg0)if (canMove)int x = 0;int y = 0;Point p = arg0.getPoint();x = p.x - point.x;y = p.y - point.y;this.moving(x, y);/*返回值:void*方法:移动(x,y)个位置*/
16、public void moving(int x, int y)PKCard card = main.getNextCard(this);Point p = this.getLocation();/将组件移动到容器中指定的顺序索引。 pane.setComponentZOrder(this, 1);/在 Hashtable 中保存新的节点信息main.table.remove(p);p.x += x;p.y += y;this.setLocation(p);main.table.put(p, this);if (card != null) card.moving(x, y);第 13 页 共 48 页public void mouse