计算机科学学院
课程设计报告
课 程 软件工程导论 题 目 美食信息管理系统 年 级 专 业 软件工程 学 生 学 号 指导老师
2016 年 11 月 21 日
word 专业资料
.
目录
1、前言 ................................................................................................................................................... 3
1.1、项目概述 .............................................................................................................................. 3 1.2、项目实施环境(注:包括开发、运行环境) ................................................................ 4 1.3、项目分工 .............................................................................................................................. 4 1.4、项目实施计划 ...................................................................................................................... 5 2、需求分析阶段 .................................................................................................................................. 5
2.1、可行性研究 .......................................................................................................................... 6 2.2、功能需求 .............................................................................................................................. 6
2.2.1 功能划分 .................................................................................................................... 6 2.2.2 功能描述 .................................................................................................................... 7 2.2.3 数据流图 .................................................................................................................... 9 2.2.4 E-R图 ...................................................................................................................... 10 2.2.5 数据字典 ................................................................................................................. 11 2.3、性能需求 ........................................................................................................................... 13
2.3.1精度 ........................................................................................................................... 13 2.3.2时间特性要求 .......................................................................................................... 13 2.3.3灵活性....................................................................................................................... 14 2.4、可靠性和可用性需求 ...................................................................................................... 14 2.5、出错处理需求 ................................................................................................................... 14
2.5.1操作跟踪 .................................................................................................................. 14 2.5.2访问控制 .................................................................................................................. 15
word 专业资料
.
2.6、接口需求 ........................................................................................................................... 15
2.6.1硬件接口 .................................................................................................................. 15 2.6.2软件接口 .................................................................................................................. 15 2.7、约束 .................................................................................................................................... 16 2.8、逆向需求 ........................................................................................................................... 16 2.9、将来可能提出的要求 ...................................................................................................... 16 3、设计阶段 ....................................................................................................................................... 17
3.1、概要设计 ........................................................................................................................... 17
3.1.1设计目标 .................................................................................................................. 17 3.1.2 系统功能结构设置 ................................................................................................. 17 3.1.3 数据库物理模型 ..................................................................................................... 18 3.2、详细设计 ........................................................................................................................... 19
3.2.1 系统界面设计 ......................................................................................................... 19 3.2.2 系统功能模块算法设计 ........................................................................................ 25
4、调试与分析 ................................................................................................................................... 26
4.1、功能模块源代码 ............................................................................................................... 26
4.1.1新添美食信息功能模块添加按钮核心代码 ........................................................ 26 4.1.2 新添美食信息功能模块美食图片按钮核心代码(获取图片信息) ............. 34 4.2、功能模块测设用例 ........................................................................................................... 39
4.2.1 测试设计用例 ......................................................................................................... 39 4.2.2 测试设计用例实际运行结果截图 ........................................................................ 42
5、使用说明书 ................................................................................................................................... 44
word 专业资料
.
6、总结 ................................................................................................................................................ 46 7、参考文献 ....................................................................................................................................... 47
1、前言
1.1、项目概述
由于计算机技术的飞速发展,利用软件工程的基本原理进行软件项目的分析、设计、测试和实现,在各行各业中得到越来越广泛的应用。围绕“美食信息管理系统”程序的设计和应用系统的开发课题,使用eclipse和SQL server2008工具,以JAVA为语言编写美食信息管理系统。该程序通过JDBC来实现eclipse前台与后台SQL server2008数据库的连接,并具有典型的数据库应用系统的特征,完成了系统结构与现实生活的紧密结合。
美食信息管理系统的开发不仅是一个应用程序编写的过程,更重要的是在系统分析和设计阶段所做的工作,通过系统分析和设计的过程,能够更加实际地去印证软件工程基本原理在软件项目设计与实现的过程中的应用。该信息管理系统在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,利用
word 专业资料
.
SQL server2008的强大数据库功能,直到形成一个完善的可行性系统。优美、秀丽的界面,方便实用的查询与维护功能共同构成了“美食信息管理系统”。
1.2、项目实施环境(注:包括开发、运行环境)
该系统为B/S三层结构,它的运行环境分客户端、应用服务器端和数据库服务器端三部分。
以下是系统的软件环境。 (1)客户端
前端开发工具:eclipse
操作系统:Windows2007 或更新版本。 (2)应用服务器端
操作系统:Windows2007 或更新版本。 应用服务器:Windows2007 或更新版本。 数据库访问:JDBC。 (3)数据库服务器端
操作系统:Windows2007 或更新版本。 数据库系统:SQL Server 2008r2或更新版本。
1.3、项目分工
word 专业资料
.
柳真:项目总经理,负责系统架构设计及整体安排 张浩东:项目文档经理,负责系统文档编写 吴超:项目数据库架构师,负责系统数据库设计 刘阳正:项目前端设计师,负责系统界面设计 陈初相:项目文档经理,负责系统文档编写
1.4、项目实施计划
(1)日期 2016-2017学年 大三上学期
(2)2016/10/1-2016/10/09:分析综合实验题目,拟定实验题目-美食信息管理系统,
(3)2016/10/10-2016/10/16:调查研究功能,并收集相关素材,完成需求分析
(4)2016/10/17-2016/10/23:做出系统实施计划,完成系统设计
(5)2016/10/24-2016/10/30:具体编码,各个模块的整合与系统整体详细设计
(6)2016/10/31-2016/11/06:系统测试
(6)2016/11/07-2016/11/26:系统演示,老师检查并验收
2、需求分析阶段
word 专业资料
.
2.1、可行性研究
传统的美食信息管理方法,都是通过人工统计或者手工记载的方式进行的。这样的管理方法不但费时费力,也容易产生统计和记载上的错误和疏漏。计算机技术的全面普及,打破了美食信息管理的传统管理方法,在提高了管理效率的同时,也克服了传统管理方法中易产生的问题,使管理员能够有序、全面地对每一项美食信息进行管理,严格按照规定管理系统。
利用美食信息管理系统可以完成日常搜寻美食信息的管理,如查询、修改、增加、删除、打印输出以及存储等操作,迅速、准确地完成各种美食信息的统计和汇总工作,快速打印美食信息等,大大提高了餐饮相关部门的管理效率。
2.2、功能需求
2.2.1 功能划分
通过对美食信息管理系统在现实生活中所要实现的功能的综合分析,我把该系统登陆后分为三大功能模块:管理员、客户、注册。
(1)管理员具有新增美食信息、修改美食信息、删除美食信息、个人信息(可以查询自己注册的个人信息并且可以修改登陆密码、完善自己的个人信息); (2)客户具有查询美食信息、打印输出美食信息、个人信息; (3)注册具有注册系统的登陆账号,可选择注册管理员或者客户账号。
word 专业资料
.
新添美食信息 修改美食信息 管理员 删除美食信息 个人信息 美食信息管理系统 查询美食信息 登陆 客户 个人信息 打印输出美食信息 管理员 注册 客户 图一:美食信息管理系统功能划分图
2.2.2 功能描述
具体系统功能需求描述:
1. 管理员端
(1)新添美食信息模块
word 专业资料
.
管理员输入新添美食的名称,选择相应的美食类型、美食所在省、所在市、所在县,输入美食的详细文字介绍,上传美食的描述图片,最后点击添加按钮即可添加成功
(2)修改美食信息模块
管理员输入需要修改美食的名称,点击查询即可查询出美食的名称、类型、所在地、详细文字介绍和图片介绍,查询成功后就可以修改上述各项信息,最后点击修改按钮即可修改成功。 (3)删除美食信息模块
管理员输入需要删除美食的名称,点击查询即可查询出美食的名称、类型、所在地等信息,具体信息会在一张表格上显示,然后选择需要删除美食信息的表格所在行,点击删除按钮即可删除成功。 (4)个人信息
管理员输入自己登陆所使用的账号,点击查询即可查询出账号、密码、姓名、电话号码、家庭住址等信息,当修改上述信息后,点击修改按钮即可修改信息,其中账号不能修改,其他四项包括用户密码均可以修改。
2.客户端
(1)查询美食信息模块
客户输入需要查询美食信息的名称,点击查询即可获得美食的具体名称、类型、所在省、所在市、所在县、详细文字介绍、图片等信息。 (2)打印输出美食信息模块
word 专业资料
.
客户在查询所得美食信息后,如果要进行打印输出相关信息,点击查询美食信息模块界面上打印输出美食信息按钮即可成功打印美食信息。 (3)个人信息
客户输入自己登陆所使用的账号,点击查询即可查询出账号、密码、姓名、电话号码、家庭住址等信息,当修改上述信息后,点击修改按钮即可修改信息,其中账号不能修改,其他四项包括用户密码均可以修改。
3.注册 (1)管理员
输入注册账号、密码,选择注册类型为管理员,点击注册即可成功注册管理员账户。 (2)客户
输入注册账号、密码,选择注册类型为管理员,点击注册即可成功注册客户账户。
2.2.3 数据流图
word 专业资料
.
查询美食信息返回美食信息客户打印美食信息美食信息成功打印成功修改个人信息客户修改个人信息美食信息管理系统增加美食信息成功增加美食信息管理员修改美食信息删除美食信息成功修改美食信息成功删除美食信息管理员 修改个人信息成功修改个人信息图二:美食信息管理系统数据流图
2.2.4 E-R图
管理员姓名管理员电话号码管理员编号美食名称美食名称编号详细介绍客户姓名客户编号客户电话号码客户家庭住址管理员美食图片客户客户登陆密码管理员家庭住址管理员登陆密码 N美食名称M对应1地点N美食类型美食类型编号美食类型名称美食地点编号美食地点所在县所在市所在省 word 专业资料
.
图三:美食信息管理系统E-R图
2.2.5 数据字典 (1)美食名称表 名字:美食名称表 别名:美食信息
描述:记录美食名称、美食的详细文字介绍、美食图片等信息
定义:美食名称表 = 美食名称编号 + 美食类型编号 + 美食名称 + 详细介绍 + 图片
位置:美食信息管理数据库中表的中一项 (2)美食类型表 名字:美食类型表 别名:美食类型 描述:统计美食的类型
定义:美食类型表 = 美食类型编号 + 美食类型名称 位置:美食信息管理数据库中表的一项 (3)美食地点表 名字:美食地点表 别名:美食地点
word 专业资料
.
描述:记录美食所在具体地点信息
定义:美食地点表 = 美食地点编号 + 所在省 + 所在市 + 所在县 位置:美食信息管理数据库中表的一项 (4)所在地表 名字:所在地表 别名:个具体对应地点
描述:让各种美食对应相应的具体地点,建立美食名称表余美食地点表之间的关系
定义:地点表 = 美食地点编号 + 美食名称编号 位置:美食信息管理数据库中表的一项 (5)管理员表 名字:管理员表 别名:管理员用户
描述:用于存入管理员注册账号和注册密码以及姓名、电话、家庭住址等个人信息
定义:管理员表 = 管理员编号 + 管理员姓名 + 管理员电话号码 + 管理员家庭住址 + 系统登陆密码
位置:美食信息管理数据库中表的一项
word 专业资料
.
(6)客户表 名字:客户表 别名:客户用户
描述:用于存入客户注册账号和注册密码以及姓名、电话、家庭住址等个人信息
定义:客户表 = 客户编号 + 客户姓名 + 客户电话号码 + 客户家庭住址 + 系统登陆密码
位置:美食信息管理数据库中表的一项
2.3、性能需求
2.3.1精度
(1)用户在进行美食查询时要保证查全率,所有符合搜索条件的美食都要能找到。
(2)在保证查全率的同时还要能够保证查准率,尤其是对于高级搜索这一功能。
(3)保证美食的更新频率。
(4) 本软件主要用于管理,不是科学计算,要求计算的精度不是很苛刻。所以输入、输出数据精度的要求不是很高,用于计算的数用浮点数就可以了。
2.3.2时间特性要求
word 专业资料
.
本软件运行的响应时间要求不超过1~2秒,基本能实现。 (1)响应时间:2-3秒之内打开一个新的链接。
(2)数据转换与传输时间:数据转换主要是涉及到数据库的问题。为了降低一次显示过多的记录会消耗太多的时间这个问题,在设计时让数据库尽量分页显示。传输时间和服务器的处理能力、无线网络的信号强度有关。 (3)运行时间:如非特殊原因应保持24小时开通。 2.3.3灵活性
本软件具有升级功能,以满足用户的需求。
2.4、可靠性和可用性需求
系统要保证24*7*365可用。但是可以允许每月系统停机一小时,进行系统维护。系统维护的时间要安排在非工作时间进行。
人们对信息共享的需求越来越庞大及广泛,美食也是人们生活中不可缺少的部分。用户数量与日俱增,美食信息管理系统要能支持这样的增长速度。
2.5、出错处理需求
2.5.1操作跟踪
针对系统运行出现的异常,跟踪调查出现异常的情况,了解操作意图,有针对性的解决问题。
word 专业资料
.
2.5.2访问控制
非注册用户(游客)不可以搜索美食信息,只有登陆用户才可以对美食进行查询、修改、打印输出等操作。
2.6、接口需求
2.6.1硬件接口
由于我们使用的通信协议是TCP/IP,因此这里的硬件接口问题主要就是TCP/IP层中的网络接口层,它负责数据帧的发送和接收,帧是独立的网络信息传输单元。
2.6.2软件接口
这里的接口问题主要是JAVA API和后台数据库接口。
JAVA API主要包括: Object.clone()推荐覆盖、int compareTo(Object o)java.lang对象排序 、Runnable void run() java.lang线程运行 、 AudioClip:void
loop()
、
void
play()
、
ActionListener
void
actionPerformed(ActionEvent)java.awt.event 事件处理、WindowConstants int
DISPOSE_ON_CLOSE
、
int
DO_NOTHING_ON_CLOSE
、
int
EXIT_ON_CLOSE、int HIDE_ON_CLOSE javax.swing窗口控制等。
后台数据库接口使用JDBC驱动。
word 专业资料
.
2.7、约束
设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
我们所设计的美食信息管理系统在数据精度上要求不是很高,只要求能够正确描述出相应美食具体信息即可;开发使用的硬件平台是eclipse、windows7,用Java语言进行开发具有很强的可移植性。
2.8、逆向需求
美食信息管理系统在日常生活用应用还是非常广泛,但是作为设计人员,在进行需求分析时应该说清楚美食信息管理系统不应该做什么,应该选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。在选取该课题后,经过查询资料和分析得知:美食信息管理系统不能关注于收集大量用户的具体信息,从而导致后台数据库在设计时 的重担。
2.9、将来可能提出的要求
美食信息管理系统旨在为用户提供当下我国各地具体的美食信息,包括详细介绍和图片说明,让用户能够快速得到相应的信息。如果我们所设计的美食信息管理系统能够在现实生活中得到广泛的应用,我们应该考虑实现相应的数据挖掘方面的功能,例如通过记录用户一段时期的搜索美食信息的词条,每当用户登陆时可以向用户推送相关信息,提高用户的体验。
word 专业资料
.
3、设计阶段
3.1、概要设计
3.1.1设计目标
本系统是根据日常生活对美食信息查询与管理的实际需求来开发的,完全能够实现用户对美食信息的管理,通过本系统可以达到以下目标: (1)系统运行稳定,安全可靠; (2)界面设计美观,人机交互界面友好;
(3)信息查询灵活、方便、快捷、准确、数据存储安全可靠; (4)任何人可以随时注册自己的账号;
(5)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误; (6)满足键盘和鼠标的双重操作,完全支持Enter键。
3.1.2 系统功能结构设置
word 专业资料
.
美食信息管理系统 管理员 客户 新修删 查添改除个询美美美人美食食食信食信信信息信息息息 息 选 择 补打上修充印传改修输美登改出食陆个美图密人食片码信信 息息 图四:美食信息管理系统软件结构图3.1.3 数据库物理模型
word 专业资料
个人信息 补修充改修登改陆个密人码信 息
.
美食地点表美食地点编号所在省区所在市区所在县区用户表用户编号用户姓名用户电话用户地址用户密码varchar(50) 3.2、详细设计 3.2.1 系统界面设计 (1) 为了防止非法用户进入系统,本软件设计了系统登录窗口。在程序启动时,首先弹出登录窗口,要求用户输入登录信息,如果用户输入不合法,将禁止进入系统。系统登录窗口运行结果如下图所示: word 专业资料 . 图六:美食信息管理系统登陆界面 (2) 与登陆界面相对应的是,要提供注册功能,通过注册后才能够让设计的系统软件得到更多的用户。系统注册界面如下图所示: word 专业资料 . 图七:美食信息管理系统注册界面 (3)用户通过登陆界面成功登陆后将进入相应的功能界面,首先说明管理员功能界面的设计。管理员功能运行结果如下图所示: 图八:管理员新增美食信息功能界面 word 专业资料 . 图九:管理员新增美食信息中选择图片功能界面 图十:管理员修改美食信息功能界面 word 专业资料 . 图十一:管理员删除美食信息功能界面 图十二:管理员个人信息功能界面 word 专业资料 . (4)用户通过登陆界面成功登陆后将进入相应的功能界面,最后说明客户功能界面的设计。客户功能运行结果如下图所示: 图十三:客户查询美食信息功能界面 word 专业资料 . 图十四:客户打印输出美食信息功能界面 图十五:客户个人信息功能界面 3.2.2 系统功能模块算法设计 我们设计的美食信息管理系统主要包括管理员和客户登陆两大功能模块,其中管理员功能模块中能够进行美食信息的添加、修改、删除功能,客户功能模块中能够进行美食信息的查询、打印输出功能。在设计出各个功能模块界面后,最为核心的是要实现相应功能界面中的按钮触发事件。 例如,管理员端中新添美食信息功能界面中的添加按钮触发事件、修改美食信 word 专业资料 . 息功能界面中的修改按钮触发事件、删除美食信息功能界面中的删除按钮触发事件,客户端中查询美食信息功能界面中查询按钮的触发事件和打印美食信息按钮的触发事件。为这些触发事件设计一个良好的算法,能够大大提高程序的运行效率。 4、调试与分析 4.1、功能模块源代码 4.1.1新添美食信息功能模块添加按钮核心代码 源代码如下: if(arg0.getSource() == btnNewButton_6){ String B2 = \"\"; String B3 = \"\"; String A1 = textField.getText(); String B1 = comboBox.getSelectedItem().toString(); String C1 = comboBox_1.getSelectedItem().toString(); String D1 = comboBox_2.getSelectedItem().toString(); String E1 = comboBox_3.getSelectedItem().toString(); String F1 = textArea.getText(); if(B1.equals(\"面类\")){ } B1 = \"041001\"; word 专业资料 . else if(B1.equals(\"粉类\")){ } B1 = \"041002\"; else if(B1.equals(\"水果类\")){ B1 = \"041003\"; } else if(B1.equals(\"油炸类\")){ B1 = \"041004\"; } else if(B1.equals(\"火锅类\")){ B1 = \"041005\"; } else if(B1.equals(\"冷品类\")){ B1 = \"041006\"; } else if(B1.equals(\"熟食类\")){ B1 = \"041007\"; } else if(B1.equals(\"糕点类\")){ B1 = \"041008\"; } sql = \"select finefoodSiteNo from [Fine food site] where provice = '\"+C1+\"' word 专业资料 . and city = '\"+D1+\"' and county = '\"+E1+\"'\"; try { Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); System.out.println(\"加载驱动程序成功\"); } catch(Exception e) { System.out.println(\"无法加载驱动程序\"); } try{ Connection conn =DriverManager.getConnection(\"jdbc:sqlserver://localhost:1433;DatabaseName=Fine food\" + \" management system\",\"sa\", \"9588314\"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next()){ B2 = rs.getString(1); System.out.println(B2); } else{ foodTypeNo = foodTypeNo + 1; word 专业资料 . B2 = foodTypeNo + \"\"; sql = \"insert into [Fine food site] values('\"+B2+\"','\"+C1+\"','\"+D1+\"','\"+E1+\"')\"; int i = stmt.executeUpdate(sql); if(i>0) JOptionPane.showMessageDialog(null,\"添加成功\"); else JOptionPane.showMessageDialog(null,\"添加失败\"); //JOptionPane.showMessageDialog(this, \"不存在这样的美食\错 误!\ } rs.close(); stmt.close(); } catch(SQLException e) { System.out.println(\"SQL异常\"); } sql = \"select * from [Fine food site] where provice = '\"+C1+\"' and city = '\"+D1+\"' and county = '\"+E1+\"'\"; try { word 专业资料 . Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); System.out.println(\"加载驱动程序成功\"); } catch(Exception e) { System.out.println(\"无法加载驱动程序\"); } try{ Connection conn =DriverManager.getConnection(\"jdbc:sqlserver://localhost:1433;DatabaseName=Fine food\" + \" management system\",\"sa\", \"9588314\"); Statement stmt1 = conn.createStatement(); ResultSet rs1 = stmt1.executeQuery(sql); if(rs1.next()){ foodNameNo+=1; B3 = foodNameNo + \"\"; System.out.println(B3); System.out.println(path_file); //rs1 = stmt1.executeQuery(\"select MAX(finefoodNo)+1 as finefoodNo from [Fine food Name]\"); // String B6 = rs1.getString(1); word 专业资料 . //System.out.println(\"执行成功!!!!!!!!\"+B6); sql = \"insert into [Fine food Name] values ('\"+B3+\"','\"+B1+\"','\"+A1+\"','\"+F1+\"','\"+path_file+\"')\"; //System.out.println(\"\"); int i = stmt1.executeUpdate(sql); if(i>0) JOptionPane.showMessageDialog(null,\"插入成功\"); else } else{ JOptionPane.showMessageDialog(this, \"添加异常\", \"错 JOptionPane.showMessageDialog(null,\"插入失败\"); 误!\",JOptionPane.ERROR_MESSAGE); } rs1.close(); stmt1.close(); } catch(SQLException e) { System.out.println(\"SQL异常\"); } word 专业资料 . sql = \"select * from [Fine food site] where provice = '\"+C1+\"' and city = '\"+D1+\"' and county = '\"+E1+\"'\"; try { Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); System.out.println(\"加载驱动程序成功\"); } catch(Exception e) { System.out.println(\"无法加载驱动程序\"); } try{ Connection conn =DriverManager.getConnection(\"jdbc:sqlserver://localhost:1433;DatabaseName=Fine food\" + \" management system\",\"sa\", \"9588314\"); Statement stmt2 = conn.createStatement(); ResultSet rs2 = stmt2.executeQuery(sql); if(rs2.next()){ B2 = rs2.getString(1); word 专业资料 . B3 = foodNameNo + \"\"; sql = \"insert into Site values ('\"+B2+\"','\"+B3+\"')\"; //System.out.println(\"\"); int i = stmt2.executeUpdate(sql); if(i>0) JOptionPane.showMessageDialog(null,\"插入成功 1111\"); else JOptionPane.showMessageDialog(null,\"插入失败 1111\"); JOptionPane.showMessageDialog(this, \"添加异常\", \"错 } else{ 误!\",JOptionPane.ERROR_MESSAGE); } rs2.close(); stmt2.close(); } catch(SQLException e) { word 专业资料 . System.out.println(\"SQL异常\"); } } 4.1.2 新添美食信息功能模块美食图片按钮核心代码(获取图片信息) 源代码如下: //按钮触发事件中代码 if(arg0.getSource() == btnNewButton_5){ } Insert_picture chooser = new Insert_picture(); path_file = chooser.file_path; System.out.println(path_file); //Insert_picture类代码 public class Insert_picture extends JFrame { private JPanel contentPane; /** * */ private static final long serialVersionUID = 1L; word 专业资料 . public String file_path = \"\"; PaintPanel paint; Toolkit toolkit=Toolkit.getDefaultToolkit(); /** * Launch the application. */ public static void main(String[] args) { } EventQueue.invokeLater(new Runnable() { }); public void run() { } try { Insert_picture frame = new Insert_picture(); frame.setVisible(true); } catch (Exception e) { } e.printStackTrace(); /** word 专业资料 . * Create the frame. */ public Insert_picture() { setTitle(\"选择添加美食图片\"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(200, 100, 550, 450); Image img=toolkit.getImage(\"image1.jpg\"); setIconImage(img); contentPane = new JPanel(); contentPane.addAncestorListener(new AncestorListener() { }); public void ancestorAdded(AncestorEvent arg0) { } public void ancestorMoved(AncestorEvent arg0) { } public void ancestorRemoved(AncestorEvent arg0) { } if(!file_path.equals(\"\")){ } setVisible(false); word 专业资料 . contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JFileChooser fileChooser = new JFileChooser(); contentPane.add(fileChooser,BorderLayout.CENTER); paint = new PaintPanel(); paint.setBorder(new BevelBorder(BevelBorder.LOWERED,null,null,null,null)); paint.setPreferredSize(new Dimension(150,300)); fileChooser.setAccessory(paint); fileChooser.addPropertyChangeListener(new PropertyChangeListener(){ }); javax.swing.filechooser.FileFilter filter = new FileNameExtensionFilter(\"图像文 public void propertyChange(PropertyChangeEvent arg0){ } do_this_prorertyChange(arg0); 件(*\" + \".jpg;*.png;*.gif;*.bmp)\",\"jpg\",\"png\",\"gif\",\"bmp\"); fileChooser.setFileFilter(filter); //chooser.setFileSelectionMode(JFileChooser.WIDTH); word 专业资料 . } fileChooser.setMultiSelectionEnabled(false); int result = fileChooser.showOpenDialog(this); if(result == JFileChooser.APPROVE_OPTION){ } File file = fileChooser.getSelectedFile(); file_path = file.getAbsolutePath(); System.out.println(file_path); protected void do_this_prorertyChange(PropertyChangeEvent e){ if(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY == e.getPropertyName()){ File picfile = (File) e.getNewValue(); if(picfile != null && picfile.isFile()){ try{ Image image = getToolkit().getImage(picfile.toURI().toURL()); paint.setImage(image); paint.repaint(); }catch (MalformedURLException e1){ } e1.printStackTrace(); word 专业资料 . } } } } 4.2、功能模块测设用例 4.2.1 测试设计用例 (1)测试用例一 美食名称:热干面 美食类型:面类 所在省:湖北省 所在市:武汉 所在县:武昌 详细介绍:源于三十年代初期汉口长堤街卖汤面的蔡明伟。蔡明伟是黄陂蔡榨人,他的汤面做得非常受欢迎,客人经常排队要等很长时间才能买到,很多客人等不及走掉了,蔡明伟做生意很会动脑筋。为了加快出货量,通过反复试验,他终于摸索出一套“掸面”的工艺———就是先把面煮七八成熟,然后快速降温并均匀抹上油,这样卖面时,出货量就快了。有一次蔡明伟在长堤街看到一家麻油作坊,看见他们从芝麻中提取麻油后,芝麻酱闲弃在一边,香气扑鼻,他灵机一动;何不将芝麻酱加进面里试一下呢?于是蔡明伟向麻油作坊老板购买了些许芝麻酱回家。同 word 专业资料 . 样经过多次反复试验,他觉得满意了,身边的人都说好吃,这时候他才信心满满推出他的新产品上街叫卖。 图片:热干面.jpg (2)测试用例二 美食名称:周黑鸭 美食类型:熟食类 所在省:湖北省 所在市:武汉市 所在县:汉口 详细介绍:1995年周富裕开始从事卤制品行业,1997年周富裕自行研发出“周黑鸭”的配方,很快“周黑鸭”以“入口微甜爽辣,吃后回味悠长”的独特口味赢得了广大消费者的认同,同年第一家“周记怪味鸭”专卖店在航空路电业集贸市场开业。历经13年的发展,“周黑鸭”成功开发了适合年轻消费群体的鸭类卤制休闲食品系列,为“周黑鸭”这样一个原创商标品牌塑造了鲜明的品牌个性和独特的产品特色! 图片:周黑鸭.jpg (3)测试用例三 美食名称:臭豆腐 美食类型:熟食类 word 专业资料 . 所在省:湖南省 所在市:长沙市 所在县:宁乡县 详细介绍:相传清朝康熙八年,由安徽黄山来京赶考的王致和金榜落第,闲居在会馆中,欲返归故里,交通不便,盘缠皆无,欲在京攻读,准备再次应试,又距下科试期甚远。无奈,只得在京暂谋生计。王致和的家庭原非富有,其父在家乡开设豆腐坊,王致和幼年曾学过做豆腐,于是便在安徽会馆附近租赁了几间房,购置了一些简单的用具,每天磨上几升豆子的豆腐,沿街叫卖。时值夏季,有时卖剩下的豆腐很快发霉,无法食用,但又不甘心废弃。他苦思对策,就将这些豆腐切成小块,稍加晾晒,寻得一口小缸,用盐腌了起来,之后歇伏停业,一心攻读,渐渐地便把此事忘了。 秋风飒爽,王致和又重操起了旧业,再做豆腐来卖。蓦地想起那缸腌制的豆腐,赶忙打开缸盖,一股臭气扑鼻而来,取出一看,豆腐已呈青灰色,用口尝试,觉得臭味之余却蕴藏着一股浓郁的香气,虽非美味佳肴,却也耐人寻味。送给邻里品尝,都称赞不已。 王致和屡试不中,只得弃学经商,按过去试做的方法加工起臭豆腐来。此物价格低廉,可以佐餐下饭,适合收入低的劳动人食用,所以渐渐打开销路,生意日渐兴隆。后经辗转筹措,在延寿街中间路西购置了一所铺面房,自产自销,批零兼营。据其购置房屋的契约所载,时为康熙十七年冬。从王致和创造了独一无二的臭豆腐以后,又经多次改进,逐渐摸索出一套臭豆腐的生产工艺,生产规模不断扩大,质量更好,名声更高。清朝末叶,传入宫廷。传说慈禧太后在秋末冬初也喜欢吃它, word 专业资料 . 还将其列为御膳小菜,但嫌其名称不雅,按其青色方正的特点,取名“青方”。 图片:臭豆腐.jpg 4.2.2 测试设计用例实际运行结果截图 (1)添加测试用例三中信息功能模块截图如下图所示: 图十六:添加测试用例三信息功能模块截图 (2)修测试用例三中信息功能模块截图如下图所示(把美食名称臭豆腐修改为我爱吃臭豆腐): word 专业资料 . 图十七:修改测试用例三功能界面截图 (3)删除测试用例三中信息功能模块截图如下图所示(查询可知美食名称臭豆腐已成功修改为我爱吃臭豆腐): word 专业资料 . 图十八:删除测试用例三功能模块截图 (4)程序功能在运行中后台返回的测试提示信息截图(通过后台输出的相应测试提示信息能够在实际进行系统功能实现的过程中起到快速查出程序功能设计的问题地方): 图十九:程序运行过程中后台测试提示信息 5、使用说明书 1.先将数据库连上,运行本系统需要将数据库文件附加到SQL Server2008数据库中。开启数据库,输入用户名和密码,在数据库上右击,点击附加出现如下图所示按钮点击添加,找到数据库文件所在位置点击确定,即可完成。 word 专业资料 . 图二十:数据库登陆界面显示(输入相应的用户名和密码) 图二十一:附加数据库选择所要附加文件截图 word 专业资料 . 图二十二:选好附加文件后附加数据库界面截图显示(点击图中添加按钮后点击确定即可) 2.然后打开eclipse,运行登陆界面程序,输入相应的账号密码,账号密码可以在数据库中查看,也可以自己注册使用新的账号密码。然后登陆上系统的后,依照功能界面的相应功能提示进行相应操作。 6、总结 在写这个系统时,遇到了很多问题,最后通过在网上查询资料和在图书馆借的相应资料参考书的帮助下,最终完成了整个系统的编写。在编写这个系统时,查阅了大量资料,并学会了使用jdbc链接数据库,并使用SQL语句对数据库进行操作。有时看着都看的懂,但真正自己操作一遍,完完全全写完这个程序系统,才发现是两码事。写的过程虽然是痛苦的,但收获是巨大的。 word 专业资料 . 在本次课程设计实施的过程中,虽然遇到了很多问题,但是相对来说收获也很多。在系统相应功能设计与分析的过程中,通过不断修改和测试,也让我设计的核心功能函数不断完善,最终达到课题的要求。 7、参考文献 1.《Visual Basic数据库开发实例解析》机械工业出版社 刘志铭、高春艳等编著 2003年8月 2.《Visual FoxPro数据库开发实例解析》机械工业出版社 王晶莹、王国辉等编著 2003年9月 3.《Power Builder数据库开发实例解析》机械工业出版社 华传铭、张振坤等编著 2003年9月 4.《学通JAVA的24堂课》清华大学出版社 李钟尉、李伟等编著 2011年 6月 5.《软件工程导论(第6版)》清华大学出版社 张海藩、牟永敏编著 2015年5月 word 专业资料 因篇幅问题不能全部显示,请点此查看更多更全内容