1、湖 南 商 学 院 面 向 对 象 程 序 设 计 课 程 设 计 报 告题 目 电子相册小程序查看器 姓 名: 郑琴琴学 号: 080920095专 业 计算机科学与技术班 级: 计科 0803 班指导教师: 史湘宁职 称 讲师计 算 机 与 电 子 工 程 学 院2010 年 1 月课程设计评审表学 号 080920095姓 名 郑琴琴 学 院 计算机与电子工程学院 专业班级 计科 0803 班题 目 电子相册小程序查看器评审意见评审成绩指导教师签名 职称 评审时间 年 月 日课程设计作品验收表题目 电子相册小程序查看器姓 名 郑琴琴班 级 计科 0803 班参与人员学 号 0809200
2、95设计任务与要求:在小程序查看器中显示图片,图片共 5 张。有一个下拉式列表(choice) ,使得图片之间可以进行切换,选择。点击 applet,可以对整个小程序查看器可以进行启动、保存、复制、打印、关闭或退出,还可以查看其属性及字符编码。作品完成情况:图片之间可以进行切换,启动、保存、复制等功能基本可以实现。验收情况:验收教师签名:_年 月 日注:1. 除“验收情况 ”栏外,其余各栏均由学生在作品验收前填写。2. “验收情况 ”栏由验收小 组按实际验收的情况如实 填写。目 录1 课程设计过程概述12 课程设计题目描述和基本设计要求12.1 题目描述12.2 基本设计要求13 系统需求分析
3、23.1 功能需求分析23.2 其他需求分析24 系统设计64.1 总体设计64.2 电子相册界面设计74.3 各功能模块设计84.3.1 图片切换模板设计84.3.2 图片上传模块设计84.3.3 图像跟踪器模块设计94.3.4 小程序查看器退出关闭模块设计104.4 异常处理情况说明115 系统实现与测试116 课程设计总结126.1 遇到的问题及解决办法126.2 心得体会13参考文献13电子相册小程序查看器 1 课程设计过程概述为提高学生理论与实践相结合的能力,计电学院于 2009 年 12 月开展了为期两周的面向对象课程设计,针对对象为 08 全体计科专业学生。本次实践教学采用学生集
4、中在学校网络机房上机,指导老师指导的形式。要求学生用所学的面向对象程序设计语言JAVA 来编写程序,实现特定功能,以加深对面向对象程序设计这个概念的理解。我开发了一个电子相册小程序查卡器。2 课程设计题目描述和基本设计要求2.1 题目描述我设计的电子相册是一个 Java 小运用程序(java applet) 。在小程序查看器界面中,有一个 applet,其中有许多功能和属性,还有一个有选择框的下拉式列表,在下拉式列表中提供了五张图片供用户选择,用户可以选择切换到自己喜欢的图片,从选择框中可以知道所浏览图片的位置。2.2 基本设计要求(1)系统安全、灵活、可靠; (2)功能齐全;(3)操作方便、
5、简单,界面友好;(4)易于维护和扩充;3 系统需求分析3.1 功能需求分析电子相册的主要功能如下所述:(1)本电子相册提供 5 图片,可以根据用户的需要调整到想看的图片;(2)用户可以通过文本框中的显示知道所浏览图片的位置;(3)可以对小程序查看器进行复制、保存、打印、关闭或退出、查看属性等等。3.2 其他需求分析(1)性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束运行环境:Windows 2000 以上能实现用户所定义的各项需求。(3)界面要求以 Windows 窗口形式显示,标题栏为小程序查看器 ElectroAlbum.clas,右上角有最小化按钮、最大化按钮、关闭
6、按钮。Applet 有一个子菜单,子菜单中有重新启动、重新载入、停止、保存、启动、复制、标记、信息、编辑、字符编码、打印、属性、关闭、退出。Applet 下方有一个可供选择框,每一个选择对应一幅图片。4 系统设计4.1 总体设计电子相册主要分为图片切换模块、复制模块、属性查看模块、保存模块、退出和关闭模块等。电子相册的主要功能模块图如图 1 所示:电子相册 册 册册选择框图片显示停止 保存 复制 属性 关闭 退出图 1 电子相册主要功能4.2 电子相册界面设计一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、下拉列表框、图片几个部分,
7、分别执行相应的操作。界面中需要用到的类的层次关系如图 2 所示:EletroAlbumChoiceStringimagetrackerStringAppletJava.awt.*Java.applet.*MediaTracker TotalpicsImage图 2 类的层次关系图4.3 各功能模块设计4.3.1 图片切换模块设计电子相册可以实现图片切换功能的类是 Listwords()。本电子相册实现可以选择切换到用户喜欢的图片功能。用户可以在下拉列表菜单中选择所要观看的图片。我定义了选择框 Choice 类的对象 myChoice 主要用于显示下拉列表框内容,用户可以选择其中的内容进行浏览。
8、在切换图片中,调用 public boolean action(Event e,Object O)方法,获取用户想要浏览的图片。此模块相应的部分源代码为:public boolean action(Event e,Object O)if(e.target=myChoice)offG.setColor(this.getBackground();offG.fillRect(0,40,getSize().width,getSize().height=40);/填充offI=imgmyChoice.getSelectedIndex();/选择要显示的图像offG.drawImage(offI,0,0,
9、this);/显示图像repaint();/重画return true;4.3.2 图片上传模块设计图片上传模块中,自定义类 displayImage。要实现此功能,首先必须载入html 源代码,在 CDM 命令符中输入 Appletviewer ElectroAlbum.html,然后按Enter 键,就能实现上传图片到小程序查看器。若准备好的图片名称和 html 源代码不同,图片将不会出现在小程序查看器中。所以已准备的图片名称必须html 源代码所命名的图片名称相同。此模块的相应部分源代码:/上传图片,并且显示private void displayphoto(int idx)String
10、 path=“getImage not called“;String text=“;try/将图片存放到内存中if(photosidx=null)canvas.setText(“正在载入图片,请稍后“);path=image_loc+“/“+imageNamesidx;photosidx=getImage(getCodeBase(),path);/更新 photocanvascanvas.setImage(photosidx);catch(Exception e)/只有对 AppletView.exe 起作用e.printStackTrace();4.3.3 图像跟踪器模块设计图像跟踪器模块中
11、,自定义类 Electroblum,此类继承 Applet 类此模块中定义一个私有你变量跟踪器,并对从 Html 文件中提取图像添加图像跟踪器。其中还有事件处理、捕获异常等。此模块的相应部分源代码:private MediaTracker imagetracker;/定义图象跟踪器/从 Html 文件中提取图像,并加图像跟踪器String s=new String(“);imagetracker=new MediaTracker(this);for(int i=0;itotacpics;i+)s=getParameter(“Text“+(i+1);myString1i=s;System.out
12、.println(myString1i);myChoice.addItem(s);/向下拉列表中增加选项s=getParameter(“Picture“+(i+1);myString2i=s;imgi=getImage(getDocumentBase(),s);imagetracker.addImage(imgi,0);System.out.println(myString2i);tryimagetracker.waitForID(0);catch(InterruptedException e)4.3.4 退出和关闭模块设计退出和模块中,在小应用程序界面中打开 Applet 下拉框,按下“退出
13、”或“关闭”选项时,小运用查看器将会自动关闭。如果用户直接按右上方的叉型按钮时,小运用查看器也会自动关闭。这是因为此模块中,创建了一个名为 Applet 的 Choice。Applet 下拉列表可以调用 public void add(String name)方法,创建退出和关闭列表。此模块的相应部分源代码:WindowChoice() setLayout ( new FlowLayout();Choice Applet=new Choice();Applet.add(“重新启动 ”);Applet.add(“重新载入 ”);Applet.add(“停止 ”);Applet.add(“保存 )
14、;Applet.add(“启动 ”);Applet.add(“复制 ”);Applet.add(“标记 ”);Applet.add(“信息 ”);Applet.add(“打印 ”);Applet.add(“属性 ”);Applet.add(“字符编码 ”);Applet.add(“退出”);Applet.add(“关闭 ”);4.4 异常处理情况说明(1)切换、保存图像时的异常处理需要处理的异常:InterruptedException,当小运用程序试图使用图片切换、保存时,图像跟踪器就会抛出这一异常指示出现错误 imagetracker.waitForID。(2)加载图片时的异常处理需要处理
15、的异常: imageNotFindException,当小应用程序试图使用 imageForName 方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。(3 加载 URL 时的异常需要处理的异常:MalformedURLException,抛出这一异常指示出现了错误的 URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。5 系统实现与测试(1)使用 CMD 命令符编译运行程序后,将看到如下主界面,如图 3 所示:图 3 主界面(2)图片切换界面效果当用户输入想要切换内容时,点击下拉列表框中的选项,文本框中将会出现相应的图片所在位置。如图 4 所示:图 4 图片切换主界
16、面(3)复制界面,如图 5 所示。 (4)查看属性界面,如图 6 所示。图 5 复制界面图 6 属性显示过程界面(5)保存、退出、关闭界面。如图 7 所示:图 7 界面的保存、退出和关闭经测试,对于各个操作,系统运行正常,基本符合要求。6 课程设计总结6.1 遇到的问题及解决办法在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于 Java 语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用 Java 语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比较慢,
17、编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的 Java 实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进行实际的练习与操作,才能有大的进步。6.2 心得体会在这次的课程设计中,我主要运用了 Java 语言的界面设计、异常处理、Awt 控件、Swing 控件等,综合运用了 Java 语言。我深刻感受到了面向对象语言中类库的强大功能,掌握了运用 Java 中的类实现某些基本功能,并学会了自
18、己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。通过这次为时两周的课程设计,我学到了很多的东西,下面就这在这次课程设计中的心得体会总结如下:在这次课程设计中,主要是运用 Java 语言来编写,并可运用其他的技术。在我的系统中,还采用了 javaviewer,异常处理、 Swing 控件等知识,而这些知识都是我们不清楚的,这就要求我们去查阅相关书籍。正因为这样,才锻炼了我的自学能力,为以后的学习打下了基础。此外,我还深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java 中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。通过二个星期的努力
19、,这次课程设计圆满的结束了,在这个过程中,我学到了很多的知识,同时也非常感谢史老师的谅解和指导。在以后的学习中,我会更加努力的学好专业知识,并将所学知识用于实践当中去,以便牢固掌握知识。参考文献1耿祥义 张跃平编著 Java 2 实用教程 (第三版)清华大学出版社2006.82艾力江编著 范例入门与提高 清华大学出版社,2003.83袁然 郑自国编著 java 案例开发集锦 电子工业出版社,20054 朱福喜,傅建明等 JAVA 项目设计与开发范例电子工业出版社,2005.105 Robert C.Martin 著,黄晓春译 UML FOR JAVA PROGRAMMERS清华大学出版社,2004