南昌大学Java实验报告

合集下载

java语言程序设计实验报告

java语言程序设计实验报告

java语言程序设计实验报告
《Java语言程序设计实验报告》
实验目的:通过本次实验,学生将学会使用Java语言进行程序设计,掌握Java
语言的基本语法和编程技巧,并能够编写简单的Java程序。

实验内容:本次实验主要包括以下内容:1. Java语言的基本语法和数据类型;2. Java程序的输入输出;3. Java程序的流程控制;4. Java程序的函数和类的定义;
5. Java程序的异常处理等。

实验步骤:1. 阅读相关的Java语言教材和资料,了解Java语言的基本概念和
语法规则;2. 编写简单的Java程序,包括输入输出、流程控制、函数和类的定
义等;3. 调试和运行编写的Java程序,查看程序的运行结果;4. 对程序进行优
化和改进,提高程序的效率和性能。

实验结果:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,能够编写简单的Java程序,并能够运用Java语言解决实际的问题。

实验总结:通过本次实验,学生将对Java语言有了更深入的了解,掌握了Java
语言的基本概念和编程技巧,能够独立编写简单的Java程序。

同时,学生也将
培养了良好的编程习惯和解决问题的能力,为今后的学习和工作打下了良好的
基础。

结语:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,
为今后的学习和工作打下了良好的基础。

同时,也希望学生能够在今后的学习
和工作中不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。

南昌大学javaweb大作业报告书

南昌大学javaweb大作业报告书

软件学院大作业实验报告题目:基于Struts的图书管理系统专业:软件工程班级: 122班(java方向)学号: 8000112163学生姓名:王冠完成人数: 1 人起讫日期: 2015/05/20任课教师:周兴斌职称:副教授部分管主任:刘晓强完成时间: 2015/05/30目录1.前言 (3)1.1 实验目的 (3)1.2 实验的基本要求 (3)2. 系统分析与设计 (3)2.1 系统功能描述(简单需求分析) (3)2.2 系统功能流程 (3)2.3数据库设计 (4)2.3.1数据表的构建 (4)3.系统的实现与测试 (5)3.1系统采用的关键技术 (5)3.2 关键程序流程 (6)3.3 关键代码分析 (7)3.4 出现的问题及解决 (18)3.4.1向数据库中插入数据出现乱码以及界面显示有中文乱码问题: (18)3.4.2弹出提示框问题 (19)4. 系统界面 (19)4.1 进入系统界面(登录界面) (19)4.2 管理员模块界面: (19)4.3 添加图书界面: (20)4.4 罚金设置界面: (20)4.5 用户管理界面: (20)4.6 用户模块界面: (21)4.7 图书检索、借阅界面: (21)4.8 续借图书界面: (22)4.9 归还界面: (22)4.9 安全退出界面: (23)5.操作方法 (23)5.1 登录 (23)5.2 图书检索,借阅 (23)5.3图书归还,续借 (23)5.4图书,用户的添加 (23)5.5 图书,用户的删除操作 (24)5.6 图书,用户的更新操作 (24)6.分析与总结 (24)6.1实验分析与总结 (24)7.附录: (25)7.1 参考文献: (25)7.3 MVC架构模式的认识 (25)1.前言1.1 实验目的学习Web应用程序的开发,以B/S方式,JSP编程技术开发图书管理系统;通过编程实践掌握JSP的动态网页与sql2012数据库相结合的技术;通过MVC(模型-视图-控制)架构模式,使其在开发过程中得以应用,并了解Web编程模式下的Model1和Model2 的区别;了解Struts框架的具体含义及在Struts模式下的开发。

java实习报告15篇

java实习报告15篇

java实习报告15篇java实习报告15篇在人们越来越注重自身素养的今天,报告对我们来说并不陌生,我们在写报告的时候要避免篇幅过长。

相信很多朋友都对写报告感到非常苦恼吧,以下是小编整理的java实习报告,欢迎阅读与收藏。

java实习报告1现将我的实习情况汇报如下,请老师点评。

一、实习目的通过实习,培养综合运用Java语言的面向对象编程能力;培养动手能力;培养良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。

通过理论与实际的结合、学校与社会的沟通,进一步提高自己的思想觉悟、业务水平,尤其是观察、分析和解决问题的实际工作能力,以便培养自己成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。

为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

二、实习单位基本情况介绍xx技术有限公司,是一家由xx注资,专注于面向xx汽车的软件开发设计、受托xx信息系统株式会社开展系统开发,系统维护、面向中国的xx资企业开展系统开发,以及面向中国国内的软件开发设计的IT企业。

公司成立于20xx年xx月xx日,注册资金RMB2,000,000元(xx信息系统株式会社100%投资),20xx年xx月xx日成为xx 信息产业协会会员。

xx信息一直秉承软件提高效率、与社会共创信息化新时代的理念,致力于为用户提供具有自主知识产权的系统软件、安全软件、平台软件、各类应用软件以及全方位的解决方案和相关服务。

三、实习内容1、日语培训:由于公司为日资企业,日常工作要求职员使用日语,因此,公司特从日本请来中原先生为我们做培训。

大家零基础开始,每天有两到三个小时的学习时间,每周一参加语言阶段性测试。

过程虽然比较艰难,但是效果显著,目前基本工作语言可用日语交流。

2、Java实训:通过本次实习,我对Java语言的各种特性有了更进一步的体会:(1)Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。

南昌大学javaweb大作业报告书

南昌大学javaweb大作业报告书

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载南昌大学javaweb大作业报告书地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容软件学院大作业实验报告题目:基于Struts的图书管理系统专业:软件工程班级: 122班(java方向)学号: 8000112163学生姓名:王冠完成人数: 1 人起讫日期: 2015/05/20任课教师:周兴斌职称:副教授部分管主任:刘晓强完成时间: 2015/05/30目录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc421181205" 1.前言 PAGEREF _Toc421181205 \h 3HYPERLINK \l "_Toc421181206" 1.1 实验目的 PAGEREF_Toc421181206 \h 3HYPERLINK \l "_Toc421181207" 1.2 实验的基本要求 PAGEREF _Toc421181207 \h 3HYPERLINK \l "_Toc421181208" 2. 系统分析与设计 PAGEREF_Toc421181208 \h 3HYPERLINK \l "_Toc421181209" 2.1 系统功能描述(简单需求分析) PAGEREF _Toc421181209 \h 3HYPERLINK \l "_Toc421181210" 2.2 系统功能流程 PAGEREF_Toc421181210 \h 3HYPERLINK \l "_Toc421181211" 2.3数据库设计 PAGEREF_Toc421181211 \h 4HYPERLINK \l "_Toc421181212" 2.3.1数据表的构建 PAGEREF_Toc421181212 \h 4HYPERLINK \l "_Toc421181213" 3.系统的实现与测试 PAGEREF _Toc421181213 \h 5HYPERLINK \l "_Toc421181214" 3.1系统采用的关键技术 PAGEREF _Toc421181214 \h 5HYPERLINK \l "_Toc421181215" 3.2 关键程序流程 PAGEREF_Toc421181215 \h 6HYPERLINK \l "_Toc421181216" 3.3 关键代码分析 PAGEREF_Toc421181216 \h 7HYPERLINK \l "_Toc421181217" 3.4 出现的问题及解决 PAGEREF _Toc421181217 \h 18HYPERLINK \l "_Toc421181218" 3.4.1向数据库中插入数据出现乱码以及界面显示有中文乱码问题: PAGEREF _Toc421181218 \h 18 HYPERLINK \l "_Toc421181219" 3.4.2弹出提示框问题 PAGEREF _Toc421181219 \h 19HYPERLINK \l "_Toc421181220" 4. 系统界面 PAGEREF_Toc421181220 \h 19HYPERLINK \l "_Toc421181221" 4.1 进入系统界面(登录界面)PAGEREF _Toc421181221 \h 19HYPERLINK \l "_Toc421181222" 4.2 管理员模块界面: PAGEREF _Toc421181222 \h 19HYPERLINK \l "_Toc421181223" 4.3 添加图书界面: PAGEREF _Toc421181223 \h 20HYPERLINK \l "_Toc421181224" 4.4 罚金设置界面: PAGEREF _Toc421181224 \h 20HYPERLINK \l "_Toc421181225" 4.5 用户管理界面: PAGEREF _Toc421181225 \h 20HYPERLINK \l "_Toc421181226" 4.6 用户模块界面: PAGEREF _Toc421181226 \h 21HYPERLINK \l "_Toc421181227" 4.7 图书检索、借阅界面:PAGEREF _Toc421181227 \h 21HYPERLINK \l "_Toc421181228" 4.8 续借图书界面: PAGEREF _Toc421181228 \h 22HYPERLINK \l "_Toc421181229" 4.9 归还界面: PAGEREF_Toc421181229 \h 22HYPERLINK \l "_Toc421181230" 4.9 安全退出界面: PAGEREF _Toc421181230 \h 23HYPERLINK \l "_Toc421181231" 5.操作方法 PAGEREF_Toc421181231 \h 23HYPERLINK \l "_Toc421181232" 5.1 登录 PAGEREF_Toc421181232 \h 23HYPERLINK \l "_Toc421181233" 5.2 图书检索,借阅 PAGEREF _Toc421181233 \h 23HYPERLINK \l "_Toc421181234" 5.3图书归还,续借 PAGEREF_Toc421181234 \h 23HYPERLINK \l "_Toc421181235" 5.4图书,用户的添加 PAGEREF _Toc421181235 \h 23HYPERLINK \l "_Toc421181236" 5.5 图书,用户的删除操作PAGEREF _Toc421181236 \h 24HYPERLINK \l "_Toc421181237" 5.6 图书,用户的更新操作PAGEREF _Toc421181237 \h 24HYPERLINK \l "_Toc421181238" 6.分析与总结 PAGEREF_Toc421181238 \h 24HYPERLINK \l "_Toc421181239" 6.1实验分析与总结 PAGEREF_Toc421181239 \h 24HYPERLINK \l "_Toc421181240" 7.附录: PAGEREF_Toc421181240 \h 25HYPERLINK \l "_Toc421181241" 7.1 参考文献: PAGEREF_Toc421181241 \h 25HYPERLINK \l "_Toc421181242" 7.3 MVC架构模式的认识 PAGEREF _Toc421181242 \h 251.前言1.1 实验目的学习Web应用程序的开发,以B/S方式,JSP编程技术开发图书管理系统;通过编程实践掌握JSP的动态网页与sql2012数据库相结合的技术;通过MVC(模型-视图-控制)架构模式,使其在开发过程中得以应用,并了解Web编程模式下的Model1和Model2 的区别;了解Struts框架的具体含义及在Struts模式下的开发。

南昌大学java实验报告4

南昌大学java实验报告4

南昌大学实验报告学生姓名:学号:专业班级:网络工程091实验类型:□验证□综合□设计□创新实验日期:2012.5.18 实验成绩:实验四简单的万年历一、实验目的学习使用布局类。

二、实验任务编写一个应用程序,有一个窗口,该窗口为BorderLayout布局。

窗口的中心添加一个Panel容器:pCenter,pCenterd的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。

窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth按钮可以显示当前月的上一月的日历。

窗口的南面添加一个Panel容器pSouth,起布局是FlowLayout,pSouth中放置一个标签用来显示一些信息。

三、实验内容编译并运行程序,查看结果。

程序如下:CalendarFRame.javapackage calendar;import java.awt.BorderLayout;import java.awt.Button;import java.awt.GridLayout;import bel;import java.awt.Panel;import java.awt.ScrollPane;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;public class CalendarFrame extends JFrame implements ActionListener { Label labelDay[]=new Label[42];Button titleName[]=new Button[7];String name[]={"日","一","二","三", "四","五","六"};Button nextMonth,previousMonth;int year=2012,month=5;CalendarBean calendar;Label showMessage=new Label("",Label.CENTER);public CalendarFrame(){Panel pCenter=new Panel();pCenter.setLayout(new GridLayout(7,7));//将pCenter的布局设置为7行7列的GridLayout 布局。

java实验实验报告

java实验实验报告

java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。

同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。

二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。

通过定义和使用这些变量,我们能够存储和操作各种类型的数据。

```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。

这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。

```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。

java设计实验报告

java设计实验报告

java设计实验报告Java设计实验报告一、引言Java是一种广泛应用于软件开发的编程语言,具有跨平台、面向对象、可移植等特点。

本文将介绍一项基于Java的设计实验,并分析实验过程中的问题和解决方案。

二、实验目标本次实验的目标是设计一个简单的学生管理系统,实现学生信息的录入、查询、修改和删除功能。

通过这个实验,旨在加深对Java编程语言的理解和应用。

三、实验过程1. 设计数据结构在开始编写代码之前,我们需要先设计好数据结构。

在这个学生管理系统中,我们需要存储学生的姓名、学号、年龄、性别等信息。

可以使用类来表示学生对象,每个学生对象包含相应的属性和方法。

2. 编写代码根据设计好的数据结构,我们开始编写代码。

首先,我们需要创建一个学生类,包含学生的属性和方法。

然后,我们可以在主类中创建学生对象,并对学生信息进行操作。

3. 实现录入功能在学生管理系统中,我们需要实现学生信息的录入功能。

可以通过在控制台上输入学生的姓名、学号、年龄、性别等信息,并将其存储到学生对象中。

4. 实现查询功能学生管理系统还需要实现学生信息的查询功能。

可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并输出相应的学生信息。

5. 实现修改功能学生信息可能会发生变化,因此我们需要实现学生信息的修改功能。

可以通过输入学生的学号或姓名等关键字,找到对应的学生对象,并修改其相应的属性。

6. 实现删除功能在一些情况下,我们可能需要删除某个学生的信息。

可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并将其删除。

四、实验结果经过实验,我们成功实现了学生管理系统的基本功能。

我们可以通过控制台进行学生信息的录入、查询、修改和删除操作,并获得相应的结果。

五、实验问题与解决方案在实验过程中,我们遇到了一些问题,但通过不断尝试和调试,最终找到了解决方案。

1. 数据结构设计问题在设计数据结构时,我们需要考虑到学生信息的存储和查找效率。

大学生java实训总结报告6篇

大学生java实训总结报告6篇

大学生java实训总结报告6篇篇1一、实训背景与目标本次Java实训旨在通过实践操作,加深大学生对Java编程语言的理解与掌握,提高实际项目开发能力。

在为期一个月的实训期间,我们小组围绕Java SE基础、Java Web开发、数据库操作等内容进行了系统学习和实践。

通过本次实训,我们期望达到以下目标:1. 深入理解Java核心技术与编程思想。

2. 掌握Java Web开发的基本流程和关键技术。

3. 学会使用至少一种数据库进行Java程序与数据库的交互。

4. 具备一定的项目开发和团队协作能力。

二、实训内容与过程1. Java SE基础实训在实训初期,我们重点复习和巩固了Java SE基础知识,包括数据类型、运算符、流程控制、面向对象编程等。

通过编写简单的控制台程序,我们实践了异常处理、集合类、泛型以及多线程编程。

2. Java Web开发实训随后,我们转向Java Web开发的学习。

通过学习和实践,掌握了基于Servlet和JSP的Web开发技术。

同时,学习了HTML、CSS和JavaScript等前端技术,并练习了前后端数据的交互。

此外,还了解了MVC设计模式在Web开发中的应用。

3. 数据库操作实训在数据库操作方面,我们主要学习了SQL语言以及JDBC操作数据库的技术。

通过实践操作,我们能够在Java程序中实现数据的增删改查,并学会了使用ORM框架进行对象与数据库表的映射。

4. 项目开发实践在实训的最后阶段,我们以小组形式进行了一个小型项目——在线图书管理系统。

通过项目的开发,我们综合运用了前面学到的知识,包括Web开发技术、数据库操作等。

在项目开发过程中,我们学会了如何分工合作,如何进行有效的项目管理。

三、实训收获与体会1. 提升了编程能力。

通过实训,我们对Java编程语言有了更深入的了解,编程能力得到了显著提高。

2. 增强了项目开发经验。

项目开发的实践让我们体验到了软件开发的流程,学会了如何在项目中运用所学知识。

java实训报告(7篇)

java实训报告(7篇)

java实训报告java实训报告(7篇)随着社会一步步向前发展,报告的使用成为日常生活的常态,其在写作上有一定的技巧。

一听到写报告马上头昏脑涨?以下是小编收集整理的java实训报告,仅供参考,希望能够帮助到大家。

java实训报告1内蒙古商贸职业学院计算机系学生校内实验实训报告20 --20 学年第学期系部:计算机系课程名称:Java程序设计教程专业班级:内蒙古商贸职业学院计算机系制填写说明1、实验项目名称:要用最简练的语言反映实验的内容,要与实验指导书或课程标准中相一致。

2、实验类型:一般需要说明是验证型实验、设计型实验、创新型实验、综合型实验。

3、实验室:实验实训场所的名称;组别:实验分组参加人员所在的组号。

4、实验方案设计(步骤):实验项目的设计思路、步骤和方法等,这是实验报告极其重要的内容,概括整个实验过程。

对于操作型实验(验证型),要写明需要经过哪几个步骤来实现其操作。

对于设计型和综合型实验,在上述内容基础上还应该画出流程图和设计方法,再配以相应的文字说明。

对于创新型实验,还应注明其创新点、特色。

5、实验小结:对本次实验实训的心得体会、思考和建议等。

6、备注:分组实验中组内成员分工、任务以及其他说明事项。

注意:①实验实训分组完成的,每组提交一份报告即可,但必须说明人员分工及职责。

不分组要求全体成员独立完成的实验实训项目可由指导老师根据个人完成情况分组填写。

②实验成绩按照百分制记,根据教学大纲及课程考核要求具体区分独立计算、折算记入两种情况。

③本实验实训报告是根据计算机系实验的具体情况在学院教务处制的实验实训报告的基础上进行改制的。

特此说明。

成绩单组别:小组成员:篇二:实训总结实训收获总结报告学部:计算机信息学院学科门类:计算机信息类专业:计算机应用技术姓名:朱恩林学号:12310020020实习单位:北京盛威南凌信息科技有限公司指导教师:王洪钊实习时间:20xx年5月15号—9月23号一、实训目的计算机信息管理专业的java实训在教学计划中是实训、实习课程。

java实训报告总结范文(精选3篇)

java实训报告总结范文(精选3篇)

java实训报告总结范文(精选3篇)java实训报告总结范文篇1一、课程设计名称及主要内容:1、课程设计名称:时钟动画2、课程设计的主要内容:以下题目任选一个:(1)图形界面类,如科学计算器、绘图板、日历、游戏程序等。

(2)动画类,编制功能较复杂、效果较好的Applet动画程序。

(3)数据处理类,如学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序。

(4)其他类型,自选题目,须经指导老师同意。

我所选的题目是动画类的Applet动画程序,主要任务是用Java 程序设计一个时钟动画。

二、程序的设计思想和流程图:1、设计思想:现在的各种时钟花样百出,千奇百怪,功能亦是越来越先进了。

我很喜欢这些各式各样的时钟,所以希望自己也能设计出一个来。

于是,我希望自己能够用自己所学的Java知识设计出一个自己的时钟动画,即使是最简单的,但我相信这是暂时的。

只要我能够努力学好Java知识,将来一定能够设计出更好更完美的时钟动画。

2、流程图:三、程序介绍:1、设计方法及步骤:λ题目分析:根据《课程设计任务书》要求,分析题目,构造出程序的基本思路(算法设计)。

画出程序设计结构框图。

λ构造数据结构:根据程序结构框图和题目分析结果(采用算法),构造程序所用各项数据,各种窗体及他们之间的联系。

λ构造程序框架:在窗体确定之后,根据算法设计出所用各个窗体之间的调用关系。

λ程序设计:①画出程序功能框图和结构框图;②根据框图设计程序;③编译程序调试程序,使程序可以使用;④完备程序功能。

λ程序打包:所设计程序汇总,将程序分类归入相应子目录,完成程序所有设计要求。

2、完成情况:经过一系列的Java程序代码的设计,虽然过程中遇到了许多的问题,但是最终解决了所有的问题,准确的设计出了时钟动画,运行情况正常。

3、类的关系:“public class AnimatorDemo”是公共类,且是程序中的唯一的一个类。

4、构造方法、成员变量和成员方法的功能说明:“Thread timer”用于显示时钟的线程;“SimpleDateFormat formatter”用于格式化时间显示; “String lastdate”用于保存当前时间的字符串;“Font clockFaceFont”用于设置显示时钟里面的数字的字体; “Date currentDate”用于显示当前时间;“Color handColor”用于显示时针、分针和表盘的颜色; “Color numberColor” 用于显示秒针和数字的颜色; “public void init”用于设计时钟格式并捕捉异常;“public void plotpoints(int x0, int y0, int x, int y, Graphics g)”用于计算四分之一的圆弧;“public void circle(int x0, int y0, int r, Graphics g”) 用Bresenham算法来画圆,其中(x0,y0)是圆的中心,r为圆半径; “public void paint(Graphics g)”用于运行时钟程序; “public void start” applet的启动方法;“public void stop” applet的停止方法;“public void run” 线程的run方法。

南昌大学JavaWeb实验报告(1)

南昌大学JavaWeb实验报告(1)

实验一Java Web开发环境配置学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:2018.04.11 实验成绩:一、实验目的1.掌握设置JDK环境。

2.掌握设置Tomcat环境。

3.安装、掌握Eclipse,MyEclipse 或IntellijIDEA软件,为学习JSP和进行JSP的实验做好准备工作。

4.编写JSP 程序并运行JSP页面。

二、实验要求1.安装并设置Java SDK 软件包。

2.安装并设置Tomcat软件包。

3.安装并设置Eclipse软件、MyEclipse或IntellijIDEA软件。

4.编写一个简单的JSP,并在浏览器中浏览。

5.创建一个Web项目,并进行部署运行。

三、实验步骤(一)JDK安装与配置(二)Tomcat安装与配置(三)IDE(Eclipse、MyEclipse、或IntelliJ IDEA)的安装与配置(四)在IDE中建立一个jsp(五)部署JSP工程文件(六)启动Tomcat服务器(七)浏览JSP四、实验数据(一)JDK安装与配置首先去oracle官方网站下载jdk的压缩包,根据自己的系统类型选择合适的版本即可.我的系统是Linux,于是选择Linux x64版本的下载即可.下载后,将压缩包解压,下面是我解压的路径,以及压缩包中的内容然后就是进行环境变量的配置,将jdk关键组件添加到环境变量.我使用的是zsh,在/home/.zshrc配置文件中添加下面三行即可:验证是否安装成功:(二)Tomcat安装与配置首先去apache的官网下载适合自己系统的tomcat版本,进行解压即可.在bin目录下有一些可执行脚本,运行startup.sh,就可以成功开启tomcat服务器.这时候,在自己的浏览器中输入http://localhost:8080进行访问,出现下面的网页说明安装成功.运行关闭脚本,shutdown.sh进行服务器的关闭(三)IDE(Eclipse、MyEclipse或IntelliJ IDEA)的安装与配置同上,去jetbrains网站下载IntelliJ IDEA软件,解压,直接运行bin目录下的idea.sh即可启动程序.(四)在IDE上建立一个JSP单击上边页面中的新建项目,选择条目如下:(五)部署JSP工程文件首先进行web项目的配置,添加tomcat服务器然后添加部署在项目结构中还要添加tomcat模块,能够完全支持jsp的语法现在,回到项目的结构结构上,发现项目的依赖库已经发生了变化,除了jkd,还增加了tomcat.(六)启动Tomcat服务器在IDE中直接单击run,tomcat会自动启动,然后访问项目主页这是tomcat启动过程中的提示信息.(七)浏览JSP项目内容如截图展示.使用IntelliJ IDEA进行项目部署时,与eclipse有些不同,eclipse是把项目文件发布到了tomcat的安装目录下,而IntelliJ是在自己的配置文件夹下拷贝了一个tomcat,然后将项目发布到里面.这是在我的IDE的配置文件中找到的,最後面的几个文件就是刚才所写的项目内容.五、实验小结这次实验搭建了javaweb的开发环境,通过一个简单的jsp页面验证了自己的环境配置。

java实训报告(8篇)

java实训报告(8篇)

java实训报告java实训报告(8篇)在当下这个社会中,越来越多的事务都会使用到报告,报告根据用途的不同也有着不同的类型。

那么一般报告是怎么写的呢?下面是小编收集整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。

java实训报告1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。

2.熟练掌握Java中常用的Swing组件的使用方法。

3.熟练掌握Java程序中图形用户界面设计的方法。

4.熟练掌握使用JDBC操作数据库的方法。

5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。

二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。

该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。

设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。

系统功能分析是在系统开发的总体任务的基础上完成的。

该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。

供应商管理:主要包括供应商的添加、删除和修改。

产品管理:主要包括产品的添加、删除和进货、出货。

产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的.导出。

2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。

是组织、管理和控制信息系统开发过程的一种基本框架。

其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。

java实验报告总结_java总结范文

java实验报告总结_java总结范文

java实验报告总结_java总结范文
本次Java实验主要内容包括Java基础语法的学习和综合实践的应用。

通过学习和实践,我加深了对Java编程语言的理解和运用,并积累了一定的代码编写经验。

以下是我对本次实验的总结:
一、Java基础语法的学习
在Java基础语法的学习中,我主要学习了数据类型、变量、运算符、控制语句、方法和类等基本知识。

这些知识对于开展后续的Java编程工作至关重要。

通过学习,我深刻理解了Java程序如何执行和实现逻辑功能,也初步掌握了Java的面向对象程序设计思想。

二、实践应用
通过综合实践,我学习了Java的许多实用工具和开发框架。

我熟练运用了Eclipse,掌握了Java Web开发的基础知识,学习了常用的开源框架Spring和Hibernate。

通过编写一些简单的实例程序,我掌握了Java开发的应用技巧,了解了Java应用开发的具体过程,也增强了代码调试和排错的能力。

三、思考与反思
通过本次实验,我深刻认识到Java编程的重要性。

Java语言是当今工业界最为广泛
使用的编程语言之一,我深刻认识到要成为一名优秀的Java程序员,需要良好的编程思想和扎实的代码功底。

在实践应用中,我发现实践经验的积累对于提高Java编程能力至关重要,只有不断的实践和尝试,才能不断地提高自己的编程水平。

总之,本次实验让我掌握了Java语言的基本语法和编程技巧,增强了我的综合运用能力,提高了我的编程实践能力,也让我更加深入地认识到Java编程的重要性和必要性。

我将在以后的学习中继续加强Java编程能力的学习和实践,不断提升个人的编程水平,为日后的发展打下良好的基础。

java的实习报告5篇

java的实习报告5篇

java的实习报告5篇实习报告是展示自身实习收获成长的重要报告,那么实习报告该如何写呢?下面是小编为大家整理的几篇java的实习报告范文,希望对大家有所帮助,仅供参考!java的实习报告1一、实习目的通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。

同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。

学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。

通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。

为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

二、实习主要流程1、公司管理规则,程序员素质,程序员编码规范;2、需求开发与管理;3、面向对象分析与设计,面向对象编程的特性;4、 javaSE、javaWeb 、页面设计-JSP页面;5、数据库设计、SQL应用;6、软件需求分析与设计;7、项目实战三、实习内容Oracle数据库数据库是数据的结构化集合。

计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。

Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。

在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结果。

Oracle服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。

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实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。

了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:创建一个java项目,命名为experiment2。

(如何创建项目参考《实验一》的项目创建方法。

)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add方法把组件加入到容器中。

1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。

南昌大学Java实验报告(2)

南昌大学Java实验报告(2)

南昌大学Java实验报告(2)南昌大学实验报告学生姓名:学号:专业班级:实训类型:□ 验证□ 综合□ 设计□ 创新实验日期:2021.11.8 实验成绩:一、实验项目名称字符串和数组二、实验的评分标准实验分为A~F,A为最高,F最低。

F:在规定时间内没有完成所有的实验,而且没有及时提交实验报告,或者实验过程中出现了抄袭复制他人实验代码。

D:能完成实验,但是实验结果出现严重错误,不能体现对教学内容的理解。

C:能基本完成实验,实验结果基本正确。

但是实验内容有较少的错误,提交的实验代码质量一般。

B:能较好的完成实验,实验报告条理清楚,实验代码结构清晰,代码质量较高,及时更正试验中出现的错误,并对运行中一些异常错误进行分析,解释错误产生的原因。

A:能较好的完成实验,实验代码质量高,实验报告完成度高,能在实验完成的基础上,根据个人的理解增加实验的新功能,具有一定的创新能力。

三、实验目的和要求1.掌握java的基础知识。

2.掌握和运用java的控制语句和数组。

3.掌握和运用java的字符串。

四、实验内容1.使用BigInteger计算超大整数的问题。

2.结合字符串和数组计算超大整数的问题这里,我模仿Math写了专门计算数组形式存放整数的一个工具类(见后面源代码),只有静态函数,想来挑战Biginteger类。

在循环体计算前后,分别用时间函数获取系统当前时间,作差来近似等价于核心运算时间。

Biginteger类耗时1ms,自己写的方法耗时13ms,相差13倍,惨败。

3.字符串的“==”和equals()方法。

详细结果解释在源代码注释中给出。

4.统计英文单词5.用StringBuffer模拟扑克牌洗牌6.数独游戏Clear:清除用户输入的所有数据Restart:开始新的数独游戏Check:检查用户输入数据的正确性提示框用户输入的数字显示蓝色,已知的数字显示黑色为增加可判断性,做出了灰色阴影效果7.财务应用程序,比较不同利率下的贷款。

java实训个人总结报告5篇

java实训个人总结报告5篇

java实训个人总结报告5篇篇1一、引言本次Java实训旨在提升个人在Java编程语言方面的能力,通过系统地学习和实践,加深对Java基础语法、面向对象编程、常用数据结构与算法、网络编程、数据库操作等方面的理解和掌握。

在为期一个月的实训中,我积极参与,认真完成每一个任务,不仅巩固了理论知识,还提高了实际操作能力。

二、主要收获1. 深入理解了Java基础语法:通过学习Java的基础语法,如变量、数据类型、运算符、流程控制等,我能够熟练编写基本的Java程序,为后续的学习奠定了坚实的基础。

2. 掌握了面向对象编程的思想:Java是一种面向对象的语言,通过学习和实践,我逐渐掌握了面向对象编程的思想,包括类的定义、对象的创建、封装、继承、多态等概念,能够运用这些思想来解决实际问题。

3. 熟悉了常用数据结构与算法:在Java中,提供了丰富的数据结构和算法库,通过学习这些内容,我能够熟练运用数组、列表、集合等数据结构,并掌握了一些常用的排序、查找等算法。

4. 了解了网络编程的基本原理:在网络编程方面,我学习了Java 中的Socket编程、HTTP通信等基本原理,并能够运用这些原理来编写简单的网络应用程序。

5. 学会了数据库操作的基本方法:在数据库操作方面,我学习了Java中的JDBC技术,并能够运用这种技术来连接数据库、执行SQL 语句、处理结果集等基本操作。

三、个人感受通过本次Java实训,我不仅巩固了理论知识,还提高了实际操作能力。

在学习的过程中,我感受到了Java语言的强大和灵活,同时也意识到了自己的不足和需要改进的地方。

在未来的学习和工作中,我会继续努力,不断提高自己的编程能力。

四、存在的问题及改进措施在本次Java实训中,我发现自己在某些方面还存在不足,如对一些高级特性和优化技巧的了解不够深入,在实际应用中还需要进一步学习和掌握。

此外,在编程实践中,我还需要加强自己的代码规范性和可读性,避免出现一些低级错误。

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

南昌大学实验报告学生姓名:学号:专业班级:实训类型:□验证□综合□设计□创新实验日期:2017.11.1 实验成绩:一、实验项目名称Java开发环境搭建和Java语言基础二、实验的评分标准实验分为A~F,A为最高,F最低。

F:在规定时间内没有完成所有的实验,而且没有及时提交实验报告,或者实验过程中出现了抄袭复制他人实验代码。

D:能完成实验,但是实验结果出现严重错误,不能体现对教学内容的理解。

C:能基本完成实验,实验结果基本正确。

但是实验内容有较少的错误,提交的实验代码质量一般。

B:能较好的完成实验,实验报告条理清楚,实验代码结构清晰,代码质量较高,及时更正试验中出现的错误,并对运行中一些异常错误进行分析,解释错误产生的原因。

A:能较好的完成实验,实验代码质量高,实验报告完成度高,能在实验完成的基础上,根据个人的理解增加实验的新功能,具有一定的创新能力。

三、实验目的和要求1.掌握Java的基础知识2.掌握和运用Java的控制语句和数组3.使用Eclipse平台开发Java应用四、实验内容1.HelloWorld的应用程序和Applet程序。

A.javap工具解析HelloWord字节码的类B.javap反汇编HelloWorld字节码C.修改代码,使之成为应用程序和Applet小程序两种程序的“入口”不同,一个是main()函数,一个是init()函数,所以直接添加代码即可,运行时,根据IDE的run功能,选择相应的程序执行即可。

第一个和最后一个分别是Applet程序和Application程序D.写文档注释,生成文件一些效果截图2.打印日历程序3.枚举类统计Java成绩非法输入程序会报错退出正确结果自学了一下javafx,写了个简陋的UI。

(要配合控制台输入数据,有待改进)4.四连子游戏继续自学了一下javafx,给这个游戏包装了一个UI。

本题和老师理解的要求可能有出入,游戏规则有点差别,但是底层逻辑是差不多的,于是我还是按照自己的想法写了下去,希望老师理解。

某一列下满,按钮失效获胜,信息提示绿色指示当前局该哪一方落子平局Restart:清盘重玩Quit:退出实验源代码如下:-------1.helloworld---------------package one;import java.applet.Applet;import java.awt.*;/*** This class is used to show hello world information* in two kinds of ways** 1.print the information in the console* 2.generate an applet to display the info** @author Yuchen Tian*/public class HelloWorld extends Applet{/*** main function for Application* @param args*/public static void main(String[] args){//for applicationSystem.out.println("Hello World!");}public void init(){ }//for applet/*** create an graph on applet to show info* @param g*/public void paint(Graphics g){g.drawString("Hello World!",20,20);}}------2.printCalendar-------------Part1---------------package two;/*this Month enum defines the 12 months of all yearincluding the information of:index:the order in current classname:the full name of the monthday:days in this month*/public enum Month {JAN(1,"January",30),FEB(2,"February",28),MAR(3,"March",31),APR(4,"April",30 ),MAY(5,"May",31),JUN(6,"June",30), JUL(7,"July",31),AUG(8,"August",31), SEP(9,"September",30),OCT(10,"October",31),NOV(11,"November",30),DEC(12,"De cember",31);private int index;private String name;private int day;Month(int index,String name,int day){this.index = index; = name;this.day = day;}public String getName(){return name;}public int getDay(){return day;}//when a month call this method,it becomes the month following itpublic Month next(){int index = (this.index+1 > 12) ? 1 : this.index+1;return getMonthByIndex(index);}//get a month according to the it's index in the enumpublic Month getMonthByIndex(int index){for(Month c:Month.values()){if(c.index == index)return c;}return null;}}-------part2-------package two;import java.util.Calendar;import java.util.GregorianCalendar;public class MyCalendar {private int year;private int startDay;private Month m;public MyCalendar(int year){this.year = year;this.startDay = getFirstDay(0,1) % 7;//month1,day1m = Month.JAN; //start month of the year}public int getFirstDay(int month, int day){GregorianCalendar tool = new GregorianCalendar(this.year,month,day); return tool.get(Calendar.DAY_OF_WEEK);//0 for Sun ,1 for Mon...}public void printMonth(Month m){//generate the head information of each monthSystem.out.printf("%20s\n",m.getName());System.out.println("--------------------");System.out.println("Su Mo Tu We Th Fr St");int count = 0;for(int i=0;i<startDay;++i){//print blanksSystem.out.printf("%3c",' ');count++;}for(int i=1;i<=getDays(m);++i){//print daysSystem.out.printf("%2d ",i);count++;if(count%7==0)System.out.println();}System.out.println();startDay = (getDays(m) + startDay) % 7; //change the startDay for the next month}public boolean isLeapYear(){return year%400 == 0 || (year%4 == 0 && year%100 !=0);}//get days in specific month//days in February is unique when it is leap year//hence,a special approach is implement to alter it rightpublic int getDays(Month m){int days = m.getDay();if(isLeapYear() && m.getName().equals(Month.FEB.getName()))//specialfor Februarydays += 1;return days;}//once printed the first month//change the m to the next monthpublic void printAllMonth(){for(int i = 0;i<12;++i){printMonth(m);m = m.next();}}}---------part3----------package two;import java.util.Scanner;public class PrintCalendar {public static void main(String[] args){//Prompt the user to input a yearScanner input = new Scanner(System.in);System.out.print("Please input a year:");int year = input.nextInt();//create a MyCalendar instanceMyCalendar cal = new MyCalendar(year);cal.printAllMonth();}}----------3,aggregate the scores----------------part1--------package three;public enum GradeRank {A("优秀",0),B("良好",1),C("中等",2),D("及格",3),E("不及格",4); private String info;private int index;GradeRank(String info, int index){ = info;this.index = index;}public int getIndex() {return index;}public String getInfo() {return info;}public GradeRank changeRank(Double grade){GradeRank g;if(grade>=90 && grade<=100)g = GradeRank.A;else if(grade<90 && grade>=80)g = GradeRank.B;else if(grade<80 && grade>=70)g = GradeRank.C;else if(grade<70 && grade>=60)g = GradeRank.D;else if(grade<60 && grade>=0)g = GradeRank.E;elseg = null;return g;}}-------part2-------package three;import java.util.Scanner;public class EvaluateGrade {private int[] collection;private GradeRank g; //the standard for Aggregatingprivate int num; //how many scores you need to calculatepublic EvaluateGrade(int num) {this.collection = new int[5];//n different ranksg = GradeRank.A;this.num = num;}//when a new score is input//g is gonna to change according to the value of the scorepublic void checkRank(Double grade){g = g.changeRank(grade);if(g==null){System.out.println("Invalid input!");System.exit(1);}collection[g.getIndex()]++;}public void countRank(){Scanner input = new Scanner(System.in);System.out.println("Input the scores:");for(int i = 0;i<num;i++){Double grade = input.nextDouble();checkRank(grade);}}public void display(){for(int i=0;i<5;i++)System.out.printf("%s%c%5.1f%c\n",indexToStr(i),':',getPercent(i),'%'); }//acquire the information using index//to display the outcome betterpublic String indexToStr(int i){for(GradeRank c : GradeRank.values()){if(c.getIndex()==i)return c.getInfo();}return null;}public double getPercent(int i){return ((double) collection[i]/num)*100;}}--------part3--------package three;import java.util.Scanner;public class Aggregate {public static void main(String[] args){Scanner number = new Scanner(System.in);System.out.print("Please input the number of scores you want to deal with:");int n = number.nextInt();EvaluateGrade checker = new EvaluateGrade(n);checker.countRank();checker.display();}}-----------4,chessgame----------------part1------/*this class is designed to store data in playing gamesand make the rule of the playing as well*/public class Game {private int[][] board;private int[] full;private boolean isBlack;public Game(){this.board = new int[7][];for(int i=0;i<7;i++)this.board[i] = new int[6];this.isBlack = true;//black side is firstfull = new int[7];for(int i=0;i<7;i++)full[i] = 5;}public boolean isBlack() {return isBlack;}//change to the other side to playpublic void inTurn(){this.isBlack = !this.isBlack;}public boolean isFull(int i){return full[i] == -1;}public boolean isAllFull(){for(int i=0;i<7;++i)if(!isFull(i))return false;return true;}//the most important part//check whether one side has won the gamepublic boolean checkWin(int i,int j){if(line(i,j)||column(i,j)||leftR(i,j)||rightL(i,j))return true;elsereturn false;}public boolean line(int i,int j){int cx = 0;for(int m =i+1;m<7 && board[m][j]==board[i][j];++m)cx++;for(int m = i-1;m>=0 && board[m][j]==board[i][j];--m)cx++;if(cx>=3)return true;elsereturn false;}public boolean column(int i,int j){int cx = 0;for(int n =j+1;n<6 && board[i][n]==board[i][j];++n)cx++;for(int n = j-1;n>=0 && board[i][n]==board[i][j];--n)cx++;if(cx>=3)return true;elsereturn false;}public boolean leftR(int i,int j){int cx = 0;for(int m=i+1,n=j+1;m<7 && n<6 && board[m][n]==board[i][j];++m,++n) cx++;for(int m=i-1,n=j-1;m>=0 && n>=0 && board[m][n]==board[i][j];--m,--n) cx++;if(cx>=3)return true;elsereturn false;}public boolean rightL(int i,int j){int cx = 0;for(int m=i-1,n=j+1;m>=0 && n<6 && board[m][n]==board[i][j];--m,++n) cx++;for(int m=i+1,n=j-1;m<7 && n>=0 && board[m][n]==board[i][j];++m,--n) cx++;if(cx>=3)return true;elsereturn false;}//change the data of game when one side drop the chesspublic int dropChess(int i){board[i][full[i]] = (isBlack()) ? 1 : 2;inTurn();full[i]--;return full[i]+1;}}-----part2------import javafx.geometry.Insets;import javafx.scene.control.Button;import javafx.scene.control.TextField;import yout.BorderPane;import yout.GridPane;import javafx.scene.paint.Color;import javafx.scene.shape.*;import javafx.scene.text.*;/*this class is designed to append graph of each element into the game determined the layout of these elements as wellmore importantly, the change of the elements as the game playing*/public class ChessBoard {private Game rule;//the elementsprivate Font font;private Rectangle[] recs;private TextField result;private Button[] bts;private Button[] indicator;private Button[] choice;private Circle[] light;private Circle[] chess;//the frameworkprivate GridPane board;private BorderPane frame;private GridPane control;//initialize all the elementsChessBoard() {this.rule = new Game();this.font = Font.font(null, FontWeight.NORMAL, null, 20);this.recs = new Rectangle[42];this.result = new TextField();this.bts = new Button[7];this.indicator = new Button[2];this.choice = new Button[2];this.light = new Circle[2];this.chess = new Circle[42];this.board = new GridPane();this.frame = new BorderPane();this.control = new GridPane();this.result = new TextField();}//set all the properties of the elementspublic void init() {for (int i = 0; i < 42; i++) {recs[i] = new Rectangle(60, 60);recs[i].setFill(Color.gray(0.36));chess[i] = new Circle(25);chess[i].setFill(Color.gray(0.36));}for (int i = 0; i < 7; i++) {bts[i] = new Button("Drop");bts[i].setPrefSize(60, 40);}for (int i = 0; i < 2; i++) {light[i] = new Circle(16);light[i].setFill(Color.rgb(0, 230, 0, 1));//control capacity }choice[0] = new Button("Restart");choice[1] = new Button("Quit");indicator[0] = new Button("Black");indicator[1] = new Button("White");for (int i = 0; i < 2; i++) {indicator[i].setFont(font);indicator[i].setPrefSize(100, 40);indicator[i].setMouseTransparent(true);choice[i].setPrefSize(150, 40);choice[i].setFont(font);}result.setFont(font);result.setPrefSize(180,50);result.setEditable(false);}//add all the elements into the main frame//set the layout between thempublic void load() {board.setHgap(1);control.setVgap(10);//fill the chess boardfor (int i = 0; i < 42; ++i){board.add(recs[i], i % 7, (i / 7) + 1);board.add(chess[i],i % 7, (i / 7) + 1);GridPane.setMargin(chess[i], new Insets(0, 0, 0, 5));}//for control partfor (int i = 0; i < 2; i++) {GridPane.setMargin(light[i], new Insets(0, 20, 0, 20)); GridPane.setMargin(choice[i], new Insets(20, 0, 0, 0)); control.add(choice[i], 0, i + 10, 2, 1);control.add(indicator[i], 0, i+1);control.add(light[i], 1, i+1);}control.add(result,0,3,2,1);GridPane.setMargin(result,new Insets(20, 20, 0, 0));for (int i = 0; i < 7; i++)board.add(bts[i], i, 0);frame.setCenter(board);frame.setRight(control);}public void clearBoard(){for(int i = 0;i<42;++i)chess[i].setFill(Color.gray(0.36));this.rule = new Game();result.clear();for(int i = 0;i<7;++i)getButton(i).setOpacity(1);}public int addChess(int i) {int pos = rule.dropChess(i);//(i,pos) is the right pointif (!rule.isBlack())chess[pos*7+i].setFill(Color.BLACK);elsechess[pos*7+i].setFill(Color.WHITE);return pos;}public void setBtsOff(int tag){if(tag<0){for(int i = 0;i<7;++i)getButton(i).setOpacity(0);}elsegetButton(tag).setOpacity(0);}public void changeLight() {if (rule.isBlack()) {light[0].setFill(Color.rgb(0, 230, 0, 1));light[1].setFill(Color.rgb(0, 230, 0, 0));} else {light[0].setFill(Color.rgb(0, 230, 0, 0));light[1].setFill(Color.rgb(0, 230, 0, 1));}}public boolean isWin(int i,int j){return rule.checkWin(i,j);}public BorderPane getFrame() {return frame;}public Button getButton(int i){return bts[i];}public boolean isFull(int i){return rule.isFull(i);}public Button getChoice(int i){return choice[i];}public void printInfo(int i,int j){if(isWin(i,j)) {if(rule.isBlack())result.setText("White side win!");elseresult.setText("Black side win!");}if(rule.isAllFull())result.setText("Draw!");}}-------part3-------import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.scene.Scene;import javafx.scene.control.Button;import yout.GridPane;import javafx.stage.Stage;/*This class is designed to organize the changes of the game from the last lever logicallyWhat’s more,add events to certain circumstances, enabling the game run mo re fluently*/public class ControlGame extends Application {private ChessBoard chessBoard = new ChessBoard();private boolean lock = false;public void start(Stage stage){chessBoard.init();chessBoard.load();chessBoard.changeLight();addInfoEvents();addQuitEvent();addRestartEvent();Scene scene = new Scene(chessBoard.getFrame(),650,450);stage.setScene(scene);stage.show();}public void addInfoEvents(){for(int i = 0;i<7;++i){chessBoard.getButton(i).setOnAction(newEventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent event) {int col =GridPane.getColumnIndex((Button)event.getSource());if(!chessBoard.isFull(col) && !lock){int j =chessBoard.addChess(col);if(chessBoard.isWin(col,j)){lock = true;chessBoard.setBtsOff(-1);}chessBoard.printInfo(col,j);chessBoard.changeLight();}//ifif(chessBoard.isFull(col))chessBoard.setBtsOff(col);}//class});}}public void addQuitEvent(){chessBoard.getChoice(1).setOnAction(new EventHandler<ActionEvent>() { @Overridepublic void handle(ActionEvent event) {System.exit(0);}});}public void addRestartEvent(){chessBoard.getChoice(0).setOnAction(new EventHandler<ActionEvent>() { @Overridepublic void handle(ActionEvent event) {chessBoard.clearBoard();lock = false;}});}}五、问题和讨论1.总结归纳JA V A程序开发的过程首先要正确安装JDK,并配置环境变量。

相关文档
最新文档