企业邮件管理系统的设计与实现毕业设计.docx
- 文档编号:27356560
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:26
- 大小:288.85KB
企业邮件管理系统的设计与实现毕业设计.docx
《企业邮件管理系统的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《企业邮件管理系统的设计与实现毕业设计.docx(26页珍藏版)》请在冰豆网上搜索。
企业邮件管理系统的设计与实现毕业设计
企业邮件管理系统的设计与实现
摘要
随着互联网的迅速发展,E-mail已经成为人与人之间沟通的桥梁,越来越多的人开始选择通过网络进行即时沟通。
为此,越来越多的网站开始提供发送E-mail的功能。
与此同时,E-mail也以其快捷、无时空限制、低成本等优势受到众多企业的青睐,成为企业移动商务的主流应用方式。
本系统以Swing+JavaDB实现的企业邮件系统,包括以下几个功能:
用于管理客户和员工信息的名片夹管理功能;用于对常用短语及其类别进行管理的信息库管理功能;邮件群发功能;发送邮件附件的功能。
本文主要介绍了系统的基本情况、系统分析、系统设计、数据库设计以及各个模块的设计与主要代码及其注释。
关键词:
分层设计企业邮件系统
一.引言.........................................................1
二.需求分析......................................................1
三.总体设计......................................................3
四.详细设计与实现................................................8
五.系统测试......................................................14
六.结论..........................................................15
参考文献.........................................................16
第1章引言
在企业信息化的今天,效率决定成败,企业内、外部沟通的及时性将直接影响企业的运作效率。
现在多数企业的办公自动化系统的信息传递仅限于计算机内部网络,如果用户不在线,将无法知道是否有新的工作或紧急通知,为了确认是否有待办工作,不得不经常去访问OA,检索是否有新任务,而事实上这种检索的结果经常是徒劳。
这样一来,不仅造成了机器资源的浪费,也造成了人力资源的浪费。
因此急需一套成型的企业邮件系统解决上述问题。
企业邮件系统属于小型的企业通信软件,由于该系统的作用是帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题,以提高工作效率。
因此根据需求分析可知,在系统实施后,应达到以下目标:
提供功能强大的信息库管理,方便用户进行信息的编写;在发送短信时,可以直接从现有信息库中获取信息内容;提供邮件群发功能,提高工作效率。
由于系统的目标客户为企业全体工作人员,既包括懂计算机操作技术的人员,也包括对计算机操作不熟练的人员,从而不能保证企业的所有人员都能进行高技术的计算机操作。
为此,系统界面设计应当友好、美观,操作必须灵活、方便。
另外,应企业进行事务处理过程中正确性、安全性的要求,系统应具备如下功能:
对用户输入的数据,进行严格的数据检验,尽可能地避免人为错误;数据存储安全、可靠。
第2章需求分析
1.项目范围
企业邮件的作用是帮助企业解决企业内部、企业与外部沟通难、信息不能及时传播等问题。
为此,企业邮件系统需要提供有邮件群发功能。
通过对多数企业日常业务的考察、分析,并结合短信及邮件自身的特点,本系统具有以下功能。
①名片夹管理功能:
用于管理客户和员工信息的。
②信息库管理功能:
用于对常用短语及其类别进行管理的。
③邮件群发功能:
用于向多个用户群发邮件。
④发送邮件附件的功能:
在发送邮件时,可以添加文件形式的附件。
2.系统用例模型
图2.1系统用例图
3.设计上的限制
①数据库管理软件
系统必须使用Java接口同关系型数据库管理软件建立连接。
②平台要求
系统必须在CPU为P3以上,内存为512MB以上,操作系统为微软win2000以上或Linux(Unix)的服务器上顺利运行。
③Java的版本
系统必须在Java1.3以上的版本上运行。
数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库的设计通常是以一个已经存在的数据库管理系统为基础的。
根据用户需求和业务流程,SQLServer2000,它是一个完备的数据库和分析包,其功能可以从各个方面降低数据仓库建立和维护的难度和成本。
我们认为使用SQLServer2000作为后台数据库平台,可以在性能和成本方面获得比较好的折衷,所以在本项目的开发中决定使用JAVADB。
此次开发研究使用了JSP+Servlet+JavaBean开发一个基于MVC架构,MVC是一种设计模式,主要有三个主要组件:
模型:
负责业务逻辑的状态和管理数据;
视图:
负责显示业务领域的表示视图;
控制器:
负责控制用户输入的流程和状态。
使用MVC模式时,通常会有某种形式的事件通知,当模型某部分有了变动时,可以通知视图控件。
NetBeans是SUN公司重点开发的JAVA集成开发环境,使用JAVA编程语言编写,具有很好的可移植性,它集成了程序员开发桌面,WEB,企业级和移动应用所需要的一切软件资源,具有以下特性:
(1)全面支持构建NetBeans插件模块和基于NetBeans平台的富客户端应用程序。
(2)全面支持SUNApplicationServer8.2及Tomcat5x
(3)全面支持JAVA企业版应用程序消息服务
(4)增强了对JAVAServerFaces和Struts的支持
(5)提供了更强大的代码编译器
(6)加快了代码编译的速度
(7)重新实现了对CVS的支持
(8)改进的、用户界面友好的IDE外形
(9)继承了编写、测试以及调试JAVAME程序的功能
第3章总体设计
3.1系统框架
本系统有一个部分,5个完整的功能模块。
分别是:
名片夹管理、信息库管理、邮件群发、邮件参数设置、系统设置。
图3.1功能结构图
邮件管理流程图是一种表明客户管理邮件的流程图,它可以帮助分析人员找出流程中的不合理回路。
下面图3.2就是客户对邮件管理的流程图。
图3.2客户处理邮件流程图
3.2数据库设计
数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库的设计通常是以一个已经存在的数据库管理系统为基础的。
通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图所示。
3.2.1档案实体E-R图
3.2.2常用短语实体E-R图
3.2.3类型实体E-R图
3.2.4实体之间关系图
数据流程顶层图即是数据流程零层图,是宏观的数据流程图。
下面是网上宾馆订房的顶层图,如图3.3所示。
图3.3数据流顶层图
E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。
本系统数据库使用SQLServer2000,包含以下3个表:
档案表(personnel)、常用短语表(info)、类型表(type)。
下面分别详细介绍以上各表:
表3.1档案表(personnel)
序号
字段名
类型
允许空
主键
外键
1
Num
int
否
是
2
type_id
int
否
是
3
Name
varchar(8)
否
4
Sex
char
(2)
否
5
Birthday
date
否
6
Company
varchar(50)
否
7
Dept
varchar(40)
否
8
Duty
varchar(50)
否
9
Handset
varchar(15)
否
10
varchar(30)
否
表3.2常用短语表(info)
序号
字段名
类型
是否空
主键
外键
1
num
int
否
是
2
type_id
int
否
是
3
name
varchar(500)
否
表3.3类型表(type)
序号
字段名
类型
是否空
主键
外键
1
Id
int
否
是
2
Name
varchar(20)
否
3
Used
char(4)
否
第4章详细设计与实现
详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。
在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。
该系统的设计基于以下几个原则:
1.标准化;2.模块化;3.先进性;4.安全性;5.交互性。
首先实现对数据库的连接,代码如下:
StringCLASSFORNAME="sun.jdbc.odbc.JdbcOdbcDriver";
StringCONNECSTR="jdbc:
odbc:
shop_db";
Try{Class.forName(CLASSFORNAME);
This.con=DriverManager.getConnection(CONNECTSTR);
}catch(Exceptione){e.printStackTrace();}
4.1主窗体模块实现
1.功能
群发E-mail功能在主窗体中完成。
在“收信人列表”中显示的为所有接收信息的人员,需要从“名片夹”中添加;发送E-mail,可以通过单击“添加附件”按钮添加附件。
2.输入项目
图4.1主窗体界面
3.主要代码
..\ExpressLetter\src\com\mwq\frame\TipWizardFrame.java
finalJToolBartoolBar=newJToolBar();//创建工具栏对象
toolBar.setBorder(newEtchedBorder(EtchedBorder.LOWERED));
//设置工具栏的边框样式
toolBar.setFloatable(false);//设置工具栏不可移动
getContentPane().add(toolBar,BorderLayout.NORTH);
//将工具栏添加到面板中
finalJButtonuserButton=newJButton();//创建用户管理按钮
userButton.addActionListener(newActionListener(){//添加事件监听器
publicvoidactionPerformed(ActionEvente){//处理按钮事件
UserManagerDialogdialog=newUserManagerDialog();
//创建用户管理对话框对象
dialog.setVisible(true);//设置用户管理对话框可见
}
});
userButton.setMargin(newInsets(0,0,0,0));//设置按钮的边框
URLuserUrl=this.getClass().getResource("/img/user.png");
//获得按钮默认图片的路径
userButton.setIcon(newImageIcon(userUrl));//设置按钮的默认图片
URLuserOverUrl=this.getClass().getResource("/img/user_over.png");
//获得按钮鼠标经过图片的路径
userButton.setRolloverIcon(newImageIcon(userOverUrl));
//设置按钮的鼠标经过图片
toolBar.add(userButton);//将按钮添加到工具栏
4.2添加名片或信息模块实现
1.功能
单击系统右下方的“添加”按钮,将打开“添加名片”对话框,该对话框用来向名片夹中添加名片。
2.输出项目
图4.2添加界面
3.主要代码
..\ExpressLetter\src\com\mwq\dao\BaseDao.java
protectedVectorselectSomeNote(Stringsql){
Vector
//创建结果集向量
Connectionconn=JDBC.getConnection();//获得数据库连接
try{
Statementstmt=conn.createStatement();//创建连接状态对象
ResultSetrs=stmt.executeQuery(sql);//执行SQL语句获得查询结果
intcolumnCount=rs.getMetaData().getColumnCount();
//获得查询数据表的列数
introw=1;//定义行序号
while(rs.next()){//遍历结果集
Vector
rowV.add(newInteger(row++));//添加行序号
for(intcolumn=1;column<=columnCount;column++){
rowV.add(rs.getObject(column));//添加列值
}
vector.add(rowV);//将行向量添加到结果集向量中
}
rs.close();//关闭结果集对象
stmt.close();//关闭连接状态对象
}catch(SQLExceptione){
e.printStackTrace();
}
returnvector;//返回结果集向量
}
4.3邮件参数设置模块实现
1.功能
单击“E-mail设置”按钮,将打开“邮箱设置”对话框,该对话框用来设置发送E-mail的接口信息
2.输出项目
图4.3邮件参数设置
3.主要代码
..\ExpressLetter\src\com\mwq\frame\InfoPanel.java
privateclassEmailSendButtonActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringtitle=titleField.getText();//获取邮件标题
Stringcontent=emailTextArea.getText();//获取邮件内容
if(title.isEmpty()||content.isEmpty()){//验证邮件标题和内容
JOptionPane.showMessageDialog(InfoPanel.this,"请填写邮件标题和内容");
return;
}
intsendCount=sendListTable.getRowCount();//获取邮件群发总数
for(inti=0;i Integerid=(Integer)sendListTable.getValueAt(i,1);//获取用户ID Vectorperson=dao.sPersonnelByNum(id);//从数据库获取该ID用户 Stringaddressee=person.get(9).toString();//获取用户的E-mail地址 mailForm.setTitle(title);//初始化mailForm实例 mailForm.setContent(content); if(mailForm.getAddressee()==null ||mailForm.getAddressee().isEmpty()) mailForm.setAddressee(addressee); else mailForm.setAddressee(mailForm.getAddressee()+',' +addressee); } intres=mailDao.sendMail(mailForm);//发送邮件 Stringmessage=null; if(res==1)//判断发送结果 message+="E-mail群体发送成功"; else message+="E-mail发送失败"; JOptionPane.showMessageDialog(InfoPanel.this,message);//提示发送结果 mailForm=newSendMailForm();//初始化mailForm对象 } } 第5章系统测试 软件系统编程完成后,最重要的任务就是对软件进行系统测试。 所谓系统测试就是对软件各个模块,各组功能进行数据分析,以确定软件系统的运行效率和执行结果的正确性。 当完成项目的软件代码编写阶段,即可进入软件测试阶段。 软件测试阶段一般分为单元调试与测试和系统联试与测试两个阶段。 测试的目的就是在软件运行之前尽可能多的发现程序中的错误。 这是保证软件质量的关键步骤。 由于在编写代码过程中不可避免的会出现错误,因此在软件投入运行之前,必须纠正其中大部分差错,以免将来会造成很恶劣的后果。 整个系统的测试要求测试人员有较高的计算机水平,是一个非常复杂而重要的过程。 经过测试后的软件就可交付用户使用了,进入软件的运行和维护阶段。 本系统采用黑盒(BLACKBOX)测试法,亦即不论测试部件的实现如何,只对该部件的输入输出结果进行测试的一种测试方法。 在测试时,按则各个模块的相应信息输入测试数据,运行程序,查看输出的结果和系统的状态是否正确。 经过测试发现,由于系统是对数据库直接操作,在查找功能上的速度不够理想,顺序的查找是需要在数据库中从第一条记录向后一条一条的查询记录,直到找到记录,或是查询到数据库记录空为止。 这样,浪费了大量的时间。 在数据量较小的情况下运行速度还可以,但数据量大的时候就会减慢运行速度。 这时系统的主要不足之处。 本系统的测试就是依照上述方法进行的,经过多次的检测与改正过程,认为系统已经达到了预期要求,能正确处理各种业务,并对非法输入可进行容错处理。 下面给出一些系统测试的性能评价: ·系统的可操作性: 较好;系统的操作界面,采用视窗模式,与现在的Windows操作系统相配合,使操作者直接面对系统的界面。 ·系统运行速度: 一般;由于系统占用资源较多,必然引起系统的运行速度大大降低,这是该系统的不足之一。 ·系统安全性: 较好(进入需管理员密码);在登陆系统的时候,会要求操作者输入使用密码,做到了一定的限制,使系统有一个相对独立使用的操作团体,不是所有的人多可以使用的。 ·系统容错性: 较好(能够识别非法数据,有一定的纠错能力)。 在输入数字不符合输入要求时,系统会提示输入的有问题。 但不足的是,这只是体现在一小部分功能当中,还没有做到数据的完全纠错。 进行测试的过程中,在对该系统进行测试的过程中,重点对该子系统的错误处理功能进行了检验,主要进行了系统模块出错的处理测试,在测试时使用了比较合理的测试用例,不仅仅是对键盘的操作进行测试,对一些链接,查看也进行了测试,也通过测试寻找到一些问题,对这些问题做出了及时有效的改正。 测试的结果还是令人乐观和满意的。 第六章.结论 运用MVC架构,结合普通电子商务网站的用户查询与订房及管理部分,详细的介绍了如何是用JSP、Servlet与Javabean开发一个具有MVC架构的购物网站。 通过该项目可以看到使用JSP、Servlet与Javabean开发的具有MVC框架的项目具有易维护、易修改、模块之间的耦合性低等优点。 这次课程设计第一次涉及到做网站。 系统存在下面的一些缺点,管理内容不够细致;数据库表浪费,在进行该系统的设计时对数据库表与表之间的关系还是有比较清楚地分析的,但是在开发过程中这样设计的表相互关联性太多,使得对数据库操作起来比较复杂。 虽然困难重重,但是成功的人生,需要自己去经营,别再说了,莫再等了,现在就为自己的人生做好规划,为人生点亮一盏明灯,赢在人生起跑点上。 参考文献 [1]张军.ASP.net+SQLserver动态网站开发案例精选.北京: 清华大学出版社,2005 [2]吴晨、孙少波、叶莞.ASP.net数据库项目案例导航.北京: 清华大学出版社,2004 [3]宋贤钧、王庆岭.数据库应用程序开发(SQLserver2000).北京: 高等教育出版社2004 [4](中国CNKI学术期刊网) [5](中国万方数据资源系统) [6](elsevier全文数据库) [7]薛华成.管理信息系统(第四版).北京: 清华大学出版社,2003年 [8]陈晓红.信息系统教程.北京: 清华大学出版社,2003年 [9]张基温.信息系统开发方法案例(第四辑).北京: 清华大学出版社,2003年 [10]甘仞初.信息系统分析与设计.北京: 高等教育出版社,2003 [11]JeffreyL.Whitten,系统分析与设计方法(影印版).北京: 高等教育出版社,2001年 [12]DavidL.Anderson.ManagingInformationSystems.北京: 清华大学出版社,2001年 [13]JamesA.O’Brien.IntroductiontoInformationSystems.北京: 高等教育出版社,2002年 [14]计算机软件工程规范国家标准汇编.北京: 中国标准出版社,1998 [15]启明工作室编著ASP.NET+SQLServer网络应用系统开发与实例.北京: 人民邮电出版社,2005 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺: 所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。 尽我所知,除文中特
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 邮件 管理 系统 设计 实现 毕业设计