电子相册茜茜.docx
- 文档编号:5130922
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:31
- 大小:307.87KB
电子相册茜茜.docx
《电子相册茜茜.docx》由会员分享,可在线阅读,更多相关《电子相册茜茜.docx(31页珍藏版)》请在冰豆网上搜索。
电子相册茜茜
学号:
课程设计
题目
电子相册设计
学院
计算机科学与技术学院
专业
软件工程
班级
姓名
指导教师
201
年
月
日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
计算机学院
题目:
电子相册设计
初始条件:
(1)学习相关知识
(2)C/C++/VC/VB/JAVA语言
(3)PC机一台
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
本设计的要求是用java设计一个电子相册,能够欣赏和管理所存入的各种图片,并且该电子相册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存入的照片,本系统应该具有创建相册、打开图片、浏览相片、修改相片、删除相册或相片等功能。
时间安排:
第一、二天:
查阅资料,学习算法
第三、四天:
编程调试
第五天:
书写报告
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
1.设计的题目与要求1
1.1设计的题目1
1.2设计的目的1
1.3设计要求1
2.可行性分析2
2.1系统总体目标2
2.2技术可行性分析2
2.3经济可行性分析2
2.4操作可行性分析2
3.系统的总体设计2
3.1设计原则2
3.2支撑环境规划3
3.3系统需求分析3
3.4系统的总体结构3
3.5系统功能4
4.系统实现4
4.1界面设计4
4.2打开文件5
4.3放大缩小图片5
4.4图片旋转6
4.5图片删除和另存为7
4.6退出系统7
5.系统测试8
5.1测试目标8
5.2各模块测试8
6总结与体会8
7.参考文献9
8.附录(源程序)10
电子相册设计
1.设计的题目与要求
1.1设计的题目
电子相册设计
1.2设计的目的
随着人们生活水平的逐步提高,旅游成了大家必不可少放松项目,每当人们走到一个美丽的景点,就会忍不住拿起数码相机照上几张留做回忆。
虽然照片最后会存入到自己的电脑里,但是时间一长、照片一多,这些有着勾起回忆的资料,就会显得杂乱无章,即不方便欣赏,也不方便管理。
而电子相册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存入的照片,不失为最佳欣赏、保存照片的相册工具。
1.3设计要求
掌握Java开发环境的使用和调试方法,掌握JavaB/S结构程序的运行原理和应用技能,利用JSP+Servlet+JavaBean实现Web应用开发,掌握分层体系结构开发的技巧,完成教师指定的开发任务,本实训课程是围绕一个完整的Java项目而展开的,虽然每部分内容相对独立,但通过几次迭代开发后,最后形成一个完整的软件系统。
任务:
通过实训课程结合实际案例独立完成电子相册的设计制作,并编码实现。
2.可行性分析
2.1系统总体目标
本系统主要是为了给那些对照片管理感兴趣的朋友提供一个管理的平台,对有很多照片需要管理的朋友,可以轻松的管理自己的照片,最佳欣赏并保存照片。
2.2技术可行性分析
这个电子相册是基于java来开发的,从图片格式分析到显示完全可以实现,在技术上是可行的。
目前已经成功地开发出了许多电子相册管理系统,信息技术和计算机软硬件技术发展都已经完全可以满足本系统的技术要求。
2.3经济可行性分析
从经济上来说,开发电子相册管理系统不需要很大的投入,硬件上只需web服务器和数据库服务器即可。
2.4操作可行性分析
B/S模式的最大优势就是操作方便、如同浏览网页一样
3.系统的总体设计
3.1设计原则
通过集体讨论、查阅相关资料,尽可能的摸透了用户的基本需求。
然后按照结构化的系统开发方法,从可行性分析、需求分析到数据库设计,基本上描述系统开发的整个过程。
3.2支撑环境规划
设备需求:
PC机,Windows98/2000/xp操作系统,PII以上,64MBRAM。
服务器:
采用Mysql数据库管理。
3.3系统需求分析
本系统所研究的是从电子相册的管理到相册的生成等一系列的问题,本系统应该具有创建相册、打开图片、浏览相片、修改相片、删除相册或相片等功能。
3.4系统的总体结构
电子相册系统功能结构图
3.5系统功能
4.系统实现
系统阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。
本章主要实现了各个模块的具体功能。
4.1界面设计
相册界面是用户展示相片的页面,对该系统的相册和相片一览无余。
4.2打开文件
openbtn.setText("打开");
openbtn.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
openbtnActionPerformed(evt);
}
});
openbtn.addKeyListener(newjava.awt.event.KeyAdapter(){
publicvoidkeyPressed(java.awt.event.KeyEventevt){
openbtnKeyPressed(evt);
}
});
4.3放大缩小图片
zoominbtn.setText("放大");
zoominbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoominbtnMouseClicked(evt);
}
});
zoomoutbtn.setText("缩小");
zoomoutbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoomoutbtnMouseClicked(evt);
}
});
如果用户操作出错可进行还原操作,代码为
oripicbtn.setText("还原");
oripicbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
oripicbtnMouseClicked(evt);
}
});
4.4图片旋转
angleleftbtn.setText("左旋");
angleleftbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
angleleftbtnMouseClicked(evt);
}
});
anglerightbtn.setText("右旋");
anglerightbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
anglerightbtnMouseClicked(evt);
}
});
4.5图片删除和另存为
用户可以根据自己的需要删除相册或另存修改后的照片。
deletebtn.setText("删除");
deletebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
deletebtnMouseClicked(evt);
}
});
savebtn.setText("另存为");
savebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
savebtnMouseClicked(evt);
}
});
4.6退出系统
用户可以根据自己的需要退出登录。
用户只要点击“退出”,就退出软件。
exitbtn.setText("退出");
exitbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
exitbtnMouseClicked(evt);
}
});
5.系统测试
5.1测试目标
软件测试的目标是:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的方案;
(3)成功的测试方案是发现了至今为止尚未发现的错误的测试。
由以上可以看出正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计.如果是为了表明程序的正确性而进行测试,就会设计出一些不易保露错误的测试方案;如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
5.2各模块测试
进入系统,打开文件,选择相册里的图片,并对图片进行放大,缩小,左旋,右旋等各项操作,点“上一张”或“下一张”对所选相册里的图片进行浏览,删除或另存为图片,最后退出系统。
对系统里的各项功能进行测试,显示结果正确。
6总结与体会
本课题在开发的中从开始到结束经历了很多过程,从前老以为只要程序编得好就行,很少有意识的训练自己对整个系统的设计。
而且每次课程设计都是急于编码,根本不从整体考虑系统和设计。
显然,这种方法是不可取得,若是一个小程序还可以,但是涉及到稍微大一些的项目时,就会出现顾此失彼,多次返工,最后会心有余而力不足,使整个系统以失败结束。
在本次设计开发过程中,在代码的整体编排上独立性有一很大的提高,但是随之而来的,在可读性方面可能还有一些欠缺考虑的地方存在,对于其本系统的设计者来看,整体的架构可能还不太清晰,总体还是不够好,今后应该在实践中继续提高,在注释的书写方面也是有待加强,应着重重视这一方面文字的书写,这样更可以便于阅读,加快读程序者了解程序整体架构和思路,这也是日后要加强的部分。
另一方面,在说明书中一些图表的说明上有欠考虑,有些图表不能清晰的说明问题的全部,也就是说在整体的思路上还不太明确,对设计的划分上有些模糊的概念,不能很深层次上剖析设计的思想,只能在表层上阐述,让读者看起来有些摸不清整体的脉络,这也是在日后的学习中需要进一步思考的问题。
总之,在这次的设计过程中,我学到的不仅是知识,还认识到许多事情。
这次设计使我的编程水平提高了一大步,使我充分的认识到实践的可贵。
由于个人的知识水平和经验的不足,本设计中可能存在很多的问题,我会在今后的学习中逐步加强。
7.参考文献
1刘聪等编著零基础学JavaWeb开发机械工业出版社
2布鲁斯艾克尔(BruceEckel)Java编程思想(第四版)机械工业出版社2007
3刘小华张健周慧贞著JSP应用开发详解电子工业出版社2007
4ArnoldDoray著Struts基础教程人民邮电出版社2007
5(美)MartyHall著Servlet与JSP核心编程清华大学出版社2004
6夏昕曹晓刚唐勇著深入浅出Hibernate电子工业出版社2007
7龙马工作室.Dreamweaver8中文版完全自学手册[M].人民邮电出版社,2006.
8孙卫琴著.精通struts基于mvc的javaweb设计与开发电子工业出版社.
9孙卫琴著.Java面向对象编程电子工业出版社.
10廖雪峰著Spring2.0核心技术与最佳实践电子工业出版社2007
11刘斌著精通JavaWeb整合开发电子工业出版社2007
12梁立新著项目实战精解基于Struts+Spring+Hibernate的Java应用开发电子工业出版社2006
8.附录(源程序)
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.geom.*;
importjava.awt.image.*;
importjavax.swing.*;
importjavax.swing.filechooser.*;
importjava.io.*;
importjava.applet.*;
publicclasspicextendsjavax.swing.JFrame{
Imagepic;//查看的图片
BufferedImagebufImage;//用于显示的缓冲区图像
BufferedImageoriBufImage;//原始缓冲区图像
Graphics2DbufImageG;//缓冲区图像的图形环境
Stringpath,filename,dir;//需要查看图片的路径
String[]pics;//目录下所有指定格式的图片
intpicWidth,picHeight;//图片大小
inti=0;
finaldoubleZOOM_PERCENT=0.15;//每次放大和缩小的倍率
finalStringFILE_TYPE=".jpg";
booleanhasPic,isangled;
doublescaleX;//图像水平方向的缩放因子
doublescaleY;//图像竖直方向的缩放因子
doubleradius;//旋转角度
FilterfilterJpg;
publicpic(){
initComponents();
}
privatevoidinitComponents(){
buttonGroup1=newjavax.swing.ButtonGroup();
buttonGroup2=newjavax.swing.ButtonGroup();
jButton10=newjavax.swing.JButton();
openbtn=newjavax.swing.JButton();
zoominbtn=newjavax.swing.JButton();
zoomoutbtn=newjavax.swing.JButton();
oripicbtn=newjavax.swing.JButton();
prebtn=newjavax.swing.JButton();
nextbtn=newjavax.swing.JButton();
angleleftbtn=newjavax.swing.JButton();
anglerightbtn=newjavax.swing.JButton();
deletebtn=newjavax.swing.JButton();
savebtn=newjavax.swing.JButton();
exitbtn=newjavax.swing.JButton();
pathInfo=newjavax.swing.JLabel();
jMenuBar1=newjavax.swing.JMenuBar();
jMenu1=newjavax.swing.JMenu();
jMenu2=newjavax.swing.JMenu();
jButton10.setText("jButton10");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
openbtn.setText("打开");
openbtn.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
openbtnActionPerformed(evt);
}
});
openbtn.addKeyListener(newjava.awt.event.KeyAdapter(){
publicvoidkeyPressed(java.awt.event.KeyEventevt){
openbtnKeyPressed(evt);
}
});
zoominbtn.setText("放大");
zoominbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoominbtnMouseClicked(evt);
}
});
zoomoutbtn.setText("缩小");
zoomoutbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoomoutbtnMouseClicked(evt);
}
});
oripicbtn.setText("还原");
oripicbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
oripicbtnMouseClicked(evt);
}
});
prebtn.setText("上一张");
prebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
prebtnMouseClicked(evt);
}
});
nextbtn.setText("下一张");
nextbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
nextbtnMouseClicked(evt);
}
});
angleleftbtn.setText("左旋");
angleleftbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
angleleftbtnMouseClicked(evt);
}
});
anglerightbtn.setText("右旋");
anglerightbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
anglerightbtnMouseClicked(evt);
}
});
deletebtn.setText("删除");
deletebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
deletebtnMouseClicked(evt);
}
});
savebtn.setText("另存为");
savebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
savebtnMouseClicked(evt);
}
});
exitbtn.setText("退出");
exitbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
exitbtnMouseClicked(evt);
}
});
jMenu1.setText("File");
jMenuBar1.add(jMenu1);
jMenu2.setText("Edit");
jMenuBar1.add(jMenu2);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLay
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子相册
![提示](https://static.bdocx.com/images/bang_tan.gif)