您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > JAVA课程设计(论文)-Hannoi塔
辽宁工业大学JAVA程序设计课程设计(论文)题目:Hannoi塔院(系):软件学院专业班级:软件技术091班学号:888888888学生姓名:tianxi指导教师:tianxi教师职称:助教起止时间:2010.12.1至2010.12.16程序设计专题(报告)任务及评语院(系):软件学院教研室:软件教研室学号08888888学生姓名tianxi专业班级软件技术091班程序设计(报告)题目Hannoi塔程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩:指导教师签字:2009年12月20日辽宁工业大学课程设计说明书(论文)目录第1章课程设计的目的与要求...........................................11.1课程设计目的........................................................11.2课程设计的实验环境..................................................11.3课程设计的预备知识..................................................11.4课程设计要求........................................................1第2章课程设计内容........................................................22.1课程设计主要内容....................................................22.2概要设计............................................................22.2.1自定义类说明..................................................22.4详细设计............................................................42.4测试分析...........................................................142.4.1程序运行情况.................................................14图2.4.1-2游戏胜利时界面...................................................152.4.2程序异常处理.................................................15参考资料17辽宁工业大学课程设计说明书(论文)1第1章课程设计的目的与要求1.1课程设计目的《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2课程设计的实验环境硬件要求能运行Windows9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。辽宁工业大学课程设计说明书(论文)2第2章课程设计内容2.1课程设计主要内容我设计的Hannoi塔,除了要编写的6个java文件所给出的类外,还需要java系统提供的一些重要的类,如JButton,JCheckBox等。汉诺塔中有三个座,名字分别为A,B,C。刚开始的时候A塔上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。程序要求用户在移动盘子的过程中,不允许吧大盘子放置在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。用户可以通过Hannoi塔界面的提供的改变盘子数目功能来改变盘子的数目,同时可以改变盘子的大小以及改变盘子和界面的背景颜色,而且还可以选择控制背景音乐的播放。用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上。用户在移动盘子的过程中,可以随时单击Hannoi塔界面上提供的按钮,重新开始。2.2概要设计主要要实现的功能有:完成汉诺塔的“手工移动演示”;完成汉诺塔的“自动移动演示”;增加计时功能,即显示用户完成移动盘子所花费的时间;用户可以设置最大和最小盘子的大小;用户可以选择播放和暂停背景音乐;用户可以设置盘子的数目;用户可以设置盘子的颜色以及背景颜色;用户可以将自动移动盘子的文本信息保存到文件;2.2.1自定义类说明***********************************************************类名:JButton**作用:自定义主类,实现圆盘的类Disc继承JButton类*继承的父类:Disc类**实现的接口:没有***********************************************************辽宁工业大学课程设计说明书(论文)3表1-成员变量表表2.1JButton成员变量成员变量描述变量类型名称控制盘子数目StringJLabel重新开始Stringrenew.setText开始游戏Stringrenew.setText背景颜色Stringbgcolor盘子颜色Stringpzcolor表2-方法表表2Chesspad方法方法名功能备注fillRect()绘制出矩形区域构造方法g.fillOval()绘制相同数目点构造方法drawString()绘制出A、B、C座构造方法setBackground()设置背景颜色和盘子颜色构造方法Timer(inta,Objectb)创建一个计时器构造方法stop()停止计时器计时接口方法write保存文件接口方法actionPerformed事件处理evaluate评估辽宁工业大学课程设计说明书(论文)42.4详细设计HannoiWindow.javaimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.Timer;importsun.audio.*;importjava.util.*;importjava.util.Date;importjava.io.*;publicclassHannoiWindowextendsJFrameimplementsActionListener,ItemListener{Towertower=null;intamountOfDisc=3;char[]towerName={'A','B','C'};JButtonrenew=null;JButtonautoButton=null;Timert;JTextFieldtimeShow,w11,h11,w22,h22;JPanelpanel1,panel2;JSplitPanerightPanel,leftPanel;TowerPoint[]pointD;TowerPoint[]pointE;JPanelcenter=newJPanel();longtime1=0,leftTime,leftHour,leftMinute,leftSecond;FlowLayoutflow;JComboBoxli;JButtonbt1,bt2;JPanelmax,min;JLabelshumu;JPanelyanse;JButtonbgcolor,pzcolor;JCheckBoxyinyue;ContinuousAudioDataStreamcas;HannoiWindow(){tower=newTower(towerName);tower.setAmountOfDisc(amountOfDisc);tower.setMaxDiscWidth(120);tower.setMinDiscWidth(50);tower.setDiscHeight(16);tower.putDiscOnTower();t=newTimer(1000,this);t.setInitialDelay(1000);timeShow=newJTextField(10);辽宁工业大学课程设计说明书(论文)5timeShow.setHorizontalAlignment(SwingConstants.RIGHT);timeShow.setEditable(false);panel1=newJPanel();panel1.add(newJLabel(用时:));panel1.add(timeShow);panel1.setBorder(BorderFactory.createTitledBorder(计时器));li=newJComboBox();li.addItem(3);li.addItem(4);li.addItem(5);li.addItem(6);li.addItem(7);li.addItem(8);li.addItem(9);li.addItem(10);li.addItem(11);li.addItem(12);li.addItem(13);li.addItem(14);li.addItem(15);bt1=newJButton(确定);bt2=newJButton(取消);bt1.addActionListener(this);bt2.addActionListener(this);panel2=newJPanel();panel2.setLayout(null);shumu=newJLabel(盘子数目:);panel2.add(shumu);panel2.add(li);panel2.add(bt1);panel2.add(bt2);shumu.setBounds(5,0,80,35);li.setBounds(80,5,80,25);bt1.setBounds(20,290,60,25);bt2.setBounds(90,290,60,25);max=newJPanel();max.setLayout(n
本文标题:JAVA课程设计(论文)-Hannoi塔
链接地址:https://www.777doc.com/doc-5317479 .html