目录
1 绪论 ......................................................................................................................................................... 1
1.1 研究背景 ....................................................................................................................................... 1 1.2 研究目的 ....................................................................................................................................... 1 1.3 研究内容 ....................................................................................................................................... 1 1.4 技术介绍 ....................................................................................................................................... 2
1.4.1 .NET Framwork 概述 ..................................................................................................... 2 1.4.2 C#开发语言的特点 ......................................................................................................... 3 1.4.3 数据库SQL Server2000 ................................................................................................ 4
2 可行性研究 ......................................................................................................................................... 5
2.1 经济可行性 .................................................................................................................................. 5 2.2 技术可行性 .................................................................................................................................. 5 2.3 运行可行性 .................................................................................................................................. 5 2.4 法律可行性 .................................................................................................................................. 5
3 需求分析 .............................................................................................................................................. 6
3.1 用户需求 ....................................................................................................................................... 6 3.2 信息需求 ....................................................................................................................................... 6 3.3 安全性和完整性需求 ................................................................................................................ 7 3.4 功能需求 ....................................................................................................................................... 7 3.5 数据库需求分析 ......................................................................................................................... 8 3.6 角色识别 ....................................................................................................................................... 9 3.7 用例识别 ....................................................................................................................................... 9 3.8 用例描述 ..................................................................................................................................... 10
3.8.1 用户注册 ......................................................................................................................... 10
3.8.2 用户登录 ......................................................................................................................... 11 3.8.3 注册新班级 ..................................................................................................................... 12 3.8.4 查看通讯录 ..................................................................................................................... 14 3.8.5 发表留言 ......................................................................................................................... 15 3.8.6 查看留言 ......................................................................................................................... 16 3.8.7 编辑留言 ......................................................................................................................... 17 3.8.8 删除留言 ......................................................................................................................... 18 3.8.9 留言固顶 ......................................................................................................................... 19
4 总体设计 ............................................................................................................................................ 21
4.1 设计思想 ..................................................................................................................................... 21 4.2 系统功能模块划分 .................................................................................................................. 21 4.3 功能说明 ..................................................................................................................................... 22 4.4 静态结构图 ................................................................................................................................ 23
4.4.1 用户注册 ......................................................................................................................... 23 4.4.2 用户登录 ......................................................................................................................... 24 4.4.3 查看通讯录 ..................................................................................................................... 25 4.4.4 注册新班级 ..................................................................................................................... 26 4.4.5 发表留言 ......................................................................................................................... 27 4.4.6 编辑留言 ......................................................................................................................... 28 4.4.7 删除留言 ......................................................................................................................... 30 4.4.8 留言固顶 ......................................................................................................................... 32 4.5 系统流程分析 ........................................................................................................................... 33 4.6 数据库逻辑结构设计 .............................................................................................................. 33
5 详细设计 ............................................................................................................................................ 37
5.1 注册模块设计 ........................................................................................................................... 37
5.1.1 注册界面设计 ................................................................................................................ 37 5.1.2 注册模块功能设计与核心代码 ................................................................................ 38 5.2 登录模块设计 ........................................................................................................................... 39
5.2.1 登录界面设计 ................................................................................................................ 39 5.2.2登录模块功能设计与核心代码 ................................................................................. 39 5.3 主界面模块设计 ....................................................................................................................... 40
5.3.1 系统主界面设计 ............................................................................................................ 40 5.3.2 系统主模块功能设计与核心代码 ............................................................................ 40 5.4 通讯录模块设计 ....................................................................................................................... 41
5.4.1 通讯录界面设计 ............................................................................................................ 41 5.4.2 通讯录模块功能设计与核心代码 ............................................................................ 42 5.5 留言模块设计 ........................................................................................................................... 42
5.5.1 留言管理界面设计 ....................................................................................................... 42 5.5.2 留言管理模块功能设计与核心代码 ....................................................................... 43 5.6 创建班级模块设计 .................................................................................................................. 44
5.6.1 创建班级界面设计 ....................................................................................................... 44 5.6.2 创建班级模块功能设计与核心代码 ....................................................................... 46 5.7 留言固顶模块设计 .................................................................................................................. 49
5.7.1 留言固顶顶界面设计 .................................................................................................. 49 5.7.2 留言固顶模块功能设计与核心代码 ....................................................................... 50
6 软件测试 ............................................................................................................................................ 51
6.1 测试的定义和目的 .................................................................................................................. 51
6.2 单元测试和集成测试 .............................................................................................................. 51
6.2.1 单元测试 ......................................................................................................................... 51 6.2.2 集成测试 ......................................................................................................................... 52 6.3 系统模块测试结论 .................................................................................................................. 53
结论 ............................................................................................................................ 错误!未定义书签。 致谢 ............................................................................................................................ 错误!未定义书签。 参考文献 ................................................................................................................................................. 54
1 绪论
1.1 研究背景
二十一世纪是信息时代,计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。校友录作为一种方便校友之间联系的实用系统便应运而生。校友录为校友之间进行交流和联系提供了一个平台。目前网络上已经存在很多校友录,像ChinaRen、网易、新浪、5460等,它们都有各自的特色。比如: ChinaRen的校友录,速度快;5460的功能比较新颖;新浪的功能全面,界面花哨。在这个校友录盛行的时代本人通过和校友交流,总结他们的意见和建议,设计了一个科大校友录系统,以友好的界面,快捷的操作完成校友录的基本功能。
1.2 研究目的
随着当今社会的高速发展,人类生活的节奏性加强,人和人之间的见面和交往的减少,特别是同学毕业以后的交流机会也在逐渐的减少,所以一个好的校友录系统越来越被广大的校友所接受。校友录系统是利用INTERNET快速,简捷,涉及面广的几大优点将同学之间的距离拉近,它有别于传统的交流方式,它的优点在于可以在任何时间任何地点和同学沟通,节约了时间和人力,提高了信息传递的速率。本校友录系统为校友之间进行交流和联系提供了一个平台。通过提供完善的校友录服务和规范校友录的管理,可以达到增进校友之间、校友与母校之间的感情,方便校友联系。
1.3 研究内容
根据系统的要求,结合SQL Server2000 和Microsoft 新一代的开发工具(Visual Studio.NET )中最经典的C#语言,数据库访问技术为.NET Framework 中的ADO.NET等技术来实现科大校友录的基本功能。本项目的主要模块包括:用户信息管理、班级信息管理和留言信息管理等功能。
在做设计之前,本人先对所选课题当前的情况进行了了解,并搜集了设计中需要用到的各种技术。然后对课题进行了需求分析和总体分析,概括了一下系统的主要功能和性能。然后进入了系统的总体设计,根据用户的需求对系统整体上的功能设计和系统数据库的设计,从需求分析到概要设计再到逻辑设计进行了分析。最后便是功能模块的实现,主要模块的具体实现。这些任务完成之后,还对设计做了一些测试,包括单元测试和集成测试。该设计针对校友录系统的要求,将系统分为三个模块,分别是:用户信息管理、班级信息管理和留言信息管理,每一个模块针对一个子系统,并对这些子系统逐个实现需求。
1.4 技术介绍
随着科学技术的迅速发展,大量的新理论和新技术涌向互联网。各行个业的人们逐渐意识在互联网上有价值的信息的重要性。Internet(互联网)的出现,大量的信息通过它迅速传播,突破了原有的通信方式。电子商务网站正是由于这种信息的快速流动和资源的大量集成而悄然崛起,并以惊人的速度发展着。其中多数的商务网站是以.net 框架来开发的。
1.4.1 .NET Framwork 概述
.NET 平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。它为开发数据库应用程序提供了很好的数据环境和强大的开发工具。.NET Framwork运行库(common Language Runtime,简称CLR)为C#代码执行和管理提供了支持,并且.NET Framwork 提供的类库简单化了C#编程。
.NET Framwork (.NET 框架)是整个.NET平台的基础结构[1]。.NET Framwork 除了以管理代码的执行(包括启动代码,给它赋予相应的权限,为它分配内存以存储其数据,帮助释放不在需要的内存和资源等)以外,还提供了一个非常复杂的类库,以便在Windows上执行大量的任务。对于这些任务,它继承了双重角色:管理代码的执行和为代码提供服务。
从技术层面来讲,.NET Framwork 主要包括两个最基本的内核,即通用语言运行库CLR和.NET Framwork 基本类库,它们为.NET平台的实现提供了底层技术支持。
.Net是微软公司下一代的战略核心[2]。而.Net2.0 是Net的一个新版本,是一个开发和运行软件的新环境,这个新环境提供了许多基于Web(网页)的服务,更加易于使用,使得多种语言之间的基于组件的交互访问更加方便。它是一个革命性的新平台,建立在开放的Internet协议和标准之上,采用许多新的工具和服务用于计算和通信。ASP.net2.0是.Net2.0的重要组成部分,它是ASP(Active Server Pages)的后继版本。它是和它的前期版本都是构建新一代动态网站和基于网络的分布式应用技术,为网站设计人员和网络程序员提供了简便快捷的开发方法。ASP.net2.0向后兼容ASP,运行在.Net2.0平台上,以前的ASP脚本几乎不经修改就可以在.Net2.0平台上运行,从而保护了企业先前的投资。
自从Internet出现以来,无连接的工作场景日益普及,同时随着手持设备的增加,当与服务器或数据库断开连接时,仍可以通过膝上型电脑、笔记本电脑和其他便携式电脑使用应用程序。这种无连接环境可以在任何时间方便地工作,也可以随时连接数据源来处理请求,大大提高了应用程序的可缩放性和性能。
ADO.NET正是为解决Web和分布式应用程序的问题而设计的,它超越了ADO。它用Microsoft.NET Framework的托管代码创建,这意味着它也可能享受到类型安全和内存管理环境的种种好处,这都使它成为优于ADO的一个更为稳健的数据库访问平台。作为一种数据库访问框架,ADO.NET进行了重新设计,使它能处理当今N层的Web应用程序所要求的非连接数据体系结构[3]。 1.4.2 C#开发语言的特点
C#是最流行的开发语言。相比较其他语言,其具备简单、方便、快速开发等优点,主要特色如下所示。
1.C#语法与C、C++类似,适合刚毕业的学生入门。
2.C#支持面向对象开发,并有.NET底层类库的支持,可以轻松创建对象。 3.C#的高开发效率。C#的开发工具VS 2005支持拖放式添加控件,开发人员可以轻松完成桌面的布局。
4.C#通过内置的服务,使组件可以转化为XML网络服务。这样就可以被其他程
序调用,也可以被网络上其他机器的其他程序调用,实现了一次创造、重复利用的高效开发模式。
5.XML语言是一种最流行的数据描述语言。C#提供了对XML的强大支持,可以轻松地创建XML,也可以将XML数据应用到程序中。
6.自动的资源回收功能,不用再像C++一样,为程序运行中的内存管理伤脑筋。 7.类型安全是编写代码优先考虑的问题。C#提供的类型安全机制,可以避免一些常见的类型问题,如类型转换、数组类型越界等。
在.NET框架中,C#可以自由地和其他语言(VB、J#等)进行转换。 1.4.3 数据库SQL Server2000
SQL Server是Microsoft公司推出的适用于大型网络环境的数据库产品,它一经推出,很快得到了广大用户的积极响应并迅速占领了NT环境下的数据库领域,成为数据库市场上的一个重要产品。Microsoft公司开发和推广的关系数据库管理系统(DBMS),它是基于SQL客户/服务器(C/S)模式的数据库系统。它是为创建电子商务、数据仓储解决方案而设计的关系型数据库管理与分析系统,提供了功能全面、操作简单的图形化界面。SQL Server 2000的出现极大地推动了数据库的应用和普及,SQL Server 2000无论在功能上,还是在安全性、可维护性和易操作性上都较以前版本有了很大的提高。由于Visual C#与SQL Server2000都是由Microsoft公司出品的,所以在Asp.NET应用的后台程序中有专门针对SQL Server2000的数据应用类库供用户使用,方便了用户对数据的应用[4]。
2 可行性研究
2.1 经济可行性
现在,计算机的价格已经十分低廉,性能却有了长足的进步,并且网络的普及也越来越广。本系统的开发体现了以下几个特点。
1.本系统的运行可以给广大同学及老师带来很大的便利; 2.本系统的运行可以节省许多资源;
3.本系统的运行可以大大的提高大家联系和学习的效率; 所以,本系统在经济上是可行的。
2.2 技术可行性
本系统的开发我利用SQL Server 2000作为本系统的作为后台数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持[5]。
使用Visual C#.NET作为本系统的开发环境,保证了模块化要求,而模块化的提高,非常有利于以后对新系统的扩展与修改。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
2.3 运行可行性
本系统为一个网上在线班级通讯录系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
2.4 法律可行性
本系统纯为私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。
3 需求分析
对于系统的开发而言系统的需求分析工作非常重要,它规定了系统设计统一的最基本的要求,需求分析的结果是软件开发的基础,系统设计实现、测试的依据。
需求分析是在可行性分析研究的基础上,确定新项目必须完成的工作,既对项目最终目标提出完整准确清晰和具体的要求。其具体任务是:确定用户对新系统的综合要求,分析系统的数据要求,确定系统开发计划。
3.1 用户需求
随着网络信息时代的来临,互联网应用越来越广泛,从网上获取并且发布信息已成为现代计算机应用的一大特色。资源共享,使得我们足不出户都能得到想要的资料。根据对中国主流IT用户调查的结果显示,登录校友录是网民上网主要的活动内容,62.0%,这反映出网络用户对信息、沟通、的极大需求。辽宁科技大学校友录系统可以借助于遍布全球的因特网进行,在Internet上可以通过注册用户查找到自己的到所在班级,查看班级的留言和通讯录,为校友提供一个相互联系,相互交流的平台。
校友录系统正成为人们的研究热点之一。Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得联系方式突破了时间和空间的限制。现在网络技术逐渐渗入社会生活各个层面,传统的联系方式必将面临着变革,而web校友录系统则是一个很重要的发展趋势。
3.2 信息需求
用户进入系统应该进行身份验证。如果用户没有注册,必须先行注册才可进入辽宁科技大学校友录系统,注册时用户名不可重复,注册时系统应该提供检查用户名是否重复。
辽宁科技大学校友录系统主要是用户注册后通过登录可以进行查找班级或注册新班级,查看通讯录,查看留言、发表留言、编辑留言、删除留言,如果是以管理员身份登录的还可以对留言进行留言固顶[6]。
3.3 安全性和完整性需求
1.安全性需求
用户权限安全性:系统把注册新班级的用户默认设为管理员。管理员进行各种操作,必须进行管理员身份验证。
系统的处理过程严格按照事务(Transaction)处理机制执行,对异常操作通常发出警告然后取消操作。同时对输入首先进行合法性检查不合法则无法进行操作,最大限度的满足数据的安全,保证系统的稳定。
2.完整性需求
本系统要在实时传送数据的过程中保证数据不会被更改,数据传递时不会出现缺失。
3.用户自定义需求
科大校友录系统对一些数据如登录帐号、密码等要进行数据格式的限定,以保证数据格式的一致性。
3.4 功能需求
1.登录模块
用户在对本系统做其它操作之前必须先登录。 2.注册模块
这里主要是用户填写自己的一些基本资料,方便其他用户能够在本系统中查找到认识的同学,从填写的基本信息中找到联系方式。
3.班级查询
通过注册过的用户可以在辽宁科技大学校友录系统中创建班级,查找一些已经存在的班级,和添加没有存在的班级。用户所在班级,可以在班级中方便的找到校友。
4.通信录
用户可以在本系统的通讯录处查看同班同学的基本信息。
5.留言板
用户可以在留言板上发表留言,编辑留言和删除留言。管理员登录系统时还可以对已发表的留言进行留言固顶功能。
3.5 数据库需求分析
辽宁科技大学校友录系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、省份信息、地区信息、班级信息、班级类型信息、学校信息、留言信息,各个部分的数据内容又有内在的联系。针对系统的数据特点,可以总结出如下的需求。
1.用户信息可以分为管理员、普通用户。 2.省份信息记录学校所在的省的信息。 3.地区信息记录学校所在的地区。 4.学校信息是记录班级所在的学校。 5.班级信息是记录班级的详细信息。 6.班级类型信息是记录班级的类型。 7.留言信息记录班级内部留言的信息。
经过上述系统功能分析和需求总结,设计如下的数据项和数据结构。 1.用户信息,包括用户编码、用户账号、密码等数据项。 2.省份信息,包括省份编码、省份名称等数据项。
3.地区信息,包括地区编码、地区名称和对应省份编号等数据项。 4.学校信息,包括学校编号、省份编号、学校地址等数据项。 5.班级信息,包括班级编号、班级管理员、班级数量等数据项。
6.班级类型信息,包括班级类型编号、类型名称等数据项。 7.留言信息,包括留言编号、留言内容、留言时间等数据项。
3.6 角色识别
角色识别的任务是找出所有可能与系统发生交互行为的外部实体,对象和系统。它们的行为不受系统控制,但可以提供输入给系统(即使用系统的功能,或者能够响应系统的服务请求,为系统提供服务的接口)。
在前面的系统描述中可知,用户可以直接访问系统[8]。尚未注册过的用户在登录系统时需要注册,这样的用户我们称之为新注册用户。新注册用户在查找班级时如果注册新班级,他将默认为管理员。如果没有新注册班级,他将为一般用户。
综上所述,本系统实际只包括四个角色:未注册用户, 新注册用户,管理员,用户。如图3.1所示 。
用户(from Actors)未注册用户(from Actors)新注册用户(from Actors)管理员(from Actors)
图3.1 校友录系统的参与者
3.7 用例识别
在角色的基础上,可以识别与角色相关的用例,从而得到系统的用例图, 如图3.2和图3.3所示。
查看通讯录< 图3.2 用户用例图 编辑留言注册新班级查看班级留言< 图3.3 管理员用例图 3.8 用例描述 3.8.1 用户注册 1.用户注册用例需求规约,见表3.1所示。 表3.1 用户注册用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 用户注册 未注册用户 用户注册过程 用户访问用户注册页面 用户将进入系统主页面 主事件流 用户 系统 1.进入用户注册界面 2.用户输入用户名、密码及其他信息 3检查用户名是否合法 4.在数据库中添加新的用户记录 5.转到校友录系统的主页面 异常流 异常说明 系统处理 系统中已存在相同的用户名 提示用户名已被占用,转入注册界面 2.用户注册用例活动图,见图3.4所示。 未注册用户系统输入用户注册信息否检查用户名是否合法是在数据库中添加新用户是否添加成功提示错误信息否是跳转至校友录系统的主页面 图3.4 用户注册用例活动图 3.8.2 用户登录 1. 用户登录用例需求规约,见表3.2所示。 表3.2 用户登录用例的需求规划 用例名称 参与执行者 描述 用户登录 用户/管理员 用户登录系统过程 前置条件 后置条件 用户点击查看通讯录 将用户的信息放在会话中;显示系统主页面 主事件流 用户 1.进入或转入用户登录界面 2.用户输入用户名和密码 系统 3系统检查用户名是否存在,密码是否正确 4.将用户的信息放在会话中 5.转到校友录系统的主页面 异常流 异常说明 系统处理 系统中不存在该用户名或密码错误 提示用户名或口令错误,转入登陆界面 2. 用户登录用例活动图,见图3.5所示。 用户系统进入用户登录界面填写用户名和密码检查用户登录名和密码是否正确NY将用户名放在会话中提示错误进入校友录系统主页面 图3.5 用户登录活动图 3.8.3 注册新班级 1. 注册新班级用例需求规约,见表3.3所示。 表3.3 注册新班级用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 注册新班级 用户 用户班级注册的全过程 确定学校所属省份、所属地区、及所属学校 无 主事件流 用户 1.输入班级名及入学年份 2.确认信息 系统 3.查找对应学校所属省份和地区 4.将班级名、入学年份、所属省份和地区等信息插入班级信息表 5.更新用户的所在班级 异常流 异常说明 系统处理 数据库插入记录出错 提示错误信息 2. 注册新班级用例活动图,见图3.6所示。 用户系统输入班级名及入学年份根据已选学校查找所属省份和地区将新班级信息插入数据库是否成功插入否是查询用户的所有班级并显示提示错误信息 图3.6 注册新班级用例活动图 3.8.4 查看通讯录 1. 用户通讯录查看用例的需求规划,见表3.4所示。 表3.4 用户通讯录查看用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 用户通讯录查看 用户 用户进入通讯录页面过程 用户点击查看通讯录 将用户将通讯录的信息显示在通讯录页面上 主事件流 用户 1.进入或转入校友录系统主界面 2.点击要查看的通讯录 系统 3.系统显示通讯录的查看结果 异常流说明 异常说明 系统处理 数据库查询出错 提示错误信息 2. 用户通讯录查看用例活动图,见图3.7所示。 用户系统用户点击>>GO 向服务器发送消息获取数据库中的注册信息得到查询结果,返回结果将结果显示出来 图3.7 用户通讯录查看活动图 3.8.5 发表留言 1. 用户发表留言用例需求规划,见表3.5所示。 表3.5 用户发表留言用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 用户发表留言 用户 用户进入主页面查看留言本,发表留言过程 用户点击留言本 用户将新发表的留言显示在班级留言本页面上 主事件流 用户 1.进入或转入用户主页面 2.点击留言本 3.输入要发表的留言主题和留言内容 系统 4.系统检查留言主题和留言内容是否为空 5.将用户的信息放在会话中 6.将发表留言显示到班级留言本中 异常流说明 异常说明 系统处理 主题不能为空,内容不能为空 提示错误信息 2.用户发表留言用例活动图,见图3.8所示。 用户系统输入要发表的留言信息检查信息是否为空是否添加到数据库里提示错误信息添加不成功添加成功提示添加成功 图3.8 用户发表留言用例活动图 3.8.6 查看留言 1. 用户班级留言查看用例需求规划,见表3.6所示。 表3.6 用户通讯录查看用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 用户班级留言查看 用户 用户进入主页面查看班级留言过程 用户点击留言本 用户将班级留言信息显示在留言本页面上 主事件流 用户 1.进入或转入用户主页面 2.点击要查看的留言本 系统 3.系统显示留言本的留言信息 异常流说明 异常说明 系统处理 数据库查询出错 提示错误信息 2.用户班级留言查看用例活动图,见图3.9所示。 用户系统用户点击留言本向服务器发送消息获取数据库中的留言信息是否成功否是得到查询结果,返回结果将结果显示出来 图3.9 用户班级留言查看用例活动图 3.8.7 编辑留言 1. 编辑留言用例需求规划,见表3.7所示。 表3.7 用户编辑留言用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 用户编辑留言 用户 用户进入主页面查看留言本,编辑留言过程 对已发表过的某条留言,点击编辑 所编辑留言显示在班级留言本页面上 主事件流 用户 1.对已发表过的某条留言,点击编辑 4.输入要编辑的留言信息 5.提交留言信息 系统 2. 从数据库中查询留言主题和留言内容 3. 跳转至留言编辑页面,并显示留言信息 6.检查留言主题和留言内容是否为空 7.更新数据库中的留言信息 8.跳转至留言本页面 异常流 异常说明 系统处理 主题不能为空,内容不能为空 提示错误信息 2. 编辑留言用例活动图,见图3.10所示。 用户系统对已发表过的某条留言,点击编辑从数据库中查询留言信息,并显示修改留言信息,并提交否检查留言主题是否非空是否检查留言内容是否为空是更新数据库中的留言信息更新是否成功提示错误信息否是显示所有留言 图3.10 编辑留言用例活动图 3.8.8 删除留言 1. 删除留言用例需求规划,见表3.8所示。 表3.8 删除留言用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 删除留言 用户 用户进入主页面查看留言本,删除留言过程 对已发表过的某条留言,点击删除 无 主事件流 用户 1.对已发表过的某条留言,点击删除 3.确认删除留言 系统 2.跳转至留言删除页面 4.删除数据库中相应留言信息 5.跳转至留言本页面 异常流 异常说明 系统处理 删除异常 提示错误信息 2. 删除留言用例活动图,见图3.11所示。 用户系统对已发表过的某条留言点击删除删除数据库中相应留言信息是否删除成功否是更新班级所有留言 图 3.11 删除留言用例活动图 3.8.9 留言固顶 1. 留言固顶用例需求规划,见表3.9所示。 表3.9 留言固顶用例的需求规划 用例名称 参与执行者 描述 前置条件 后置条件 留言固顶 管理员 管理员进入主页面查看留言本,留言固顶过程 对已发表过的某条留言,点击留言固顶 无 主事件流 用户 1.对已发表过的某条留言,点击留言固顶 3.确认留言固顶 系统 2.跳转至留言固顶页面 4.修该数据库中此条留言的固顶字段为0 5.跳转至留言本页面 异常流 异常说明 系统处理 更新异常 提示错误信息 2. 留言固定用例活动图,见图3.12所示。 管理员系统对已发表过的某条留言点击固顶修改数据库中留言信息表的固顶字段是否修改成功否是更新班级所有留言 图 3.12 留言固顶用例活动图 4 总体设计 4.1 设计思想 本系统基于.NET Framwork架构,在.NET 平台上采用Visual C#编程语言,将面向对象的设计模式应用到整个系统,使用 SQL Server 2000数据库保存用户的登陆数据信息,在具体制作中,用Visual C#来实现.NET架构,ASP.NET Web应用程序与数据库技术结合,用户使用浏览器可以随意查询自己需要的信息[6]。这样提高了网页的互动性,使整个系统能更好的为用户服务。优势在于: 1.运行速度快; 2.其次,效率高,内存人为释放资源; 3. 便于系统功能的扩展与维护。 所有的模块由Visual C#来开发,是因为它的优势在于它是面向对象语言,适合于web开发; Visual C#自身具有垃圾回收机制,不再需要编程人员管理内存。 4.2 系统功能模块划分 本校友录系统具有用户信息管理、班级信息管理和留言信息管理等功能。根据系统功能的需求分析,把该系统的功能划分为3大模块。 1.用户信息管理 2.班级信息管理 3.留言信息管理 辽宁科技大学校友录得功能模块图,如图4.1所示。 校友录系统用户信息管理班级信息管理留言信息管理用户注册功能模块用户登录功能模块创建班级功能模块维护班级功能模块发表留言功能模块编辑留言功能模块查看留言功能模块删除留言功能模块 图4.1 系统功能模块图 4.3 功能说明 该系统是专门用于用户注册、登录、查找班级、查看通讯录、查看留言、编辑留言等操作的应用程序。用户进行有效的身份验证登录后,进入辽宁科技大学校友录系统,就可以进行以上的操作。 主要划分以下几个模块: 1.用户注册功能模块:用户可以在此注册。 2.用户登录功能模块:需要键入用户的帐号和密码。 3.创建班级功能模块:用户可以创建班级,首次创建默认为管理员。 4.维护班级功能模块:辽宁科技大学校友录系统的设计人员可以在数据库中进行班级维护。 5.发表留言功能模块:用户可以在所在班级里发表留言。 6.编辑留言功能模块:用户可以对已发表的留言进行编辑留言。 7.查看留言功能模块:用户可以查看班级已发表的留言。 8.删除留言功能模块:用户可以删除已发表的留言。 4.4 静态结构图 4.4.1 用户注册 1.注册类图,如图4.2 所示。 PageSqlCommandRegSqlDataReaderSqlConnection ArrayList 图4.2 注册类图 Reg类继承了Page,Reg依赖SqlCommand类、SqldataReader类、Connection类和ArrayList接口。并调用其方法。 2.注册用例顺序图,如图4.3所示。 图4.3 注册用例顺序图 4.4.2 用户登录 1.登录类图,如图4.4 所示。 SqlConnection PageWebForm1 SqlCommandSqlDataReader 图4.4 登录类图 WebForm1继承Page类,依赖SqlCommand类、SqldataReader类和Connection类并调用其方法。 2.登录用例顺序图,如图4.5所示。 图4.5 登录用例顺序图 4.4.3 查看通讯录 1.查看通讯录类图,如图4.6 所示。 PageSqlConnectionAddrList SqlDataAdapterDataSet 图4.6 查看通讯录类图 AddList类继承了Page类,依赖SqlDataAdapter类、DataSet类和Connection类并调用其方法。DataSet的对象作为SqlDataAdapter的一个参数。 2. 查看通讯录用例顺序图,如图4.7所示。 图4.7 查看通讯录用例顺序图 4.4.4 注册新班级 1.注册新班级类图,如图 4.8所示。 PageFind_cl Find_cl2Find_cl3 Find_endSqlDataAdapterDataSet SqlDataReader SqlCommand SqlConnection图4.8 注册新班级类图 Find_cl类、Find_cl2类、Find_cl3类、Find_end类都继承Page类,Find_cl类依赖SqlCommand类、SqldataReader类和Connection类并调用其方法。Find_cl2类依赖SqlDataAdapter类、DataSet类、SqlCommand类、SqldataReader类和Connection类并调用其方法。Find_cl3类依赖SqlDataAdapter类、DataSet类、SqlCommand类、SqldataReader类和Connection类并调用其方法。Find_end类依赖 DataSet类、SqldataReader类、Connection类和Connection类并调用其方法。 2.注册新班级用例顺序图,如图4.9所示。 用户登陆界面模块 : 用户1.输入班级名及入学年份2.确认信息3.提交输入信息用户登录后台处理模块数据模块4.查询学校所在省份和地区5.插入新班级信息6.查询用户所有班级7.显示所有班级8.成功注册新班级 图4.9 注册新班级用例顺序图 4.4.5 发表留言 1.发表留言类图,如图4.10 所示。 PageSqlCommandBoard SqlDataAdapterSqlConnection SqlDataReaderDataSet 图4.10 发表留言类图 Board类继承了Page类,依赖SqlDataAdapter类、DataSet类、SqlCommand类、 SqldataReader类和Connection类并调用其方法。DataSet的对象作为SqlDataAdapter的一个参数。 2.发表留言用例顺序图,如图4.11所示。 发表留言模块发表留言后台模块数据模块 : 用户1.输入要发表的留言信息和留言主题2.传递发表留言信息3在数据库中添加发表的留言信息4.查询班级所有留言信息5.显示班级所有留言信息6.发表成功 图4.11 发表留言用例顺序图 4.4.6 编辑留言 1.编辑留言类图,如图4.12 所示。 PageSqlConnection EditMsg SqlDataReaderSqlCommand 图4.12 编辑留言类图 EditMsg继承Page类,依赖SqlCommand类、SqldataReader类和Connection类并调用其方法。 2.编辑留言用例顺序图,如图4.13所示。 查看留言模块查看留言后台模块编辑留言模块编辑留言后台模块数据模块 : 用户1.选择需要编辑的留言2.传递留言信息3.根据留言信息查找留言4.返回留言查找结果5.输入要修改的留言内容和留言主题6.提交修改后的留言信息7.更新留言信息8.查询班级的所有留言信息9.显示班级所有留言信息10.修改成功 图4.13 编辑留言用例顺序图 4.4.7 删除留言 1.删除留言类图,如图4.14 所示。 PageSqlConnectionDelMsg SqlDataReaderSqlCommand 图4.14 删除留言类图 DelMsg继承了Page类,依赖SqlCommand类、SqldataReader类和Connection类并调用其方法。 2.删除留言用例顺序图,如图4.15所示。 查看留言模块 : 用户1.选择需要删除的留言删除留言模块删除留言后台模块数据模块2.传递要删除的留言信息3.确认删除留言4.提交信息5.从数据库中删除对应的留言6.查询班级所有留言信息7.显示所有留言信息8.删除成功 图4.15 删除留言用例顺序图 4.4.8 留言固顶 1.留言固顶类图,如图4.16 所示。 PageSqlCommandLockMsg SqlDataAdapterSqlConnection DataSet SqlDataReader 图4.16 留言固顶类图 2.留言固顶用例顺序图,如图4.17所示。 查看留言模块 : 管理员1.选择需要固顶的留言留言固顶模块留言固定后台模块数据模块2.传递要固顶的留言信息3.确认留言固定4.提交信息5.修改数据库中留言的固顶字段6.查询班级所有留言信息7.显示班级所有留言信息8.留言固顶成功 图4.17 留言固定用例顺序图 4.5 系统流程分析 用户进入该系统,首先看到的是登录页面。注册过的用户通过输入用户名和密码进入系统首页,从首页中可以注册新班级、查看班级留言、查看通讯录、发表留言、删除留言、编辑留言,其系统流程图,如图4.18 所示。 校友录系统登录入口注册注册新班级查看班级留言查看同学通讯录发表留言功能编辑留言功能删除留言功能留言固顶功能注册新班级 图4.18 系统流程图 4.6 数据库逻辑结构设计 在校友录系统中,首先要创建校友录系统数据库,然后再数据库中创建需要的表和字段。下面分别介绍在校友录信息系统中数据库的设计。在这个数据库管理系统中要建立7张数据表,包括用户信息表、省份信息表、地区信息表、学校信息表、班级信息表、班级类型表和留言信息表。这7张表数据表各字段的意义如表4.1~表4.7所示。 表4.1 用户信息表 Userinfo 字段名称 UserID 数据类型 Bigint 长度 8 允许空 否(主键) 描述 用户编号 UserName UserPwd UserAccount UserClass UserJob Userqq UMobile UTel2 UTel UEmail UAdress Usersex UserBth UserRegDate UZip nvarchar nvarchar nvarchar nvarchar nvarchar Int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar Smalldatetime Smalldatetime nvarchar 16 12 20 20 50 4 50 50 50 50 500 50 4 4 50 表4.2 省份信息表Province 否 否 否 是 是 是 是 是 是 是 是 是 是 是 是 用户名称 用户密码 用户账号 所在班级 工作单位 QQ号 移动电话 宅电 办公电话 邮箱 通讯地址 性别 生日 注册时间 邮政编码 字段名称 PID PName 数据类型 int nvarchar 长度 4 50 表 4.3 地区信息表City 允许空 否(主键) 否 描述 省份编号 省份名称 字段名称 CityID CityProID CityName 数据类型 int Int nvarchar 长度 4 4 500 允许空 否(主键) 否 否 描述 地区编号 所属省份编号 地区名称 表4.4 学校信息表School 字段名称 SID SName SProID SCID SErea Stype Snum SZip Shttp SWho 数据类型 int nvarchar int int nvarchar int int nvarchar nvarchar int 长度 4 50 4 4 50 4 4 50 500 4 表4.5 班级信息表Classinfo 允许空 否(主键) 否 否 否 否 否 否 否 否 否 描述 学校编号 学校名称 所属省份编号 所属地区编号 学校地址 学校类型 学校数量 学校邮编 学校网址 创建者编号 字段名称 CID CSID CPID CityID CName CMangager1 CMangager2 CType Cnum Cgrad 数据类型 int int int int nvarchar nvarchar nvarchar int int int 长度 4 4 4 4 50 50 50 4 4 4 允许空 否(主键) 否 否 否 否 否 否 否 否 是 描述 班级编号 所属学校 所属省份 所属城市 班级名称 管理员编号 副管理员编号 班级类型 班级数量 入学年份 表4.6 班级类型信息表ClassType 字段名称 CTypeID CtypeName 数据类型 int nvarchar 长度 4 50 表4.7 留言信息表Board 允许空 否(主键) 否 描述 类型编号 类型名称 字段名称 BID BTheme BCnt BCID BUID BDate BDelFlag BEiditer BeiditerTime BTop 数据类型 int nvarchar nvarchar bigint int smalldatetime nvarchar nvarchar datetime int 长度 4 400 50 8 4 4 50 50 8 4 允许空 否 否 否 否 否 否 否 否 否 否 描述 留言编号 留言主题 留言内容 所属班级编号 留言者编号 留言日期 删除标识 编辑标识 编辑时间 固顶操作标识 5 详细设计 5.1 注册模块设计 5.1.1 注册界面设计 注册页面包括接受注册条款和声明页面、简要信息页面、详细信息页面和确认信息页面。 注册条款和声明页面简单,这里不在列出。简要信息页面的界面设计如图5.1所示,使用TexBox控件接受用户信息,并通过验证控件对输入信息进行验证。 图5.1 简要信息界面设计 用户注册的详细界面如图5.2所示。该界面获取用户的联系方式等信息。使用TexBox控件、DropDownList控件、Label控件等。 图5.2 用户详细信息界面设计 5.1.2 注册模块功能设计与核心代码 注册模块通过4个Panel控件控制用户注册过程中的各个阶段所显示的不同内容。在用户单击登录页面中的“注册”按钮之后,进入注册页面,此时页面加载,只显示名称为step1的Panel控件step1.Visible=true,即显示用户是否接受服务条款和声明。 当用户单击“我同意”按钮后,名称为step1的panel控件变为不可见,即 step1.Visible=false,而显示名称为是step2的panel控件step2.Visible=true,用户填写注册简要信息后,单击“下一步”按钮,将显示名称为step3的panel控件,step.Visible=true,而其他panel控件则变为不可见。 在系统得到用户名时首先判断用户名是否已经存在。如果存在则显示错误信息,否 则将显示填写用户详细信息的panel控件,即step3。详细内容填写完毕,单击“确定”按钮则显示名称为step4的panel控件。step4的panel控件中的span控件用来显示用户填写的详细信息。当用户确认这些信息后,单击“确定”按钮,就会向UserInfo表中插入一条新的记录。 插入新纪录核心代码: strSQL=\"select UserID from UserInfo where UserAccount='\"+txtAccount.Text.ToString()+\"'\"; objcmd=new SqlCommand(strSQL,objconn); SqlDataReader dr=objcmd.ExecuteReader(); while(dr.Read()) Session[\"UserID\"]=dr[\"UserID\"]; dr.Close(); objconn.Close(); Page.Response.Redirect(\"welcome.aspx\"); 5.2 登录模块设计 5.2.1 登录界面设计 系统登陆界面设计比较简单,主要使用获取用户登录信息的TextBox控件和相应登陆操作的Button按钮控件。设计好的界面如图5.3所示。 图5.3 登录界面设计 5.2.2登录模块功能设计与核心代码 辽宁科技大学校友录系统登陆模块包含登陆系统入口及注册入口。当用户输入登陆信息并单击“登陆”按钮时,后台代码实现用户身份验证。 用户单击“登陆”按钮后,首先创建数据库对象,从Web.config文件中读取数据库连接字符串,打开数据库连接并创建SQL数据库操作语句,该语句执行从UserInfo中查找与用户输入的用户名和密码相同的数据记录并返回该用户编号。定义好SQL语句后,使用SqlCommand命令执行该语句。如果验证成功则进入首页,否则显示错误信息。 登陆身份验证核心代码: strSQL=\"select UserID from UserInfo where UserAccount='\"+txtAccount.Text.ToString()+\"'andUserPwd='\"+txtPwd.Text.ToString()+\"'\"; objcmd= new SqlCommand(strSQL,objconn); SqlDataReader dr= objcmd.ExecuteReader(); if(dr.Read()) { Session[\"UserID\"]=dr[\"UserID\"].ToString(); } Page.Response.Redirect(\"welcome.aspx\"); else { } lblMsg.Text=\"用户名或口令有错!请重新输入!\"; txtPwd.Text=\"\"; 5.3 主界面模块设计 5.3.1 系统主界面设计 注册过的用户成功登录后进入该页面。注册时创建或加入了班级则显示班级信息和创建新班级信息,否则只显示创建新班级信息。该界面使用DataGrid控件来显示班级信息。设计好的界面如图5.4所示。 图5.4 系统主界面设计 5.3.2 系统主模块功能设计与核心代码 用户成功登陆后,将进入系统主模块并显示系统主界面,在本系统中Welcome.aspx文件。该页面主要实现班级信息的数据绑定功能以显给用户方便操作。 本页面主要在页面加载时实现数据绑定到DataGrid控件 DataGrid1.DataSource=ds.Tables[\"ClassInfo\"].DefaultView; DataGrid1.DataBind(); 首先判断用户是否登录,如果没有登录则页面定向到登录页面。通过 Session[“UserID”]获取用户编号,创建数据库连接对象并打开该链接,定义SQL语句查找UserInfo表中对应该用户编号的用户所在班级。 由于该页面中的学校所在省份采用DropDownList控件,该控件的数据需要绑定数据源。 从Procince表读取所有的省份名称,创建数据集,将读取的信息填充到该数据集,然后把数据集的数据添加到DropDoenList空间上。 如果用户所在的班级不为空,则从ClassInfo信息表中读取班级的详细信息,并填充到数据集。为数据集创建ClassInfo,添加A1,A2和A3列并为其赋值。A2为UserInfo信息表中读取的管理员名称。A3为从School数据表中读取的学校名称。把ClassInfo表绑定到DataGrid控件,最后关闭数据连接。 当用户单击“下一步”按钮将定位到查找班级页面即班级注册页面的第一步。 5.4 通讯录模块设计 5.4.1 通讯录界面设计 通讯录界面显示班级内所有成员详细信息,以方便本班级内所有成员来查看。该页面使用DataList控件显示成员信息,其设计好的界面如图5.5所示。 图5.5 通讯录界面设计 5.4.2 通讯录模块功能设计与核心代码 该模块主要实现用户通讯录信息绑定功能,将所在班级所有同学的详细记录绑定到DataList控件上。 通讯录页面加载核心代码: strSQL=\"select * from UserInfo where UserClass LIKE '%\"+strCl2+\"%'\"; SqlDataAdapter da=new SqlDataAdapter(strSQL,objconn); DataSet ds=new DataSet(); da.Fill(ds,\"addrlist\"); DataList1.DataSource=ds.Tables[\"addrlist\"].DefaultView; DataList1.DataBind(); 该页面功能的实现原理是,首先通过Session[“UserID”]是否为空判断用户是否登录。如果未登录,进入登录页面;如果已经登录,通过Request[“CID”]获取班级编号,并将该号码整理为5位。通过读取Web.config配置文件中的数据连接字符串来创建数据连接对象,并打开数据库连接,等待操作。定义SQL语句,从UserInfo表中读取模糊对应班级编号的用户所有信息,并绑定到DataList控件上。 5.5 留言模块设计 5.5.1 留言管理界面设计 该页面包括留言查看和发表留言两个界面。其中,留言查看界面同通讯录界面类似,都使用了DataLIst控件,该界面的设计如图5.6所示。发表留言界面主要是获取用户输入的留言信息,主要使用TexBoxt控件,其设计好的界面如图5.7所示。 图5.6 查看留言界面设计 图5.7 发表留言界面设计 5.5.2 留言管理模块功能设计与核心代码 留言管理模块包括留言信息管理和发表留言两个功能。留言信息管理使用DataList控件绑定留言信息。 该页面加载时,首先判断用户是否登录。登陆后,首先创建数据库连接对象和SQL语句,执行数据库操作,并填充数据集的board表,为board添加新的列。 通过SQL语句从UserInfo表中读取对应Board表中Bediter字段内容的UserName字段,处理后赋值给editinfo列。 班级管理员具有将帖子固顶的功能,首先从ClassInfo表中读取对应班级编号记录中的Cmanager1和Cmanager2字段内容,如果成功读取,则通过for循环语句为列imgur1和Btop赋值。 管理员和帖子作者都可以对该贴执行添加、编辑和删除操作,首先判断用户是否为帖子作者或管理员。如果是管理员或作者,就为editur1,delur1字段添加内容。 用户留言后,单击“提交”按钮将触发发表留言事件。 发表留言事件响应核心代码: protected void btnOK_Click(object sender, System.EventArgs e) { objconn =new SqlConnection(ConfigurationSettings.AppSettings[\"connstr\"]); objconn.Open(); strSQL=\"Insert INTO Board(BTheme,BUID,BCnt,BDelFlag,BCID) Values('\"+txtTheme.Text.Replace(\"<\nbsp;\").Replace(\"\\n\nt.Text+\"','0',\"+Page.Request[\"CID\"].ToString()+\")\"; objcmd=new SqlCommand(strSQL,objconn); objcmd.ExecuteNonQuery(); objcmd.Dispose(); objconn.Close(); Page.Response.Redirect(\"board.aspx?CID= \"+Page.Request[\"CID\"].ToString()); } 5.6 创建班级模块设计 5.6.1 创建班级界面设计 创建班级界面具有创建班级和查找班级功能。该页面分为4个部分。首先是确定查找区域,从该界面用户选择学校所在地区并可以输入查询关键字直接查询该校。设计好的界面如图5.8所示。 图5.8 确定查找区域界面设计 接下来,如果找到符合条件的学校则通过DataGrid控件来显示该学校信息,否则显示“没有找到符合您要求的学校”。该页面中还包括注册新学校的功能,通过TextBox控件获取用户输入的学校信息,其设计好的界面如图5.9所示。 图5.9 查找结果和注册新学校页面界面设计 单击图5.9中的“下一步”按钮则进入显示该学校班级信息及创建班级页面。该页面 通过DataGrid控件显示属于该校的所有班级信息,并可以通过TextBox控件获取用户输入的班级信息,其设计好的界面如图5.10所示。 图4-10 创建班级页面界面设计 单击图5.10中的“下一步”按钮,进入注册新班级的最后一步。该步骤只是实现库的 操作,没有任何界面设计。 5.6.2 创建班级模块功能设计与核心代码 单击系统主界面中的注册新班级的“下一步”按钮将进入确定查找学校所在区域页面。该页面加载时要为两个dropDownList控件添加项目。 页面加载时首先判断用户是否登录。如果登录则为名称为ddlSchtype的 DropDownList控件添加项目。名称为ddlScheity的DropDownList控件的项目绑定数据库中City表的内容。 通过ULR传输的参数,首先定义三个传输参数P1,P2 ,并为它们赋值。最后页面定位到新班级注册的第二步,并传输这两个参数。第二步即查找和创建学校页面,该页面加载时要为DataGrid控件添加数据源。 首先判断用户是否登录。确认登录后,创建数据库连接对象 和SqL字符串。该SQL语句从School,Province,ClassType和City表中获取DataGrid控件绑定的数据信息,将数据填充到数据集作为DataGrid控件的数据源。关闭数据库连接对象。 单击“下一步”按钮将响应创建新的学校事件,获取用户输入的学校信息,通过SQL语句将该条记录插入到school表中。 创建新学校核心代码: protected void btnNext_Click(object sender, System.EventArgs e) { objconn=new SqlConnection(ConfigurationSettings.AppSettings[\"connstr\"]); objconn.Open(); strSQL=\"INSERT INTO School(SName,SProID,SCID,SErea,SType,SNum,SZip,SHttp,SDelFlag,SWho) VALUES('\"; strSQL+=txtSchname.Text+\"',\"; strSQL+=Page.Request[\"PID\"].ToString()+\()+\strSQL+=txtSchzip.Text+\"','\"+ txtSchhttp.Text+\"','0',\"+Session[\"UserID\"].ToString()+\")\"; objcmd=new SqlCommand(strSQL,objconn); objcmd.ExecuteNonQuery(); objcmd.Dispose(); strSQL=\"select SID from School where SWho=\"+Session[\"UserID\"].ToString()+\" ORDER BY SID DESC\"; } objcmd=new SqlCommand(strSQL,objconn); dr=objcmd.ExecuteReader(); dr.Read(); strUrl=\"find_cl3.aspx?SID=\"+dr[0].ToString(); objconn.Close(); Page.Response.Redirect(strUrl); 创建学校的核心代码中SQL语句比较长,通常字符串连接操作定义了字符串strSQL,该字符串的含义是向数据库中插入一条新的记录。插入记录之后,strSQL字符串开始了它的新使命,就是选择School表中Seession[“UserID”]相同记录的学校编号,并通过Ur1将该编号传递到班级注册的第三步。 第三步为查找班级和创建班级页面。页面加载时查找数据库中的对应Ur1传输过来的学校编号参数的班级信息,如果查找到结果就绑定到DataGrid控件上并显示出来。 查找班级和创建班级页面加载时首先判断用户是否登录。确认登录后,创建数据库连接并从ClassInfo数据表中获取信息,接着将这些信息填充到数据集的c1表中,并为c1表创建t-name,m1和m2数据库字段。然后通过for循环语句为为这三个字段赋值,并将该表现试图DataGrid控件的数据源,最后关闭数据库连接。 用户单击“下一步”按钮实现创建新班级的功能,该功能向ClassInfo数据表中插入一条新的记录。 创建新班级核心代码: protected void btnNext_Click(object sender, System.EventArgs e) { string PID=\"\";string CityID=\"\";string CTypeID=\"\"; objconn=new SqlConnection(ConfigurationSettings.AppSettings[\"connstr\"]); objconn.Open(); strSQL=\"select SProID,SCID,SType from School where SID=\"+Page.Request[\"SID\"].ToString(); objcmd=new SqlCommand (strSQL,objconn); dr=objcmd.ExecuteReader(); while(dr.Read()) { PID=dr[0].ToString(); CityID=dr[1].ToString(); CTypeID=dr[2].ToString(); } dr.Close(); objcmd.Dispose(); strSQL=\"Insert into classinfo (CName,CPID,CityID,CSID,CDelFlag,CManager1,CType,Cnum,Cgrad) Values('\";strSQL+=txtClname.Text+\"',\"+PID+\ID\"].ToString()+\ad.Text.ToString()+\")\"; objcmd=new SqlCommand(strSQL,objconn); objcmd.ExecuteNonQuery(); objcmd.Dispose(); strSQL=\"select CID from ClassInfo where CManager1=\"+Session[\"UserID\"].ToString()+\" ORDER BY CID DESC\"; objcmd=new SqlCommand(strSQL,objconn); dr=objcmd.ExecuteReader(); dr.Read(); } strUrl=\"find_end.aspx?CID=\"+dr[0].ToString(); objconn.Close(); Page.Response.Redirect(strUrl); 创建班级的核心代码片段首先通过SqlCommand命令获取省份编号、接着通过SQL语句获取班级编号并将该编号通过Ur1传输到下一步页面,并关闭数据库连接。 最后一步主要完成更新UserInfo表中的班级名称字段。 判断用户是否登。确认登录后,从Ur1传输参数中获取班级编号,从数据库中读取对用户的班级编号。如果该用户的原始编号为空,则将从Ur1获取的班级编号赋给strOldCl参数更新到UserInfo数据表。最后定位到系统主界面。 至此,创建班级功能模块已经设计完毕。 5.7 留言固顶模块设计 5.7.1 留言固顶顶界面设计 当班级管理员在留言管理界面中单击“固顶”操作时,则进入留言固顶界面。该界面 主要通过DataList控件显示留言信息。设计好的界面如图5.11所示。 图5.11 留言固顶界面设计 对于已经固顶的留言信息单击“取消固顶”操作将进入取消固顶界面。该界面同留 言固顶界面类似,这里不再列出。 5.7.2 留言固顶模块功能设计与核心代码 如果用户身份为班级管理员就有权限实现留言固定和取消留言固定的功能。如果一条留言没有固顶,可以通过留言管理页面的“固顶”连接链接到留言固顶页面。 用户确认登录后,连接数据库,获取Board表和ClassInfo表中的留言用户编号、留言班级编号、班级管理员信息。如果用户为班级管理员,将从Board表中读取相关信息,并将其填充到数据集的msg的默认试图作为DataList控件的数据源。如果用户不是管理员或者帖子作者,将返回到留言管理页面。 用户单击“确认”按钮,将实现留言固顶功能。 留言固顶核心代码: protected void btnOK_Click(object sender, System.EventArgs e) { objconn=newSqlConnection (ConfigurationSettings.AppSettings[\"connstr\"]); objconn.Open(); strSQL=\"Update Board SET BTop='0' where BID=\"+Page.Request[\"msgid\"].ToString(); } objcmd=new SqlCommand(strSQL,objconn); objcmd.ExecuteNonQuery(); objcmd.Dispose(); objconn.Close(); Page.Response.Redirect(\"board.aspx?CID=\"+strClid); 用户留言固顶功能是通过Board表中的BTop字段控制的,当字段为0时处于固顶状态。 取消固顶模块的实现代码同留言固顶的实现代码相似,这里就不再详细列出。 6 软件测试 6.1 测试的定义和目的 软件测试就是在软件投入运行前,对软件的需求分析、设计规格说明和编码的最终复审,是保证软件质量的关键步骤。如果要给软件测试下定义,可以这样讲,软件测试是为了发现错误而执行程序的过程。 测试的目的在于将软件设计时设计者与程序开发者之间理解不一致的地方、功能与需求不一致的地方、不符合逻辑思维的情况都反映给质量控制部门,由质量控制部门调配需求部门统一做出一个明确的解答,再由开发人员进行修改和补充。 6.2 单元测试和集成测试 系统采用中文操作界面,简朴的背景风格,安全的使用性能,是方便使用的一款非常实用的办公软件。本系统采用.NET 框架具有简便性和可维护性,实用性强。 6.2.1 单元测试 单元测试集中的检验软件设计的最小单元是模块。正式测试之前必须先通过编译程序检查并且改正所有语法错误,然后用详细设计描述作指南,对重要的招待通路进行测试,以便发现模块内部的错误。单元测试可以使用白盒测试法,而且对多个模块的测试可以并行地进行。各测试用例如下: 1. 测试用例编码:S001,测试用户信息管理模块用例见表6.1所示。 表6.1 登录界面模块测试用例 序号 1 测试项 用户登录 输入说明(操作) 输出说明(预期结果) 输入用户名和密 码 根据验证结果, 返回到相应的页面 测试结果 测试成功,无异常 2.测试用例编号:S002,测试用户信息管理模块用例见表6.2所示。 表6.2 注册模块测试用例 序号 1 测试项 输入说明(操作) 输入注册 基本信息 输出说明 (预期结果) 根据验证结果,注册成功或返回相应的 页面 测试结果 用户注册 测试成功,无异常 3. 测试用例编号:S003,测试班级信息管理模块用例见表6.3所示。 表6.3 注册新班级测试用例 序号 1 测试项 注册新班级 输入说明(操 作) 输入新班级的 基本信息 输出说明(预期结 果) 注册成功,显示新 班级 测试结果 测试成功,无异常 4. 测试用例编号:S004,测试留言信息管理模块用例见表6.4所示。 表6.4 留言信息测试用例 序号 1 测试项 发表留言 输入说明(操 作) 输入要发表的 留言信息 在要编辑的留言后点编辑,编辑留言信息 选择要删除的留言信息 在要固顶的留言信息后点击 固顶 输出说明(预期结 果) 发表成功,显示发表的留言信息 编辑成功,显示编辑的留言信息 删除成功,显示其他留言信息 固顶成功,显示留言在最顶端 测试结果 测试成功,无异常 2 编辑留言 测试成功,无异常 3 删除留言 测试成功,无异常 4 留言固顶 测试成功,无异常 6.2.2 集成测试 集成测试是组装软件的系统技术。由于我已经对各个模块进行了细致的测试,所以说在集成测试阶段我采用的是黑盒测试,从总体上检查了软件的功能,因为在之前的模块调试中解决了大部分错误,所以在此测试中只发现了几个模块间的错误,并且也已经将其解决,测试用例见表6.6所示。 表6.5辽宁科技大学校友录系统集成测试用例 序号 1 2 3 4 测试项 用户登录 注册新班级 留言信息 通讯录 输入说明 (操作) 输入用户名和 密码 输入新班级的基本信息 点击查看 点击要查看的通信录 输出说明(预期结果) 根据验证结果, 返回到相应的页面 注册成功,显示新班级 查看成功,页面显示留 言信息 查看成功,显示通讯录 测试结果 测试成功,无异常 测试成功,无异常 测试成功,无异常 测试成功,无异常 6.3 系统模块测试结论 本次测试中,我采用了单元测试和集成测试对科大校友录系统的模块进行了详细的测试,其中在测试中采用的测试用例为:用户注册、用户登录、注册新班级、查看通讯录、发表留言、查看留言、编辑留言、删除留言、留言固顶等。经过测试得出结论:“科大校友录系统”的各个功能模块基本实现,提供了较为完整的性能。 参考文献 [1] 孙延靖.关于ASP.NET调用JavaScript的实现[A].新疆农业职业技术学院学报,2006, (04):18-25. [2] 刘珍,李运楼.ADO.NET DataSet中数据的访问与修改[A].江西工业贸易职业技术学院,2007,125. [3] 李律松,马传宝,李婷.Visual C#+SQL Server 数据库开发与实例[M].北京:清华大学出版社,2006,171-212. [4] 明日科技,张跃廷,韩阳,张宏宇.C#数据库系统开发案例精选[M].北京:人民邮电出版社,2007,221-281. [5] 卫振林.ASP程序设计与应用[M].北京:机械工业出版社,2005,66-87. [6] 周影.网络编程语言JSP实例教程[M] .北京:电子工业出版社,2003,106-123. [7] 赵增敏,朱粹丹,赵朱曦,等.ASP动态网页设计[M].哈尔滨:电子工业出版社,2003,68-96. [8] 刘俊民,陈远,周勇.最优化ASP.NET--面向对象开发实践[M].哈尔滨:电子工业出版社,2007,01-23. [9] Ann Navarro, Tabinda Khan.Effective Web Design :Master The Essentials[M].哈尔滨:电子工业出版社, 1998,10-56. 因篇幅问题不能全部显示,请点此查看更多更全内容