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 ;合同;台账系统一、总体概述本课题为供应合同台账系统,实现合同的有序管理。

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

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

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

JAVA简单画板程序设计实验报告

JAVA简单画板程序设计实验报告

J A V A简单画板程序设计实验报告As a person, we must have independent thoughts and personality.JAVA期末画板实验报告课程题目:运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。

设计思想:1.进行界面设计2.进行算法实现3.运行调试4.总结问题设计过程:A.界面设计B.新建一个Jframe容器,然后定义一个panel( Panel convas2),convas2是工具栏。

用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。

完成界面设计。

add(canvas2,;Panel canvas2 = new Panel();添加工具按键Panel canvas2 = new Panel();Button btn1 = new Button("直线");Button btn2 = new Button("椭圆");Button btn3 = new Button("矩形");Button btn4 = new Button("清除");Button btn5 = new Button("画笔");Button btn6 = new Button("橡皮");Choice choice = new Choice();Choice choice1 = new Choice();(choice);(choice1);(btn1);(btn2);(btn3);(btn4);(btn5);(btn6);在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。

1.画笔的大小:("1");("3");("5");("7");("9");2.画笔颜色("黑色");("蓝色");("红色");("黄色");("绿色");3展示画板C.算法实现运用画板,首先要对工具栏按键和鼠标进行监听,然后对监听进行响应。

Java程序设计实验报告_2

Java程序设计实验报告_2

Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。

二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。

三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。

3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。

4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。

这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。

对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。

五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。

Java程序设计报告24928

Java程序设计报告24928

《Java程序设计》课程设计报告xxxxxxx一、设计时间二、设计地点三、设计目的1.复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2.课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;3.培养在项目开发中团队合作精神、创新意识及能力。

4.培养查阅资料,独立思考问题的能力。

四、设计小组成员五、指导老师六、设计课题抽奖系统的设计与实现。

理由:1、界面综合度高,设计此界面要用到多种知识点,有利于大家熟练掌握和运用。

2、整个系统简洁明了,适于初学者。

3、代码编写涉及面广,利于提高综合应用能力。

七、基本思路及关键问题的解决方法基本思路:1.利用Java图形用户界面AWT组件创建抽奖系统里的姓名、密码、颜色标签和各种按钮以及显示信息的文本框,通过流布局管理器美化用户注册和登录界面;2.通过AWT事件类和事件监听器接口实现提示信息和变化信息,具体有WindowEvent窗口事件类、WindowListener窗口事件监听器接口、MouseListener鼠标事件监听接口等;3.AWT组件类中注册事件监听器:*.addMouseListener(this) 注册鼠标事件监听器*.addWindowListener(this) 注册窗口事件监听器关键问题的解决方法:问题:○1没有注册事件监听器添加语句addActionListener(this)○2没有判断输入是否为空加入语句if (tfd1.getText().equals("")||tfd2.getText().equals(""))八、算法及流程图九、调试过程中出现的问题及相应解决办法1、出现的问题:1) 在设计系统界面的时候不知道怎样进行界面布局。

2) 在改变界面大小的时候,无法把握大小。

java实验报告实验报告java实验报告Java

java实验报告实验报告java实验报告Java

java实验报告实验报告java实验报告Java一、实验目的本次实验的目的是熟悉Java语言,了解Java程序结构,掌握Java程序的开发流程,加深对Java语言特性的认识和理解。

二、实验内容本次实验内容为设计一个简单的Java程序,包括设计程序的需求分析、设计方案、编写代码、测试运行结果等环节。

三、实验分析3.1 需求分析设计一个Java程序,要求该程序能够实现以下功能:1. 用户可以输入两个数,程序可以对这两个数进行加、减、乘、除的操作,并输出运算结果。

2. 用户可以输入一个字符串,程序可以对该字符串进行反转输出。

3.2 设计方案根据需求分析,我们可以先设计一个简单的界面,包括输入框、选择运算符号的下拉框,以及一个按钮,当用户输入完毕后点击按钮即可进行相应的操作。

3.3 编写代码根据设计方案,我们先编写一个简单的界面代码:import java.awt.*;import javax.swing.*;public class Calculator extends JFrame {private JTextField text1, text2, text3;private JComboBox<String> combo;private JButton calcBtn, reverseBtn, factBtn;public Calculator() {super("Calculator");text1 = new JTextField(5);text2 = new JTextField(5);text3 = new JTextField(10);combo = new JComboBox<String>(new String[]{"+", "-", "*", "/"});calcBtn = new JButton("Calculate");reverseBtn = new JButton("Reverse");factBtn = new JButton("Factorial");JPanel panel2 = new JPanel();panel2.add(new JLabel("String:"));panel2.add(text3);panel2.add(reverseBtn);pack();setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}该界面中包含了3个面板,一个用于加减乘除,一个用于字符串反转,一个用于阶乘操作。

Java程序设计报告《贪吃蛇》

Java程序设计报告《贪吃蛇》

Java程序设计报告《贪吃蛇》《Java程序设计》课程设计报告题目:贪吃蛇游戏的设计与实现指导老师:沈泽刚专业:计算机科学与技术班级:10-3姓名:梁潇一、课程设计目的贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。

目的是更好地了解和掌握java语言,并熟练的运用java语言来实现项目。

培养自主学习的能力。

本软件在设计方面本着方便、实用及娱乐性高的宗旨,在外界进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。

二、课程设计要求贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块、游戏控制模块。

三、课程设计报告内容(一) 系统设计1、程序概述本程序是一个利用Java应用软件制作的贪吃蛇小游戏。

按钮、暂停按钮、游戏的退出按钮、困难程度、积分排行、关于作者。

(二)代码设计import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.*;public class TanChiShe extends JFrame implements ActionListener, KeyListener,Runnable{private JMenuBar menuBar;private JMenu youXiMenu,nanDuMenu,fenShuMenu,guanYuMenu; private JMenuItem kaiShiYouXi,exitItem,zuoZheItem,fenShuItem;private JCheckBoxMenuItem cJianDan,cPuTong,cKunNan; private int length = 6;private Toolkit toolkit;private int i,x,y,z,objectX,objectY,object=0,growth=0,time;private int difficult=2;private int m[]=new int[50];private int n[]=new int[50];private Thread she = null;private int life=0;private int foods = 0;private int fenshu=0;public void run() //运行{time=500;for(i=0;i<=length-1;i++){m[i]=90-i*10;n[i]=60;}x=m[0];y=n[0];z=4;while(she!=null){check();try{she.sleep(time);}catch(Exception ee){System.out.println(z+"");}}}public TanChiShe(){//***************创建新对象**************setVisible(true);menuBar = new JMenuBar();Container con=getContentPane();toolkit=getToolkit();//**************游戏菜单对象***************** youXiMenu = new JMenu("游戏");kaiShiYouXi = new JMenuItem("开始游戏");exitItem = new JMenuItem("退出游戏");//***************困难程度对象**************** nanDuMenu = new JMenu("困难程度");cJianDan = new JCheckBoxMenuItem("简单");cPuTong = new JCheckBoxMenuItem("普通");cKunNan = new JCheckBoxMenuItem("困难");//*****************分数菜单对象****************fenShuMenu = new JMenu("积分排行");fenShuItem = new JMenuItem("最高记录");//****************关于对象*********************guanYuMenu = new JMenu("关于");zuoZheItem = new JMenuItem("关于作者");//***************设置关于菜单*******************guanYuMenu.add(zuoZheItem);//****************设置困难程度菜单**************nanDuMenu.add(cJianDan);nanDuMenu.add(cPuTong);nanDuMenu.add(cKunNan);//******************设置分数菜单***************fenShuMenu.add(fenShuItem);//*****************设置游戏菜单****************youXiMenu.add(kaiShiYouXi);youXiMenu.add(exitItem);//******************设置主菜单********************menuBar.add(youXiMenu);menuBar.add(nanDuMenu);menuBar.add(fenShuMenu);menuBar.add(guanYuMenu);//*********************监听注册*****************zuoZheItem.addActionListener(this);kaiShiYouXi.addActionListener(this);exitItem.addActionListener(this);addKeyListener(this);fenShuItem.addActionListener(this);//*********************加快捷键********************KeyStroke keyOpen = KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK);kaiShiYouXi.setAccelerator(keyOpen);KeyStroke keyExit = KeyStroke.getKeyStroke('X',InputEvent.CTRL_DOWN_MASK);exitItem.setAccelerator(keyExit);//*****************设置框架**********************setJMenuBar(menuBar);setTitle("贪吃蛇");setResizable(false);setBounds(300,200,400,400);validate();setDefaultCloseOperation(EXIT_ON_CLOSE);}public static void main(String args[]){new TanChiShe();}//******************菜单监听****************************** public void actionPerformed(ActionEvent e){if(e.getSource()==kaiShiYouXi){length = 6;life = 0;foods = 0;if(she==null){she=new Thread(this);she.start();}else if(she!=null){she=null;she= new Thread(this);she.start();}}if(e.getSource()==exitItem){System.exit(0);}if(e.getSource()==zuoZheItem)JOptionPane.showMessageDialog(this, "梁潇"+"\n\n");}if(e.getSource()==fenShuItem){JOptionPane.showMessageDialog(this,"最高记录为"+fenshu+"");}}//**************检查一下******************************* public void check(){isDead();if(she!=null){if(growth==0){reform();}else{upgrowth();}if(x==objectX&&y==objectY){object=0;growth=1;toolkit.beep();}//****************产生食物坐标**********************if(object==0){object=1;objectX=(int)Math.floor(Math.random()*39)*10;objectY=(int)Math.floor(Math.random()*29)*10+50;}this.repaint();}}void isDead()if(z==4){x=x+10;}else if(z==3){x=x-10;}else if(z==2){y=y+10;}else if(z==1){y=y-10;}if(x<0||x>390||y<50||y>390) {she=null;}for(i=1;i<length;i++){if(m[i]==x&&n[i]==y){she=null;}}}public void upgrowth(){if(length<50){length++;}growth--;time=time-10;reform();life+=100;if(fenshu<life){fenshu = life;}foods++;}public void reform(){for(i=length-1;i>0;i--){m[i]=m[i-1];n[i]=n[i-1];}if(z==4){m[0]=m[0]+10;}if(z==3){m[0]=m[0]-10;}if(z==2){n[0]=n[0]+10;}if(z==1){n[0]=n[0]-10;}}public void keyPressed(KeyEvent e){if(she!=null){if(e.getKeyCode()==KeyEvent.VK_UP){if(z!=2){z=1;check();}}else if(e.getKeyCode()==KeyEvent.VK_DOWN) {if(z!=1){z=2;check();}}else if(e.getKeyCode()==KeyEvent.VK_LEFT){if(z!=4){z=3;check();}}else if(e.getKeyCode()==KeyEvent.VK_RIGHT) {if(z!=3){z=4;check();}}}}public void keyReleased(KeyEvent e){// TODO 自动生成方法存根}public void keyTyped(KeyEvent e){// TODO 自动生成方法存根}public void paint(Graphics g){//*******************画图********************** g.setColor(Color.DARK_GRAY);g.fillRect(0,50,400,400);g.setColor(Color.pink);for(i=0;i<=length-1;i++){g.fillRect(m[i],n[i],10,10);}g.setColor(Color.green);g.fillRect(objectX,objectY,10,10);g.setColor(Color.white);g.drawString("当前分数"+this.life,6,60);g.drawString("当前已吃食物数"+this.foods,6,72); }}(三)测试(四)使用说明在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。

(完整版)Java程序设计实验报告

(完整版)Java程序设计实验报告

Java 程序设计实验报告实验一实验题目:从键盘上读入10 个字符串存入数组 a 中,而后输出这10个字符串中最大字符串和最小字符串。

实验代码:public class StrPro {public static void main(String[] args) {String str[] =new String[5];System. out .println("Please input 10 strings :" );int i;String max,min;for (i=0;i<5;i++){System. out .print( "Please input the " +(i+1)+ " string:" );Scanner sc = new Scanner(System. in );str[i] = sc.nextLine();}max = str[0];min = str[0];for (i=0;i<str.length ;i++){if (pareTo(str[i])<0){max = str[i];}if (pareTo(str[i])>0){min = str[i];}}System. out .println( System. out .println( " 最大的字符串为: " +max); " 最小的字符串为: " +min);}}实验结果:实验心得领会:掌握了 java 的基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。

实验二实验题目:自定义一个矩形类( Rectangle ),包括的属性有:长( length ),宽(width ),包括的方法有:对于属性的 setter 和 getter 方法,即 setLength ,getLength ,setWidth ,getWidth ,计算矩形面积的方法(g etArea )。

Java程序设计实验报告

Java程序设计实验报告

滁州学院课程设计报告课程名称:Java程序设计设计题目:四则运算测试系统系别:计算机与信息工程学院专业:计算机科学与技术组别:第七组起止日期: 2011年11月20日~ 2012 年1月8日指导教师: 马骏计算机与信息工程学院二○ 一一年制课程设计任务书目录1 需求分析 (1)1.1 课程设计目的与要求 (1)1.1.1 课程设计目的 (1)1.1.2 课程设计要求 (1)2 概要设计 (2)3 详细设计 (3)4 程序源代码 (4)5 程序运行于调试 (11)总结 (12)致谢 (12)参考文献 (12)1 需求分析1.1 课程设计目的与要求1.1.1 课程设计目的Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。

它具有面向对象、跨平台、分布应用等特点。

它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。

很多程序开发人员得第一选择。

为了将课堂上得知识掌握得更加透彻,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。

学习任何知识得目的都是要将它运用到实践中去,所以我们要运用已有的知识,独立得将这个课程设计完成,只有这样,我们才能将知识变成本领,变成属于自己得东西,通过一个学习得学习,我们已经有可一定得Java基础,现在我们就要利用这些基础,来完成课程设计。

这次课程设计我主要研究了利用已学的Java知识编辑一个四则运算测试系统。

通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。

并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。

1.1.2 课程设计要求程序实现十道100以内四则运算数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。

JAVA程序设计报告

JAVA程序设计报告

JA V A程序设计报告姓名:学号:成绩:__________同组人员:东南大学自动化学院一、引言Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言以下简称Java语言和Java平台的总称..Java平台由Java虚拟机Java Virtual Machine和Java 应用编程接口Application Programming Interface、简称API构成..其具有的特点如下:1、Java语言是简单的..Java语言的语法与C语言和C++语言很接近;使得大多数程序员很容易学习和使用Java..另一方面;Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性;如操作符重载、多继承、自动的强制类型转换..特别地;Java语言不使用指针;并提供了自动的废料收集;使得程序员不必为内存管理而担忧..2、Java语言是一个面向对象的..Java语言提供类、接口和继承等原语;为了简单起见;只支持类之间的单继承;但支持接口之间的多继承;并支持类与接口之间的实现机制关键字为implements..Java语言全面支持动态绑定;而C++ 语言只对虚函数使用动态绑定..总之;Java语言是一个纯的面向对象程序设计语言..3、Java语言是分布式的..Java语言支持Internet应用的开发;在基本的Java应用编程接口中有一个网络应用编程接口java;它提供了用于网络应用编程的类库;包括URL、URLConnection、Socket、 ServerSocket等..Java的RMI远程方法激活机制也是开发分布式应用的重要手段..二.问题描述设计一个家庭通讯录小管理程序;请构建一个小数据酷;数据库字段为联系人姓名、家庭住址、移动电话、固定电话..要求如下:数据信息的录入功能;信息的查找功能;信息的删去功能;实现信息的打印功能..三.问题分析通讯簿管理现在是人们办公中不可缺少的一项环节;可以有效的管理众多的联系人的相关信息;实现查找信息的便捷化;添加联系人的简易化;以及及时修改联系人相关信息;删去不必要的联系人信息;为人们在使用过程创造便捷化和简易化;可是长期以来人们都是通过手工的方式来管理学生的成绩的;而且当进行成绩排名的时候这项工作就比较繁琐了;通过手工既耗时又耗力..为了使这项工作变得简单易行;开发一个通讯簿管理系统是很有必要的..要求该系统有如下的功能:1.可浏览全体联系人的成绩情况2.可添加联系人的具体信息3.可删除联系人的具体信息4.可进行联系人的排序查找5.可进行联系人信息的修改6.将数据储存在数据库中保存四.系统功能结构五.在设计中完成的模块本Java电话簿管理系统主要分为三个模块:界面模块、监听操作模块、数据库操作模块..我在程序开发中主要完成了事件监听的模块..1.实现方式程序开始定义了菜单栏和菜单项JMenuBar menubar;JMenu setmenu; caozuo;JMenuItem name; data; addrecord; delrecord; selrecord; updrecord;因此要对定义的Mennuitem进行事件监听;items事件的interface 为ItemListener ;方法为itemstatechangeitemevent..还定义了ButtonJButton add; //添加按钮JButton select;所以我通过 .addActionListenerthis;来对每个菜单项的items和每个Button进行事件监听;在程序结尾处又重新定义每个事件的方法如下..public void actionPerformedActionEvent ae{}接下来用了if"按姓名排序" == ae.getActionCommand{}else if"按序号排序" == ae.getActionCommand{}else if"添加记录" == ae.getActionCommand{}else if"查找记录" == ae.getActionCommand{}else if"修改记录" == ae.getActionCommand{}else if"删除记录" == ae.getActionCommand{}等方法从新定义了每一个事件的具体处理方法..2.具体定义方式A.if"按姓名排序" == ae.getActionCommand{}此方法作用是将信息按姓名进行排列getAllRecord;int count = defaultModel.getRowCount;forint i = 0; i < count - 1; i++forint j = i + 1; j < count; j++ {String min = null;String max = null;min = String.valueOfdefaultModel.getValueAti; 1;max = String.valueOfdefaultModel.getValueAtj; 1;ifminpareTomax > 0{rowchangei; j;}else{B.else if"按序号排序" == ae.getActionCommand getAllRecord;int count = defaultModel.getRowCount;forint i = 0; i < count - 1; i++forint j = i + 1; j < count; j++{int min = 0;int max = 0;min = Integer.valueOfString.valueOfdefaultModel.getValueAti; 0; max = Integer.valueOfString.valueOfdefaultModel.getValueAti; 0; ifmin > max{rowchangei; j; }else{ };C. else if"添加记录" == ae.getActionCommand此操作涉及数据库的链接和添加信息;所以我从网上当下来的下面的程序片段String getaddname = t_name.getText;String getadd_addr = t_addr.getText;String getadd_guhua = t_guhua.getText;String getadd_mobilenum = t_mobile_num.getText;ifgetaddname.length == 0 || getadd_addr.length == 0JOptionPane.showMessageDialogthis; "请输入姓名和电话号码"; "Warning"; RMATION_MESSAGE;else{ResultSet rs;Connection con;Statement sql;try{ Class.forName"sun.jdbc.odbc.JdbcOdbcDriver"; }catchClassNotFoundException e{JOptionPane.showMessageDialogthis; "ClassNotFoundException"; "Warning"; RMATION_MESSAGE; }{con=DriverManager.getConnection"jdbc:odbc:phone"; ""; "";sql=con.createStatement;sql.executeUpdate"INSERT INTO 电话簿姓名;家庭住址;固定电话;移动电话V ALUES'" + getaddname + "';'" + getadd_addr + "';'" + getadd_guhua + "';'" + getadd_mobilenum + "'";rs=sql.executeQuery"SELECT FROM 电话簿WHERE 姓名='" + getaddname + "' AND 家庭住址='" + getadd_addr + "'";long getaddxuhao = 0;while rs.next{getaddxuhao = rs.getLong"序号";}defaultModel.addRownew Vector;//在表格中添defaultModel.setValueAt getaddxuhao; defaultModel.getRowCount - 1; 0;defaultModel.setValueAt getaddname; defaultModel.getRowCount - 1; 1;defaultModel.setValueAt getadd_addr; defaultModel.getRowCount - 1; 2; defaultModel.setValueAt getadd_guhua; defaultModel.getRowCount - 1; 3;defaultModel.setValueAtgetadd_mobilenum;defaultModel.getRowCoun -con.close;catchSQLException e{JOptionPane.showMessageDialogthis; "SQLException"; "Warning"; RMATION_MESSAGE;}catchException e{JOptionPane.showMessageDialogthis; "Exception"; "Warning"; RMATION_MESSAGE;} }t_name.setText"";t_addr.setText"";t_guhua.setText"";t_mobile_num.setText"";}D.else if"查找记录" == ae.getActionCommand也是从网上查到的;E.else if"修改记录" == ae.getActionCommand从书上摘抄的F.else if"删除记录" == ae.getActionCommand也是从书上抄的六.操作简介打开系统会看到如下图1的系统界面图11.在添加栏中输入要添加人的相应姓名、家庭住址、固定电话、移动电话后;点添加按钮就会将要添加的信息添加到下面的显示栏中;同时也保存了添加的信息..同时在下面的显示栏中会出现你所记录的信息的序号;是对已记录信息的个数的统计..如图1所示..2.在相同的文本区中输入要查询人的姓名然后点击右边的查找按钮就可以将要查询的人的信息显示在下面的显示框中;方便查找..如图2所示为输入姓名“马飞”点击查找按钮后的界面..图23.在菜单栏上点击操作选项会弹出下拉项;点击“删除记录”就会弹出如图3所示的对话框;输入要删除人的姓名就可以把该人的信息删除;如果记录中没有要删除的人;则会出现一提示对话框给出“该人不存在”的提示信息..图33.在菜单栏的操作项下点击“修给记录”按钮会弹出对话框依次要求输入被修改人的姓名;然后是“要修改的家庭住址”、“要修改的固定电话”、“要修改的移动电话”..用户可根据要修改的项目点击“确定”或“撤销”按钮..方便的对信息进行修改..具体信息如图4、图5、图6、图7所示..图4 图5图6 图74.点击设置菜单下的“按姓名排序按钮”;在下面的显示框中就会出现按姓名排序的列表;主要是按照英文首字母的顺序从a拍到z的..若点击“按序号排序按钮”;显示框中就会列出按照顺序排列的相关人的信息..如图8所示图8七.参考文献1苗春义. Java项目开发全程实录J . 北京:清华大学出版社;2008.6 2辛运帏、绕一梅、马素霞. java程序设计J . 北京:清华大学出版社;2006.8。

  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();}}*/。

相关文档
最新文档