软件开发毕业设计范文.docx
《软件开发毕业设计范文.docx》由会员分享,可在线阅读,更多相关《软件开发毕业设计范文.docx(40页珍藏版)》请在冰豆网上搜索。
软件开发毕业设计范文
毕业设计
设计题目:
系别:
专业班级:
指导老师:
学生姓名:
2013年5月18日
摘要:
在21世纪的今天,手机几乎是每个人的必备品,特别是在高校的学生,不管是吃饭、睡觉、还是上课,手机总是不离手。
而且手机更新换代更是日新月异,然后在现在的手机市场中android系统的智能机成为主流。
我们这款画画小软件正是在android系统的平台上进行运行。
在日常生活中,我们画画只能在纸上的时代已经过去,这款android小画家画画软件,可以进行简单的简笔画操作、上色。
既节约了增加了我们平时的乐趣,也节约了资源。
该软件具有改变画图的形状、改变画笔的颜色、改变画刷的宽度、改变画画的风格、以及保存、清除等功能。
经过测试,这是一款能为我们生活增加乐趣的软件。
关键字:
手机;android;画画软件
第一章引言
1.1发展情况
在现在这个手机普及的时代,各种手机软件也是层出不穷,尤其是在这两年的飞速发展,android软件可以是说席卷各大手机软件网站,为android软件开发者既带来了收入的回报,也提出了技术的挑战。
android系统这个平台以成为智能手机系统的核心,也是IT技术行业、智能手机制造行业高度重视的。
随着android系统的不断更新,现在功能各方面已经非常强大,这不仅是一台手机这么简单,而是一个移动终端。
各种软件都有几乎都有android系统的版本。
同时用户现在不仅要求手机有传统手机的功能,现在必须更加具有娱乐性以及休闲性。
抓住现在用户的这个心理状态,于是android平台上运行的小画家画画软件就运营而生了。
1.2研究现状
就目前的android系统智能手机在市场的占有率来看,对android系统手机软件的开发具有非常广阔的前景。
虽然在IT行业中都处于一个饱和的状态,但是在android系统手机软件开发这一方面又处于紧缺的状态,因为现在的手机用户拿起手机不仅仅是只用来打打电话,发发短信这么简单,用户更加追求的是手机的娱乐性和休闲性。
说的更加简单明了一点就是,用户在无聊的时候可以用手机来消遣时间。
android系统自2009年2月发布的android1.1开始已经有4年的发展历史。
然而在这短短四年时间就可以成为智能手机市场的领头羊,那么对于我们开发android系统手机的软件,也是同样具有广阔的市场。
1.3研究前景展望
随着android系统智能手机的诞生,android系统打破了前些年智能手机的垄断的传统市场。
同时android系统的手机软件占据的手机软件市场的比例越来越大,那么我们开发的画画涂鸦软件是基于android系统的,可以说是具有广阔的发展前景。
而且现在用户对手机软件是否具有娱乐性有非常强的选择性,用户对于空闲时间的消遣,还有即时聊天需要发送一个手绘涂鸦图片的需要,那么对我们这款软件的选择是非常有用的。
对于小画家手机软件具有一下优点:
(1)喜爱画画的用于,无论是在车上,还是站台等车,都可以随时随地的进行简笔画画画的操作。
(2)可以将画好的图片保存通过即时聊天工具发给好朋友分享自己的作品。
(3)在手机上画可以节约资源,在环保的角度,起到节能减排的效果。
1.4选题的目的及意义
为了巩固在大学三年所学的知识,达到学以并用的目的,作为四川工商职业技术学院信息工程系软件班大三的毕业生,希望在离开自己母校的时候能够把自己所学的知识能够做一次全面的巩固和提高,我的选题意义如下:
随着android系统的不断升级,android系统智能手机的各种软件对各方面的影响越来越大,并且android系统成为以后移动智能客户终端的可能性同时也越来越大,那么未来android系统主导智能手机市场也是必然的发展趋势。
那么我们开发的这款画画小软件也是顺应时代发展的潮流,在传统的按键手机,我们不能做出这个灵活的画画涂鸦软件,现在我们借助android系统这个平台来实现了这一功能。
这样不仅提高图片的趣味性;建立生动有趣的图片处理平台,而且还提高手机的利用率。
何乐而不为呢。
第二章系统可行性分析
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
可行性研究就是进行一次大大压缩简化了的系统分析和软件设计过程,也就是在较高层上以抽象的方式进行系统分析和软件设计过程。
2.1经济可行性分析
在android系统各种手机软件频频被开发出来的今天,那些软件开放团队如何进行软件的开发,以及开发出来的软件有什么特色来吸引用户,是越来越重要的问题。
而我们这个小软件内容简单,开发周期短,投资小。
投入运营后,提供免费下载,然后在软件中植入广告成分,来获取利润。
所以该软件为开发团队所带来的经济效益会远远高于前期投入的资金。
2.2操作可行性分析
本软件的开发工具是eclipse-SDK-4.2.1版本,eclipse内装插件ADT-21.0.0版本以及androidSDK2.3.3。
前端开发工具是java。
这样的eclipse就是一套完整的开发工具,用于生成后缀为apk的应用程序。
之后将生成的apk应用程序安装到手机就可以使用了。
2.3技术可行性分析
2.3.1eclipse概述
eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
我们经常将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给软件开发人员提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
2.3.2ADT概述
Android开发工具(ADT),作为Eclipse工具插件,让其支持Android快速入门和便捷开发,可通过Eclipse启动菜单(启动Eclipse后,选择Help->InstallNewSoftware)安装。
ADT开发工具,包括AndroidDalvikDebugMoniterServer(AndroidDDMS)和AndroidDevelopmentTools(ADT),还有HierarchyViewer和TraceView两个查看器,看名称就知道功能了。
DDMS可以提供调试设备时为设备截屏,查看线程及内存信息、Logcat、广播信息、模拟呼叫、接收短消息、文件查看器等功能(该功能在安装完ADT之后,点击Eclipse工具栏右上角的那个带箭头的小窗口图标弹出菜单中打开)。
AndroidDevelopmentTools(ADT)工具应该是为Eclipse支持Android项目快速编程开发和调试插件而已。
2.3.3androidSDK概述
SDK:
(softwaredevelopmentkit)软件开发工具包。
被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
因此,AndroidSDK指的是Android专属的软件开发工具包。
下载好AndroidSDK后,开始安装,AndroidSDK采用了Java语言,所以需要先安装JDK5.0及以上版本。
直接下载jdk安装文件安装更为方便。
AndroidSDK不用直接安装,下载后,直接解压即可,将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。
2.3.4java概述
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
第三章需求分析
本设计为android系统手机上的一个画画小软件,该软件主要是在eclipse开发工具上用java语言编写的一个结果。
eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
而java语言具有卓越的通用性、高效性、平台移植性和安全性。
Eclipse编辑器引入了编辑环境方面的一些增强功能,诸如单词补齐,增量搜索,代码凸显,缩进文本,标记行号,彩色打印,和快捷方式。
eclipse编辑器还提供了许多为特定语言设计的功能,比如在你输入原型和函数调用的时候它能够自动完成这些字符串的输入。
生成的应用程序安装到手机后,直接点击打开,操作简单明了,软件具有形状的选择、画笔宽度的调整、画笔颜色的改变、绘画风格的改变、整屏清除以及保存等功能。
3.1软件功能描述
小画家画画软件主要是提供给使用android系统智能手机的用户,增加业余时间的趣味性。
本软件主要有简笔画画、上色、保存等功能。
(1)形状选择,打开软件,选择菜单键,就会弹出菜单里面的功能,选择形状功能就可以自由的选择需要的形状,形状有轨迹线、直线、矩形、椭圆形、圆形、点、还有橡皮擦等不同的形状。
(2)清除,打开软件,选择菜单键,就会弹出菜单里面的功能,清除功能就是将所绘制的整张画布全部清除。
(3)保存,打开软件,选择菜单键,就会弹出菜单里面的功能,如果绘画好一张满意的画,选择保存就可以将图保存在手机里面,以供自己以后欣赏或者与朋友分享。
(4)设置,打开软件,选择菜单键,就会弹出菜单里面的功能,选择设置,就可以进入到设置画面,设置里面有画刷宽度的调节、画笔颜色的选择、画画风格的选择、是否是全屏模式、目前所使用的版本、以及可以看到最后调试的时间与快捷键和对开发者的建议。
3.2系统功能分析
根据软件的使用情况和面向对象,本软件具备一下功能模块以及操作方式:
功能
功能类别
子功能
用户管理模块
setDrawing设置形状
clearCanvas清屏
saveToSdcard保存
SettingsActivity设置
颜色管理模块
(color)
ColorPickerDialog颜色选择
画刷大小管理模块
(size)
Brush设置画刷大小
菜单
用户模块
功能描述
用户进入软件并选择操作
操作序列
1,点击“形状”选择要形状,默认轨迹线。
2,点击“清除”抹掉整张画布的所有线条。
3,点击“保存”保存当前的所画的画。
4,点击“设置”进入更多的设置画面。
形状
形状管理模块
功能描述
用户选择图形形状
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“形状”进入形状设置。
3,选择需要的形状就可以了。
清除
清除管理模块
功能描述
用户需要清除整个画布
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“清除”就把整张画布清除了。
保存
保存管理模块
功能描述
用户需要保存所画的画
操作序列
3,点击menu按钮,屏幕下方显示菜单。
4,点击“保存”就将所画的画保存下来了。
颜色
颜色管理模块
功能描述
用户选择画刷颜色
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“设置”进入设置画面。
3,点击“颜色”就可以选择自己喜欢的颜色了。
画刷大小
画刷大小管理模块
功能描述
用户选择画刷的大小
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“设置”进入设置画面。
3,点击“画刷宽度”就可以设置合适的画刷宽度了。
风格
画画风格管理模块
功能描述
用户选择画画的风格
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“设置”进入设置画面。
3,点击“风格”就可以设置画画的风格了。
模式
画图模式管理模块
功能描述
用户选择画图的模式
操作序列
1,点击menu按钮,屏幕下方显示菜单。
2,点击“设置”进入设置画面。
3,点击“全屏模式”就可以设置画图的模式了。
3.3软件需求分析
随着社会的发展,时代的进步,人们对生活品质的不断提高,对生活的享受心理也越来越强,越来越注重休闲娱乐。
只有抓住现在人们的心理需要才能在现在有得一席之地。
同样在手机软件方面也是一样的,现在的大多数人的手机里面占据一大部分内存的都是休闲娱乐的游戏,就是在无聊的时候打发时间的。
而我们这款android小画家画图软件就是提供给那些爱画简笔画的画图爱好者,所以,既然现在有这个需求,我们就可以满足用户的这个需要,开发这么一款画图的软件。
3.4软件概念结构设计
这一设计阶段是在需求分析的基础上而进行的,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。
概念结构的主要特点是:
(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对软件功能的要求。
(2)易于理解,从而可以用它和不熟悉使用手机的用户交换意见,用户的积极参与是软件开发设计成功的关键。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
在小画家软件开发中存在系统用例、开发人员与用户、数据流程处理、数据表述等几个对象的关系,具体描述如下面各图所示。
开发人员
系统用例图
用户信息软件下载
软件信息
用户情况
软件升级建议反馈
总体流程图
软件信息
软件信息软件下载条件
软件情况
下载信息软件信息软件信息下载条件
用户下载情况
用户信息下载量信息软件信息
下载信息下载量信息
下载量信息
用户信息
用户信息用户信息下载量信息
数据流图处理图
数据表述E-R图
第四章软件详细设计
4.1软件设计原理
本软件基于android系统智能手机,在android系统设备上运行,就像打开手机播放器一样简单打开软件就可以操作。
它是随着android系统手机的兴起,借助android系统平台开发的一个软件。
主要是利用不断成熟的android系统,结合java语言与XML而产生的软件。
Java语言具有卓越的通用性、高效性、平台移植性和安全性,而可扩展标记语言XML是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
这样开发的软件不仅在界面上比较美观,而且可以在android系统平台上稳定运行。
4.2软件模块设计
打开软件即可进入到画画操作界面,也可以选择各种各样的功能,利用目前有的功能可以随心所欲的画出想要的简笔画,在选择各种各样的功能的时候也有界面的跳转弹出和菜单功能的选择。
因为现在是测试版本,不存在与互联网连接的情况,这样对用户的私人隐私也具有绝对的安全保密,因为只是一款画图的软件,所以我们不会访问用户的手机联系人、短信、以及地理位置信息,同时也不需要获得手机的任何权限,只是能够运行和使用就可以了,这样给开发团队的建议也只能发在开发团队的邮箱中。
下面是软件各种界面的截图以及部分代码。
打开软件,就如同打开音乐播放器一样简单,打开之后,就进入软件的主界面,这就是一张画布,可以在上面随意画自己喜欢的线条。
这是软件最基本,也是最重要的部分,在软件中首先要创建这样一个activity,才能展开其他的功能。
首先要在手机界面创建一个这样的画布,这是我们最重要的起步,创建一个界面activity,才能进行下一步的操作,用public公有类,因为主要是主界面activity涉及的其他很多方法的访问,设置各种功能方法的类型、初始值。
就如下所示,
/**
*主要视图类
*/
publicclassPaintPadextendsView
{
floattempX,tempY;
privateBitmapbitmap=null;
privateCanvaspaper=null;
booleanisMoving=false;
Drawingdrawing=null;
intbgcolor;
Contextcontext;
}
然后添加不同的功能以及设置用setDrawing方法,设置绘画背景色的状态为初始默认状态、绘画形状的当前状态参数为默认空、屏幕上此时的信息为默认初始状态。
/**
*设置绘画形状
*@paramdrawing
*当前绘画形状参数
*/
publicvoidsetDrawing(Drawingdrawing)
{
this.drawing=drawing;
}
publicPaintPad(Contextcontext)
{
super(context);
this.context=context;
//获取屏幕上的信息
ScreenInfoscreenInfo=newScreenInfo((Activity)context);
/**
*创建和屏幕大小的位图
*/
bitmap=Bitmap.createBitmap(screenInfo.getWidthPixels(),
screenInfo.getHeightPixels(),Bitmap.Config.ARGB_8888);
paper=newCanvas(this.bitmap);
//设置背景颜色
paper.drawColor(getResources().getColor(R.color.color_default_bg));
this.isMoving=false;
}
手指在屏幕上触动的时候,用private私人方法fingerMove,会记录下所运动的轨迹或者方法所规定的形状,处理手指的动作,这是让手指在画布activity的界面处理手指所留下的坐标,将所有坐标的点组成的线就是所画出来的图形。
privatevoidreDraw()
{
invalidate();
}
/**
*处理手指的动作。
*@paramx
*X坐标
*@paramy
*Y坐标
*/
privatevoidfingerUp(floatx,floaty)
{
this.tempX=0;
this.tempY=0;
drawing.fingerUp(x,y,paper);
this.isMoving=false;
}
/**
*处理手指的动作
*@paramx
*@paramy
*/
privatevoidfingerMove(floatx,floaty)
{
this.tempX=x;
this.tempY=y;
this.isMoving=true;
drawing.fingerMove(x,y,paper);
}
/**
*处理手指的动作
*@paramx
*@paramy
*/
privatevoidfingerDown(floatx,floaty)
{
this.isMoving=false;
drawing.fingerDown(x,y,paper);
}
如果处理好一张图,需要保存,调用公用public方法saveBitmap,对画好的图进行保存,这个时候,软件会检测是否有保存的介质存在,如果不存在,就保存不了,有可能还会引起软件的崩溃;如果检测到存在保存介质,编辑图片名字进行保存就可以,如果没有名字,软件默认给一个名字,进行保存。
/**
*检查SD卡是否可用
*/
publicvoidsaveBitmap()
{
Stringstate=Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state))
{
saveToSdcard();
}
elseif(Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
{
Toast.makeText(this.context,
getResources().getString(R.string.tip_sdcard_is_read_only),
Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(
this.context,
getResources().getString(
R.string.tip_sdcard_is_not_available),
Toast.LENGTH_LONG).show();
}
}
publicvoidchangeBgColor(intcolor)
{
this.paper.drawColor(color);
this.reDraw();
}
当检查到储存介质是存在的,即私人的private方法saveToSdcard来执行,在SD卡中创建属于软件的保存文件夹,访问路径由“/”符号来分开,保存时间为系统时间,保存的图片格式为".png"格式,最后就是将图片进行储存。
/**
*保存位图在SD卡上
*/
privatevoidsaveToSdcard()
{
Filesdcard_path=Environment.getExternalStorageDirectory();
StringmyFloder=getResources().getString(
R.string.folder_name_in_sdcard);
Filepaintpad=newFile(sdcard_path+"/"+myFloder+"/");
try
{
if(!
paintpad.exists())
{
paintpad.mkdirs();
}
}
catch(Exceptione)
{
e.printStackTrace();
}
StringtimeStamp=(DateFormat.format("yyyy.MM.dd.hh.mm.ss",
newjava.util.Date()