期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx

上传人:b****6 文档编号:21400754 上传时间:2023-01-30 格式:DOCX 页数:17 大小:453.24KB
下载 相关 举报
期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx_第1页
第1页 / 共17页
期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx_第2页
第2页 / 共17页
期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx_第3页
第3页 / 共17页
期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx_第4页
第4页 / 共17页
期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx

《期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx》由会员分享,可在线阅读,更多相关《期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

期末程序设计文档示例简易邮件系统项目设计文档谭定林Word文档格式.docx

1.5数据分析3

1.5.1实体-联系图4

1.5.2IPO图5

1.6开发平台5

1.6.1VisualStudio20106

1.6.2SQLServer20056

1.6.3IIS7.07

1.6.4Pencil界面原型图绘制工具7

1.7相关开发技术7

1.7.1LINQ数据查询8

1.7.2GridView数据表8

1.7.3SQLServer数据库存储过程10

1.8运行环境10

2数据库设计11

2.1数据库设计原则11

2.2数据库概念设计11

2.3用户信息表12

2.4邮件信息列表12

2.5邮件类别12

2.6系统配置12

2.7各表之间关系13

3详细设计14

3.1界面设计14

3.1.1登录界面、注册界面设计14

3.1.2登录系统后显示的主界面16

3.1.3邮件编写和发送页面17

3.1.4发件箱主界面18

3.1.5草稿箱主界面19

3.1.6邮件类别管理主界面20

3.1.7系统配置主界面20

3.2功能模块实现21

3.3数据库存储过程调类用实现21

3.4登录注册模块实现22

3.4.1用户登录22

3.4.2用户注册23

3.5邮件管理模块实现24

3.6邮件发送功能模块实现26

3.7邮件类别管理模块26

3.8配置功能模块实现27

4系统重难点29

4.1邮件发送29

4.2数据库多表查询30

总结31

参考文献32

致谢33

绪论

在学习一期的开发后,课程需要提供期末项目。

介于此本项目开发了简易的邮件系统用于完成期末项目。

在本项目开发过程中,主要经历项目的文档编写、数据库设计、用户界面设计、代码编写、系统测试这些步骤具体分工为谭定林负责用户界面设计、部分代码编写、部分文档编写;

谭银兴负责部分文档编写、数据库设计、部分代码编写、系统测试。

1需求分析和概要设计

1.1整体要求

本系统用于实现邮件系统部分简单功能的小型项目,其目标是实现简单邮件的发送和管理这些发送邮件。

为了能够在较短的时间内快速开发系统,因此本系统不必采用复杂的逻辑和界面以免花费大量的时间。

同时构建本系统重点在于通过本系统的构建实现对ASP.NET技术的学习和掌握,为以后的工作做铺垫。

根据上述可知系统需要实现邮件的发送功能,同时为了保证系统的安全性,用户需要登录才能进行所有操作。

用户可以通过注册模块进行用户注册,用户注册后才能通过登录模块登录本系统,同时进行相关操作。

用户登录后,可以发送邮件、接收邮件、管理已发送的邮件和草稿邮件。

1.2系统设计架构

系统由六个部分构成,它们分别是写信(及邮件发送)模块、登录注册模块、邮件管理模块、邮件接收模块、邮件分类管理模块和系统配置模块。

其架构图如图11下所示。

图11简易邮件系统架构

1.3模块概述

写信模块。

用户在写信模块可以实现编写邮件,并发送邮件。

同时可以对草稿和历史邮件进行编辑。

登录注册模块。

该模块用于提供给用户注册和登录和管理账户信息。

系统所有的功能必须是用户登录后才能进行操作。

邮件管理模块。

用户在这部分对个人邮件进行管理。

对邮件进行分类,删除邮件,以及重新编辑邮件。

邮件接收模块。

该模块通过POP3协议从第三方邮件服务器上接收邮件。

邮件分类管理模块。

用户在本模块可以方便的进行新建建邮件分类和删除邮件分类的操作。

系统配置模块。

用户在系统配置模块可以配置自己的邮件账号和密码,同时可以配置个性化的SMTP服务器,用户可以根据个人需求配置采用不同的邮件系统发送邮件。

1.4性能需求

Ø

本系统必须实现把邮件发送外网邮箱。

邮件系统必须对已发送的邮件进行保存。

邮件系统采用的邮件服务器时可以配置。

邮件系统具有一定的可扩展性(比如可以接受第三方邮件)。

1.5数据分析

本系统主要涉及到注册用户和系统管理员,管理员可以对用户进行删除操作,同时具有和普通用户相同的权限。

普通用户可以配置自己独立的邮件服务器,可以通过配置的服务器发送自己邮件和保存邮件。

由此得出数据库需要记录用户信息、服务器配置、邮件记录这些部分的数据。

本小节将从关系实体图和IPO图这两部分对其进行介绍。

…………

…………(省略若干内容)

1.7.3SQLServer数据库存储过程

存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。

由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。

同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。

1.8运行环境

硬件推荐配置:

CPU,2*2GHZ;

内存,2*2G;

硬盘,250G。

软件配置:

操作系统,WindowsServer2003;

数据库,SQLServer2005;

应用服务器,IIS7.0。

2数据库设计

(没有数据库操作,本章可省略)

2.1数据库设计原则

(1)命名要简洁规范:

不同的数据库对对象的命名有不同的要求,因此,数据库中的各种对象的命名、后台程序的代码编写应采用大小写敏感的形式,各种对象命名长度不要超过30个字符,这样便于应用系统适应不同的数据库。

(2)数据的一致性和完整性:

为了保证数据库的一致性和完整性,往往会设计过多的表间关联,尽可能的降低数据的冗余。

建立后,对父表(ParentTable)和子表(ChildTable)的插入、更新、删除操作均要占用系统的开销,如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。

使用规则(Rule)和约束(Check)来防止系统操作人员误输入造成数据的错误是设计人员的另一种常用手段,但是,不必要的规则和约束也会占用系统的不必要开销,需要注意的是,约束对数据的有效性验证要比规则快。

(3)数据库性能调整:

在计算机硬件配置和网络设计确定的情况下,影响到应用系统性能的因素不外乎为数据库性能和客户端程序设计。

首先进行逻辑设计,而后进行物理设计。

数据库逻辑设计去除了所有冗余数据,提高了数据吞吐速度,保证了数据的完整性,清楚地表达数据元素之间的关系。

而对于多表之间的关联查询时,其性能将会降低,同时也提高了客户端程序的编程难度,因此,物理设计需折衷考虑,根据业务规则,确定对关联表的数据量大小、数据项的访问频度,对此类数据表频繁的关联查询应适当提高数据冗余设计。

2.2数据库概念设计

为了能把用户的数据要求清楚、准确的描述出来,系统分析员通常建立一个概念性的数据模型,概念模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。

它描述了从用户角度看到的数据,模拟了用户的现实环境,而且与软件系统中的实现方法无关,这一概念模型就是实体-关系图。

实体-关系图包含三种相互关联的信息:

数据对象、数据对象的属性以及数据对象彼此间相互联系的关系。

根据上述对简易的邮件系统功能设计分析,创建本系统总体E-R关系图如图21所示。

下面将阐述每个表的详细信息。

2.3用户信息表

表格1用户信息表

列名

数据类型

约束条件

说明

userId

Int

主键

用户ID

userName

Varchar(50)

非空

用户名

userPwd

Varchar(10)

用户密码

mailaddr

邮件地址

mailPsw

邮箱密码

用户信息表用于保存注册用户的详细信息,系统的所有的数据交流都很本表相关联,是系统非常的表。

2.4邮件信息列表

表格2邮件信息列表

mailId

int

邮件ID

typeId

类型ID

mailTo

Varchar(200)

允许空

目的地址

mailHead

varchar(200)

邮件主题

mailContent

test

邮件内容

isSend

Varchar

(1)

邮件标识

createTime

datetime

创建时间

邮件系统信息列表保存本系统所有的邮件信息,每一条邮件信息都和邮件所有者相关联,故本表很用户信息表是相互关联的,同时本表的邮件类别有何邮件类别相关联。

2.5邮件类别

表格3邮件类别

mailType

varchar(100)

邮件类型

邮件类别列表保存了用户自定义的邮件类别,每一条记录都和用户信息唯一对应。

2.6系统配置

表格4系统配置

domain

varchar(80)

服务器域名

ip

char(15)

服务器IP

port

服务器端口

系统配置表保存用户独自的邮件服务器配置,每一个用户都可以配置不同于他人的支持SNMP邮件服务器。

2.7各表之间关系

通过构建生成的数据库关系图如下图21所示。

图21关系图

3详细设计

根据系统需求分析、概要设计部分,可以得知本系统并不复杂,只需要实现比较简单的功能。

因此在详细设计部分简化成主要分析界面设计和功能模块设计。

3.1界面设计

为了能够快速开发项目,本系统采用VisualStudio2010网站项目默认的风格作为本系统默认的风格。

系统界面设计采用简易的界面设计工具Pencil实现界面设计。

系统登录和注册界面设计秉承简易的设计风格界面设计采用默认风格,设计截图如下图31。

3.1.1登录界面、注册界面设计

图31登录界面设计

图32用户注册界面

当用户登录成功就跳转的主要界面,设计图如图33,在这里用户可以比较清晰看到自己的各种邮件的数量。

用户注册界面和用户登录界面都会对用户信息表进行操作。

在实现过程中需要能够访问数据库中的用户信息表并进行相应的数据操作。

用户登录界面在用户信息确认后还需要把用户信息写入SESSION以满足对用户权限的管理。

用户注册界面在用户注册成功应该直接跳转到用户界面,并提示用户相关的一些操作(比如配置用户邮件服务器信息等)。

系统配置是本系统中的一个比较重要的环节,所有的邮件发送采用的服务器、用户信息均是在此处配置的。

如果配置错误,则用户邮件不会发送成功。

为了能够正常的发送邮件,所以本页面增加了测试配置的按钮,以便能够在配置后确实,该配置是否正确。

在编写代码之前先行设计界面原型,可以有效避免开发过程中不断的修改界面而造成的时间浪费,从而高效的完成项目的建设。

3.2功能模块实现

本系统主要实现了两个功能模块邮件发送功能模块和邮件管理功能模块。

邮件发送功能是用户通过新建邮件并把邮件发送到其他的邮箱的过程,邮件管理功能是用户对自己发送的邮件和草稿邮件进行管理的过程。

邮件发送功能模块。

该功能模块是本系统的核心部分,它的是通过采用SNMP协议来实现邮件的发送。

在发送邮件之前,先要建立邮件服务器和用户账号信息,为了能够简洁、高效地实现本过程,在开发过程中采用qq邮箱服务器作为邮件服务器。

在使用之前,先要开发qq邮件箱账号,同时需要配置该邮箱的SNMP服务。

邮件管理功能模块。

该模块主要涉及到的是数据库的操作,系统才用LINQ和存储过程来解决数据交互问题。

为了实现用户权限控制,系统通过Session来保存用户信息和权限控制。

3.3数据库存储过程调类用实现

为了更有效更安全的对数据库进行操作,系统采用存储过程的方式进行数据库访问。

系统位置专门构建了OperateDatabase类,用于对存储过程进行调用,其结构如图39。

图310展示存储过程调用的相关函数。

图39OperateDatabase类结构

图310OperateDatabase存储过程部分

…………(注:

代码请拷贝文件,不要像这个文档一样用截图!

3.8配置功能模块实现

配置功能模块是用于实现用户的自定义邮件系统配置,只有用户配置了正确的邮件信息,用户才可能正常的发送邮件。

因此在用户配置前,需要先验证配置信息是否有效,见图31936行代码,它是用于判断用户是否已经测试了配置信息(用户测试配置信息后,会把配置信息写入Session,如果没有测试则Session中的对应信息为空),然后通过Email类把所有的信息保存在数据库中。

图319用户自定义邮件系统配置

4系统重难点

本系统的核心难点在于如何发送邮件和数据库的多表查询,为了实现以上功能,做了大量充分的实验,最终得以正常完成项目。

4.1邮件发送

通过资料查找,发现可以通过.netframework4.0自带的邮件发送功能进行邮件发送。

首先需要构建一个MailMessage的数据结构,里面包含邮件发送的一般信息。

其次,构建SmtpClient,并配置好对应的账户信息和服务器信息。

通过SmtpClient就可以正常的发送邮件信息了。

其核心代码如下所示。

·

ystem.Net.Mail.MailMessagemsg=newSystem.Net.Mail.MailMessage();

//增加收件人的地址

msg.To.Add("

823408742@.qqcom"

);

//发件人的地址

msg.From=newMailAddress("

T_feiya@"

"

title"

System.Text.Encoding.UTF8);

msg.Subject="

测试自动发邮件是否成功,成功了请回复我!

"

;

//邮件标题

msg.SubjectEncoding=System.Text.Encoding.UTF8;

//邮件标题编码

msg.Body="

测试刚开发的群发邮件系统,收到请回复!

//邮件内容

msg.BodyEncoding=System.Text.Encoding.UTF8;

//邮件内容编码

msg.IsBodyHtml=true;

//是否是HTML邮件

msg.Priority=MailPriority.High;

//邮件优先级

//用到发送邮件的smtp主机

//发送的邮箱账号密码。

这肯定得写你自己的,我用的163送邮件

SmtpClientclient=newSmtpClient();

//验证发送邮件人的身份要正确的

client.Credentials=newSystem.Net.NetworkCredential("

T_feiya@"

********"

client.Host="

try

{

client.Send(msg);

}

catch(System.Net.Mail.SmtpExceptionex)

Console.Write(ex);

·

通过以上代码就可以完成邮件的发送功能。

在实现以上功能之前,需要对邮件系统有大致的了解,并能理解一些基本的术语,不然是不能完成该部分功能的。

4.2数据库多表查询

在邮件管理部分需要查询数据库的邮件信息,但是同时需要查询用户信息表、邮件信息表和邮件类别表。

当查询某一用户的邮件详细信息时,就会发现邮件列表中存放的邮件类别不是邮件类别名称而是对应与邮件列表的标识,如果邮件没有分类,则采用一般方式就查不出该条数据,这显然是不正确的。

为了能在客户端正常显示所有邮件信息,那么就应该应用到较为复杂的连接查询进行数据访问。

本系统在解决此问题时采用了如下代码:

<

asp:

SqlDataSourceID="

SqlDataSource1"

runat="

server"

ConnectionString="

<

%$ConnectionStrings:

MailSystemConnectionString2%>

SelectCommand="

SELECTa.mailTo,a.mailHead,a.createTime,a.mailId,b.mailType

FROM

mail_typeASbrightouterjoin

mail_listASa

ON(a.typeId=b.typeId)

WHERE(a.isSend=@isSend)AND(a.userId=@userId)"

>

SelectParameters>

ParameterDefaultValue="

0"

Name="

isSend"

Type="

String"

/>

SessionParameterDefaultValue="

userId"

SessionField="

userID"

Int32"

/SelectParameters>

/asp:

SqlDataSource>

该代码是构建一个数据源,获取用户发送邮件信息列表。

其中需要访问到邮件的收件人、标题、创建时间、邮件类别,采用了联合查询的方式获取数据。

总结

本系统采用.NETFramework4.0框架,前台通过拖ASP控件的方式进行开发,选用.NET语言作为开发语言,利用快速开发的简易代码编写模式,开发工具采用VisualStudio2010,而后台使用的数据库是SQLSERVER2005,IIS7.0作为测试服务器。

本系统提高了用户获取信息的及时性,使用户更加方地通过WEB浏览器发送邮件。

本系统主要的特点有:

(1)用户可以配置个性化的邮件服务器。

所有用户不必采用统一的邮箱,所有的邮箱均可自行配置。

(2)本系统具有良好的扩展性,在后续的开发中可以将其开发为同时支持多个三方邮件服务器,从而更方便用户的使用。

系统还是有很多不完善的地方。

系统的美工总体来说做的不到位,由于个人不擅长做美工,所以页面效果比较简单,不是很完美。

同时为了赶时间,系统的功能并不完善。

通过对简易邮件系统的建设,基本上熟悉了ASP.NET的知识,同时也加深了团队协作能力,这为以后的工作提供了弥足宝贵的财富。

参考文献

[1]陈冠军,等.完全手册ASP.NETAJAX实用开发详解[M].电子工业出版社,2008

[2]张正礼,王坚宁.ASP.NET4.0从入门到精通[M].北京:

清华大学出版社,2011

[3]谢维成,苏长明.SQLserver2005实例精讲[M].清华大学出版社,2008

[4]温谦.HTML+CSS网页设计与布局从入门到精通[M].人民邮电出版社,2008

[5]协议分析网.POP3邮局协议-版本3[EB/OL].

致谢

在此感谢老师,在这一学期中,老师认真教学,我们获得巨大的知识和各种帮助。

同时老师无比认真的精神深深的感染了每一个人,将是我们学习的榜样。

在团队合作中,小组成员热心讨论,积极合作最终高效的完成项目的开发。

没有团队成员的热情合作,项目是不可能正常完成的,在此感谢各位成员,谢谢你们的认真和合作精神。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1