实例1 JAVA设计报告
- 格式:doc
- 大小:270.50 KB
- 文档页数:26
南邮Java实验报告1-综合图形界面程序设计英文回答:Firstly, I would like to express my sincere gratitudeto my instructor for providing me with the opportunity to work on this Java programming project, which focuses on the design of a comprehensive graphical user interface (GUI). Throughout this project, I have gained valuable experiencein developing a user-friendly and visually appealing application that meets the specified requirements.To begin with, I started by gathering the necessary requirements and understanding the problem statement. Ithen proceeded to design the GUI layout and create the corresponding Java classes and methods. I utilized various Java Swing components, such as buttons, text fields, labels, and panels, to construct a user-friendly interface. Additionally, I implemented event handling mechanisms to respond to user interactions and perform appropriateactions.During the development process, I encountered several challenges. One of the challenges was ensuring that the GUI was responsive and user-friendly. I addressed this by carefully designing the layout and implementing efficient event handling mechanisms. Another challenge was handling complex user interactions and data validation. I overcame this by using appropriate data structures and algorithms to validate user input and perform the required operations.To further enhance the user experience, I incorporated custom graphics and animations. I created custom icons and images to enhance the visual appeal of the application. I also implemented animations to provide visual feedback to users. By incorporating these elements, I aimed to create an engaging and immersive experience for the users.In addition to the technical aspects of the project, I also focused on adhering to coding conventions and best practices. I used proper naming conventions, indentation, and commenting throughout my code. This ensured the codewas readable, maintainable, and extensible.Overall, working on this Java GUI programming project has been a rewarding experience. I have learned a great deal about GUI design, event handling, and the implementation of custom graphics and animations. I am confident that the knowledge and skills I have acquired through this project will be invaluable in my future endeavors as a software developer.中文回答:首先,我谨向我的导师在这次Java编程项目中提供给我的机会表示由衷的感谢。
《Java语言程序设计》实验报告一学生姓名:孙文琳班级:信息111 学号:201152275119 实验地点:经管中心证券实验室指导教师:赵利平实验日期:2012.3.6实验环境:Windows 2000+JDK1.61.实验目的(1)养成良好的编程风格;(2)掌握字符数据类型及其运算;(3)熟悉从输入对话框获取输入和从控制台获取输入两种方法;(4)掌握布尔运算符;(5)掌握分支语句if和switch。
2.实验内容(1)在控制台下求两个实数的最大值:完成实验教材P22程序清单2-2;(2)3.实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。
实验内容(1)://CompareT woNumbersl.javaimport java.util.Scanner;public class CompareTwoNumbers1{double number1,number2;Scanner scanner;public CompareTwoNumbers1(){System.out.println("请输入两个数字:");scanner=new Scanner(System.in);number1=scanner.nextDouble();number2=scanner.nextDouble();System.out.println("较大的数是:"+(number1>number2?number1:number2));}public static void main(S tring args[]){CompareT woNumbers1 ct=new CompareTwoNumbers1();System.exit(0);}}实验内容(2)://DollarConvertor.javaimport java.util.Scanner;public class DollarConvertor{public static void main(String args[]){ System.out.println("请输入美元数:"); Scanner scanner=new Scanner(System.in); double i=scanner.nextDouble();double result=i*6.2875;System.out.println("对应的人民币数:"+result);} }实验内容(3):public class MultiplyList1{public static void main(String args[]){String output="";for(int row=1;row<=9;row++){for(int col=1;col<=row;col++)output+=col+"*"+row+"="+(row*col)+" ";output+="\n";}System.out.println(output);System.exit(0);}}4.实验总结心得体会:做实验要小心翼翼,注意Java大小区分。
java类的设计实验报告Java 类的设计实验报告一、实验目的本次实验的主要目的是深入理解和掌握 Java 类的设计原则、方法和技巧,通过实际的编程实践,提高对面向对象编程思想的应用能力,培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容1、设计一个简单的学生类(Student),包含学生的姓名(name)、年龄(age)、学号(studentId)等属性,并提供相应的构造方法、getter 和 setter 方法。
2、设计一个课程类(Course),包含课程名称(courseName)、课程编号(courseId)、授课教师(teacher)等属性,同样提供构造方法和相关的访问方法。
3、设计一个学生选课类(StudentCourse),用于关联学生和课程,包含学生对象(student)、课程对象(course)、选课时间(selectTime)等属性,并实现相应的方法来获取和设置这些属性。
四、实验步骤(一)学生类(Student)的设计```javapublic class Student {private String name;private int age;private String studentId;//无参构造方法public Student(){}//有参构造方法public Student(String name, int age, String studentId) {thisname = name;thisage = age;thisstudentId = studentId;}// getter 和 setter 方法public String getName(){return name;}public void setName(String name) {thisname = name;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}}```(二)课程类(Course)的设计```javapublic class Course {private String courseName;private String courseId;private String teacher;//无参构造方法public Course(){}//有参构造方法public Course(String courseName, String courseId, String teacher) {thiscourseName = courseName;thiscourseId = courseId;thisteacher = teacher;}// getter 和 setter 方法public String getCourseName(){return courseName;}public void setCourseName(String courseName) {thiscourseName = courseName;}public String getCourseId(){return courseId;}public void setCourseId(String courseId) {thiscourseId = courseId;}public String getTeacher(){return teacher;}public void setTeacher(String teacher) {thisteacher = teacher;}}```(三)学生选课类(StudentCourse)的设计```javapublic class StudentCourse {private Student student;private Course course;private String selectTime;//无参构造方法public StudentCourse(){}//有参构造方法public StudentCourse(Student student, Course course, String selectTime) {thisstudent = student;thiscourse = course;thisselectTime = selectTime;}// getter 和 setter 方法public Student getStudent(){return student;}public void setStudent(Student student) {thisstudent = student;}public Course getCourse(){return course;}public void setCourse(Course course) {thiscourse = course;}public String getSelectTime(){return selectTime;}public void setSelectTime(String selectTime) {thisselectTime = selectTime;}}```(四)测试类```javapublic class Test {public static void main(String args) {//创建学生对象Student student1 = new Student("张三", 20, "001");//创建课程对象Course course1 = new Course("Java 编程","001","李老师");//创建学生选课对象StudentCourse studentCourse1 = new StudentCourse(student1,course1, "2023-09-01");//输出学生选课信息Systemoutprintln("学生姓名:"+ studentCourse1getStudent()getName());Systemoutprintln("学生年龄:"+ studentCourse1getStudent()getAge());Systemoutprintln("学生学号:"+ studentCourse1getStudent()getStudentId());Systemoutprintln("课程名称:"+ studentCourse1getCourse()getCourseName());Systemoutprintln("课程编号:"+ studentCourse1getCourse()getCourseId());Systemoutprintln("授课教师:"+ studentCourse1getCourse()getTeacher());Systemoutprintln("选课时间:"+studentCourse1getSelectTime());}}```五、实验结果与分析通过运行测试类,成功输出了学生选课的相关信息,包括学生的姓名、年龄、学号,课程的名称、编号、授课教师以及选课时间。
天津大学电气自动化与信息工程学院学院JAVA课程设计报告班级15通信工程姓名刘华宾学号对随机数的研究设计1:活蹦乱跳的小球一、题目简介创建一个应用程序,调用awt包产生一个可视化界面,界面分为四个区域,每个区域分别产生10个颜色相同的小球,位置随机,四个区域小球颜色不同。
二、代码实现import java .awt.*;public class XiaoQiu{public static void main(String args[]){Frame w = new Frame("活蹦乱跳的小球");w.setSize(1024,768); //设置窗体大小w.setBackground(Color.BLACK);w.show();}1.首先用记事本创建一个名叫XiaoQiu的主类,使用awt包中的类Frame生成一个对象名为w的窗体,窗体名为“闪烁的小球”,设置窗体大小为1024*768,背景为黑色。
2.另建一个名为MyPanel的类,此类继承自Panel类,并将此画布放进窗体。
调用paint方法画出3条白线作为边界。
g.setColor(Color.WHITE);g.fillOval((int)(Math.random()*206),(int)(Math.random()*768 ),50, 50);3.在第一区域画出第一个实心的随机圆,调用fillOval方法。
其x坐标先调用方法random产生一个0到1的随机数再乘第一区域最大x坐标206,并将其转为整形。
一开始将206乘在了外面,(int)(Math.random())*206,产生的小球只能贴着界面的左边,因为先取整,x就变为了0,再乘任何数都是0。
同理y坐标写成(int)(Math.random()*768),通过for语句循环增加小球个数。
4.在第二区域画出实心圆。
由于想x,y为具体数值,不是带状区域,一开始写成了g.fillOval((int)((Math.random()*462),(int) (Math.random()*768),50,50),确实在第二区域产生了绿色的小球,但第一区域也混有绿色小球,经过很多次尝试,终于想出一种方法:先在第一区域随机产生一定数量的小球,然后通过增加x坐标的值将其平移到第二区域。
南邮Java实验报告1-综合图形界面程序设计英文回答:Hello, I'm glad to help you with your Java lab report on comprehensive graphical user interface programming.In this report, I will provide a detailed description of the steps I took to create a graphical user interface (GUI) for a simple application. I will also include screenshots of the GUI and discuss the challenges I faced and how I overcame them.Step 1: Create a new Java project。
The first step was to create a new Java project in my preferred development environment. I used IntelliJ IDEA, but you can use any IDE that you are comfortable with.Step 2: Design the GUI。
Once I had created a new project, I began designing the GUI. I sketched out a rough draft on paper and then usedthe Swing library to create the actual GUI.The Swing library provides a set of components that can be used to create GUIs. These components include buttons, text fields, labels, and menus.Step 3: Add functionality to the GUI。
java课程设计实验报告样例(一)Java课程设计实验报告样例引言:本篇实验报告主要介绍Java课程设计中所涉及的实验内容、实验过程及实验结果,旨在帮助同学们更好地理解Java编程的基本知识和应用。
一、实验内容:本实验的具体任务是编写一个java程序,实现对一个文本文件中的单词进行统计,包括出现次数、平均长度、以及排序输出出现频率较高的单词。
其中,单词包含字母和数字,大小写敏感,在解析时必须分离出来。
二、实验过程:在编写程序之前,我们首先要了解实验要求及限制,才能确定需要使用什么类型的数据结构、算法和方法等。
接着,我们通过分析题目要求,将问题划分为三部分:分离单词、统计出现次数、以及排序输出。
根据这样的思路,我们开发了如下的实验流程图:[IMG]file:///C:/Users/Administrator/AppData/Local/Temp/msohtm lclip1/01/clip_image002.png[/IMG]具体实现细节如下:1、读取文件,使用StringTokenizer类将文件中的每个单词分离出来;2、定义一个HashMap,以单词作为键值,单词出现次数为value,并依次统计每个单词出现次数;3、遍历HashMap,计算平均单词长度,并保存出现次数较高的单词及其出现次数,同时将HashMap重新排序输出。
三、实验结果:通过我们这样的一个实验流程,我们得到了:[IMG]file:///C:/Users/Administrator/AppData/Local/Temp/msohtm lclip1/01/clip_image004.png[/IMG]分析如下:1、统计了单词总数、平均长度,并输出;2、按出现次数由高到低输出出现频率较高的单词及其出现次数。
四、思考和总结:通过这次实验,我深刻地认识到了实践和理论的重要性,正如听取课程学习Java,与实际操作大有不同一样,是因为它们有不同的目的和方法。
南邮Java实验报告1-综合图形界面程序设
计
自查报告。
在本次实验中,我设计了一个综合图形界面程序,实现了基本的图形绘制、文本输入和按钮操作功能。
在完成实验过程中,我对自己的工作进行了自查,总结如下:
1. 程序功能完整性,在实验中,我确保了程序能够实现基本的图形绘制、文本输入和按钮操作功能,并且能够正确响应用户的操作。
我对每个功能模块进行了测试,确保程序的功能完整性。
2. 界面美观度,在设计界面时,我注重了界面的美观度和用户体验,保证了界面的布局合理,颜色搭配和图形元素的大小比例协调,使得用户操作起来更加舒适。
3. 代码规范性,在编写代码时,我遵循了Java编程规范,命名规范和代码风格规范,确保了代码的可读性和可维护性。
我对代码进行了注释,方便他人阅读和理解。
4. 错误处理和异常处理,在程序中,我对用户的输入和操作进
行了错误处理和异常处理,保证了程序的稳定性和健壮性。
当用户
输入错误或者操作不当时,程序能够给出相应的提示或者处理方式。
5. 性能优化,在编写程序时,我尽量避免了冗余的代码和不必
要的计算,保证了程序的性能优化。
我对程序进行了性能测试,确
保程序能够在各种情况下都能够正常运行。
通过这次自查,我发现了一些不足之处,比如界面美观度还有
待提高,代码规范性需要进一步加强等。
在今后的学习和实践中,
我会继续努力改进自己的不足之处,提高自己的编程能力和程序设
计水平。
同时,我也会继续关注Java编程技术的发展,不断学习和
掌握新的知识和技能,为自己的成长和发展打下更加坚实的基础。
java设计实验报告Java设计实验报告一、引言Java是一种广泛应用于软件开发的编程语言,具有跨平台、面向对象、可移植等特点。
本文将介绍一项基于Java的设计实验,并分析实验过程中的问题和解决方案。
二、实验目标本次实验的目标是设计一个简单的学生管理系统,实现学生信息的录入、查询、修改和删除功能。
通过这个实验,旨在加深对Java编程语言的理解和应用。
三、实验过程1. 设计数据结构在开始编写代码之前,我们需要先设计好数据结构。
在这个学生管理系统中,我们需要存储学生的姓名、学号、年龄、性别等信息。
可以使用类来表示学生对象,每个学生对象包含相应的属性和方法。
2. 编写代码根据设计好的数据结构,我们开始编写代码。
首先,我们需要创建一个学生类,包含学生的属性和方法。
然后,我们可以在主类中创建学生对象,并对学生信息进行操作。
3. 实现录入功能在学生管理系统中,我们需要实现学生信息的录入功能。
可以通过在控制台上输入学生的姓名、学号、年龄、性别等信息,并将其存储到学生对象中。
4. 实现查询功能学生管理系统还需要实现学生信息的查询功能。
可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并输出相应的学生信息。
5. 实现修改功能学生信息可能会发生变化,因此我们需要实现学生信息的修改功能。
可以通过输入学生的学号或姓名等关键字,找到对应的学生对象,并修改其相应的属性。
6. 实现删除功能在一些情况下,我们可能需要删除某个学生的信息。
可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并将其删除。
四、实验结果经过实验,我们成功实现了学生管理系统的基本功能。
我们可以通过控制台进行学生信息的录入、查询、修改和删除操作,并获得相应的结果。
五、实验问题与解决方案在实验过程中,我们遇到了一些问题,但通过不断尝试和调试,最终找到了解决方案。
1. 数据结构设计问题在设计数据结构时,我们需要考虑到学生信息的存储和查找效率。
南邮Java实验报告1-综合图形界面程序设计英文回答:This report presents the findings of a comprehensive study on the design and implementation of a graphical user interface (GUI) program using Java. The experiment involved the development of a simple calculator application with basic arithmetic functions. The GUI was designed using the Java Swing library, which provided a wide range of pre-built components for creating user interfaces.The development process began with a thorough analysis of the user requirements for the calculator application. Based on this analysis, a user interface prototype was created using a wireframing tool. This prototype served as the blueprint for the final GUI design.The next step was to implement the GUI using Java Swing components. These components include buttons, text fields,labels, and panels, which were arranged and configured to create a user-friendly and intuitive interface. The calculator's basic arithmetic operations were implemented using simple mathematical expressions and conditional statements.Throughout the development process, extensive testing was conducted to ensure the functionality and reliability of the GUI program. Unit tests were used to verify the behavior of individual components, while integration tests ensured that the components worked together seamlessly. Performance tests were also conducted to assess the responsiveness of the GUI under various loads.The final GUI program was a fully functional calculator with a user-friendly interface and reliable performance. It demonstrated the effectiveness of Java Swing for creating complex GUI applications with ease and efficiency.中文回答:南邮Java实验报告1-综合图形界面程序设计。
java程序设计实践报告范例2篇XX年暑假的到来,预计着大学三年的终结,作为网络工程专业的我还在迷惘和浑噩中度过。
然而有幸参加学校组织的实训是幸福的。
从学校走上社会,来到这个培训,发现了个人的能力尤为重要,在学校也学了很多有关计算机的理论知识,但是实践操作的机会很少导致个人动手能力极差。
实训中,我们以小组的方式进行项目训练,这也反映了今后在工作岗位是团体的战斗,而不是个人的表演,但是每个人也扮演着必不可少的角色。
Java语言是这次实训的“主菜”,虽然在学校从未接触过这门语言,但是有着老师滔滔不绝、苦口婆心的讲解,也在课堂的讲解中渐渐地了解了这门当今热门的程序语言,直到打飞机游戏结束才恍然大悟:原来世界是如此美好,游戏是这样出来的。
接着是一个实体项目:打飞机游戏,而这个游戏的产生将由我们自己来进行。
这次实习的目的是为了提高我的专业技能、实践能力、以及让我了解一些实际的工作情况。
对我在正式工作前有很重要的意义,不论是专业技能,还是综合素质,以及实际中的人际关系都有了更加深刻的体会,让我在正式工作前有了一笔很珍贵的经验。
这次实习的主要内容是使用Java计算机编程语言来编写一个打飞机的游戏,其目的就是在这个实训期间了解整个软件的制作过程,以及各个环节中的细节,当学会了这些环节后,我们在以后的工作中才能更好的利用自己的所学知识去完成公司交给我的任务。
这个项目我们以小组的形式共同将其完成,以模拟实际软件制作的过程,尽最大程度的将我们所学到的知识转化成实际的能力。
为真正的项目做好充分的准备,让我们可以在实习过后的正式工作中,有准备的去面对。
公司的最终目的就是希望我们能了解实际项目的制作,并初步的理解各个环节的意义。
而让我们用项目进行实际制作就是为了让我们能更好的理解项目制作中各个流程的意义以及项目制作过程中的团队是如何合作的。
它作为我们走出学校和踏入社会的过渡阶段会让我们有很多的收获,我希望自己能在这段时间的实习中有良好的表现和突出的成绩为自己以后打好基础。
课程设计说明书课程名称:java程序设计题目:五子棋游戏年级/专业/班:08级计科4班姓名:XXXXXXXXX学号:010203指导老师:开题时间:2010年10月8日完成时间:2010年10月20日课程设计任务课程名称: Java程序设计完成者: 李磊周曦毛婷婷1、设计的目的与要求;(1)设计一个简单的五子棋游戏;(2)对java技术的进一步了解和简单的运用;(3)初步的接触软件工程;2、设计进度及完成情况目录1. 引言 (4)2.设计目的与任务...................................................................................... 错误!未定义书签。
3.设计方案.................................................................................................. 错误!未定义书签。
3.1定义....................................................................................................... 错误!未定义书签。
3.2设计要求和规则................................................................................... 错误!未定义书签。
3.4程序流程图........................................................................................... 错误!未定义书签。
4:源程序代码说明 ..................................................................................... 错误!未定义书签。
5运行功能(截图).................................................................................. 错误!未定义书签。
6.结束语 (12)7附录B:完整程序 (13)《Java程序设计》课程设计——五子棋游戏1. 引言Java是一种纯面向对象的、网络编程首选的语言。
Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。
为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。
为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“五子棋”为设题材,借此巩固加深我们对Java的了解。
本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。
因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。
2 、设计目的和任务《面向对象程序设计》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
本课程设计主要目的在于加深学生对面向对象基础理论和基本知识的理解,掌握面向对象程序设计的基本方法,进一步使学生综合运用所学知识和增强实际动手能力。
通过课程设计,学生在下述各方面的能力应该得到锻炼:1)通过本次设计,实现对本学期内容的回顾与综合运用,包括类的建立,用类创建对象,方法的调用,图形组件的使用方法,图形界面的布局形式,事件处理机制,文件对话框的使用,文件操作的基本方法,数据读写的基本用法等。
2)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
3)掌握自顶而下的设计方法,将大问题进行模块化、对象化,领会面向对象程序设计的方法。
4)熟练掌握JAV A语言的基本语法,灵活运用各种预定义类、线程和事件处理。
3.设计方案3.1定义(1)问题定义:设计一个基础的五子棋游戏,实现基本的娱乐功能(2)研究意义:随着计算机的发展,各类游戏层出不穷,而棋类游戏能起到锻炼人的思维和修身养性的作用。
通过这次设计,掌握了基本的JA VA 语言,提高了理论结合实际的能力。
3.2 设计要求和规则(1)黑棋先行,白棋随后。
从天元开始相互顺序落子。
(2)最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。
(3)如果不出胜负,则定位平局。
(4)对局中拔子,中途退场均判为负。
(5)五子棋是又两个人在一盘棋上进行对抗的竞技运动。
在对局开始时,先由执黑棋的一方将一枚棋落在“天元”,然后由执白棋的一方在黑棋周围的交叉点上落子。
如此轮流落子直到某一方首先在棋盘的直线,横线或斜线上形成连续的五子或者五子一上,则该方就算获胜。
3.3程序流程图4.源程序部分功能模块代码说明://导入包import java.awt.*;import java.awt.event.*;import javax.swing.*;void xianShi(Graphics2D g2d)//界面的显示{xianShiQiPan(g2d);//显示棋盘xianShiQiZis(g2d);//显示旗子xianShiGuangBiao(g2d);//显示光标g2d.setFont(new Font("STXingkai",1,15));//游戏帮助g2d.setColor(Color.black);g2d.drawString(" 帮助:“方向键”控制光标移动,“Enter”键下棋",20,560); g2d.setFont(new Font("stCaiyun",1,40));if(shui==0)//判断{g2d.setColor(Color.black);xianShiTiShiXia(g2d);// 显示谁下棋}else{g2d.setColor(Color.black);xianShiTiShiYing(g2d); //显示谁赢棋}void xianShiQiPan(Graphics2D g2d)//显示棋盘{g2d.setColor(Color.pink);g2d.fillRect(0,0,40*12,50*12);//声明一个0,0,40*12,50*12 界面g2d.setColor(Color.BLACK);//行格for(int i=0;i<11;i++) //11行{g2d.drawLine(40,i*40+40,440,i*40+40); //间距调整}//列格for(int k=0;k<11;k++) // 11列{g2d.drawLine(k*40+40,40,k*40+40,440); //间距调整}//关于棋子显示的功能模块void xianShiQiZis(Graphics2D g2d)//显示旗子{for(int h=0;h<11;h++){for(l=0;l<11;l++){switch(pans[h][l]){case 1:g2d.setColor(Color.BLACK); //显示黑棋g2d.fillOval(40-15+l*40,40-15+h*40,30,30);//(40-15+l*40,40-15+h*40,30,30);break;case -1:g2d.setColor(Color.white); //显示白棋g2d.fillOval(40-15+l*40,40-15+h*40,30,30);//(40-15+l*40,40-15+h*40,30,30);break;case 0:break;}}}void xianShiGuangBiao(Graphics2D g2d)//显示光标{g2d.setColor(Color.blue);g2d.fillOval(40-5+gbx*40,40-5+gby*40,10,10);void xianShiTiShiXia(Graphics2D g2d)////显示提示下一个棋子{switch(ziShu%2){case 0: //提示白棋下g2d.setColor(Color.white);g2d.drawString("白",150,520);g2d.setColor(Color.magenta);g2d.drawString("棋下",195 ,520);break;case 1: //提示黑棋g2d.setColor(Color.black);g2d.drawString("黑",150,520);g2d.setColor(Color.magenta);g2d.drawString("棋下",195,520);break;}}5 运行功能(截图)控制光标白棋先行黑棋后行当白棋练成一条线白棋赢4.结束语从本次课程设计的完成中,我们了解了课程设计的要求与方法,学会了程序设计基本步骤。
进一步提高了团队合作的意识。
同时,使我们感觉到,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。
同时,我们认为一个程序的成功完成需要严谨的务实态度,和团队的团结协作的精神.团结协作和认真的态度是我们课程设计取得成功的一项非常重要的保证。
但在完成过程中也发现了不足,由于知识的限制,没有设定联网游戏.以后的学习中我们将虚心向学.5.致谢我们真心的感谢周铁老师对我们精心的指导和不倦的教育,他在我们的课程设计过程中提出了指导性的方案和架构,并指引我们阅读相关的资料和书籍,使我们在不熟悉的领域中仍能迅速掌握新的技术.感谢校领导给我们这次难得的锻炼机会,让我们能更好的理解和实践java编程,让我们对java编程有了深刻的认知,进一步的了解了所学知识。
也谢谢我们这组的组员默契的配合,共同完成了这个课程设计。
8附录B:完整程序如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class WuZiQi extends KeyAdapter{boolean start=false;JFrame frame;Thread timerThread;int h,l;//定义变量int pans[][] =new int[11][11]; //变量初始值int gbx=5;int gby=5;int ziShu=0;int shui=0;WuZiQi(){frame = new JFrame("五子棋");frame.getContentPane().add(new Screen());frame.addKeyListener(this);frame.setSize(12*40+5*2,12*40+22+5*2+100);//窗口大小frame.setV isible(true);frame.repaint();frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//关闭窗体}public void keyPressed(KeyEvent evt){switch(evt.getKeyCode()){ case KeyEvent.VK_ENTER:if(ziShu%2==0)//子数来判断谁赢{heiXia();}else{baiXia();}shui=shuiYing();break;case KeyEvent.VK_ESCAPE:System.exit(1);break;case KeyEvent.VK_LEFT:guangBiaoDong(-1,0);//光标动的坐标break;case KeyEvent.VK_RIGHT:guangBiaoDong(1,0);//光标动的坐标break;case KeyEvent.VK_DOWN:guangBiaoDong(0,1);//光标动的坐标break;case KeyEvent.VK_UP:guangBiaoDong(0,-1);//光标动的坐标break;}frame.repaint();}class Screen extends JComponent{public void paint(Graphics g){Graphics2D g2d=(Graphics2D)g;xianShi(g2d);//画图}}public static void main(String[] args){new WuZiQi();}void xianShi(Graphics2D g2d)//显示{xianShiQiPan(g2d);//显示棋盘xianShiQiZis(g2d);//显示旗子xianShiGuangBiao(g2d);//显示光标g2d.setFont(new Font("STXingkai",1,15));//游戏帮助g2d.setColor(Color.black);g2d.drawString(" 帮助:“方向键”控制光标移动,“Enter”键下棋",20,560);g2d.setFont(new Font("stCaiyun",1,40));if(shui==0)//判断{g2d.setColor(Color.black);xianShiTiShiXia(g2d);// 显示谁下棋}else{g2d.setColor(Color.black);xianShiTiShiYing(g2d); //显示谁赢棋}}void guangBiaoDong(int fangX,int fangY)////光标动{if(gbx+fangX>10 || gbx+fangX<0 || gby+fangY>10 || gby+fangY<0){}else{gbx=gbx+fangX;gby=gby+fangY;}}void heiXia()//黑棋{if(pans[gby][gbx]==0){pans[gby][gbx]=-1;ziShu++;}}void baiXia()//白棋{if(pans[gby][gbx]==0){pans[gby][gbx]=1;ziShu++;}}int shuiYing()//0: 1:bai -1:hei谁赢拉{returnkanFangShuiYing(1,0)+kanFangShuiYing(0,1)+kanFangShuiYing(1 ,1)+kanFangShuiYing(1,-1);}//---------------------------------------------void xianShiQiPan(Graphics2D g2d)//显示棋盘{g2d.setColor(Color.pink);g2d.fillRect(0,0,40*12,50*12);//界面0,0,40*12,50*12g2d.setColor(Color.BLACK);//行格for(int i=0;i<11;i++)// 40,行*40+40,440,行*40+40{g2d.drawLine(40,i*40+40,440,i*40+40);}//列格for(int k=0;k<11;k++)// 列*40+40,40,列*40+40,440 {g2d.drawLine(k*40+40,40,k*40+40,440);}}void xianShiQiZis(Graphics2D g2d)//显示旗子{for(int h=0;h<11;h++){for(l=0;l<11;l++){switch(pans[h][l]){case 1:g2d.setColor(Color.BLACK);g2d.fillOval(40-15+l*40,40-15+h*40,30,30);//(40-15+l*40,40-15+h *40,30,30);break;case -1:g2d.setColor(Color.white);g2d.fillOval(40-15+l*40,40-15+h*40,30,30);//(40-15+l*40,40-15+h *40,30,30);break;case 0:break;}}}}void xianShiGuangBiao(Graphics2D g2d)//显示光标{g2d.setColor(Color.blue);g2d.fillOval(40-5+gbx*40,40-5+gby*40,10,10);}void xianShiTiShiYing(Graphics2D g2d)//显示谁赢{switch(shui){case 1://黑棋g2d.setColor(Color.black);g2d.drawString("黑棋win",200,520);JOptionPane pane=new JOptionPane(" 黑棋胜利!!!");JDialog dialog=pane.createDialog(frame,"提示...");dialog.show();System.exit(0);break;case -1://白棋g2d.setColor(Color.magenta);g2d.drawString("白棋win",200,520);JOptionPane pane1=new JOptionPane(" 白棋胜利!!!");JDialog dialog1=pane1.createDialog(frame,"提示...");dialog1.show();System.exit(0);break;}}void xianShiTiShiXia(Graphics2D g2d)////显示提示下一个棋子{switch(ziShu%2){case 0:g2d.setColor(Color.white);g2d.drawString("白",150,520);g2d.setColor(Color.magenta);g2d.drawString("棋下",195 ,520);break;case 1:g2d.setColor(Color.black);g2d.drawString("黑",150,520);g2d.setColor(Color.magenta);g2d.drawString("棋下",195,520);break;}}int kanFangShuiYing(int fx,int fy){int kanx=gbx;int kany=gby;int shu=1;//zuowhile(kanx+fx>=0 && kanx+fx<11 && kany+fy>=0 && kany+fy<11 && pans[kany+fy][kanx+fx]==pans[gby][gbx]) {shu++;kany=kany+fy;kanx=kanx+fx;}//youkanx=gbx;kany=gby;while(kanx-fx>=0 && kanx-fx<11 && kany-fy>=0 && kany-fy<11 && pans[kany-fy][kanx-fx]==pans[gby][gbx]){shu++;kany=kany-fy;kanx=kanx-fx;}return (shu>=5?pans[gby][gbx]:0);}};。