基于ASP.NET的志愿者管理系统开发

2014-08-14 00:23付婷婷国荣
电脑知识与技术 2014年19期
关键词:系统开发

付婷婷 国荣

摘要:志愿者管理系统是专门针对志愿者招募活动而开发的系统,系统开发工具为Visual Studio 2010和SQL Server 2005,采用B/S三层架构,编写语言为C#。系统分为志愿者、组织机构、管理员和在线论坛四个功能模块,实现了志愿者报名、活动咨询,组织发布志愿活动、录取志愿者,管理员审核组织机构和维护系统等功能。

关键词:系统开发;ASP.NET;B/S;SQL Server2005

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)19-4481-05

Development of Volunteer Management System Based on ASP.NET

FU Ting-ting,GUO Rong

(Education Technology Department of Tianjin Normal University,Tianjin 300387,China)

Abstract: Development of Volunteer Management System Based on ASP.NET was designed for Volunteer recruitment, the system is developed by Visual Studio 2010 and SQL Server 2005,using B/S mode and C# programming language. The system is consist of volunteers, organization, administrators, and online BBS four function modules.through it,volunteers can sign up and consult Activities, organizations can publish activities and select volunteers, meanwhile admin can review organization and maintain system.

Key words: system development;ASP.NET;B/S;SQL Server2005

志愿服务是多数大学生在校期间很有意义的活动之一,各种社会组织机构存在数量较多的志愿活动,需要招聘大规模的志愿者,目前志愿活动报名采取的方式是组织机构与学校各学院联系,由学院下达通知到学生,进行传统的填表报名,这种方式使信息产生了严重的滞后性,同时造成了资源的浪费。志愿者管理系统可以解决这一问题,使得学生获取信息更具有时效性,同时简化了报名招募流程,节约了资源。

1 开发技术

志愿者管理系统采用Visual Studio 2010和SQL Server 2005进行设计和开发,网站编写语言主要为C#,其中部分功能涉及javascript语言。

系统采用当前流行的B/S结构,由数据访问层、业务逻辑层和页面显示层三层体系结构构成。位于最底层的数据访问层以ADO.NET为接口,负责对数据库进行管理,接受web服务器对数据库操作的请求,实现对数据的操作,并将结果返回给web服务器;业务逻辑层是用户服务与数据服务的逻辑桥梁,它负责接受远程或本地的用户请求,对用户身份和数据库存取权限进行验证,运用服务器脚本,借助中间件把请求发送到数据访问层,将返回的数据处理转换成HTML及各种脚本返回客户端;页面显示层即界面层,负责由web浏览器向网络上的web服务器发出服务请求,接收运行结果并显示在浏览器上。

2 系统功能设计

2.1系统流程结构

通过对三种用户的需求分析,确定下图1为该系统的总体流程图。

组织机构注册后不能立即登录,需要管理员审核身份,游客只可查看最新志愿活动信息,不能进行活动申请。

2.2系统功能结构

该系统可在windows 2000以上的操作系统上运行,服务器为IIS,数据库为Sql Server2005,系统分为志愿者、组织机构、管理员、论坛四个功能模块,志愿者模块实现志愿活动查看和报名,组织机构模块负责发布志愿活动、审核志愿者和录用志愿者,管理员模块负责对志愿者和组织的管理及数据库的维护。整个系统的功能结构图如图2所示。

图2 系统功能结构图

3 系统实现

系统采用三层架构,其架构模型如图3所示。

图3 系统架构图

3.1页面设计

系统页面设计语言为HTML,由DIV+CSS布局技术设计而成,为了使得各个模块内部页面间链接的协调与统一,每个模块都公用一个母版页,各个母版页界面风格统一,系统的界面设计易于后期对界面的维护和修改。

3.2 数据访问层类

数据访问层负责对数据库进行管理,系统建立一个Databaase.cs页面来编写一个访问数据库的类Database类,该类实现对数据库的链接和数据的查询、更新、删除、插入、统计。

数据库链接的关键代码如下:

public static SqlConnection DBCon()

{return new SqlConnection("server=.;database=voluntary;user id=sa;pwd=111111");}

查询的关键代码如下:

public DataSet DataBS(DataSet ds, string strsql)

{SqlConnection conn = DBCon();

conn.Open();

SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);

sda.Fill(ds, "table");

conn.Close();

return ds;}

通过接收的SQL语句,执行数据操作的代码如下:

public void ExecuteSQL(string SqlString)

{SqlConnection conn = DBCon();

conn.Open();

SqlCommand cmd = new SqlCommand(SqlString, conn);

cmd.ExecuteNonQuery();

conn.Close();}

插入采用了哈希表,其关键代码如下:

public int Insert(String TableName, Hashtable ht)

{int n = 0;

string Fields = " (";

string Values = " Values(";

foreach (DictionaryEntry item in ht)

{if (n != 0)

{Fields += ",";

Values += ",";}

Fields += item.Key.ToString();

Values += item.Value.ToString();

n++;}

Fields += ")";

Values += ")";

string SqlString = "insert into " + TableName + Fields + Values;

try

{ExecuteSQL(SqlString);

}catch

{return 0;

}return 1;}

3.3业务逻辑层类

业务逻辑层的类属于桥梁类,通过接收页面层的请求和传递的数据调用数据层Database类从而实现页面操作,系统根据需求,设置了以下7个类:

Volunteer类:志愿者类,负责处理志愿者信息的类。

Organization类:组织机构类,处理组织机构信息。

Admin类:管理员类,处理管理员信息和实现系统维护。

Activity类:活动类,处理志愿活动信息。

Topic类:话题类,实现论坛中对话题的操作方法。

Reply类:回复类,包含对话题的回复的所有操作方法。

Score类:成绩类,私有变量为成绩表中所有字段,公有方法为系统对成绩和评价的所有操作方法。

这些类公用一个数据访问层类Database类。

3.4系统主要功能实现

3.4.1登录功能

登录页功能实现过程描述如下:

1) 用户在login.aspx页中输入用户名、密码、验证码并通过DropDownList控件选择用户类型。

2) 页面判断验证码正确性。

3) 根据选择的用户类型将数据返回给相应的逻辑层类。

4) 逻辑层类调用数据访问层,判断用户合法性。

5) 用Session变量记住用户登录名和密码。

6) 返回结果。

3.4.2志愿活动报名

用户登录成功进入志愿者模块后即可以报名申请参加志愿活动,其具体流程如图4所示,功能实现过程描述如下:

图4 志愿活动申请流程图

1) 用户通过Volunteer.aspx页点击查看志愿活动链接,进入查看活动列表页。

2) 点击欲申请的活动名,Session变量记住活动名。

3) 调用逻辑层Activity类,传递活动名。

4) Activity类调用数据访问层Database类,访问相应对的数据表。

5) 返回查询的活动信息。

6) Actdetail.aspx页通过Session变量中的活动名调用返回查询的活动信息并以表格形式显示于页面。

7) 用户于ActApply.aspx填写报名表,上传照片。

8) 填写的信息通过页面传递给逻辑层Volunteer类。

9) Volunteer类调用访问层Database类将信息插入活动申请表。

10) 返回执行结果。

3.4.3志愿者录取

组织机构录取志愿者流程如图5所示,其功能实现描述如下:

图5 志愿者录取流程图

1) ownact.aspx页调用登录时存储用户名的Session变量传递给Activity类,查询该组织发布的所有活动,返回结果显示于页面。

2) 点击特定活动名时用session记住活动名,将变量传给volunteer类,调用活动参与表中的该活动参与者的学号。

3) 点击特定学号后,传递学号与活动名两个session变量的值给volunteer类,调用活动参与表中该志愿者的信息,以报名表的形式呈现于页面。

4) 点击录取时,通过volunteer类将活动参与表中该志愿者的状态修改为“已录取”,同时传递学号与活动名两个session变量的值给score类,插入成绩表中。

5) 点击不录取,该志愿者的状态修改为“未录取”。

3.4.4组织机构审核

管理员审核组织机构流程图如图6所示,其功能实现描述如下:

1) Admcheck.aspx页面调用时,新建organization类,调用类的Cout方法,统计出未审核组织的个数,若有则显示查看按钮,若没有则不显示;点击查看则跳转到admcheckorg.aspx页面。

2) 在admcheckorg.aspx页面中查看等待审核组织列表,若同意则在DropDownList1中选择“通过”,否则选择“不通过”,判断DropDownList1.SelectedValue,并通过string变量将值写入哈希表中,从而通过调用organization类的Replace方法更新志愿者信息表中的“状态”字段,其初始值为“未通过”。

3) 若组织申请通过,则在志愿者信息表中的“状态”字段值为“通过”,组织申请成功,可以进行相应的操作,若“状态”字段值为“未通过”则不能登录组织系统页面。

4 系统中采用的技术

4.1验证码

验证码是网站登录常用功能,该系统中验证码设置过程如下:

1) 安装ASPAJAXExtSetup.msi

2) 在需要显示验证码的页面拖放ScriptManager、Updatepanel控件

3) 在Updatepanel中加入ImageButton控件,ImageUrl属性值链接Image.aspx文件(产生验证码的文件)

4.2母板页

母版页本身也是一张网页,包含一些控件和HTML标记,完成一定的功能。母版页的页面可以被其它页面共享,以实现网站统一布局。母版页留有内容占位符,可供编辑。其使用过程如下:

1) 创建母版页,编辑好页面。

2) 创建页面时,选择应用的母版页。例如创建Default.aspx页面时,选中“选择母版页”复选框,根据弹出的对话框选择母版页文件。

4.3站点导航

站点导航系统可实现显示当前页面位置和跳转所链接的页面的功能,其实现过程如下:

1) 建立网站的逻辑结构(站点地图)

用默认的站点地图文件Web.sitemap或XML文件建立。

2) 用导航控件展示站点逻辑结构

5 结束语

该系统置于学校服务器使用测试,问卷结果反映基本可以完成志愿者和组织机构的需求,但该系统也存在一定的问题,如界面设计美观度不够,需要后期进一步完善。

参考文献:

[1] 高宏,李俊民.ASP.NET典型模块与项目实战大全[M].北京:清华大学出版社,2012.

[2] 黄鸣.ASP.NET开发技巧精讲[M].北京:电子工业出版社,2012.

[3] 韦耿,钟亮.基于JSP的个人博客系统[J].电脑知识与技术,2013(6).

[4] 郝刚.ASP.NET 2.0开发指南[M].北京:人民邮电出版社,2006.endprint

1) ownact.aspx页调用登录时存储用户名的Session变量传递给Activity类,查询该组织发布的所有活动,返回结果显示于页面。

2) 点击特定活动名时用session记住活动名,将变量传给volunteer类,调用活动参与表中的该活动参与者的学号。

3) 点击特定学号后,传递学号与活动名两个session变量的值给volunteer类,调用活动参与表中该志愿者的信息,以报名表的形式呈现于页面。

4) 点击录取时,通过volunteer类将活动参与表中该志愿者的状态修改为“已录取”,同时传递学号与活动名两个session变量的值给score类,插入成绩表中。

5) 点击不录取,该志愿者的状态修改为“未录取”。

3.4.4组织机构审核

管理员审核组织机构流程图如图6所示,其功能实现描述如下:

1) Admcheck.aspx页面调用时,新建organization类,调用类的Cout方法,统计出未审核组织的个数,若有则显示查看按钮,若没有则不显示;点击查看则跳转到admcheckorg.aspx页面。

2) 在admcheckorg.aspx页面中查看等待审核组织列表,若同意则在DropDownList1中选择“通过”,否则选择“不通过”,判断DropDownList1.SelectedValue,并通过string变量将值写入哈希表中,从而通过调用organization类的Replace方法更新志愿者信息表中的“状态”字段,其初始值为“未通过”。

3) 若组织申请通过,则在志愿者信息表中的“状态”字段值为“通过”,组织申请成功,可以进行相应的操作,若“状态”字段值为“未通过”则不能登录组织系统页面。

4 系统中采用的技术

4.1验证码

验证码是网站登录常用功能,该系统中验证码设置过程如下:

1) 安装ASPAJAXExtSetup.msi

2) 在需要显示验证码的页面拖放ScriptManager、Updatepanel控件

3) 在Updatepanel中加入ImageButton控件,ImageUrl属性值链接Image.aspx文件(产生验证码的文件)

4.2母板页

母版页本身也是一张网页,包含一些控件和HTML标记,完成一定的功能。母版页的页面可以被其它页面共享,以实现网站统一布局。母版页留有内容占位符,可供编辑。其使用过程如下:

1) 创建母版页,编辑好页面。

2) 创建页面时,选择应用的母版页。例如创建Default.aspx页面时,选中“选择母版页”复选框,根据弹出的对话框选择母版页文件。

4.3站点导航

站点导航系统可实现显示当前页面位置和跳转所链接的页面的功能,其实现过程如下:

1) 建立网站的逻辑结构(站点地图)

用默认的站点地图文件Web.sitemap或XML文件建立。

2) 用导航控件展示站点逻辑结构

5 结束语

该系统置于学校服务器使用测试,问卷结果反映基本可以完成志愿者和组织机构的需求,但该系统也存在一定的问题,如界面设计美观度不够,需要后期进一步完善。

参考文献:

[1] 高宏,李俊民.ASP.NET典型模块与项目实战大全[M].北京:清华大学出版社,2012.

[2] 黄鸣.ASP.NET开发技巧精讲[M].北京:电子工业出版社,2012.

[3] 韦耿,钟亮.基于JSP的个人博客系统[J].电脑知识与技术,2013(6).

[4] 郝刚.ASP.NET 2.0开发指南[M].北京:人民邮电出版社,2006.endprint

1) ownact.aspx页调用登录时存储用户名的Session变量传递给Activity类,查询该组织发布的所有活动,返回结果显示于页面。

2) 点击特定活动名时用session记住活动名,将变量传给volunteer类,调用活动参与表中的该活动参与者的学号。

3) 点击特定学号后,传递学号与活动名两个session变量的值给volunteer类,调用活动参与表中该志愿者的信息,以报名表的形式呈现于页面。

4) 点击录取时,通过volunteer类将活动参与表中该志愿者的状态修改为“已录取”,同时传递学号与活动名两个session变量的值给score类,插入成绩表中。

5) 点击不录取,该志愿者的状态修改为“未录取”。

3.4.4组织机构审核

管理员审核组织机构流程图如图6所示,其功能实现描述如下:

1) Admcheck.aspx页面调用时,新建organization类,调用类的Cout方法,统计出未审核组织的个数,若有则显示查看按钮,若没有则不显示;点击查看则跳转到admcheckorg.aspx页面。

2) 在admcheckorg.aspx页面中查看等待审核组织列表,若同意则在DropDownList1中选择“通过”,否则选择“不通过”,判断DropDownList1.SelectedValue,并通过string变量将值写入哈希表中,从而通过调用organization类的Replace方法更新志愿者信息表中的“状态”字段,其初始值为“未通过”。

3) 若组织申请通过,则在志愿者信息表中的“状态”字段值为“通过”,组织申请成功,可以进行相应的操作,若“状态”字段值为“未通过”则不能登录组织系统页面。

4 系统中采用的技术

4.1验证码

验证码是网站登录常用功能,该系统中验证码设置过程如下:

1) 安装ASPAJAXExtSetup.msi

2) 在需要显示验证码的页面拖放ScriptManager、Updatepanel控件

3) 在Updatepanel中加入ImageButton控件,ImageUrl属性值链接Image.aspx文件(产生验证码的文件)

4.2母板页

母版页本身也是一张网页,包含一些控件和HTML标记,完成一定的功能。母版页的页面可以被其它页面共享,以实现网站统一布局。母版页留有内容占位符,可供编辑。其使用过程如下:

1) 创建母版页,编辑好页面。

2) 创建页面时,选择应用的母版页。例如创建Default.aspx页面时,选中“选择母版页”复选框,根据弹出的对话框选择母版页文件。

4.3站点导航

站点导航系统可实现显示当前页面位置和跳转所链接的页面的功能,其实现过程如下:

1) 建立网站的逻辑结构(站点地图)

用默认的站点地图文件Web.sitemap或XML文件建立。

2) 用导航控件展示站点逻辑结构

5 结束语

该系统置于学校服务器使用测试,问卷结果反映基本可以完成志愿者和组织机构的需求,但该系统也存在一定的问题,如界面设计美观度不够,需要后期进一步完善。

参考文献:

[1] 高宏,李俊民.ASP.NET典型模块与项目实战大全[M].北京:清华大学出版社,2012.

[2] 黄鸣.ASP.NET开发技巧精讲[M].北京:电子工业出版社,2012.

[3] 韦耿,钟亮.基于JSP的个人博客系统[J].电脑知识与技术,2013(6).

[4] 郝刚.ASP.NET 2.0开发指南[M].北京:人民邮电出版社,2006.endprint

猜你喜欢
系统开发
基于网络数据分析的计算机网络系统开发
发射机房运行监控系统关键技术的解决方案
基于开源系统的综合业务数据采集系统的开发研究