Java程序设计报告

合集下载

实验报告(二)

实验报告(二)

北京信息科技大学信息管理学院实验报告课程名称java程序设计实验项目实验二类和对象实验仪器PC、jdk、jcreator专业_______ _________班级/学号________ ___学生姓名_______ __________实验日期实验地点成绩_______________________指导教师_____李春强_____________return p;}int getPower(int q){return q;}}Lab2_2:public class TV {void play(){System.out.println("正在播放动物世界");}}public class Family {TV homeTV;void buyTV(TV tv){tv=this.homeTV;System.out.println("购买一台电视");}}public class MainClass {public static void main(String args[]){ TV haierTV=new TV();Family zhangsanFamily =new Family();zhangsanFamily.buyTV(haierTV);haierTV.play();}}Lab2_3:public class Land {public static void main(String args[]){ Village.WaterAmount=200;System.out.println("水井中有水"+Village.WaterAmount+"升");Village v1=new Village();Village v2=new Village();int m=50;System.out.println("v1从水井中取水"+m+"升");v1.WaterAmount-=m;System.out.println("v2发现水井中有水"+Village.WaterAmount+"升");System.out.println("v2从水井中取水"+m+"升");v2.WaterAmount-=m;System.out.println("v1发现水井中有水"+Village.WaterAmount+"升");}}public class Village {public static int WaterAmount;}Lab2_4:import wukong.xiyou.*;public class SunRise{public static void main(String args[]){SquraEquation sq=new SquraEquation();sq.getRoot(100);System.out.println("此数的平方根为"+"sq.getRoot()");}}package java.wukong.xiyou;public class SquraEquation{public double getRoot(double num){ return Math.sqrt(num);}}1.实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;2.实验准备由学生在实验或上机之前填写,教师应该在实验前检查;3.实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;4.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;5.源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。

Java语言程序设计实验报告

Java语言程序设计实验报告

本科实验报告课程名称:Java语言程序设计实验地点:致远楼专业班级:软工1507班学号:2015005682 学生姓名:李俊慧指导教师:李君婵实验结果1.2.3.System.out.println("Please input and ending with '.' :");BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));A= buf.readLine();// System.out.println(A);B=A.toCharArray();for(i=0;B[i]!='.';i++) {if(B[i]==' ') sum++;}sum+=1;System.out.println("the number of words:"+(sum));}}实验结果1.2.3.public void check() {int t2;for(t2=0;t2<100;t2++) {if(Merchandise[t2]!=null) {System.out.print("Name:"+Merchandise[t2]);System.out.print(" Inventory:"+Inventory);System.out.println();}}}public void query() {ShowMe();// System.out.print(" Inventory:"+Inventory);}}实验结果1.2.3.4.public static void main(String args[]) {Javashiyan5_3 tp1 = new Javashiyan5_3(4000,"Fast");tp1.start();Javashiyan5_3 tp2 = new Javashiyan5_3(5000,"Middle");tp2.start();Javashiyan5_3 tp3 = new Javashiyan5_3(6000,"Slow");tp3.start();}}实验结果1.actionevent myevent = new actionevent(btn);btn.addActionListener(myevent);frm.setVisible(true);}}class actionevent implements ActionListener { JButton btn;public actionevent(JButton btn) {this.btn = btn;}public void actionPerformed(ActionEvent e) {String s1="Click Me";String s2="Click Me Again";String s=((JButton)(e.getSource())).getText();// ((JButton)e.getSource()).setText(s);if(s==s1) btn.setText(s2);if(s==s2) btn.setText(s1);}}实验结果1.2.if(mark==1) {A[n]=i;n++;}}for(j=0;j<200&A[j]!=0;j++){fw.write(A[j]);}fw.close();fr = new FileReader("/home/liberty/myJavachengxu/myJavashiyan/Javashiyan7 /Javashiyan7_5/Javashiyan7_5_sushu.txt");int value;while((value=fr.read())!=-1) {System.out.print(value+"\t");q++;if(q%5==0)System.out.println();}fr.close();System.out.println();System.out.println("However,the 'txt' file cannot be viewed by VIM!!!");}}实验结果1.2.3.4. 5.。

java语言程序设计实验报告

java语言程序设计实验报告

java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。

实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。

java课程设计报告【范本模板】

java课程设计报告【范本模板】

南京晓庄学院《JAVA程序设计》课程设计报告题目: ATM系统的设计与实现姓名:黄强学号:14131609班级: 14计算机转本2班指导教师:徐家喜完成时间成绩:信息工程学院2017年6月目录1摘要 (1)1.1系统开发背景 (1)1。

2系统开发的目的和意义 (2)1。

3完成的主要工作 (2)2需求分析和总体设计 (3)2.1需求分析与设计思路 (3)2。

1.1关键技术说明 (3)2。

1.2需求分析 (3)2.1.3系统设计方案与思路 (3)2。

1.4系统目录结构说明 (4)2。

2系统功能结构 (5)2.3数据库设计 (6)3详细设计 (7)3.1系统模块实现 (7)3。

1.1ATM主界面实现 (7)4系统运行结果 (11)5课程设计总结 (12)模拟ATM系统的设计与实现1摘要1.1系统开发背景随着Internet网络的迅速发展,作为电子商务的ATM自动取款系统以其方便、快捷和高效的优势,逐步成为新兴电子商务的经营模式和理念,人们已经不再是只满足于低效率的排队等待,而是渴望能充分享受网络所带来的更多的便利.ATM自动取款系统恰恰适应了如今的快节奏生活。

本文以实际ATM取款应用为北京,阐述了系统开发过程的开发方法、系统分析以及一般步骤。

本ATM系统的目的就是建立一个客户平台,用户使用此平台进行查询余额、存款、取款、转账、等业务办理。

相对于柜员操作一样的,不过ATM系统有的功能有权限设置,一些功能只有银行柜员才能进行的业务办理。

ATM取款系统的针对的用户群是使用此软件系统的用户,用户做为系统的服务群体,可以使用数据库已有的账号与密码,登陆ATM系统。

当用户成功登陆后就可以根据用户的需求进行各项业务的办理,办理完所有的手续后,用户的输入的新资料以及办理的业务处理后的信息都会反馈到数据库并且都会存入到数据库中。

这样用户就完成了办理业务。

关键词:ATM;MySQL; Java;1.2系统开发的目的和意义随着信息时代科技的飞速发展,使用ATM取款机、计算机等技术的发展,不仅提高了工作效率,而且大大的提高了其安全性。

java课程设计报告

java课程设计报告

java课程设计报告随着Java言的不断发展,越来越多的编程人员开始使用 Java开发应用程序,这就催生出了一种新的课程 Java程设计。

本文旨在通过总结 Java程设计的过程及其相关知识,以便于编程人员以及研究者对 Java程设计有一个更深入的了解。

首先,要完成 Java程设计,需要了解 Java语言特性和编程工具。

这里不仅要掌握 Java言本身的知识,还要熟悉 Java架和测试框架,这样才能开发出能够完成各种任务的应用程序。

此外,学习Java程设计的人还需要具备一定的网络知识,这样可以更好地了解Java程设计的用途,以及 Java发的环境,否则,将很难完成 Java程设计。

其次,要开始 Java程设计,设计人员要先明确设计内容,比如要设计的应用程序的功能、界面要求等,还要考虑安全性、可维护性等方面,以确保设计出来的程序在实际应用中能够如预期般完成任务。

之后,设计人员就可以根据设计内容,编写 Java序,实现功能。

此时,设计人员要根据需求分析,合理安排代码结构,并确定需要用到的类库和技术;同时,实现功能时也要注意代码质量,要遵守 Java 程的规范,要避免出现内存泄漏等问题。

最后,在完成 Java程设计之后,设计人员要进行测试,确保程序能够完成预期任务。

这里可以使用基于 Junit(Java元测试框架)的测试框架,测试各个类的接口和输出内容,以确保程序功能正常,做到稳定可靠。

总的来说,要完成 Java程设计,不仅要有良好的 Java言和编程工具的基础知识,还要了解 Java发的环境,还要具备一定的网络知识,最后要仔细的进行测试,确保设计出来的程序稳定可靠,才能完成 Java程设计。

总之,很明显,Java程设计并不容易,但所能学到的知识也丰富多样,对于以后的研究和工作也有很大的帮助,因此,建议编程人员考虑学习 Java程设计,来拓展自己的知识面和应用能力。

东北石油大学Java程序设计学生实验报告.doc

东北石油大学Java程序设计学生实验报告.doc

东北石油大学学生实验报告实验课程名称_______________实验一 java 概述一、 实验目的1. 掌握如何下载Java 安装软件包并了解和使用JDK 环境;2. 熟悉JDK 集成环境的基本命令、功能和基本用法,并学会配置Java 环境变量;3. 简述JDK, JRE 的区别并简述path 和classpath 环境变量的作用;4. 学习并熟练掌握使用JDK 环境进行Java 程序开发的全过程(包括:源程序的编 辑、编译、调试、运行和结果查看);二、实验内容 1. JDK 开发包的下载与安装(JDK 版本可选); 2. 根据要求写出统环境变量的配置; 3. 编写一个JAVA 程序进行调试,掌握在JDK 开发包支持下编译和运行的过程; 三、 实验记录1. JDK 开发包的下载与安装(1)从Oracle 官网下载安装包安装,安装路径:C:\Program Files\Javagpa SE D<*volo|^m<*r>r Kit 8 LJpdRo* 131 (G-4QX 立0 M 丘人E H B I. WRn 皿"MIK ■内毛F. OVW1 您 心 9 MK Mteg *31变星值CV):2.配置系统环境变量path和classpath3. 编写java 程序,并编译、运行: 程序如下:public class Students{public static void main(String[] args){System, out. printin(,z 这是我编写的第一个Java 程序! “);}}运行结果:变里名(N):变重值(V):实验二运算符、流程控制语句}运行结果:2.课堂案例2:键盘录入x的值,计算出y的并输出x>=3, y二2*x +l;-l〈x〈3, y 二 2 *x; x<=-l , y 二 2 * x - 1程序如下:import java. util. Scanner; class ExamplelO{public static void main(String[] args){Scanner sc=ncw Scanner (Systom. in); System, out. print In (〃请输入x 的值:〃);int x二sc. nextlnt ();int y=0;if (x>3) {y二2*x+l;}else if (x>~l){y二2*x;}else {y二2*x-l;}System, out. printIn (〃y二〃+y);}}3.实验题1:编程实现1! +2! +3!+・・・..+10!的结果并输出结果。

java程序设计实验报告

java程序设计实验报告

java程序设计实验报告
实验一:实现个人信息管理系统
实验目的:学习如何使用Java语言来完成一个简单的面向对象程序设计。

实验内容:
本次实验的任务是开发一个个人信息管理系统,可以完成一些基本的信息管理功能,如增加、删除、查询和修改个人信息等。

实验步骤:
1. 定义Person类并实现其属性和方法。

2. 在主类中实现简单的用户交互界面。

3. 实现文件持久化,将程序中的信息储存在文件中。

4. 实现增加、删除、查询和修改个人信息的功能。

实验结论:
通过本次实验,我学会了如何使用Java语言来实现一个简单的面向对象程序设计。

在开发过程中,我学会了如何定义类、实现属性和方法,如何进行用户交互界面的设计,以及如何将程序中的信息储存在文件中。

Java程序设计报告(供应合同台账系统)

Java程序设计报告(供应合同台账系统)

北华大学Java 课程设计——供应合同台帐系统姓名:班级:信息13-2学号:6院系:电子信息工程指导教师:设计日期:2015年12月目录摘要 ................................................................................................ .2一、总体概述 (3)二、需求分析 (3)三、开发环境 (5)1、Java语言简介 (5)2、eclipse (6)3、MySQL (6)四、架构图 (7)1、合同管理流程 (7)2、系统框图 (8)五、界面设计及基本操作说明 (9)1、安装 (9)2、注册 (9)3、登陆 (10)4、信息查询及修改 (11)5、添加信息 (12)6、打印信息 (12)六、数据库设计 (13)七、心得体会 (16)八、参考文献 (16)附录: (17)摘要基于eclipse开发环境,应用MySQL数据库,使用Java语言编写供应合同台账系统,为企业提供决策、计划、控制与经营绩效评估的全方位、系统化的合同管理平台。

多用户,分权限,联网独立操作该系统。

本系统遵循商务智能技术架构,由数据采集、数据仓库构成,应用架构采用两层架构,分别是:客户端程序/数据库服务器,应用服务器采用J2SE标准进行开发,数据库使用MySQL。

各层间可实现功能服务策略交互。

关键字Java ;合同;台账系统一、总体概述本课题为供应合同台账系统,实现合同的有序管理。

合同管理系统,是建立在信息技术基础上,利用现代企业的先进管理思想,为企业提供决策、计划、控制与经营绩效评估的全方位、系统化的合同管理平台。

通过电子台账市委可以有效快捷的管理全市重点工程和工程建设领域突出问题进行专项治理情况,针对在建项目中存在审批资料不完整、手续不完善等问题,通过建立台账等措施跟踪查办。

合同管理是企业经营管理基础工作上的重要内容,通过加强管理,规范企业合同的签订和履行,能够有效防范风险、优化管理降低成本、提高效益。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

楚雄师范学院2015年春季期末Java程序设计报告项目名称:基于Java平台开发的五子棋程序设计学院:物理与电子科学学院专业:电子信息科学与技术班级:2 0 1 3 级电信一班组员姓名:杨邦桂许勇董俊宏课程教师:程满目录引言 (3)第一章设计目的和要求 (3)第二章JAVA语言概述 (3)2.1 JAVA简介 (3)2.1.1 JAVA的基本特点 (3)2.2 JAVA工具JDK (4)第三章程序的设计思路和算法 (4)3.1 人机博弈的要点 (4)3.2 五子棋特点及规则 (4)3.3 设计思路 (5)3.3.1 (5)第四章测试及运行效果 (5)4.1棋盘系统主界面 (5)4.2下期博弈过程界面 (6)4.3黑方赢的结果 (6)4.4白方赢的结果 (7)第五章设计体会与总结 (8)附录 (9)源程序代码及简要说明: (9)引言随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。

如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。

网络五子棋游戏是使用Java语言开发的一款游戏。

它使用SOCKET建立连接,多线程处理数据,以及可嵌入网络浏览器的APPLET作为客户端,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。

通过对该软件的编写,还可以巩固学生对以上各种知识的掌握和理解。

第一章设计目的和要求1.1 实现一个简单的五子棋游戏程序,包括如下两个界面: (1)对弈及角色(黑方先落棋)。

(2)在游戏界面,有游戏栏(开局、悔棋、退出),帮助栏;显示区;棋盘区。

1.2在实际系统中使用、实现人工智能的相关算法1.3进一步加深对人工智能算法的理解第二章JAVA语言概述2.1 JAVA简介JAVA是Sun Microsystem公司开发的编程语言,是一个简单,面向对象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言。

2.1.1 JAVA的基本特点(1) 简单性Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。

Java实现了自动的垃圾收集,简化了内存管理的工作。

(2) 面向对象Java提供了简单的类机制和动态的构架模型。

对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。

(3) 多线程多线程使应用程序可以同时进行不同的操作,处理不同的事件。

在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。

(4) 分布性Java是面向网络的语言。

通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。

(5)体系结构中立Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java 解释器生成与体系结构无关的字节码结构的文件格式。

为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。

(6) 安全性用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

2.2 JAVA工具JDK(1)Java编译器Java编译器将Java源代码文件编译成可执行的Java字节码。

Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。

源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。

(2)Java解释器Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。

第三章程序的设计思路和算法3.1 人机博弈的要点人机对弈的程序,至少应具备以下5个部分:(1)某种在机器中表示棋局的方法,能够让程序知道博弈的状态。

(2)产生合法走法的规则,以使博弈公正地进行,并可判断人类对手是否乱走。

(3)从所有合法的走法中选择最佳的走法技术。

(4)一种评估局面优劣的方法,用以同上面的技术配合做出智能的选择。

(5)一个界面,有了他,这个程序才能用。

3.2 五子棋特点及规则五子棋的娱乐性强、规则简单、易学、流行性广。

普通人不需长时间专门训练即可自如行棋。

因此极受大众欢迎。

五子棋的规则为:(1)棋盘采用像围棋盘一样的15路或19路线的棋盘,在此采用19路的棋盘。

(2)下法两人分别执黑白两色棋子。

轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。

(3)输赢判断黑、白双方有一方的五个棋子在横、竖或斜方向上连接成一线即为该方赢。

(4)特殊规定职业五子棋虽然对黑棋采取了种种限制,但黑子先行的优势依然很大。

因此,在高段位的职业比赛中,又出现了三种特殊的规定。

a. 指定打法:是指比赛双方按照约定好的开局进行对弈,由白棋先行。

b. 三手可交换:是指黑棋下盘面第3手棋后,白方在下第四手之前,如感觉黑方棋形不利于己方,可提出交换,即执白棋一方变为执黑棋一方,而黑方不可以不换。

c. 五手两打法:是指黑棋在下盘面上关键的第5手棋时,必须下两步棋,让白棋在这两步棋中拿掉一粒棋子,然后再继续对弈。

一般说来,白棋肯定拿掉对白方不利的一点,而保留对黑方较为不利的那点让黑方行棋。

3.3 设计思路3.3.1开始——下棋——判断输赢——结束游戏或重新再来——退出。

1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。

同时注意面板的设计,使面板设计的尽量胡的合理美观。

2.编写一个功能判断落子的位置及画出相应的黑白棋子。

3.判断胜负第四章测试及运行效果4.1棋盘系统主界面图4-1初始化棋盘效果,玩家为黑棋4.2下棋博弈过程界面图4-2黑白棋博弈4.3黑方赢的结果图4-3黑方胜利界面4.4白方赢的结果图4-4白方胜利界面第五章设计体会与总结Java编程最强大的地方不是它是容易学,或者难学,而是它拥有一个强大的库。

JAVA是一个完全面向对象的语言,JAVA的命名规则是很容易让人接受的。

而且容易被编程人员记住。

经过实践训练,对JAVA的综合应用能力有了较大的提高,另外对JAVA的特点有了更深层次的认识。

这次实践中使用的代码虽然不长,但类与类之间也有很强的逻辑关系,这就是面向对象语言的最大优势,这样可使我们更轻松的运用JAVA。

经过努力,查阅相关资料,终于完成该课题,虽然效果不是很好,但亲手做过之后还是很有成就感的。

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。

这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。

它还让我学会了在网上查阅那些无限的资料。

通过对此课题的开发,使我对用Eclipse开发平台有了一个比较清楚的认识,体会到理论和实践的重要性。

由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。

附录源程序代码及简要说明:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Timer;import java.util.TimerTask;import ng.Thread;public class WZQ_2008 extends Frame implements ActionListener {Timer t=new Timer(true);//Thread mt=new MyThread(this);MenuBar mb=new MenuBar();Menu myx=new Menu("游戏");Menu mbz=new Menu("帮助");MenuItem mikj=new MenuItem("开局");MenuItem mihq=new MenuItem("悔棋");MenuItem mitc=new MenuItem("退出");MenuItem migy=new MenuItem("关于");int x=0;int y=0;String stb="五子棋游戏请黑方落子";String stw="五子棋游戏请白方落子";boolean isBlack=true;String str="Game Over";boolean over=false;int count=0;int jj=30;int r=25;String str1;int [][]date=new int[15][15];int i=0;public WZQ_2008(){this.setMenuBar(mb);mb.add(myx);mb.add(mbz);myx.add(mikj);mikj.addActionListener(this);mikj.setEnabled(false);myx.add(mihq);mihq.setEnabled(false);mihq.addActionListener(this);myx.add(mitc);mitc.addActionListener(this);mbz.add(migy);migy.addActionListener(this);this.setTitle(stb);this.setBounds(100,100,485,500);this.setBackground(new Color(206,148,49)); this.setResizable(false);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});this.addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent e ){if(over){return;}x=(e.getX()-30+jj/2)/jj;y=(e.getY()-60+jj/2)/jj;if(x<0||x>14||y<0||y>14){return;}if(date[x][y]!=0){return;}if(isBlack){setTitle(stw);date[x][y]=1;}else{setTitle(stb);date[x][y]=2;}mikj.setEnabled(true);mihq.setEnabled(true);isBlack=!isBlack;pd();repaint();}});this.setVisible(true);}public void pd(){int xq=0,xz=14;int yq=0,yz=14;if(x-4>0){xq=x-4;}if(x+4<14){xz=x+4;}if(y-4>0){yq=y-4;}if(y+4<14){yz=y+4;}pdh(xq,xz);count =0;pds(yq,yz);count=0;pdfx(xq,xz);count=0;pdzx(xq,xz);}public void pdzx(int xq,int xz)for(int i=xq;i<=xz;i++){if(y+x-i<0){break;}if(y+x-i>14){continue;}if(date[i][y+x-i]==date[x][y]){count++;isOver();}else{count=0;}}}public void pdfx(int xq,int xz){for(int i=xq;i<=xz;i++){if(y-x+i<0){continue;}if(y-x+i>14){break;}if(date[i][y-x+i]==date[x][y]){count++;isOver();}else{count=0;}}public void pds(int yq,int yz){for(int i=yq;i<=yz;i++){if(date[x][i]==date[x][y]){count++;isOver();}else{count=0;}}}public void pdh(int xq,int xz) {for(int i=xq;i<=xz;i++){if(date[i][y]==date[x][y]){count++;isOver();}else{count=0;}}}public void isOver(){if(count==5){over=true;if(date[x][y]==1){str1="黑方胜利";}else if(date[x][y]==2){str1="白方胜利";}//mt.start();//for(int i=0)t.schedule(new MyTimer(this),100,500);this.repaint();}}public void actionPerformed(ActionEvent e){if(e.getSource()==mikj){mikj.setEnabled(false);mihq.setEnabled(false);for(int i=0;i<date.length;i++){for(int j=0;j<date[i].length;j++){date[i][j]=0;}}isBlack=true;this.setTitle(stb);over=false;this.repaint();}if(e.getSource()==mihq){mihq.setEnabled(false);date[x][y]=0;if(isBlack){this.setTitle(stw);}else{this.setTitle(stb);}isBlack=!isBlack;this.repaint();}if(e.getSource()==mitc){this.dispose();}if(e.getSource()==migy){new MyAbout(this);}}public void update(Graphics g){paint(g);}public void paint(Graphics g){Image ii=this.createImage(485,500);Graphics gg=ii.getGraphics();paintBuffer(gg);g.drawImage(ii,0,0,this);}public void paintBuffer(Graphics g){for(int i=0;i<15;i++){g.drawLine(30,60+i*jj,30+14*jj,60+i*jj);g.drawLine(30+i*jj,60,30+i*jj,60+14*jj);}for(int i=0;i<date.length;i++){for(int j=0;j<date[i].length;j++){if(date[i][j]==1){g.setColor(Color.BLACK);}else if(date[i][j]==2){g.setColor(Color.WHITE);}else{continue;}//抗锯齿,使绘画出来的图形更圆滑Graphics2D g2d=(Graphics2D)g;g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);g.fillOval(30-jj/2+i*jj,60-jj/2+j*jj,r,r);}}if(over){g.setColor(Color.GRAY);g.setFont(new Font("楷体",3,70));g.drawString(str,45,250);g.drawString(str1,48,350);g.setColor(Color.RED);g.setFont(new Font("楷体",3,70));g.drawString(str,50,253);g.drawString(str1,60,353);mihq.setEnabled(false);}}public static void main(String[]args){new WZQ_2008();}}class MyAbout extends Dialog{Button bok=new Button("确定");public MyAbout(WZQ_2008 wzq){super(wzq,"百纳科技五子棋",true);this.add(bok);bok.setBounds(180,250,60,20);this.setLayout(null);this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});bok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();}});this.setBounds(100,100,400,300);this.setResizable(false);this.setVisible(true);}public void paint(Graphics g){Image ii=new ImageIcon("about.jpg").getImage();g.drawImage(ii,0,0,this);}}class MyTimer extends TimerTask{WZQ_2008 wzq;boolean b=true;public MyTimer(WZQ_2008 wzq){this.wzq=wzq;}public void run(){if(!wzq.over){return;}if(b){wzq.str="Game Over";}else{wzq.str="";}b=!b;wzq.repaint();wzq.i++;if(wzq.i==11){cancel();wzq.i=0;}System.out.println (wzq.i);}}/*class MyThread extends Thread{WZQ_2008 wzq;boolean b=true;public MyThread (WZQ_2008 wzq){this.wzq=wzq;}public void run(){if(!wzq.over){return;}if(b){wzq.str="Game Over";}else{wzq.str="";}b=!b;wzq.repaint();}}*/。

相关文档
最新文档