南昌大学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. 增强了项目开发经验。

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

  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,并配置环境变量。

相关文档
最新文档