Java综合实验设计

合集下载

JAVAweb实验课程设计

JAVAweb实验课程设计

JAVAweb实验课程设计一、课程目标知识目标:1. 让学生掌握JAVAweb的基本概念,理解其体系结构及工作原理。

2. 学会使用JAVA语言进行Web编程,掌握Servlet和JSP技术,并能运用到实际项目中。

3. 了解常用的数据库连接技术,掌握JDBC在Web应用中的使用方法。

技能目标:1. 培养学生独立设计和开发小型JAVAweb应用的能力。

2. 提高学生在Web项目中解决问题的能力,包括调试和优化代码。

3. 培养学生团队协作和沟通能力,能够与团队成员共同完成项目。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发其学习热情。

2. 培养学生严谨、认真、负责的学习态度,养成良好的编程习惯。

3. 培养学生面对问题积极思考、勇于探索的精神,提高学生的创新意识。

课程性质:本课程为实验课程,注重理论与实践相结合,以项目为导向,培养学生的实际动手能力。

学生特点:学生已具备一定的JAVA基础,对Web技术有一定了解,但实践经验不足。

教学要求:教师需采用案例教学、任务驱动等方法,引导学生主动参与,注重实践,提高学生的动手能力。

同时,关注学生的个性化发展,鼓励学生创新思维,培养团队协作精神。

通过课程学习,使学生能够达到上述课程目标,为后续专业课程打下坚实基础。

二、教学内容1. JAVAweb基本概念:介绍Web应用体系结构,理解B/S架构,掌握HTTP 协议基础。

2. Servlet技术:学习Servlet的生命周期、请求和响应处理、会话管理、过滤器、监听器等。

3. JSP技术:掌握JSP页面元素的编写,理解JSP的内置对象,学习JSP标签和EL表达式。

4. 数据库连接技术:学习JDBC的使用,掌握数据库的连接、SQL语句执行、结果集处理等。

5. 常用框架与技术:了解Struts2、Spring、Hibernate等常用框架的基本原理和使用方法。

6. 实践项目:设计并实现一个简单的在线图书管理系统,涵盖用户注册、登录、图书查询、借阅等功能。

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语言的基本语法和编程技巧,
为今后的学习和工作打下了良好的基础。

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

Java程序设计实验指导书(答案)

Java程序设计实验指导书(答案)

第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。

(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。

二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。

三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。

安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。

教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。

2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。

3.编写并编译、运行一个Java Application程序。

创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。

public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。

1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。

JAVA实验报告

JAVA实验报告

JA V A实验报告实验一 Java开发环境及基本语法一、实验目的1、掌握常用的Java 集成开发环境的使用,特别是Eclipse 和NetBeans。

2、掌握Java 基本语法,重点是面向对象的思想和语法。

3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。

二、实验类型设计型。

三、实验内容1、打开实验室计算机上的集成开发环境Eclipse 或NetBeans(重点是Eclipse)了解开发软件的各个菜单功能。

会创建java 项目(Project),会编辑和编译、运行项目代码。

、。

2,验证和学习所给的几个例子程序及其讲解。

然后自己编写一个至少由一个类构成的Java 程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java 课的成绩(百分制),并输出对该学生成绩是否达到60 分的及格分的判断(可使用if 语句)。

例如,输入学生姓名李明,然后输入成绩50,则输出“ 李明的成绩为不及格”。

3、编写一个程序来表示长方体的长宽高等数据并有计算体积的函数可供调用,长方体类从矩形类继承而来。

程序运行时能接受输入任意的 3 个数作为长方体的长、宽和高,然后能够输出所输入的长宽高及所计算出的体积。

注意不能把代码全部写在main 函数里面,不能直接输出长宽高的乘积。

代码如下;第一个import java.util.Scanner;public class Test{public static void main(String[] args) {String str; // 定义一个字符串变量strint i; // 定义一个整型变量iScanner sc = new Scanner(System.in); // 定义一个Scanner对象,从System.in接受输入System.out.print("输入学生姓名");str = sc.next(); // 等待用户输入任意一个字符串,它会被存到str中System.out.println("姓名:" + str); // 输出字符串strSystem.out.print("输入学生的分数:");i = sc.nextInt(); // 等待用户输入任意一个整数,它会被存到i中if(i<60)System.out.print("他的JAVA不及格,成绩是" + i );elseSystem.out.println("他的JAVA成绩是:" + i); // 输出整数i}}第二个import java.util.Scanner;public class wwh {public static void main(String[] args) {int Long; // 矩形的长int wide; // 矩形的宽int High; // 长方体的高S canner sc = new Scanner(System.in);S ystem.out.print("输入长");L ong = sc.nextInt();S ystem.out.print("输入宽");w ide=sc.nextInt();S ystem.out.print("输入高");H igh=sc.nextInt();T j T=new Tj(Long,wide,High);T.show1();}}class Vehicle{int Long; // 矩形的长int wide; // 矩形的宽Vehicle(int Long,int wide){this.Long=Long;this.wide=wide;}int getArea(){r eturn Long*wide;}void show(){System.out.println("长:"+Long);System.out.println("宽:"+wide);System.out.println("矩形的面积为; "+this.getArea()); }} //class Tj extends Vehicle{int High; // 载人数Tj(int Long,int Wide,int High){super(Long,Wide); // 调用父类的构造函数,对从父类继承而来的成员变量进行初始化this.High=High;}int getTiji(){r eturn super.getArea()*High;}void show1(){s uper.show();// 调用父类方法S ystem.out.println("长方体的高为:"+High);System.out.println("长方体的体积;"+this.getTiji());}}实验二系统类和数组一、实验目的1、通过字符串处理类的应用,掌握系统类的使用方法。

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课程设计实验报告

j a v a课程设计实验报告 Last updated on the afternoon of January 3, 2021Java课程设计实验报告实验题目:打字游戏小程序专业:计算机科学与技术系班级:1202班成员:Java课程设计(打字游戏小程序)一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。

在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。

二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。

2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听。

字母是随机产生的,又要用。

注册了线程。

还要对窗口定义坐标,防止字母出现在同一位子。

并且通过一位数组来给随机出现的字母做坐标定义。

主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。

3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。

5.详细设计(源代码)1)packageDownCharGame;importimportimport/***下落的字母实体类*@authorshenbf**/publicclassCharEntity{raw(g);}etY()>=480){etX((int)()*580)+30);chs[i].setY(0);chs[i].setColor(newColor((int)()*256),(int)()*256),(int)()*256)));chs[i].setCh((char)(65+(int)()*26)));}chs[i].down();}repaint();tart();}publicvoidkeyTyped(KeyEvente){}publicvoidkeyPressed(KeyEvente){}publicvoidkeyReleased(KeyEvente){etCh()||key==chs[i].getCh()+32){etY()<chs[i].getY()){maxYindex=i;}}}}etX((int)()*580)+30);chs[maxYindex].setY(0);chs[maxYindex].setCh((char)(65+(int)()*26)));}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性。

Java课程设计实验报告及全部源码流程图

Java课程设计实验报告及全部源码流程图

课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。

2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。

日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。

3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。

二、实验要求1.问题描述准确、规范。

2.程序结构合理,调试数据准确、有代表性.。

3.界面布局整齐,人机交互方便。

4.输出结果正确。

5.正确撰写实验报告。

三、实验内容编写一个GUI程序实现日历的功能。

一年日历用12页显示,每页显示一个月的日历。

日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。

可以实现显示时钟,时钟能进行整点报时。

可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。

四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。

2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。

3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。

4. 根据实验结果,写出合肥工业大学实验报告。

实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。

5.详细的上机实验步骤见任务分工及程序设计进度表。

五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。

日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。

Java程序设计实验指导

Java程序设计实验指导

附一、实验报告填写方法附1.1 实验开发环境1.硬件:Intel P42.4G/256M/40G PC机一套;2.软件:Windows XP+j2sdk1.5.0+JCreator Pro3.1.0+(MS Access 2000)附1.2实验过程要求1.在上课的同时,将每个实验预习的每个例题直接完成在实验指导书上;2.在实验之前,将实验要求的程序写在草稿本上;3.每次实验之前需要把实验指导书和写有程序的草稿纸带上,以备检查,否则不能进入实验室。

4.实验过程中,不能做与实验无关的事情(如:打游戏、看其他书籍),否则本次实验成绩记0分,在遇到问题的时候举手提问,同学之间交流的声音不可太大。

附1.3实验报告内容填写1.第1页:填写(1)实验目的、(2)实验要求2.第2页~第3页:填写(3)实验程序源代码3.第4页:填写(4)实验运行结果、(5)实验总结实验一:Java基础程序设计Java程序设计语言同大多数程序设计语言一样,具有一些基本特性。

本节实验主要练习Java编程语言的这些基本特性,如Java中的简单数据类型,运算符和表达式,这是学习Java语言必须经过的基础阶段。

掌握了本节实验所讲述的内容后,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型和运算符。

学好Java语言必须具备扎实的语言基础,这对后续学习是很有必要的。

Java程序通过控制语句来执行程序流,完成一定的任务。

程序流是由若干个语句组成的,语句可以是单一的一条语句,也可以是用大括号{}括起来的一个复合语句。

Java中的控制语句主要有分支语句(if-else,switch).循环语句(while,do-while,for)与程序转移有关的跳转语句(break,continue,return)。

本节实验将学习如何控制程序的流程,使程序实现不同功能。

1.1实验目的:1.掌握Java语言的数据类型。

2.掌握Java语言的运算符和表达式。

JAVA程序设计实验

JAVA程序设计实验

JAVA程序设计实验实验1 JAVA基础一、实验目的1.掌握JA V A语言的各种数据类型2.熟悉运算符和表达式。

3.学会编写简单程序二、实验环境硬件:计算机软件:操作系统:windows98以上或LINUX、JDK 1.2以上三、实验内容:下面是一个简单的JA V A程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用println()方法输出各变量的值。

Public class ExampleTest(){Public static void main(String args[]){Int no=(11+20)*3/5; //A行System.out.println(“no=”+no);no++; //B行System.out.println(“no=”+no);Boolean bool=false; //C行bool=true&!bool; //D行System.out.println(“bool=”+bool);Byte bV alue=0x10; //E行System.out.println(“bV alue=”+bV alue);Bool=(no>bV alue); //F行System.out.println(“bool=”+bool);}}四、实验的主要步骤1.用edit录入以上程序内容并保存,注意文件名。

2.用javac.exe命令编译刚保存的JA V A文件。

3.如果编译通不过,用edit打开源代码进行修改。

重复第2步和第3步至到编译通过。

4.用java.exe运行编译生成的类文件。

5.查看运行结果。

实验2 JAVA流程控制一、实验目的1.掌握条件语句的使用。

2.熟悉循环语句的使用。

二、实验环境硬件:计算机软件:操作系统:windows98以上或LINUX、JDK 1.2以上。

三、实验内容1.求a+aa+aaa+…+a..a (n个)的和,其中a为1-9之间的整数。

JAVA语言程序设计实验报告

JAVA语言程序设计实验报告

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。

二、预习内容安装工具软件的基本方法。

三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。

1、打开Eclipse的安装盘安装Eclipse。

2、在相同目录下安装J2SDK。

3、打开Eclipse软件对J2SDK文件进行配置。

4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。

Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。

实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。

应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。

(1)编辑A verage.java。

class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。

java实验报告-分析

java实验报告-分析

实验报告□实践报告□课程名称:Java语言程序设计实验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形用户界面编程实验、实践地点:致向楼301专业班级:软件1531 学号:2015006446学生姓名:关玉芬指导教师:相洁2017 年1月8日实验一Java语言基础一、实验目的和要求(1) 通过实验,掌握Java语言程序设计的基本方法。

(2) 学会Java语言中标示符的命名、运算符和表达式的应用。

(3) 熟练地掌握Java程序流程控制语句的应用。

二、实验内容1.编写应用程序,计算100(含100)以内所有偶数的和。

2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。

编写程序,求所有的水仙花数。

3.编写一个程序,求1-100间的素数。

4. 有一函数:x (x<1)Y= 3x-2 (1≤x<10)4x (x≥10)写一程序,给定x值,输出y值。

5. 使用for循环语句,编写程序输出以下图案。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。

判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。

三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码1. public class a1 {public static void main(String[] args) {int i,sum=0;for(i=0;i<=100;i++){if(i%2==0)sum+=i;}System.out.println(sum);}}2. public class a2 {public static void main(String[] args) {int i,a,b,c;for(i=100;i<=999;i++){a=i%10;b=(i-a)%100/10;c=(i-b*10-a)/100;if(i==a*a*a+b*b*b+c*c*c){System.out.println(i);}}}}3. public class a3 {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=2;i<=100;i++) {boolean t = false;for(int j=2;j<i;j++){if(i%j==0){t=false;break;}else {t=true;}}if(t) System.out.print(i+" ");}}}4. public class a4 {public static void main(String[] args) {int i,j;for(i=1;i<=4;i++){for(j=1;j<=((-1)*i+4);j++)System.out.print(" ");for(j=1;j<=(2*i-1);j++)System.out.print("☆");System.out.println();}for(i=3;i>=1;i--){for(j=1;j<=((-1)*i+4);j++)System.out.print(" ");for(j=1;j<=(2*i-1);j++)System.out.print("☆");System.out.println();}}}5. import java.util.*;public class a5 {public static void main(String[] args) {Scanner x=new Scanner(System.in);System.out.println("请输入一个大于1的整数");int i=x.nextInt();System.out.println("你刚才输入的数为"+i);if(i<1) System.out.print("输出结果为"+i);else if (i>=1&&i<10) System.out.print("输出结果为"+(i*3-2));else System.out.print("输出结果为"+i*4);x.close();}}6. package shiyan;public class a6 {public static void main(String[] args) {int i,j=0;for(i=1900;i<=2100;i++){if((i%4==0)&&(i%100!=0)||(i%400==0)){ j++;if(j%5==0)System.out.println(i);else{System.out.print(i);System.out.print(" ");}}}}} 五、实验结果1.2.3.4.5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。

java_实验四

java_实验四

武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。

2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。

3)了解图形用户界面的事件响应机制。

4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。

5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。

2)使用Java类库中提供的组件,并添加到图形用户界面中。

3)通过Java事件处理机制,实现与用户的交互信息。

4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。

因为只有通过图形界面,用户才能够与程序友好的交互。

缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。

创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。

2)设置一个顶层的容器。

3)根据需要为容器设置布局管理器或使用默认布局管理器。

4)将组件添加到容器内,位置自行设计。

5)为响应事件的组件编写事件处理代码。

下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。

1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。

JFrame 类扩展了 Frame 类。

大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。

框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。

下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。

JAVA 实验报告(一)

JAVA 实验报告(一)

西华大学计算机系上机实践报告课程名称:Java 面向对象程序设计 年级:2008 上机实践成绩: 指导教师:陆园姓名:赵侨月上机实践名称:Java 语言基础 学号:312008********* 上机实践日期:2011.9.30上机实践编号: 组号:上机实践时间:16:00-17:40一、目的1、了解Java 编程基础2.、学会基本Java 程序的实现二、内容与设计思想1、我国历法中的天干、地支和生肖的排列是有规律的。

天干的顺序是“甲乙丙丁戊己庚辛壬癸”,地支的顺序是“子丑寅卯辰巳午未申酉戌亥”,生肖的顺序是“鼠牛虎兔龙蛇马羊猴鸡狗猪”。

天干、地支、生肖的计算方法非常简单:将年份减去3后除以10得到余数是几,对应于天干中的第几个;将年份减去3后除以12得到余数是几,则对应于地支中的第几个;生肖的计算方法和地支完全一致。

例如,对2006年而言,将数字2006减去3后是2003,除以10后的余数是3,对应于天干中的第三位“丙”;将2003除以12的余数是11,所以对应地支中的倒数第二位“戌”。

由此可知,2006年是“丙戌”年,生肖是“狗”。

根据以上思路,用Java 写一个程序。

程序提供一个声明形式为“public void getInfo(int year)”的方法,此方法接收一个int 类型的代表年份的数字,然后计算并打印出相关信息。

2、对于某移动通信公司的某通话服务,按如下标准收取长途通话费:基本通话费是每分钟4角钱,不足1分钟的部分则按照1分钟计算;长途通话费是每6秒7分钱,不足6秒的部分按照6秒计算。

整个长途通话费用由上述两项加起来。

编写一个Java 程序实现上面的计算。

要求:编写一个声明为“public void calcFee(int iSeconds)”的方法,该方法接收通话的秒数,然后计算出费用并显示出来。

在main 方法中调用该方法,分别将通话长度为5秒、60秒、61秒、119秒四种情况下的费用打印出来。

java课程设计实验报告

java课程设计实验报告

java课程设计实验报告Java课程设计实验报告。

一、实验目的。

本次实验旨在通过设计一个简单的Java程序,加深对Java语言的理解和应用,同时锻炼学生的编程能力和解决问题的能力。

二、实验内容。

本次实验要求设计一个简单的学生成绩管理系统,实现对学生成绩的录入、查询、修改和删除等功能。

具体要求如下:1. 设计一个学生类,包括学生的基本信息(学号、姓名、性别等)和成绩信息(语文、数学、英语等科目成绩)。

2. 实现学生成绩的录入功能,可以一次性录入多个学生的成绩信息。

3. 实现学生成绩的查询功能,可以根据学号或姓名查询学生的成绩信息。

4. 实现学生成绩的修改功能,可以修改指定学生的成绩信息。

5. 实现学生成绩的删除功能,可以删除指定学生的成绩信息。

三、实验设计。

在本次实验中,我首先设计了一个学生类,包括学号、姓名、性别和成绩等属性,并提供了相应的构造方法和get、set方法。

然后,我设计了一个学生成绩管理系统的主类,其中包括录入、查询、修改和删除等功能的实现。

在录入功能中,我使用Scanner类实现了从控制台输入学生信息的功能,并将学生信息保存到一个ArrayList中。

在查询功能中,我通过学号或姓名遍历ArrayList,找到相应的学生信息并输出。

在修改功能中,我同样通过遍历ArrayList找到指定学生信息,并提供修改选项,用户可以选择要修改的成绩信息进行修改。

在删除功能中,我也是通过遍历ArrayList找到指定学生信息,并进行删除操作。

四、实验结果。

经过一系列的调试和测试,我成功实现了学生成绩管理系统的设计要求。

用户可以通过简单的命令行界面,实现学生成绩的录入、查询、修改和删除等功能。

系统运行稳定,操作简单,符合设计要求。

五、实验总结。

通过本次实验,我对Java语言的面向对象编程有了更深入的理解,掌握了ArrayList的使用方法,提高了编程能力和问题解决能力。

同时,通过设计一个实用的学生成绩管理系统,我也加深了对Java语言的应用和实践,为以后的学习和工作打下了坚实的基础。

Java程序设计实验2

Java程序设计实验2
stu.age=18;
System.out.println("学号:"+stu.number);
System.out.println("年龄:"+stu.age);
System.out.println("姓名:"+);
}
}
4、为Student类添加构造方法Student(),Student(String number), Student(String number, int age), Student(String number, int age, String name),在main方法中分别利用这些构造方法进行实例化。查看其结果。
System.out.println("stu4姓名:"+);
System.out.println("stu4学号:"+stu4.number);
System.out.println("stu4年龄:"+stu4.age);
}
}
5、在Student类中添加最终(final)变量id和静态(static)变量school,对这两个变量赋初值,尝试改变id和school变量的值,在main方法中采用多种方式访问这两个变量的值。查看其结果。publicclassstudent {
finalStringid="1110012127";
staticStringschool="厦门理工学院";
publicstaticvoidshowschool(){
System.out.println(student.school);

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实验报告分析

java实验报告分析

java实验报告分析《Java实验报告分析》摘要:本实验报告通过对Java编程语言的实验进行分析,探讨了Java在不同应用场景下的性能和效率表现。

通过对实验结果的分析,总结了Java的优势和不足之处,并提出了改进建议。

1. 引言Java作为一种广泛应用的编程语言,具有跨平台、面向对象、强类型等特点,被广泛应用于企业级应用开发、大型系统构建等领域。

本实验旨在通过对Java 编程语言的实验分析,探讨其在不同应用场景下的性能和效率表现,为开发者提供参考和改进建议。

2. 实验设计本实验选择了不同的应用场景,包括大数据处理、网络编程、图形界面等,对Java编程语言进行了性能测试和效率分析。

通过编写相应的实验代码,模拟不同场景下的应用情况,收集实验数据并进行分析。

3. 实验结果通过对实验数据的分析,得出了以下结论:- 在大数据处理方面,Java表现出较好的性能和稳定性,能够有效处理大规模数据,并且具有较高的并发能力。

- 在网络编程方面,Java的Socket编程能够实现稳定的网络通信,并具有较高的扩展性和灵活性。

- 在图形界面方面,Java的Swing和JavaFX等框架能够实现丰富的用户界面,并具有良好的跨平台性能。

4. 结论通过对实验结果的分析,可以得出以下结论:- Java在大数据处理、网络编程、图形界面等方面具有较好的性能和效率表现,适用于各种应用场景。

- Java在一些特定场景下仍存在一些性能和效率方面的不足,需要进一步改进和优化。

5. 改进建议针对Java在一些特定场景下的不足,可以提出以下改进建议:- 进一步优化JVM性能,提高Java在大数据处理方面的效率和并发能力。

- 加强对网络编程和多线程并发的支持,提高Java在网络编程方面的性能和稳定性。

- 不断优化图形界面框架,提高Java在图形界面开发方面的用户体验和性能表现。

6. 结语通过对Java编程语言的实验分析,可以得出Java在不同应用场景下的性能和效率表现。

(完整版)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实验报告完整版

实验报告(计算机与信息工程学院实验中心)学期:2014-2015课程名称:《Java程序设计实验》班级:信息1202*名:***学号:**********指导老师:***《Java程序设计》独立实验教学安排一、实验的教学方式、安排及实验环境(一)教学方式对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。

实验十二的内容由学生自行设计完成。

(二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。

(三)实验环境实验环境为JDK 1.6。

(四)具体安排地点:信息大楼实验室。

辅导:每个班次一名辅导老师,原则上由任课老师担任。

登记:实验完成,由辅导老师登记实验纪录。

学生:实验做完,完成实验报告内容,并在学期末上交实验册。

老师:批改实验,成绩与平时成绩一起占期末的30%。

二、实验的具体内容和要求见实验报告。

浙江工商大学计算机与信息工程学院实验报告(1)日期:地点:成绩:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理和内容:一、实验目的:熟悉Java开发环境及简单程序Java设计。

二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。

三、实验内容及要求:1.下载、安装并设置Java SDK 软件包。

2.熟悉Eclipse编辑软件。

3.掌握运行Java 程序的步骤。

4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。

要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。

程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System.out.println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题1、JA VA 存在大小写,因为system没有区分大小写所以出现编译错误。

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

综合实验报告:滑板反射小球游戏专业班级:遥感科学与技术学号: 20133350姓名:易乐安日期: 2015年6月30日一、程序设计报告小球在窗口四壁弹射(虚线表示弹射的轨道)。

左右移动滑板,接住小球弹射,如果没有接住,则游戏失败一次。

要求:1. 自拟设计记分方法,和界面的其它部分;2. 滑板用键盘控制左右移动;3. 设置难度调节开关,允许游戏过程中改变这一设置,以调节小球运行速度,速度快,则难度增加。

4. 小球在滑板上弹射时,允许一定量的随机变化弹射角度,以实现一定的不确定性。

使用模块:对系统包结构、文件结构列表说明,如表2-1、2-2所示。

表2-1包名作用Java.awt.Insets包含用于创建用户界面和绘制图形图像的所有类Java.awt.event.ActionEvent定义了动作的类Java.awt.event.ActionListener包含用于创建用户界面和绘制图形图像的所有的类Java.awt.event.MouseEvent把类全部导进来Javax.swing.JOptionPane有助于方便地弹出要求用户提供或向其发出通知表2-2文件名作用GameUI.java程序的主窗体,负责窗口和菜单的绘制以及线程的调用。

MyThread.Java游戏的线程,主要负责小球的绘制和判断小球是否被接住,以及记录更新分数。

MyListener.java监听鼠标位置移动的监听器。

用来捕获鼠标的移动和鼠标的当前位置,同时这个类负责板子的绘制与更新。

定义界面:设置标题设置大小设置关闭是退出程序设置打开窗体时在屏幕中间显示设置窗体的流式布局管理器设置窗体背景颜色创建文本标签对象设置文本标签前景颜色创建进度条对象创建按钮对象创建菜单条对象创建菜单对象创建菜单选项对象 创建单选选项 创建一个按钮组主要算法描述:MyThread 继承于Thread ,使用一个单独的线程进行小球的绘制。

小球的绘制和滑板的绘制大同小异,都是使用java.awt.Graphics 进行绘制的。

MyThread 还兼顾着进行小球是否被接住的判断。

主要是通过返回的板子的坐标和小球的坐标来判断小球是否在板子上方的一定范围里,如果在,则判断为接住,否则,为掉落分层结构及调用关系说明进入游戏画面根据球出现的位置,移动鼠标使滑板到相应的位置的上方,测试可以接多少个球。

若滑板接到一个球,则玩家就得一分,若接不到球,就游戏结束。

先选择游戏的难度,有简单,中等和困难。

游戏结束,选择否,退出游戏。

游戏结束,选择是,重新开始新的游戏。

二、程序测试报告用例:关键代码分析public void run() {drawOval();}public void drawOval() {UI.text_field.setText(count + "分");//start = System.currentTimeMillis();while (isFinish) {while (isPause) {synchronized(this.g){g.setColor(java.awt.Color.black);g.fillOval(x, y, width, height);y += y1;getColors();g.setColor(color);g.fillOval(x, y, width, height);}int x2 = listener.getX();if (y < 90) {y1 = 5;}if (y > 595 && x > x2 && x < x2 + 100) {this.fadeOval();count += 1;UI.text_field.setText(count + "分");y1 = 5;y = 100;java.util.Random ran = new java.util.Random();x = ran.nextInt(600) + 10;}if (y > 630) {if (isexist) {isAgain();}stopThread();}try {Thread.sleep(speed);} catch (Exception ef) {ef.printStackTrace();}}}}小球的绘制其实就是不断的绘制一个圆形,只不过圆形的y坐标在不停的变化。

难度的控制是通过主程序传入的speed参数来控制的,这个参数用于Thread.sleep(speed),很显然,当这个参数与小球下落的速度成反比。

通过调用UI.text_field.setText()来更新主窗口上的分数。

结果:结论:一个好的算法可以让你的程序更健壮,编写的代码量更少,处理异常一直是JAVA里的常事,通过试验,让我对基础的知识更加深入了解,也对更改代码错误有了一定的提升,能看的懂错误的代码错在哪里,并进行修改,使其正确。

这个游戏只是一个简单的接球游戏,如果可以做的更好,就会更好的训练人们的集中力和反应速度,敏捷的做出正确的判断。

附录:源程序代码:import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;/游戏界面类/public class GameUI extends javax.swing.JFrame {private static GameUI UI;private java.awt.Graphics g;private MyListener ml;public javax.swing.JLabel text_field;public javax.swing.JProgressBar pBar;private String command;public java.util.ArrayList<MyThread> list = new java.util.ArrayList<MyThread>();private javax.swing.JToggleButton button;public static void main(String args[]){UI = new GameUI();UI.initUI();}/ 初始化窗体的方法/public void initUI() {// 设置标题this.setTitle("接球");// 设置大小this.setSize(610, 635);// 设置关闭是退出程序this.setDefaultCloseOperation(3);// 设置打开窗体时在屏幕中间显示this.setLocationRelativeTo(null);// 设置窗体的流式布局管理器this.setLayout(new java.awt.FlowLayout());// 设置窗体背景颜色this.getContentPane().setBackground(java.awt.Color.black);// 创建文本标签对象text_field = new javax.swing.JLabel();javax.swing.JLabel lable = new javax.swing.JLabel("时间:");// 设置文本标签前景颜色lable.setForeground(java.awt.Color.red);text_field.setForeground(java.awt.Color.red);// 创建进度条对象pBar = new javax.swing.JProgressBar(0, 330);// 创建按钮对象button = new javax.swing.JToggleButton();button.setMargin(new Insets(0, 0, 0, 0));button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));button.setActionCommand("暂停");// 通过匿名内部类来创建动作监听器java.awt.event.ActionListener button_listener = new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {String com = e.getActionCommand();if (com.equals("暂停")) {button.setMargin(new Insets(0, 0, 0, 0));button.setIcon(new javax.swing.ImageIcon("images/start.gif"));button.setActionCommand("继续");for (int i = 0; i < list.size(); i++) {list.get(i).PauseThread();}}if (com.equals("继续")){button.setMargin(new Insets(0, 0, 0, 0));button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));button.setActionCommand("暂停");for (int i = 0; i < list.size(); i++) {list.get(i).ContinueThread();}}}};button.addActionListener(button_listener);this.add(button);this.add(lable);this.add(pBar);this.add(text_field);// 的到菜单条javax.swing.JMenuBar bar = creatMenuBar();// 为窗体设置菜单条this.setJMenuBar(bar);// 设置窗体的可见性this.setVisible(true);}/创建菜单条的方法/public javax.swing.JMenuBar creatMenuBar() {// 创建菜单条对象javax.swing.JMenuBar bar = new javax.swing.JMenuBar();// 创建菜单对象javax.swing.JMenu menu_menu = new javax.swing.JMenu("菜单");javax.swing.JMenu difficulty_menu = new javax.swing.JMenu("难度");javax.swing.JMenu help_menu = new javax.swing.JMenu("帮助");// 创建菜单选项对象javax.swing.JMenuItem star_item = new javax.swing.JMenuItem("开始");javax.swing.JMenuItem exit_item = new javax.swing.JMenuItem("退出");javax.swing.JMenuItem help_item = new javax.swing.JMenuItem("游戏说明"); javax.swing.JMenuItem about_item = new javax.swing.JMenuItem("关于"); // 创建单选选项javax.swing.JRadioButtonMenuItem easy_item = new javax.swing.JRadioButtonMenuItem("简单");javax.swing.JRadioButtonMenuItem middle_item = new javax.swing.JRadioButtonMenuItem("中等");javax.swing.JRadioButtonMenuItem hard_item = new javax.swing.JRadioButtonMenuItem("困难");// 创建一个按钮组javax.swing.ButtonGroup group = new javax.swing.ButtonGroup();// 将单选按钮添加到按钮组中group.add(easy_item);group.add(middle_item);group.add(hard_item);// 将单选按钮添加到菜单中difficulty_menu.add(easy_item);difficulty_menu.add(middle_item);difficulty_menu.add(hard_item);// 通过匿名内部类来创建动作监听器ActionListener listener = new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {command = e.getActionCommand();// 如果选择开始,则创建线程对象if (command.equals("开始") && list.size() == 0) {creatBall(20, 1);}// 如果选择退出按钮,则退出程序if (command.equals("退出")) {System.exit(0);}// 如果选择简单按钮if (command.equals("简单") && list.size() == 0) {creatBall(20, 1);}// 如果选择中等按钮if (command.equals("中等") && list.size() == 0) {creatBall(50, 2);}if (command.equals("困难") && list.size() == 0) {creatBall(40, 2);}if (command.equals("游戏说明")) {javax.swing.JOptionPane.showMessageDialog(null,"用挡板接球,如果接不住,就算输了……\n游戏可以选择难度,包括简单、中等、困难");}if (command.equals("关于")) {javax.swing.JOptionPane.showMessageDialog(null, " 滑板反射小球游戏\n制作人:易乐安");}}};// 添加动作监听器star_item.addActionListener(listener);exit_item.addActionListener(listener);easy_item.addActionListener(listener);middle_item.addActionListener(listener);hard_item.addActionListener(listener);help_item.addActionListener(listener);about_item.addActionListener(listener);// 将菜单选项对象添加到菜单对象上menu_menu.add(star_item);menu_menu.add(exit_item);help_menu.add(help_item);help_menu.add(about_item);// 将菜单对象添加到菜单条上bar.add(menu_menu);bar.add(difficulty_menu);bar.add(help_menu);// 返回菜单条对象return bar;}/创建线程对象的方法/public void creatBall(int speed, int num) {java.util.Random ran = new java.util.Random();if (ml == null) {g = UI.getGraphics();ml = new MyListener(g);UI.addMouseListener(ml);UI.addMouseMotionListener(ml);}for (int i = 0; i < num; i++) {int x = ran.nextInt(600) + 10;int y = ran.nextInt(300) + 100;MyThread th = new MyThread(g, ml, UI, x, y, speed); list.add(th);th.start();}}/得到命令的方法/public String getCommand() {return command;}}import java.awt.Color;import javax.swing.JOptionPane;/线程类/public class MyThread extends Thread {private int width = 20, height = 20;private int x, y;private java.awt.Graphics g;private GameUI UI;private boolean isexist = true;private MyListener listener;private int speed;private int x1 = 12, y1 = 12;private long start, end;private long last_time;private int response;private boolean isFinish = true;private boolean isPause = true;private java.util.ArrayList<MyThread> list;private float value = 320;private java.awt.Color color = java.awt.Color.blue;/重写构造器/public MyThread(java.awt.Graphics g, MyListener listener, GameUI UI, int x, int y, int speed) {this.g = g;this.UI = UI;this.x = x;this.y = y;this.speed = speed;this.listener = listener;}/ (non-Javadoc)重写run的方法/public void run() {drawOval();}/创建线程的方法/public void drawOval() {start = System.currentTimeMillis();while (isFinish) {while (isPause) {synchronized(this.g){// 画一个圆g.setColor(java.awt.Color.black);g.fillOval(x, y, width, height);x += x1;y += y1;getColors();g.setColor(color);g.fillOval(x, y, width, height);}int x2 = listener.getX();if (x > 580) {x1 = -12;}if (x < 10) {x1 = 12;}if (y < 90) {y1 = 12;}if (y > 595 && x > x2 && x < x2 + 100) {y1 = -12;}if (y > 630) {if (isexist) {isAgain();}stopThread();}try {Thread.sleep(speed);value -= 0.1;} catch (Exception ef) {ef.printStackTrace();}// 将前一次画的清除掉end = System.currentTimeMillis();last_time = 100 - (end - start) / 1000;UI.text_field.setText(last_time + "s");UI.pBar.setValue((int) value);if (last_time == 0) {list = UI.list;for (int j = 0; j < list.size(); j++) {// 停在线程,并且去掉最后一个圆list.get(j).stopThread();list.get(j).fadeOval();}stopThread();showDialog();}}}}/线程结束时消去最后一个圆的方法/public void fadeOval() {g.setColor(java.awt.Color.black);g.fillOval(x, y, width, height);}/重来对话框的处理方法/public void isAgain() {isexist = false;list = UI.list;System.out.println(list.size());for (int j = 0; j < list.size(); j++) {// 停在线程,并且去掉最后一个圆list.get(j).stopThread();list.get(j).fadeOval();}Object[] options = { "是", "否" };String command = UI.getCommand();response = JOptionPane.showOptionDialog(null,"坚持就是胜利,是否再来一次?", null, JOptionPane.YES_OPTION, JOptionPane.NO_OPTION, null, options, null);System.out.println(response);if (response == 0) {if (command.equals("简单") || command.equals("开始")) {AgainThread();if (list.size() != 0) {// 现将原来的对象从队列中移除 list.removeAll(list);UI.creatBall(20, 1);}}if (command.equals("中等")) {AgainThread();if (list.size() != 0) {list.removeAll(list);UI.creatBall(50, 2);}}if (command.equals("困难")) {AgainThread();if (list.size() != 0) {list.removeAll(list);UI.creatBall(40, 2);}}}// 如果点击关闭,则将线程对象从队列中移除 if (response == -1 || response == 1) { list.removeAll(list);}}/停止线程的方法/public void stopThread() {isFinish = false;isPause = false;}/暂停线程的方法/public void PauseThread() {isPause = false;}/继续线程的方法/public void ContinueThread() {isPause = true;}/是否重来的方法/public void AgainThread() {isFinish = true;isPause = true;}public void getColors() {if (x % 2 == 0 && y % 2 == 0) {color = java.awt.Color.green;}if (x % 2 == 0 && y % 2 != 0) {color = java.awt.Color.red;}if (x % 2 != 0 && y % 2 != 0) {color = java.awt.Color.orange;}if (x % 2 != 0 && y % 2 != 0) {color = java.awt.Color.yellow;}}public void showDialog() {javax.swing.JOptionPane.showInputDialog("好样的,你是真的高手,\n恭喜你\n请输入您的大名");}}import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import javax.swing.JFrame;/鼠标监听器的类/public class MyListener extends java.awt.event.MouseAdapter { private java.awt.Graphics g;private int x = 5, y = 620;private int width = 100, height = 10;public MyListener(java.awt.Graphics g) {this.g = g;}public void mouseMoved(MouseEvent e) {// 设置画布对象颜色synchronized (this.g) {g.setColor(java.awt.Color.black);g.fillRect(x, y, width, height);x = e.getX();g.setColor(java.awt.Color.green);g.fillRect(x, y, width, height);}}/得到x的方法/public int getX() {return x;}}。

相关文档
最新文档