java课程设计报告java Eclipse PowerDesigner实现文件分割合并功能Word下载.docx
《java课程设计报告java Eclipse PowerDesigner实现文件分割合并功能Word下载.docx》由会员分享,可在线阅读,更多相关《java课程设计报告java Eclipse PowerDesigner实现文件分割合并功能Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
2.3系统详细设计6
2.3.1使用的java系统类说明6
2.3.2自定义类及方法说明6
2.4系统测试分析14
2.4.1系统运行测试14
2.4.2系统测试结果分析16
第3章课程设计总结17
参考文献18
第1章课程设计的目的与要求
课程设计的目的
《JAVA面向对象程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA面向对象程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
课程设计的实验环境
本课程设计借助的硬件环境为能运行WindowsXP、Vista或Windows7的微机系统,软件需求为Eclipse代码编辑器、PowerDesigner类图设计软件。
课程设计的预备知识
熟悉《JAVA面向对象程序设计》教材,熟悉Eclipse软件和PowerDesigner软件的功能并能熟练运用。
课程设计的要求
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;
对此能够较好地理解和掌握,能够进行简单分析和判断;
能编写出具有良好风格的程序;
掌握JAVA程序设计的基本技能和面向对象的概念和方法;
了解多线程、安全和网络等编程技术。
同时培养学生进行分析问题、解决问题的能力;
培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
第2章课程设计的内容
设计内容概述
设计目标
本次课程设计内容为设计一个文件分割、合并器。
实现对任意文件的分割,并且能够对分割后的文件进行合并还原。
并将处理后的文件存入指定路径的目录当中。
实现系统托盘,最小化时到系统托盘。
设计思路
要实现对任意文件的分割,这就需要找到所有文件的共同之处。
其实,也很简单,我们把文件都看作是一连串的字节流组成的即可。
利用java.io包中的FileOutputStream和FileInputStream对文件进行字节流的读写。
文件和并,通过对欲合并文件的辨认(本程序通过后缀“-split”来确定),将分割后的文件加入一个ArrayList<
File>
中,利用迭代器用文件分割同样的道理进行合并还原。
系统概要设计
系统开发环境
开发平台:
MicrosoftWindowsXPProfessionalServicePack2
开发工具:
PowerDesigner11.0+JDK1.6.0_02+Eclipse
系统主界面设计
软件主界面如图2.1A和2.1B所示。
图2.1A软件分割功能主界面图
图2.1B软件合并功能主界面图
系统功能说明
1、软件功能特点
(1)可以实现对系统磁盘中的任意文件的分割。
(2)可以实现对系统磁盘中的任意文件的合并。
(3)可以将指定文件按大小或按数目进行分割。
(4)可以按不同的单位量对文件进行分割。
(5)可以设置文件分割时参数。
(6)可以将处理后的文件存入指定的磁盘路径中。
(7)可以调用系统的计算器在文件处理时帮助计算相关数据。
(8)在文件处理过程中显示相关处理状态的信息。
2、工作流程图
系统工作流程图如图2.2所示。
图2.2系统工作流程图
类图ClassDiagram设计
系统的类图设计如图2.3所示。
图2.3类图ClassDiagram
系统详细设计
使用的java系统类说明
本软件的设计使用到的java系统类为以下包中的类:
(设计代码)
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
import.*;
importjava.sql.Date;
importjava.util.*;
importjavax.swing.*;
importjavax.swing.border.LineBorder;
其中主要的类为JFrame、Canvas。
使用到的java系统中接口有四种:
WindowListener、ActionListener、ItemListener、ActionListener。
自定义类及方法说明
1、类名:
FileCut
作用:
自定义的主类。
继承的父类:
JFrame类。
实现的接口:
Cloneable接口。
publicclassFileCutextendsJFrameimplementsCloneable{
publicFileCut(){//构造函数}
publicstaticvoidmain(String[]args){//主函数}
}
2、类名:
BrowseSourceFile
自定义的类,实现浏览文件或文件夹的功能,当找不到指定文件或文件夹时捕获异常。
没有。
ActionListener接口。
classBrowseSourceFileimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
try{}
catch(Exceptionex){}
弹出浏览窗口如图2.4A和2.4B所示。
图2.4A分割文件时选择目标文件浏览窗口
图2.4B合并文件时选择目标文件浏览窗口
3、类名:
SplitItemListener
自定义的类,实现分割文件的功能。
ItemListener接口。
classSplitItemListenerimplementsItemListener{//分割文件功能
publicvoiditemStateChanged(ItemEvente){
4、类名:
UnionItemListener
自定义的类,实现合并文件的功能。
classUnionItemListenerimplementsItemListener{//合并文件功能
5、类名:
BigOrSmallItemListener
自定义的类,实现在分割文件时按大小分割的功能。
classBigOrSmallItemListenerimplementsItemListener{//按大小分割
6、类名:
FileNumberItemListener
自定义的类,实现在分割文件时按数目分割的功能。
classFileNumberItemListenerimplementsItemListener{//按数目分割
7、类名:
SourceActionListener
自定义的类,对文件进行不同方式处理时设定对象限制,即在分割处理时只能选择指定文件,在合并处理时可选择文件或文件夹,当指定目标为空时或找不到指定文件或文件夹时捕获异常。
classSourceActionListenerimplementsActionListener{//源文件
catch(NullPointerExceptionnpe){
return;
//直接关闭窗体退出的情况}
catch(Exceptionexception){
FileCut.message.setText("
找不到指定文件或文件夹!
"
);
8、类名:
TargetActionListener
自定义的类,实现将处理后的文件存放到指定路径的文件当中的功能。
classTargetActionListenerimplementsActionListener{
弹出的浏览窗口如图2.5A和2.5B所示。
图2.5A分割文件时指定存储位置浏览窗口
图2.5B合并文件时指定存储位置浏览窗口
9、类名:
CalcuAction
自定义的类,实现调用微机系统中计算器的功能。
classCalcuActionimplementsActionListener{
10、类名:
EnterAction
自定义的类,实现“确定”按钮的功能,对文件进行相关处理。
classEnterActionimplementsActionListener{
publicvoidactionPerformed(ActionEvente){//调用核心功能代码
if(FileCut.operateKind==1)
ProcessFile.cutFile();
else
ProcessFile.unionFile();
11、类名:
CancelAction
自定义的类,实现“取消”按钮的功能,所有编辑框以及信息提示框清空。
classCancelActionimplementsActionListener{
FileCut.JTextField1.setText("
FileCut.JTextField2.setText("
FileCut.JTextField3.setText("
12、类名:
ClearAction
自定义的类,实现“重置”按钮的功能,所有编辑框清空。
classClearActionimplementsActionListener{
13、类名:
ProcessFile
自定义的类,实现在对文件分割或合并时显示相关处理状态和结果的功能。
classProcessFile{
publicstaticvoidcutFile(){//文件分割}
publicstaticvoidunionFile(){//文件合并}
14、类名:
MyCanvas
自定义的类,用于实现对软件主界面顶部图片的添加功能。
Canvas类。
classMyCanvasextendsCanvas{//加载顶部图片
MyCanvas(){setSize(438,45);
}
publicvoidpaint(Graphicsg){
g.drawImage(myimage,0,0,myimage.getWidth(this),myimage.getHeight(this),this);
15、类名:
MyWindowListener
自定义的类,实现对系统主窗口的一些基本操作的功能。
WindowListener接口。
classMyWindowListenerimplementsWindowListener{
//利用singleton(单态)模式获取唯一对象
privatestaticMyWindowListenermwl=newMyWindowListener();
privateMyWindowListener(){
publicstaticMyWindowListenergetInstance(){
returnmwl;
publicvoidwindowActivated(WindowEvente){
publicvoidwindowClosed(WindowEvente){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
//关闭窗体,退出程序
publicvoidwindowDeactivated(WindowEvente){
publicvoidwindowDeiconified(WindowEvente){
publicvoidwindowIconified(WindowEvente){//最小化到托盘图标
e.getWindow().dispose();
DesktopTray.creatDesktopTray();
publicvoidwindowOpened(WindowEvente){
16、类名:
DesktopTray
自定义的类,实现将系统窗口进行最小化托盘或最大化的功能。
classDesktopTray{//实现托盘图标
publicstaticvoidcreatDesktopTray(){}
publicstaticvoiddisposeDesktopTray(){}
publicstaticvoidsendMail(Stringmail){}
publicstaticvoidcalculator(StringproName){}
publicstaticvoidcreatePopupMenu(){//托盘的弹出菜单}
系统测试分析
系统运行测试
系统设计完成之后,需要进一步对系统的运行情况进行测试,目的是检验程序代码的完整性和准确性,同时检验窗口是否出现异常情况。
在系统测试中,检验方法主要是运行系统,即分别利用软件的分割和合并功能对目标文件进行相关处理,然后检查处理结果是否正确。
本次测试选取的目标文件为Word文件,以按数目的方式对同一个文件进行分割和合并,测试结果如图2.6及图2.7A、图2.7B、图2.7C所示。
图2.6按数目分割文件测试结果
将第一个分割后的子文件放入指定文件夹中。
图2.7A合并文件第一步结果图
将第二个分割后的子文件放入同一个指定文件夹中。
图2.7B合并文件第二部结果图
将第三个分割后的子文件放入同一个指定文件夹中。
图2.7C合并文件第三步结果图
系统测试结果分析
经过测试,系统的各个部分的功能均能完整实现,测试结果完全正确。
因此,该系统软件可以用于实际应用当中。
第3章课程设计总结
我自己感觉此次课程设计做得挺成功的,通过这一次课程设计我学到了不少实际编程的知识。
最重要的是我在这一学期对《Java面向对象程序设计》这一教材学习得很努力,掌握了一定的java基础知识,使得此次课程设计进展相对顺利,基本遇到的问题都能自己独立解决了。
在课程设计开始的几天里,我主要搜取相关资料,在互联网上搜取了大量关于java课程设计的材料,然后从中选取了一份作为主要参考依据,进行此次的java课程设计。
设计过程中我主要完成了类图的设计以及java课程设计说明的编写。
在这课程设计期间我的学长帮助了我,有些东西是我们一起探讨,一起解决方法的。
当然在学习Java和设计程序的过程中还得到了刘维军老师的辛勤指导,为我解答了不少的疑问。
同时,在刘老师身上我们学到了很多实用的东西,在此表示衷心的感谢!
同时,还要感谢帮助过我的学长及其他同学!
此次课程设计使我学到了不少书本上没有的知识;
学到了很多java编程知识,并学会了简单的使用PowerDesigner来设计类图,由此我发现了不少的问题。
他使我对PowerDesigner软件有了一定的了解,并掌握了一些基础的功能使用方法。
经过这次的课程设计,尽管遇到了很多难题,但是让我更加受益的是在这次课程设计中得到的经验、心得和锻炼。
这让我发现编译程序的过程其实就是不断解决问题的过程,从中也感受到了编写软件的乐趣,一个人永远有学不完的知识,就算开发软件的各项知识都学会了,但在实际开发过程中仍然会遇到不少问题,这是就要做到以下这两点:
一个是“查”,另一个则是“问”。
通过仔细的查阅资料和询问老师以及同学,最终解决了不少的问题。
这也是使我认识到解决问题一方面依靠外界的帮助,更重要的是依靠自己的能力。
这次课程设计给我以前学过的知识做了一个总结,为我深入学习编程做了铺垫。
参考文献
[1]陈明.JAVA学教程.科技出版社,2002.
[2]飞思科技产品研发中心.JAVA应用开发.北京:
电子工业出版社.2003.5
[3]JAVA高手突破.北京:
清华大学出版社.2002.8
[4]乔林.JAVA应用技术.中国铁道出版社.2003.12
[5]张立科.实用JAVA应用学.北京:
人民邮电出版社.2002.9
[6]严蔚敏.JAVA第二版.北京:
清华大学出版社.2001.7
[7]王珍玲.实用JAVA工程教程.北京:
高等教育出版社.2004.6
[8]李维.面向对象开发实践之路.北京:
电子工业出版社.2004.4
[9]袁绍欣,赵祥模,葛玮等.Java面向对象程序设计.北京:
清华大学出版社.2007.8