软件工程JAVA课程设计报告docx.docx
- 文档编号:29284285
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:44
- 大小:475.93KB
软件工程JAVA课程设计报告docx.docx
《软件工程JAVA课程设计报告docx.docx》由会员分享,可在线阅读,更多相关《软件工程JAVA课程设计报告docx.docx(44页珍藏版)》请在冰豆网上搜索。
软件工程JAVA课程设计报告docx
西安科技大学
软件工程课程设计报告
题目:
画图板应用程序开发
班级
学号:
姓名:
2010年12月
1绪论…………………………………………………………………………3
2可行性研究报告……………………………………………………………3
3需求分析报告………………………………………………………………4
4总体设计报告………………………………………………………………7
5详细设计报告………………………………………………………………8
6系统实现报告………………………………………………………………12
7软件测试报告………………………………………………………………32
参考文献
1、绪论
1.1目的和意义
用过微软Windows操作系统的人一定都对Windows自带的画图板非常熟悉了。
同图像处理软件界的老大Photoshop比起来,它虽然不及Photoshop的功能强大,内容丰富,但是作为Windows一直以来都内带的附件程序,它具有小巧玲珑,简单实用等其他绘图软件所不具备的优点。
同时它的风格也被许多其他的绘图软件所仿效。
作为一个软件工程专业的学生自己也想亲自动手编写一个属于自己的,简单实用的绘图程序。
通过本次课程设计可以增加对整个流程的熟悉以及对程序组织结构和框架的理解,对以后开发和设计更大更复杂的程序无疑有更大的帮助。
1.2任务
书写开发文档,分析和制定整个开发过程,然后开发一个自己的画图板应用程序。
2、可行性研究报告
2.1进行可行性研究的方法
本应用程序可行性研究是通过对比windows自带的画板程序的方式进行的,对Windows里面的画板进行分析研究,分析得出本应用软件应该实现的基本功能,并根据自己的能力进行了功能上的增加。
2.2评价尺度
本软件在评价时应从以下几个方面进行分析:
开发时间应尽量短;
功能实现的代码应尽量少;
代码执行效率要高;
有较强的容错能力;
2.3技术方面的可行性
系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以画图板应用程序在技术上是完全可行的。
a.在当前的限制条件下,该程序的功能目标能达到;
b.利用现有的技术,该程序的功能可以实现;
c.由于能力的不足,现阶段的功能不够完美,还可以在日后完善;
d.在规定的限期内,本程序能够完成;
2.4法律方面的可行性
本程序不会在后台扫描用户的磁盘文件;
本程序为完全免费,没有任何盈利行为,而且仅在内部流通,不予推广,所以不涉及浸犯微软版权的行为,所以本软件完全合法。
软件服务条款要与中华人民共和国的法律解释相一致,一致同意服从高等法院所有管辖。
如发生软件服务条款与中华人民共和国法律相抵触时,则这些条款将完全按法律规定重新解释,而其它条款则依旧保持对用户产生法律效力和影响。
2.3经济可行行
本系统开发成本低,不需要特殊要求。
2.4可行性结论
综上所述,本应用程序在技术上可行,经济上可行,操作上可行,因此本应用程序可立即着手开发。
3、需求分析报告
对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。
3.1编写目的
为开发人员,维护人员,客户之间提供共同的协议而创立基础,对本画图板软件功能的实现做一全面的描述;
本说明书预期读者为客户、业务或需求分析人员、测试人员、文档编写者、项目管理人员;
3.2任务概述
本软件进攻学习、研究之用,目标是让使用该软件的用户感觉能够轻松的掌握本软件的各个功能模块。
为了方便用户使用,本软件在设计时尽量追求可操作性和简洁大方的人机交互界面的设计,力求尽量减少用户直接输入性的东西,大量使用可选框。
3.3功能概述
通过各方面的了解,本软件初步设计的功能为:
1.新建一个空白图形文件:
用于绘制新的图形。
2.打开或保存一个图形文件,便于对图形文件的管理。
3.绘制一些基本的图形组件:
直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆,圆角矩形,实心圆角矩形等。
4.用鼠标在绘图板上单击拖动进行随笔花。
5.橡皮擦:
可以将已绘制的图形擦掉。
6.添加文字:
可以在绘图区域内添加文字。
7.选择文字的字体:
通过一个下拉式的选择条,可以选中所需要的字体。
本程序中包括:
宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,TimesNewRoman,Serif,Monospaced,SonsSerif,Garamond。
当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。
大大方便和简化了程序设计。
8.选择文字的字体风格:
通过两个复选框按钮,可以选择需要的字体风格,包括:
粗体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。
9.设置画笔的颜色:
可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。
10.设置画笔的粗细:
该选项在作用于基本图形组件和文字时,它的效果是不同的。
当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。
由此可以看出,虽然这个画图板程序不如那些专业的绘图程序,但是,“麻雀虽小五脏俱全”,它已经具备了一个绘图软件所应该有的基本功能和操作。
3.4功能结构图
图3-1软件功能层次图
3.5用例图
用例图
4、总体设计报告
4.1编写目的
总体设计的目的就是回答“概括的说,系统该如何实现?
”这个问题,也就是说这个说明书的编写目的就是告诉程序员和软件设计人员本软件的系统结构和软件结构。
4.2本软件的系统层次结构图
图3-1是该软件的系统层次结构图。
4.3基本图形按钮
基本图形按钮包括:
Pencil(随笔画)、Line(直线)、Rect(矩形)、fRect(实心矩形)、Oval(椭圆)、fOval(实心椭圆)、Circle(圆)、fCircle(实心圆)、RoundRect(圆角矩形)、frrect(实心圆角矩形)、Rubber(橡皮擦)、Word(字)。
基本图形都继承自同一个父类:
drawings。
Drawings具有的变量(属性):
intx1,y1,x2,y2;//用来存放相应图形元素的左边
intR,G,B;//用来存放图形色彩信息
floatstroke;//用来存放画笔粗细
inttype;//用来保存图形类型
strings1;//用来保存输入文字字符串
strings2;//用来保存字体类型字符串
同时,drawings还有方法:
Voiddraw(Graphics2Dg2d){};
draw()方法中用到了java绘图里面的Graphics2D类,所有继承drawings类的图形子类都重写此方法。
这就是Java中类继承的概念。
4.4基本操作按钮
1.New:
新建一个图形文件。
2.Open:
打开一个图形文件。
3.Save:
保存当前图形文件。
4.5菜单条及其组成
1.File菜单项,包括:
New(新建一个图形文件)、Load(打开一个图形文件)、Save(保存一个图形文件)、Exit(退出程序)。
2.Color菜单项:
用来设置当前颜色。
3.Stroke菜单项:
用来设置当前画笔粗细。
4.Help菜单项:
有关的程序帮助提示。
4.6其他功能组成
1.选择颜色和设置当前画笔粗细的按钮分别为:
Color、Stroke。
2.选择当前字体风格的选择框为:
BOLD、ITALIC,用以设置当前字体的风格。
3.选择当前字体的下来是复选框为:
Styles。
4.7完成的程序界面效果为:
图4-1完成的程序界面效果图
5、详细设计报告
5.1编写目的
详细设计阶段的根本目的是确定应该怎么具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种设计语言书写的程序。
本说明书是为了给程序员提供出一个程序的“蓝图”,指导他们更好地完成编码任务。
本说明书的读者是:
软件设计师、所有参与这个项目的编码人员和测试人员。
5.2新建一个图形文件
单击工具栏上的图标
,或选择FileNew菜单,则清除当前所绘制的图像,回到初始画面,如图4-1所示。
5.3打开已有的文件
单击工具栏上的图标
,或选择FileLoad菜单,则清除当前所绘制的图像,并弹出打开文件对话框要求选择打开的文件,如图5-1所示。
图5-1选择打开文件对话框
5.4保存
单击工具栏上的图标
,或者选择FileSave菜单,则弹出要求保存文件对话框,如图5-2所示。
图5-2保存文件对话框
5.5绘制基本图形
基本图形包括:
1.Pencil:
随笔画,图标为
。
2.Line:
直线,图标为
。
3.Rect:
矩形,图标为
。
4.fRect:
实心矩形,图标为
。
5.Oval:
椭圆,图标为
。
6.fOval:
实心椭圆,图标为
。
7.Circle:
圆,图标为
。
8.Fcircle:
实心圆,图标为
。
9.RoundRect:
圆角矩形,图标为
。
10.frRect:
实心圆角矩形,图标为
。
11.Rubber:
橡皮擦,图标为
。
画图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘画即可。
5.6设置画笔大小
单击工具栏上的图标
,或者单击StrokeSetStroke菜单,则弹出相应的设置当前画笔粗细对话框,如图5-3所示。
图5-3设置当前画笔粗细对话框
5.7选择颜色
单击工具栏上的图标
,或单击ColorChooseColor菜单,则弹出相应的选择当前画图颜色对话框,如图5-4所示。
图5-4选择颜色对话框
5.8选择字体风格
在工具栏区域
,可以选择相应的字体风格,有粗体和斜体两种风格可供选择。
5.9选择字体
在工具栏区域
,可以选择字体,本程序中有如下几种字体可供选择:
宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,TimesNewRoman,Serif,Monospaced,SonsSerif,Garamond。
5.10程序结构说明
本程序主体文件为一个文件:
MiniDrawPad.Java。
其中包括的程序段有:
1.MiniDrawPad():
构造函数,用以初始化。
2.chooseColor():
选择当前绘图颜色程序段。
3.setStroke():
设置当前画笔粗细程序段。
4.loadFile():
调用图形文件程序段。
5.newFile():
新建一个图形文件程序段。
6.saveFile():
保存当前所绘制图形程序段。
7.createNewItem():
新建一个基本图形单元程序段。
相应的内部类有:
1.ButtonHandler:
用来处理基本图形单元的按钮事件。
2.ButtonHandler1:
用来处理New、Open、Save三个操作按钮的按钮事件。
3.DrawPanel:
用老创建绘图区域的子类。
4.MouseA:
继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、进入和离开等。
5.MouseB:
继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动时的相应操作。
6、系统实现报告
6.1开发环境
CPU:
IntelCore(TM)2E5300内存:
2G
运行平台:
WindowsXP主频:
2.60GHz
开发平台:
Eclipse主板:
ASUSTeKComputerINC.P5QL-ASUS-SE
6.2关键技术
本软件的关键技术有主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。
6.3运行结果
1.主界面框架
主界面类继承自JFrame类,包括构造函数及各种功能的定义,主要代码如下:
importjava.awt.*;
importjava.awt.geom.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassMiniDrawPadextendsJFrame//主类,扩展了JFrame类,用来生成主界面
{
privateObjectInputStreaminput;
privateObjectOutputStreamoutput;//定义输入输出流,用来调用和保存图像文件
privateJButtonchoices[];//按钮数组,存放以下名称的功能按钮
privateStringnames[]={
"New",
"Open",
"Save",//这三个是基本操作按钮,包括"新建"、"打开"、"保存"
"Pencil",//铅笔画,也就是用鼠标拖动着随意绘图
"Line",//绘制直线
"Rect",//绘制空心矩形
"fRect",//绘制以指定颜色填充的实心矩形
"Oval",//绘制空心椭圆
"fOval",//绘制以指定颜色填充的实心椭圆
"Circle",//绘制圆形
"fCircle",//绘制以指定颜色填充的实心圆形
"RoundRect",//绘制空心圆角矩形
"frRect",//绘制以指定颜色填充的实心圆角矩形
"Rubber",//橡皮擦,可用来擦去已经绘制好的图案
"Color",//选择颜色按钮,可用来选择需要的颜色
"Stroke",//选择线条粗细的按钮,输入需要的数值可以实现绘图线条粗细的变化
"Word"//输入文字按钮,可以在绘图板上实现文字输入
};
privateStringstyleNames[]={
"宋体","隶书","华文彩云","仿宋","华文行楷",
"方正舒体","TimesNewRoman","Serif","Monospaced","SonsSerif","Garamond"
};//可供选择的字体项
privateIconitems[];
privateStringtipText[]={
//这里是鼠标移动到相应按钮上面上停留时给出的提示说明条
"Drawanewpicture",
"Openasavedpicture",
"Savecurrentdrawing",
"Drawatwill",
"Drawastraightline",
"Drawarectangle",
"Fillaractangle",
"Drawanoval",
"Fillanoval",
"Drawacircle",
"Fillacircle",
"Drawaroundrectangle",
"Fillaroundrectangle",
"Eraseatwill",
"Choosecurrentdrawingcolor",
"Setcurrentdrawingstroke",
"Writedownwhatuwant"
};
JToolBarbuttonPanel;//定义按钮面板
privateJLabelstatusBar;//显示鼠标状态的提示条
privateDrawPaneldrawingArea;//画图区域
privateintwidth=800,height=550;//定义画图区域初始大小
drawings[]itemList=newdrawings[5000];//用来存放基本图形的数组
privateintcurrentChoice=3;//设置默认画图状态为随笔画
intindex=0;//当前已经绘制的图形数目
privateColorcolor=Color.black;//当前画笔颜色
intR,G,B;//用来存放当前色彩值
intf1,f2;//用来存放当前字体风格
Stringstyle1;//用来存放当前字体
privatefloatstroke=1.0f;//设置画笔粗细,默认值为1.0f
JCheckBoxbold,italic;//定义字体风格选择框
//bold为粗体,italic为斜体,二者可以同时使用
JComboBoxstyles;
publicMiniDrawPad()//构造函数
{
super("DrawingPad");
JMenuBarbar=newJMenuBar();//定义菜单条
JMenufileMenu=newJMenu("File");
fileMenu.setMnemonic('F');
2.新建、保存、打开、退出菜单项
代码如下:
//新建文件菜单条
JMenuItemnewItem=newJMenuItem("New");
newItem.setMnemonic('N');
newItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
newFile();//如果被触发,则调用新建文件函数段
}
}
);
fileMenu.add(newItem);
//保存文件菜单项
JMenuItemsaveItem=newJMenuItem("Save");
saveItem.setMnemonic('S');
saveItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
saveFile();//如果被触发,则调用保存文件函数段
}
}
);
fileMenu.add(saveItem);
//打开文件菜单项
JMenuItemloadItem=newJMenuItem("Load");
loadItem.setMnemonic('L');
loadItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
loadFile();//如果被触发,则调用打开文件函数段
}
}
);
fileMenu.add(loadItem);
fileMenu.addSeparator();
//退出菜单项
JMenuItemexitItem=newJMenuItem("Exit");
exitItem.setMnemonic('X');
exitItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
System.exit(0);//如果被触发,则退出画图板程序
}
}
);
fileMenu.add(exitItem);
bar.add(fileMenu);
3.线条宽度、颜色、提示功能
代码如下:
//设置颜色菜单条
JMenucolorMenu=newJMenu("Color");
colorMenu.setMnemonic('C');
//选择颜色菜单项
JMenuItemcolorItem=newJMenuItem("ChooseColor");
colorItem.setMnemonic('O');
colorItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
chooseColor();//如果被触发,则调用选择颜色函数段
}
}
);
colorMenu.add(colorItem);
bar.add(colorMenu);
//设置线条粗细菜单条
JMenustrokeMenu=newJMenu("Stroke");
strokeMenu.setMnemonic('S');
//设置线条粗细菜单项
JMenuItemstrokeItem=newJMenuItem("SetStroke");
strokeItem.setMnemonic('K');
strokeItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
setStroke();
}
}
);
strokeMenu.add(strokeItem);
bar.add(strokeMenu);
//设置提示菜单条
JMenuhelpMenu=newJMenu("Help");
helpMenu.setMnemonic('H');
//设置提示菜单项
JMenuItemaboutItem=newJMenuItem("AboutthisDrawingPad!
");
aboutItem.setMnemonic('A');
aboutItem.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente)
{
JOptionPane.showMessageDialog(null,
"Thisisaminidrawingpad!
\nByJianYongkang0808010208","画图板程序说明",JOptionPane.INFORMATION_MESSAGE);
}
}
);
helpMenu.add(aboutItem);
bar.add(helpMenu);
items=newImage
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 JAVA 课程设计 报告 docx