JAVA课程设计报告
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程序的调试过程中,提高学生分析程序中出现的错误与排除这些错误的能力。
通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。
二、实验要求(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课程设计报告摘要一、课程目标知识目标: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语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。
二、课程设计内容。
1. 课程设计主题。
本次课程设计的主题为“学生成绩管理系统的设计与实现”。
通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。
2. 课程设计目标。
(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。
三、课程设计过程。
1. 需求分析。
首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。
通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。
2. 系统设计。
在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。
通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。
同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。
3. 编码实现。
在系统设计完成后,团队成员按照设计文档进行了编码实现工作。
在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。
通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。
4. 测试与调试。
在编码实现完成后,团队成员进行了系统的测试与调试工作。
通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。
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程序设计)设计题目信号灯年级专业2010 级计科一班学生姓名XXX指导老师谭军2012 年 1月一、课程设计的目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、课程设计内容:陈述说明程序设计的任务,强调的是程序做什么?明确规定:输入的形式与输入值的范围输出的形式程序所能达到的功能三、概要设计你的设计思路说明本程序中用到的所有数据的定义、程序的流程图以及各程序模块之间的层次(调用)关系。
四、详细设计列出关键代码的设计与分析,关键代码后必须有中文注释。
五、用户使用说明说明如何使用你编写的程序,详细列出每一步的操作步骤。
六、测试结果列出你的测试结果,包括输入和输出。
这里的测试数据应该完整和严格,最好多于需求分析中所列。
注意事项:课程设计成绩评定依据以下方面:1题目的难度系数2程序完成,调试顺利通过,可正常进行,能达到设计功能要求。
3写出《汇编语言程序设计》课程设计说明书。
课程设计说明书要求采用统一稿纸,可手写,有条件亦可上机打印,认真、清晰、不得潦草。
说明书应包括以下内容和项目:1)封面;2)课程设计的题目,本设计所实现的功能简述。
3)主要的设计思想简述。
4)主要程序的框图。
5)源程序代码(要求在关键的位置注释,从而增加程序的可读性)。
6)总结报告,主要包括以下内容:a.课程设计中所遇到的主要问题和解决方法。
b.创新和得意之处。
c.课程设计中存在的不足,需要进一步改进的设想。
d.课程设计的感想和心得体会。
7)参考文献4面试成绩课程设计最后一天安排面试。
检查源程序以及查看运行情况,对关键代码进行询问、考察。
5 学生完成课程设计的实际情况,包括是否独立完成(特别要求),认真态度、考勤 , 遵守纪律等方面。
6 本课程设计按优秀 , 良好 , 中等 , 及格和不及格五级评定成绩.进度安排依照教学计划,课程设计时间为 1 周。
java课程设计报告

java课程设计报告1. 引言Java作为一种全球广泛使用的编程语言,具有跨平台、可靠性强、安全性高等优点,因而备受程序员和开发者的青睐。
本篇报告旨在对我所参与的Java课程设计进行总结和评估,分享学习过程中的经验和收获,以及对未来的展望。
2. 项目背景本次课程设计项目是一个在线购物平台的开发,团队共有3名成员,我们合作进行了2个月的开发工作。
通过这个项目,我学到了许多Java编程的实践经验,不仅提高了编程技能,也增进了团队合作和沟通能力。
3. 设计过程在设计初期,我们进行了需求分析和系统设计。
我们通过与用户进行会议和讨论,了解了用户的需求和期望。
然后,我们进行了功能拆解和流程设计,使用UML建模工具绘制了用例图和类图,明确了系统的整体结构。
4. 技术选型在技术选型上,我们选择了Spring框架作为项目的基础框架,使用了Spring Boot来简化开发流程。
为了实现用户认证和授权功能,我们使用了Spring Security。
此外,为了提高系统性能和扩展性,我们采用了Spring Cloud微服务架构,使用了Eureka作为注册中心、Ribbon作为负载均衡器。
5. 开发实践在开发过程中,我们遵循了面向对象的编程思想,并且使用了版本控制工具Git,实现了团队的协同开发。
我们按照模块划分任务,每个成员负责一个或多个模块的开发。
通过定期的代码审查和团队会议,我们保持了代码的质量和一致性。
6. 问题与挑战在项目开发中,我们也遇到了一些问题和挑战。
例如,数据一致性的处理、性能优化、多线程并发等。
但通过团队成员的共同努力和合作,我们成功地克服了这些问题,并取得了较好的开发效果。
7. 项目成果与展望在项目完成后,我们实现了一个功能完备、用户友好的在线购物平台。
用户可以注册、登录、浏览商品、下订单并进行支付等操作。
同时,我们也考虑到了扩展性和性能优化的问题,系统具备一定的容错和弹性。
未来,我们希望能继续完善和优化这个系统,并根据用户的反馈做出进一步的改进。
java课程设计实验报告

java课程设计实验报告在Java课程设计实验报告中,我们将讨论一个关于学生信息管理系统的实验。
学生信息管理系统是一个常见的课程设计题目,通过这个实验,我们可以学习到如何使用Java语言进行程序设计和开发,以及如何利用数据库进行数据管理。
本实验将涉及到Java语言的基本知识,包括面向对象的编程思想、GUI界面设计、数据库连接等方面的内容。
首先,我们需要明确学生信息管理系统的功能需求。
在这个实验中,我们需要实现对学生信息的增加、删除、修改和查询功能。
同时,我们还需要考虑到学生信息的存储和管理,这就需要用到数据库。
在设计学生信息管理系统时,我们需要考虑到系统的易用性、稳定性和安全性,这些都是一个好的软件系统应该具备的特点。
接下来,我们将讨论学生信息管理系统的设计思路。
首先,我们需要设计系统的整体架构,包括系统的模块划分、模块之间的关联关系等。
然后,我们需要设计系统的数据库结构,包括学生信息表的字段设计、索引设计等。
在数据库设计完成后,我们可以开始编写Java程序,实现对数据库的连接和操作。
在编写程序时,我们需要考虑到程序的健壮性和可维护性,这就需要我们编写规范的代码,并进行适当的注释。
在实验过程中,我们还需要进行系统的测试和调试。
测试是一个软件开发过程中非常重要的环节,通过测试,我们可以发现系统中的bug并及时进行修复。
在测试过程中,我们需要进行功能测试、性能测试、安全测试等,以保证系统的稳定性和安全性。
最后,我们需要对整个实验过程进行总结和反思。
我们可以总结实验中遇到的问题和解决方法,以及对系统进行的改进和优化。
通过这个实验,我们不仅可以学习到Java编程和数据库操作的知识,还可以提高我们的问题分析和解决能力,这对我们以后的学习和工作都是非常有益的。
总之,学生信息管理系统的设计与实现是一个非常有意义的实验课题,通过这个实验,我们可以提高我们的编程能力,加深对Java语言和数据库的理解,同时也可以培养我们的团队合作意识和问题解决能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学技术与工程系《Java课程设计》课程设计报告题目:简易媒体播放器班级:0633081姓名:063308123郭伟 063308164张志朋063308125靳浩兵063308168周小晨指导教师:陈红军、赵军民设计日期:2010.01.11-15专业:计算机网络技术目录1 、引言..................................... 错误!未定义书签。
2 、设计依据 ................................ 3错误!未定义书签。
2.1设计平台...................................................................... 错误!未定义书签。
2.2设计思想...................................................................... 错误!未定义书签。
3、主要框架图、............................ 错误!未定义书签。
4、详细设计 (4)5 、软件调试分析 ............................. 错误!未定义书签。
6 、源程序代码 .............................. 6错误!未定义书签。
7、执行结果 (15)8、学习心得 ................................ 15错误!未定义书签。
9、参考文献 ................................ 16错误!未定义书签。
1、引言:旨在考察在经过一个学期的学习,对JA V A知识的理解与应用。
同时把所学的理论知识用于实战编程,进而培养同学们的动手能力和团结协作的团队意识。
综合应用java语言的相关知识,独立设计中型的Java应用程序。
通过本课程设计,使学生巩固《JA V A课程设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关。
2、设计依据:1、设计平台Eclipse是开发源码项目,由于其开放源码,任何人都可以免费使用,并可以在此基础上开发各自的插件,eclipse不只作为一个JA V A IDE的开发平台,而且是作为一个平台框架,各种各样的插件都可以安装在它上面,从而形成各种各样的工具,它有开源软件,使用插件功能,可以完成比较复杂的开发等优点。
此Java程序设计就是在Eclipse环境平台下开发的。
Java API文档:Java API文档包含了Java的大部分类,方面查询不熟悉的类,所以它是一款不错的帮助文档!2、设计思想根据一学期对JA V A 知识的学习,在Eclipse平台下,导入JMF包通过不断查询API 文档,编写媒体播放器在现有类的基础上组织一个新类。
有时,我们也将组织称作“包含”关系。
播放器主要针对面向对象,并且实现序列化接口,多线程等知识。
对象的组织具有极大的灵活性。
新类的“成员对象”通常设为“私有”(Private),使用这个类的客户程序员不能访问它们。
这样一来,我们可在不干扰客户代码的前提下,从容地修改那些成员。
也可以在“运行期”更改成员,这进一步增大了灵活性。
后面要讲到的“继承”并不具备这种灵活性,因为编译器必须对通过继承创建的类加以限制。
由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。
作为新加入这一领域的程序员,或许早已先入为主地认为“继承应当随处可见”。
沿这种思路产生的设计将是非常笨拙的,会大大增加程序的复杂程度。
相反,新建类的时候,首先应考虑“组织”对象;这样做显得更加简单和灵活。
利用对象的组织,我们的设计可保持清爽。
一旦需要用到继承,就会明显意识到这一点。
3、程序主要框架图4、详细设计图形分析:本程序的播放器图形有五部分构成,即四个面板个和一个存放歌曲文件名的滚动面板JscrollPane。
第一个面板存放时间标签(label)第二个面板存放三个按钮,第三个存放滑标(Jslider)第四个面板放置二个按钮。
模块功能:本程序由十五个小模块构成,分别是:一:序列化接口二:一个MP3类继承了Jframe 同时实现了线程的Runnable接口,类里分别为:五个按钮的事件处理,滚动面板里组件的事件处理,窗口关闭事件,run( )方法,daoxu( )方法,fun( )方法,fen( )方法以及main( )主方法。
Lujin类实现序列化就是方便它的属性值保存起来,适当的时候在取出来。
首先,添加文件需要实现一个JFileChooser对象(文件选择器)对文件进行选择再判断是否是MP3格式,开始播放用到一JList对象的getSelectedIndex( )对列表里文件进行选择播放,同时又MediaPlayer对象的getDuration( ).getSeconds( )方法的时间二者之间都调用了线程sleep方法如果格式不对或没有选文件会弹出提示对话框。
循环播放与上同。
停止播放方法里通过设置属性调用stop()结束播放同时滑标左右播放时间消失。
删除操作调用了removeAlementAt( )删除指定位置处的组件。
其中的fun( )方法作用是对文件进行序列化。
Daoxu( )是对文件的相对路径进行更改,改为纯文件名(*.MP3)5、调试与测试:调试要根据Eclipse中出错的信息以及所导入的javadoc文档还有一些快捷键进行快速调试,通过Eclipse运行平台自带的ru n→Java Application进行运行程序。
看运行结果是否与自己的预想是否相同再进行调试。
测试过程中遇到问题:(1)某些用到的类不熟悉,需要查找API (2)没法运行程序,看是否Eclipse配置的一些变量成功。
(3)JMF包如何导入及使用,需上网查找。
6、程序源代码:import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;import javax.media.bean.playerbean.*; //这个包要用到JMFclass Lujin implements Serializable {//序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。
private static final long serialVersionUID = 1L;Vector<CharSequence> a ;//CharSequence 是 char 值的一个可读序列Vector<CharSequence> b ;public Lujin(Vector<CharSequence> vector, Vector<CharSequence> mingcheng) {a = vector;b = mingcheng;}}public class MP3extends JFrame implements Runnable {private static final long serialVersionUID = 1L;//为了在反序列化时,确保类版本的兼容性public JLabel shijian;private JSlider sldDiameter;//滑标public MediaPlayer sound1;public JButton playSound, loopSound, stopsound;public JButton tj, sc;public JPanel jp1, jp2, jp3, jp4;public JList jl;int zongmiao=0;public Vector<CharSequence> vector, mingcheng;//charsequence是char 值的一个可读序列boolean fo = false, geshi = false;JLabel jl1, jl2, sj1, sj2;//sj1,sj2分别用在playSound(),loopSound(),stopsound()方法中显示与取消时间数据JTextField jt1, jt2;int a = 0, b = 0, you = 1,mm=0,zong = 0;int fenzhong, miaozhong;public MP3() {super("java简单音乐播放器");sound1 = new MediaPlayer();Container c = getContentPane();//AWT容器对象是一个可包含其他 AWT 组件的组件。
c.setLayout(new FlowLayout());mingcheng = new Vector<CharSequence>();jp1 = new JPanel();jp1.setBackground(Color.gray);shijian = new JLabel();jp1.add(shijian);c.add(jp1);playSound = new JButton("开始播放");loopSound = new JButton("循环播放");stopsound = new JButton("停止播放");jp2 = new JPanel();jp2.setBackground(Color.BLUE);jp2.add(playSound);jp2.add(loopSound);jp2.add(stopsound);c.add(jp2);jp3 = new JPanel();jp3.setBackground(Color.cyan);sj1 = new JLabel();sj2 = new JLabel();sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0);//一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件sldDiameter.setMajorTickSpacing(1);//此方法设置主刻度标记的间隔。
sldDiameter.setMinimum(2);//此方法设置次刻度标记的间隔。
sldDiameter.setPaintTicks(true);//确定是否在滑块上绘制滑道。
jp3.add(sj1);jp3.add(sldDiameter);//进度条左右时间标签。