java课程设计报告,java Eclipse PowerDesigner实现文件分割合并功能

时间:2024.4.2

  Java程序设计语言课程设计(论文)

题目:       文件合并、分割软件     

院 (系):          

专业班级:         

学    号:          

学生姓名:          

指导教师:         

教师职称:          

起止时间:          


目  录

第1章 课程设计的目的与要求. 1

1.1   课程设计的目的. 1

1.2   课程设计的实验环境. 1

1.3   课程设计的预备知识. 1

1.4   课程设计的要求. 1

第2章 课程设计的内容. 2

2.1   设计内容概述. 2

2.1.1 设计目标. 2

2.1.2 设计思路. 2

2.2   系统概要设计. 2

2.2.1 系统开发环境. 2

2.2.2 系统主界面设计. 2

2.2.3 系统功能说明. 3

2.2.4 类图ClassDiagram设计. 5

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章 课程设计的目的与要求

1.1      课程设计的目的

《JAVA面向对象程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA面向对象程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2      课程设计的实验环境

本课程设计借助的硬件环境为能运行Windows XP、Vista或Windows 7的微机系统,软件需求为Eclipse代码编辑器、PowerDesigner类图设计软件。

1.3      课程设计的预备知识

熟悉《JAVA 面向对象程序设计》教材,熟悉Eclipse软件和PowerDesigner软件的功能并能熟练运用。

1.4      课程设计的要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

                                                                                   第2章 课程设计的内容

2.1      设计内容概述

2.1.1 设计目标

本次课程设计内容为设计一个文件分割、合并器。实现对任意文件的分割,并且能够对分割后的文件进行合并还原。并将处理后的文件存入指定路径的目录当中。实现系统托盘,最小化时到系统托盘。

2.1.2 设计思路

要实现对任意文件的分割,这就需要找到所有文件的共同之处。其实,也很简单,我们把文件都看作是一连串的字节流组成的即可。利用java.io包中的FileOutputStream和FileInputStream 对文件进行字节流的读写。文件和并,通过对欲合并文件的辨认(本程序通过后缀“-split”来确定),将分割后的文件加入一个ArrayList<File>中,利用迭代器用文件分割同样的道理进行合并还原。

2.2      系统概要设计

2.2.1 系统开发环境

开发平台:Microsoft Windows XP Professional Service Pack 2

开发工具:PowerDesigner 11.0 + JDK 1.6.0_02 + Eclipse

2.2.2 系统主界面设计

软件主界面如图2.1A和2.1B所示。

图2.1A 软件分割功能主界面图

图2.1B 软件合并功能主界面图

2.2.3 系统功能说明

1、软件功能特点

(1)可以实现对系统磁盘中的任意文件的分割。

(2)可以实现对系统磁盘中的任意文件的合并。

(3)可以将指定文件按大小或按数目进行分割。

(4)可以按不同的单位量对文件进行分割。

(5)可以设置文件分割时参数。

(6)可以将处理后的文件存入指定的磁盘路径中。

(7)可以调用系统的计算器在文件处理时帮助计算相关数据。

(8)在文件处理过程中显示相关处理状态的信息。

2、工作流程图

系统工作流程图如图2.2所示。

图2.2 系统工作流程图

2.2.4 类图ClassDiagram设计

系统的类图设计如图2.3所示。

图2.3 类图ClassDiagram

2.3      系统详细设计

2.3.1 使用的java系统类说明

本软件的设计使用到的java系统类为以下包中的类:(设计代码)

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.sql.Date;

import java.util.*;

import javax.swing.*;

import javax.swing.border.LineBorder;

其中主要的类为JFrame、Canvas。

使用到的java系统中接口有四种:WindowListener、ActionListener、ItemListener、ActionListener。

2.3.2 自定义类及方法说明

1、类名: FileCut

作用: 自定义的主类。
继承的父类: JFrame类。
实现的接口: Cloneable接口。

public class FileCut extends JFrame implements Cloneable{

public FileCut() {// 构造函数  }

public static void main(String[] args) {//主函数  }

}
2、类名: BrowseSourceFile
作用: 自定义的类,实现浏览文件或文件夹的功能,当找不到指定文件或文件夹时捕获异常。
继承的父类: 没有。 
实现的接口: ActionListener接口。

class BrowseSourceFile implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {  }

catch (Exception ex) {  }

}

}

弹出浏览窗口如图2.4A和2.4B所示。

图2.4A 分割文件时选择目标文件浏览窗口

图2.4B 合并文件时选择目标文件浏览窗口

3、类名: SplitItemListener
作用: 自定义的类,实现分割文件的功能。
继承的父类: 没有。
实现的接口: ItemListener接口。

class SplitItemListener implements ItemListener {//分割文件功能

public void itemStateChanged(ItemEvent e) {

}

}
4、类名: UnionItemListener
作用: 自定义的类,实现合并文件的功能。
继承的父类: 没有。
实现的接口: ItemListener接口。

class UnionItemListener implements ItemListener {//合并文件功能

public void itemStateChanged(ItemEvent e) {

}

}
5、类名: BigOrSmallItemListener
作用: 自定义的类,实现在分割文件时按大小分割的功能。
继承的父类: 没有。 
实现的接口: ItemListener接口。

class BigOrSmallItemListener implements ItemListener {//按大小分割

public void itemStateChanged(ItemEvent e) {

}

}
6、类名: FileNumberItemListener
作用: 自定义的类,实现在分割文件时按数目分割的功能。
继承的父类: 没有。 
实现的接口: ItemListener接口。

class FileNumberItemListener implements ItemListener {//按数目分割

public void itemStateChanged(ItemEvent e) {

}

}
7、类名: SourceActionListener
作用: 自定义的类,对文件进行不同方式处理时设定对象限制,即在分割处理时只能选择指定文件,在合并处理时可选择文件或文件夹,当指定目标为空时或找不到指定文件或文件夹时捕获异常。
继承的父类: 没有。 
实现的接口: ActionListener接口。

class SourceActionListener implements ActionListener {//源文件

public void actionPerformed(ActionEvent e) {

try {  }

catch (NullPointerException npe) {

return;// 直接关闭窗体退出的情况}

catch (Exception exception) {

FileCut.message.setText("找不到指定文件或文件夹!");}

}

}
8、类名: TargetActionListener
作用: 自定义的类,实现将处理后的文件存放到指定路径的文件当中的功能。
继承的父类: 没有。 
实现的接口: ActionListener接口。

class TargetActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

}

}

弹出的浏览窗口如图2.5A和2.5B所示。

图2.5A 分割文件时指定存储位置浏览窗口

图2.5B 合并文件时指定存储位置浏览窗口

9、类名: CalcuAction
作用: 自定义的类,实现调用微机系统中计算器的功能。
继承的父类: 没有。 
实现的接口: ActionListener接口。

class CalcuAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

}

}
10、类名: EnterAction
作用: 自定义的类,实现“确定”按钮的功能,对文件进行相关处理。
继承的父类: 没有。
实现的接口: ActionListener接口。

class EnterAction implements ActionListener {

public void actionPerformed(ActionEvent e) {// 调用核心功能代码

if (FileCut.operateKind == 1)

ProcessFile.cutFile();

else

ProcessFile.unionFile();

}

}
11、类名: CancelAction
作用: 自定义的类,实现“取消”按钮的功能,所有编辑框以及信息提示框清空。
继承的父类: 没有。
实现的接口: ActionListener接口。

class CancelAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

FileCut.JTextField1.setText("");

FileCut.JTextField2.setText("");

FileCut.JTextField3.setText("");

FileCut.message.setText("");

}

}
12、类名: ClearAction
作用: 自定义的类,实现“重置”按钮的功能,所有编辑框清空。

继承的父类: 没有。
实现的接口: ActionListener接口。

class ClearAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

FileCut.JTextField1.setText("");

FileCut.JTextField2.setText("");

FileCut.JTextField3.setText("");

}

}
13、类名: ProcessFile

作用: 自定义的类,实现在对文件分割或合并时显示相关处理状态和结果的功能。
继承的父类: 没有。 
实现的接口: 没有。

class ProcessFile {

public static void cutFile() { // 文件分割 }

public static void unionFile() {// 文件合并 }

}
14、类名: MyCanvas
作用: 自定义的类,用于实现对软件主界面顶部图片的添加功能。
继承的父类: Canvas类。
实现的接口: 没有。

class MyCanvas extends Canvas {// 加载顶部图片

MyCanvas() {setSize(438, 45); }

public void paint(Graphics g) {

g.drawImage(myimage, 0, 0, myimage.getWidth(this), myimage.getHeight(this), this);}

}
15、类名: MyWindowListener
作用: 自定义的类,实现对系统主窗口的一些基本操作的功能。
继承的父类: 没有。 
实现的接口: WindowListener接口。

class MyWindowListener implements WindowListener {

// 利用singleton(单态)模式获取唯一对象

private static MyWindowListener mwl = new MyWindowListener();

private MyWindowListener() {

}

public static MyWindowListener getInstance() {

return mwl;

}

public void windowActivated(WindowEvent e) {

}

public void windowClosed(WindowEvent e) {

}

public void windowClosing(WindowEvent e) {

System.exit(0);//关闭窗体,退出程序

}

public void windowDeactivated(WindowEvent e) {

}

public void windowDeiconified(WindowEvent e) {

}

public void windowIconified(WindowEvent e) {//最小化到托盘图标

e.getWindow().dispose();

DesktopTray.creatDesktopTray();

}

public void windowOpened(WindowEvent e) {

}

}
16、类名: DesktopTray
作用: 自定义的类,实现将系统窗口进行最小化托盘或最大化的功能。
继承的父类: 没有。 
实现的接口: 没有。

class DesktopTray {//实现托盘图标

public static void creatDesktopTray() {  }

public static void disposeDesktopTray() { }

public static void sendMail(String mail) {  }

public static void calculator(String proName) {  }

public static void createPopupMenu() {//托盘的弹出菜单  }

}

2.4      系统测试分析

2.4.1 系统运行测试

系统设计完成之后,需要进一步对系统的运行情况进行测试,目的是检验程序代码的完整性和准确性,同时检验窗口是否出现异常情况。在系统测试中,检验方法主要是运行系统,即分别利用软件的分割和合并功能对目标文件进行相关处理,然后检查处理结果是否正确。本次测试选取的目标文件为Word文件,以按数目的方式对同一个文件进行分割和合并,测试结果如图2.6及图2.7A、图2.7B、图2.7C所示。

图2.6 按数目分割文件测试结果

将第一个分割后的子文件放入指定文件夹中。

图2.7A 合并文件第一步结果图

将第二个分割后的子文件放入同一个指定文件夹中。

图2.7B 合并文件第二部结果图

将第三个分割后的子文件放入同一个指定文件夹中。

图2.7C 合并文件第三步结果图

2.4.2 系统测试结果分析

经过测试,系统的各个部分的功能均能完整实现,测试结果完全正确。因此,该系统软件可以用于实际应用当中。

                                                                                      第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

更多相关推荐:
javaEE课程设计报告

课程设计课程名称JAVAEENET课程设计设计题目校园超市商品信息管理系统学院信息工程与自动化学院专业计算机科学与技术年级20xx年级学生姓名指导教师日期20xx63020xx711教务处制课程设计任务书信息工...

javaEE课程设计

桂电编号基于J2EE的开发技术课程设计报告题目桂林市一零八医院导航网站系别计算机科学与工程学院专业信息管理与信息系统学生姓名学号指导教师汪华登20xx年12月30日目录一项目背景3二需求分析3三开发环境3四系统...

JavaEE课程设计任务书new

JavaEE与中间件课程设计任务书辽宁工程技术大学软件学院软件工程系一设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结是提高学生对所学知识综合应用能力的一种方式是集中实践性环节之一要求同学们对...

shao软件综合课程设计报告1

软件综合课程设计报告题目名称在线员工信息管理班级计0813学生学号20xx25501322学生姓名王绍辉同组学生学号同组学生姓名指导老师毕远伟老师程序成绩报告成绩总成绩优良中及格不及格20xx2201前言随着网...

java课程设计报告范例

河北科技大学课程设计报告学生姓名祝冬冬学号专业班级计算机科学与技术课程名称学年学期指导教师2011年6月课程设计成绩评定表目录示例一二三1234四五设计题目1设计目的1设计原理及方案1使用的软件工具和环境1需求...

javaee课程设计

一系统设计思想科学技术的飞速发展使计算机应用已经涉及到人们生活的各个方面通过医疗门诊查询系统患者不必到医院去排队只需要一台连接上互联网的计算机就可实现网上挂号网上预约这样不仅方便了患者也方便了医生更容易查阅病历...

java(J2EE)课程设计报告 (11)

烟台工程职业技术学院机电工程系计算机应用技术专业09级课程设计论文题目坦克大战单机版姓名学号指导教师签名二一一年七月十一日坦克大战单机版摘要JAVA是实践性很强的课程课程设计是加强实践能力的一个强有力手段通过课...

Java课程设计报告样本

Flash程序设计课程设计报告课程名称Flash程序设计实验项目名称4屏flash焦点图上下切换效果程序院系物理与电子信息学院学号100804026姓名饶本健班级10数字媒体日期20xx年12月实验地点课程设计...

java web课程设计报告说明

20xx20xx学年第1学期滨州学院JavaWeb开发与应用课程设计报告题专班姓目齐鲁软件大赛报名系统的设计业计算机网络技术级20xx级名指导教师计算机科学技术系20xx年12月22日JavaWeb开发与应用课...

JavaWeb课程设计

xxxx信息科学与工程学院课程设计题目客户信息管理系统姓名xxxx学号xxxx班级xxxx课程JavaWeb任课教师xxxx20xx年6月20日课程设计任务书及成绩评定目录1课程设计目的12系统设计121系统特...

Java Web课程设计报告--罗孜

湖南科技大学计算机科学与工程学院WEB应用开发课程设计报告学号1105010113姓名罗孜专业班指导老师韩雪博研图书管理系统一摘要学校为了锻炼同学们的自己动手实践能力开展了我们的JAVA课程设计实践根据学院的要...

java web课程设计报告.用户注册界面设计

课程设计Javaweb开发课程设计论坛系统用户注册界面的设计目录设计目的设计内容及目标定义CSS样式也就是网页样式4利用HTML语言安排控件5JavaScript交互功能的实现8HtmlcssjspJavaSc...

javaee课程设计报告(7篇)