Java课程设计报告

合集下载

java实训报告(通用7篇)

java实训报告(通用7篇)

java实训报告(通用7篇)在当下这个社会中,报告有着举足轻重的地位,写报告的时候要注意内容的完整。

我们应当如何写报告呢?下面是小编整理的java实训报告,供大家参考借鉴,希望可以帮助到有需要的朋友。

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

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

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

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

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

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

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

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

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

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

画出程序设计结构框图。

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

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

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

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

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

java课程设计实验报告

java课程设计实验报告

java课程设计实验报告一一实验目的加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。

在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。

在对Java程序的调试过程中,提高学生分析程序中出现的错误与排除这些错误的能力。

通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。

二、实验要求(1)问题描述准确、规范;(2)程序结构合理,调试数据准确、有代表性;(3)界面布局整齐,人机交互方便;(4)输出结果正确;(5)正确撰写实验报告。

三、设计内容11、计算器计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算与混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。

允许正负数间的运算。

要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。

22、文本编辑器可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。

其她功能参照windows的文本编辑器。

四四.实验步骤(1)上机实验之前,为课程设计的内容作好充分准备。

对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。

(2)按照实验目的与实验内容进行上机操作。

录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。

(3)根据实验结果,写出实验报告。

五、、源代码及运行结果1.计算器源代码importjava、awt、*;importjava、awt、event、*;importjava、lang、*;importjavax、swing、*;publicclassjisuanqiextendsWindowAdapter{//创建三个面板Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();TextFieldtxt;privateButton[]b=newButton[21];privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2","3","-","平方","0","、","=","+","n!","关闭"};staticdoublea,sum=1;staticStrings,str;//定义变量创建对像//创建文本框publicstaticvoidmain(Stringargs[]){(newjisuanqi())、frame();}publicvoidframe(){//设置文本框的名称Framefm=newFrame("简单计算器");for(inti=0;i<=20;i++){b[i]=newButton(ss[i]);}for(inti=0;i<=19;i++){p2、add(b[i]);//创建按钮并添加到P2}//按钮20背景色黄色b[20]、setBackground(Color、yellow);txt=newTextField("");txt、setEditable(false);//不能编辑文本框里面的内容txt、setBackground(Color、white);for(inti=0;i<=20;i++){b[i]、addActionListener(newbuttonlistener());//添加监听器}//设置关闭按钮b[20]、addActionListener(newclose());fm、addWindowListener(this);p1、setLayout(newBorderLayout());//设置布局管理器p1、add(txt,"North");//p1面板放到区域南部p2、setLayout(newGridLayout(4,5,2,2));//布局:四行五列,间隔为二p2、setBackground(Color、red);p3、setLayout(newBorderLayout());p3、add(b[20]);将三个面板分别放到不同位置fm、add(p1,"North");fm、add(p2,"Center");fm、add(p3,"South");fm、pack();fm、setVisible(true);//都就是些窗中设置添加相关组件与监听器}publicvoidwindowClosing(WindowEvente){System、exit(0);//退出系统}classbuttonlistenerimplementsActionListener{//编写监听器事件通过按键得出给果publicvoidactionPerformed(ActionEvente){Buttonbtn=(Button)e、getSource();if(btn、getLabel()=="="){jisuan();str=String、valueOf(a);txt、setText(str);//显示当前数字s="";//清零}elseif(btn、getLabel()=="+"){//设置一个方法jisuan();txt、setText("");s="+";}elseif(btn、getLabel()=="-"){jisuan();txt、setText("");s="-";}elseif(btn、getLabel()=="/"){jisuan();txt、setText("");s="/";}elseif(btn、getLabel()=="*"){jisuan();txt、setText("");s="*";}elseif(btn、getLabel()=="平方"){a=Double、parseDouble(txt、getText()); a*=a;txt、setText(""+String、valueOf(a)); }elseif(btn、getLabel()=="n!"){a=Double、parseDouble(txt、getText());sum=1;for(inti=1;i<=a;i++)sum=sum*i;txt、setText(""+String、valueOf(sum));}elseifbtn、getLabel()=="1/x"){a=Double、parseDouble(txt、getText());txt、setText(""+String、valueOf(1/a));}else{txt、setText(txt、getText()+btn、getLabel()); if(btn、getLabel()=="清空")txt、setText("");}}publicvoidjisuan(){//编写具体计算方法if(s=="+")a+=Double、parseDouble(txt、getText()); elseif(s=="-")a-=Double、parseDouble(txt、getText()); elseif(s=="*")a*=Double、parseDouble(txt、getText()); elseif(s=="/")a/=Double、parseDouble(txt、getText()); elsea=Double、parseDouble(txt、getText()); }}}classcloseimplementsActionListener {//退出publicvoidactionPerformed(ActionEvente) {System、exit(0);}}、2、计算器运行界面(11)计算器主界面(22)面板的实现11、创建三个面板分别就是显示数字的面板、按钮的面板与“关闭”的面板Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();22、创建一个文本框参数TextFieldtxt;33、创建一群按钮参数并给按钮赋值privateButton[]b=newButton[21];privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2","3","-","平方","0","、","=","+","n!","关闭"};44、创建文本框publicstaticvoidmain(Stringargs[]){(newjisuanqi())、frame();}55、设置文本框方法publicvoidframe(){//设置文本框的名称Framefm=newFrame("简单计算器");66、设置按钮for(inti=0;i<=20;i++){b[i]=newButton(ss[i]);}77、设将按钮添加到面板for(inti=0;i<=19;i++){p2、add(b[i]);//创建按钮并添加到P2}88、设置按钮020背景色黄色b[20]、setBackground(Color、yellow);99、创建文本框,,并规定不能编辑内容与背景为白色txt=newTextField("");txt、setEditable(false);txt、setBackground(Color、white);10、为按钮添加监听器for(inti=0;i<=20;i++){b[i]、addActionListener(newbuttonlistener());//添加监听器}11、设置“关闭”按钮可以关闭界面并设置监听器b[20]、addActionListener(newclose());fm、addWindowListener(this);12、设置布局p1、setLayout(newBorderLayout());//设置布局管理器p1、add(txt,"North");//p1面板放到区域南部p2、setLayout(newGridLayout(4,5,2,2));//布局:四行五列,间隔为二p2、setBackground(Color、red);p3、setLayout(newBorderLayout());p3、add(b[20]);13、将三个面板分别放到不同位置fm、add(p1,"North");fm、add(p2,"Center");fm、add(p3,"South");fm、pack();fm、setVisible(true);//都就是些窗中设置添加相关组件与监听器}14、退出系统publicvoidwindowClosing(WindowEvente){System、exit(0);}(33)将按钮添加到计算这个事件中11、编写监听器事件通过按键得出给果publicvoidactionPerformed(ActionEvente){//将按钮赋予这个事件中Buttonbtn=(Button)e、getSource();22、如果点击“==”这个按钮,,将出现当前数字if(btn、getLabel()=="="){jisuan();str=String、valueOf(a);txt、setText(str);//显示当前数字s="";//清零}33、如果点击“++”“--”“**”“//”分别完成一个方法并将结果显示到文本框elseif(btn、getLabel()=="+"){//设置一个方法jisuan();txt、setText("");s="+";}elseif(btn、getLabel()=="-") {jisuan();txt、setText("");s="-";}elseif(btn、getLabel()=="/") {jisuan();txt、setText("");s="/";}elseif(btn、getLabel()=="*"){jisuan();txt、setText("");s="*";}44、如果点击“平方”则当前数字与原数字形成即完成相关方法结果显示最终的数字elseif(btn、getLabel()=="平方"){a=Double、parseDouble(txt、getText());a*=a;txt、setText(""+String、valueOf(a));//显示a}55、当输入“nn!”,,就用rfor循环完成阶乘,,此方法属于cc语言基础方法,,不做相关解释elseif(btn、getLabel()=="n!"){a=Double、parseDouble(txt、getText());sum=1;//归一for(inti=1;i<=a;i++)sum=sum*i;txt、setText(""+String、valueOf(sum));//文本框中显示“sum”的数值}66、当输入“1/x”时,,显示1/a。

JAVA语言课程设计报告

JAVA语言课程设计报告

JAVA语言课程设计报告目录1. 课程设计介绍 (2)1.1 课程设计的目的和意义 (2)1.2 实验环境介绍 (3)2. 课程设计项目概述 (4)2.1 项目背景及设立的目的 (5)2.2 用户需求分析 (6)2.3 功能模块划分 (7)3. Java语言基础知识回顾 (7)3.1 Java程序的基础概述 (8)3.2 Java开发环境搭建 (9)3.3 基本语法及常用数据类型 (10)3.4 类与对象的基本知识 (11)3.5 常用API介绍 (11)4. 项目开发过程 (11)4.1 设计方案 (13)4.2 项目需求分析 (14)5. 课程设计关键技术应用 (15)5.1 错误处理机制 (16)5.2 数据库应用 (17)6. 类库及设计模式的应用 (17)6.1 Java类库的基础知识 (19)6.2 设计模式的功能与应用 (20)7. 课程设计总结与展望 (21)7.1 课程设计总结 (22)7.2 缺陷分析与解决方案 (23)7.3 课程设计展望 (23)1. 课程设计介绍本课程设计旨在通过实际项目实践,让学生深入理解和掌握语言的核心编程技能和设计思想。

本次设计选择了一个具有实际应用背景的项目作为案例,即“简易在线考试系统”。

该系统旨在模拟现实中的在线考试流程,实现考生在线答题、自动评分、成绩查询等功能。

本次课程设计以语言为基础,结合框架、数据库等技术,引导学生从需求分析、系统设计、编码实现到系统测试的完整软件开发流程。

通过本课程设计,学生能够:在本次课程设计中,学生将独立完成系统需求分析、系统设计、编码实现、测试与优化等环节,最终提交一个功能完善、性能稳定的在线考试系统。

通过这一过程,学生不仅能够巩固和提升自身的编程能力,还能培养解决实际问题的能力和创新思维。

1.1 课程设计的目的和意义课程设计目的在于深入理解语言的核心概念与实际应用,通过具体的项目实施巩固和应用课堂上所学的知识点。

java课程设计报告摘要

java课程设计报告摘要

java课程设计报告摘要一、课程目标知识目标:1. 掌握Java基本语法和编程规范,理解面向对象编程思想;2. 学会使用Java编写简单的控制台程序,包括变量、数据类型、运算符、流程控制语句等;3. 理解类和对象的概念,掌握类的定义、属性、方法以及构造函数的使用;4. 掌握数组、字符串等基本数据结构的使用。

技能目标:1. 培养学生独立编写Java代码的能力,提高编程技巧;2. 培养学生分析问题、解决问题的能力,学会运用Java语言进行程序设计;3. 培养学生良好的编程习惯,注重代码规范和优化。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养主动学习的积极性;2. 培养学生的团队协作意识,学会与他人分享和交流编程经验;3. 培养学生面对困难勇于挑战的精神,增强自信心。

分析课程性质、学生特点和教学要求,本课程目标具体、可衡量,旨在让学生掌握Java编程基础知识,培养编程技能,同时注重培养学生的情感态度价值观,使他们在学习过程中形成积极、主动、合作的学习氛围。

通过本课程的学习,学生将具备初步的Java编程能力,为后续深入学习打下坚实基础。

二、教学内容根据课程目标,教学内容分为以下四个部分:1. Java基础语法与编程规范- 章节一:Java简介与开发环境配置- 章节二:变量、数据类型、运算符- 章节三:流程控制语句(顺序、分支、循环)- 章节四:数组与字符串2. 面向对象编程基础- 章节五:类与对象- 章节六:构造函数与封装- 章节七:继承与多态- 章节八:接口与抽象类3. 常用类与数据结构- 章节九:Java集合框架- 章节十:Java异常处理4. Java编程实践- 项目一:编写简单的控制台程序(计算器、图书管理系统等)- 项目二:面向对象编程实践(学生管理系统、购物车等)教学内容科学、系统,按照教学大纲逐步展开。

教学进度安排如下:1. Java基础语法与编程规范(2周)2. 面向对象编程基础(3周)3. 常用类与数据结构(2周)4. Java编程实践(3周)三、教学方法针对Java课程的特点和课程目标,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:对于Java基础语法、面向对象编程等理论性较强的内容,采用讲授法进行教学。

java课程设计报告

java课程设计报告

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

一、引言。

Java作为一种跨平台的编程语言,具有广泛的应用领域和强大的功能,因此在计算机专业课程中占据着重要的地位。

本次课程设计旨在通过对Java语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。

二、课程设计内容。

1. 课程设计主题。

本次课程设计的主题为“学生成绩管理系统的设计与实现”。

通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。

2. 课程设计目标。

(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。

三、课程设计过程。

1. 需求分析。

首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。

通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。

2. 系统设计。

在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。

通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。

同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。

3. 编码实现。

在系统设计完成后,团队成员按照设计文档进行了编码实现工作。

在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。

通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。

4. 测试与调试。

在编码实现完成后,团队成员进行了系统的测试与调试工作。

通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。

java课程设计及实验报告

java课程设计及实验报告

java课程设计及实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、面向对象编程思想以及常用的数据结构与算法。

通过课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。

具体的教学目标如下:1.知识目标:–掌握Java基本语法和编程规范;–理解面向对象编程的基本概念和方法;–熟悉常用的数据结构(如数组、链表、栈、队列等)和算法(如排序、查找等)。

2.技能目标:–能够使用Java编写简单的程序,解决实际问题;–能够运用面向对象编程思想进行程序设计;–能够运用常用的数据结构与算法解决编程问题。

3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的创新精神和解决问题的能力;–培养学生的自主学习能力和持续学习的兴趣。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.Java基本语法和编程规范;2.面向对象编程思想,包括类与对象、继承与多态、封装等;3.常用的数据结构与算法,包括数组、链表、栈、队列、排序、查找等;4.Java标准库的使用,包括字符串、数学运算、输入输出等;5.简单的Java编程实例和实战项目。

教学内容的安排和进度如下:•第1-2周:Java基本语法和编程规范;•第3-4周:面向对象编程思想;•第5-6周:常用的数据结构与算法;•第7-8周:Java标准库的使用;•第9-10周:简单的Java编程实例和实战项目。

三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:讲解Java基本语法、面向对象编程思想和常用的数据结构与算法;2.案例分析法:分析实际的编程案例,让学生更好地理解和运用Java编程知识;3.实验法:让学生通过动手实践,巩固所学知识和技能;4.讨论法:学生进行小组讨论,培养学生的团队合作意识和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java编程思想》;2.参考书:《Java核心技术》、《Head First Java》;3.多媒体资料:教学PPT、视频教程、在线编程练习题等;4.实验设备:计算机、网络环境、编程开发环境(如Eclipse、IntelliJIDEA等)。

java个人博客系统课程设计报告

java个人博客系统课程设计报告

java个人博客系统课程设计报告课程设计报告,Java个人博客系统。

1. 引言。

个人博客系统是一种用于个人创作、记录、分享和交流的网络平台,它能够让个人用户轻松地发布自己的文章、图片、视频等内容,并与其他用户进行互动交流。

本课程设计旨在利用Java语言开发一个简单的个人博客系统,包括用户管理、文章发布、评论交流等功能,以帮助学生掌握Java编程和Web开发技术。

2. 系统需求分析。

在开发个人博客系统之前,首先需要对系统的功能需求进行分析。

系统应具备以下基本功能:用户管理,包括用户注册、登录、个人信息管理等功能。

文章管理,用户可以发布、编辑、删除自己的文章,并对文章进行分类和标签管理。

评论交流,用户可以对文章进行评论和回复,实现用户之间的交流互动。

界面设计,系统应具备良好的用户界面设计,方便用户操作和浏览。

3. 系统设计与实现。

基于以上需求分析,我们将采用Java语言结合Web开发技术来实现个人博客系统。

具体包括以下几个方面:前端设计,采用HTML、CSS和JavaScript等前端技术来设计系统的用户界面,包括登录注册页面、文章展示页面、个人信息管理页面等。

后端开发,采用Java语言结合Spring框架来实现系统的后端逻辑,包括用户管理、文章管理、评论管理等功能的实现。

数据库设计,系统需要设计相应的数据库表结构,用于存储用户信息、文章内容、评论信息等数据。

系统集成,将前端界面与后端逻辑进行集成,实现用户注册登录、文章发布管理、评论交流等功能的完整系统。

4. 系统测试与优化。

在系统开发完成后,需要进行系统测试和优化工作,包括以下几个方面:功能测试,对系统的各项功能进行全面测试,确保系统能够正常运行并实现预期的功能。

性能优化,对系统的性能进行优化,包括提高系统的响应速度、减少资源占用等方面。

用户体验优化,对系统的用户界面和交互体验进行优化,提高用户的使用舒适度和便利性。

5. 结论。

通过本次课程设计,我们成功地利用Java语言开发了一个简单的个人博客系统,实现了用户管理、文章发布、评论交流等基本功能。

java 课程设计 实验报告

java 课程设计 实验报告

第二阶段对象的本质,理解面向对象,类与对象的关系,在程序中如何应用面向对象的思想解决问题。

如何设计类,设计类的基本原则,类的实例化过程,类的细节:构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc 介绍。

对象的三大特性:封装、继承和多态,以及相应的Java实现:子类对象的实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析。

对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。

Extensibility的理解、Extensibility的运用。

常用设计模式:Singleton、Template、Strategy 模式。

项目练习与阶段测试经典算法:奶牛问题、约瑟夫环问题,传智播客Java第二阶段测试题和阶段复习第三阶段JavaAPI介绍、Eclipse的安装和使用、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。

Java Collections Framework:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。

IO概念,File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。

第一阶段计算机基本原理,Java语言发展简史,Java开发环境的搭建,体验Java程序的开发,环境变量path和classpath的设置,Java程序的执行过程,Java反编译工具介绍。

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

大连科技学院Java课程设计报告题目猜数字游戏学生姓名 *** 专业班级 ************** 指导教师 ***** 职称讲师所在单位 ************** 教研室主任 *********完成日期 2015年6月12日目录1.需求分析............................................................................................ 错误!未定义书签。

1.1 用户需求分析........................................................................... 错误!未定义书签。

2.总体设计 (1)2.1 本系统的主要功能 (1)2.2 系统包含的类及类之间的关系 (1)2.3 Java的源文件及功能 (2)3.详细设计与实现 (3)3.1 类的设计 (3)3.2 功能模块设计........................................................................... 错误!未定义书签。

3.2.1功能模块图 (4)3.2.2 功能模块详细设计 (5)3.2.3 程序流程图 (7)4.测试 (8)4.1 系统主界面 (8)4.2 运行界面 (8)参考文献 (11)附录1 软件源程序 (12)课程设计实践总结: (17)1.需求分析1.1用户需求分析1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2.对玩家输入的数字进行判断大小,如果不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入,给出提醒以便玩家进一步选择。

3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及判断。

4.系统根据您猜数字的次数,自动计数.5.直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.2.总体设计2.1本系统的主要功能1.随机数的获取:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2. 输入输出模块:对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

3. 判断模块:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。

4.自动计数模块:系统根据您猜数字的次数,自动计数.5.结果输出模块:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.2.2系统包含的类及类之间的关系本系统共包括2个java源文件。

如图1-1所示。

图1-1 类之间的关系2.3 java源文件及其功能首先搭建Java程序框架。

打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。

GuessNumber加上合适的javadoc。

第一步:随机数的产生我们可以借助Java API提供的Random类来产生一个随机数。

首先在main函数中加入以下三行代码:// 新建一个随机数产生器,然后生成一个1到100之间的整数。

num=(int)(Math.random()*100);String answer;Scanner input=new Scanner(System.in);Eclipse立即在错误语句处划出红线,把鼠标移动到红线上。

包(Package)的概念Java API中包含了极其丰富、类似于Random这样由Sun预先定义好的类。

不同包中可以有同名同姓的类,如果没有包的概念,就会遇到命名冲突问题。

此外,包还能进行安全控制。

Random类是在java.util这个包中。

可以手动在源程序顶部输入import java.util.Random;语句来申明该程序将要使用java.util包中的Random类,然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Random上,然后按下Ctrl +Shift+M,Eclipse会自动帮你完成导入的工作了,此时保存一下源代码。

第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。

第二步:标准输入输出标准输入输出(Standard I/O)是指可以被应用程序使用的信息流。

应用程序可以从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发送到标准错误(Standard error)。

通过输入输出,应用程序和应用程序之间可以被串联起来使用。

虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。

猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。

相反,要从控制台输入,就需要用到System.in。

它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步:使用BorderLayout对图形界面的窗口进行设计。

3.详细设计3.1 类的设计从用户的角度看,Java 源程序中的类分为两种:系统定义的类:即 Java 类库,它是系统定义好的类。

Java 语言由语法规则和类库两部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运行它的系统软件(Java 虚拟机)之间的接口。

用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。

在 Java 程序中,用户自定义类的一般格式如下:class 类名数据成员成员方法类的结构是由类说明和类体两部分组成的。

类的说明部分由关键字 class 与类名组成,类名的命名遵循 Java 标识符的定义规则。

类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。

数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。

首先搭建Java程序框架。

打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。

GuessNumber加上合适的javadoc。

第一步:随机数的产生我们可以借助Java API提供的Random类来产生一个随机数。

首先在main函数中加入以下三行代码:// 新建一个随机数产生器,然后生成一个1到100之间的整数。

num=(int)(Math.random()*100);String answer;Scanner input=new Scanner(System.in);第二步:标准输入输出标准输入输出(Standard I/O)是指可以被应用程序使用的信息流。

应用程序可以从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发送到标准错误(Standard error)。

通过输入输出,应用程序和应用程序之间可以被串联起来使用。

虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。

猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。

相反,要从控制台输入,就需要用到System.in。

它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步:使用BorderLayout对图形界面的窗口进行设计。

3.2 功能模块设计3.2.1 功能模块图游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。

其中输入输出模块中系统会对玩家给出的数进行判断和输出。

判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。

图2-1功能模块图3.2.2 功能模块详细设计(1)随机数的获取功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

(2)输入输出模块功能描述:对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

图2-2输入输出模块图(3) 判断模块功能描述:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。

图2-3判断模块图(4) 自动计数模块功能描述:系统根据您猜数字的次数,自动计数.图2-4自动计数模块(5) 结果输出模块功能描述:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.3.2.3 程序流程图点击“获取随机数”按钮,系统获取到一个随机数。

玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。

如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。

如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出玩家所用的时间和所猜的次数。

如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的时间和所猜的次数。

图2-5程序流程图4.测试4.1 系统主界面图3-1 系统主窗口4.2运行界面图3-2 第一次输入数字界面图3-3 第一次结果显示界面图3-3 第二次输入数字界面图3-4 第二次结果显示界面图3-5第三次输入数次界面图3-6 第三次结果显示界面参考文献[1] 耿祥义,张跃平.Java 2实用教程(第三版)[M].北京:清华大学出版社,2006.8[2]张跃平.Java2实用教程实验指导与习题解答(第三版)[M]. 北京:清华大学出版社, 2004[3]Cay S.Horstmann,Gary Cornell著.Java核心技术.北京:机械工业出版社,2008.5附录1 软件源程序Package a;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;class WindowButton extends JFrame implements ActionListener{ /** * */private static final long serialVersionUID = 1L;int number;JTextField inputNumber;JLabel feedBack;JButton buttonGetNumber,buttonEnter;WindowButton(String s){ super("猜数字小游戏");buttonGetNumber=new JButton("得到一个随机数");feedBack=new JLabel("无反馈信息",JLabel.CENTER);feedBack.setBackground(Color.green);inputNumber=new JTextField("0",5);buttonEnter=new JButton("确定");buttonEnter.addActionListener(this);buttonGetNumber.addActionListener(this);buttonGetNumber.addActionListener(this);Box boxH1=Box.createHorizontalBox();boxH1.add(new JLabel("获取1-100之间的随机数:"));boxH1.add(buttonGetNumber);Box boxH2=Box.createHorizontalBox();boxH2.add(new JLabel("输入您的猜测: "));boxH2.add(inputNumber);Box boxH3=Box.createHorizontalBox();boxH3.add(new JLabel("单击确定按钮: "));boxH3.add(buttonEnter);Box boxH4=Box.createHorizontalBox();boxH4.add(new JLabel("反馈信息: "));boxH4.add(feedBack);Box baseBox=Box.createVerticalBox();baseBox.add(boxH1);baseBox.add(boxH2);baseBox.add(boxH3);baseBox.add(boxH4);Container con=getContentPane();con.setLayout(new FlowLayout());con.add(baseBox);con.validate();setBounds(120,125,279,200);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100,100,150,150);setVisible(true);validate(); }public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonGetNumber){number=(int)(Math.random()*100)+1; }else if(e.getSource()==buttonEnter){int guess=0;try{guess=Integer.parseInt(inputNumber.getText()); if(guess==number){JOptionPane.showMessageDialog(this,"猜对了"); } else if(guess>number){JOptionPane.showMessageDialog(this,"猜大了"); inputNumber.setText(null); }else if(guess<number){JOptionPane.showMessageDialog(this,"猜小了");inputNumber.setText(null); } }catch(NumberFormatException event){JOptionPane.showMessageDialog(this,"请输入数字字符"); } }} }public class 猜数字游戏 {public static void main(String args[]){new WindowButton("猜数字小游戏"); }}package b;import java.util.Date;import java.util.Scanner;public class test2 {public static void main(String[] args) {//给定生成随机数的范围1~1000Scanner input = new Scanner(System.in);int num = (int) (Math.random() * 100) + 1;System.out.println("系统已经生成数字,猜猜看这个数字是多少?(如果实在猜不出来,就输入'投降'吧)");Date d1 = new Date();int gNum = 0;int count = 0;boolean isHandup = false;do {count++;System.out.print("第" + count + "次:");try {gNum = input.nextInt();if (gNum < num) {System.out.println("猜小了");}if (gNum > num) {System.out.println("猜大了");}} catch (Exception ex) {if (input.next().trim().equals("投降")) {isHandup = true;break;}System.out.println("输入数字格式不正确,请重新输入。

相关文档
最新文档