网上选课系统的设计与实现(代码)
网上选课系统的设计与实现(代码)
目录
摘要 ··································· 1 ABSTRACT ································ 2
第一章 引言 ······························ 3
1.1课题背景及意义 ······················· 3
1.2开发工具的选用及介绍 ···················· 3
1.3 课题的可行性分析 ······················ 5
第二章 系统总体分析与设计 ····················· 6
2.1设计构想 ·························· 6
2.2界面规划 ·························· 7
2.3数据流程规划 ························ 8
第三章 数据库设计与实现 ······················ 9
3.1数据库系统分析 ······················· 9
3.2数据库逻辑设计 ······················· 11
第四章 登录界面详细设计 ······················ 14
4.1界面设计 ·························· 14
4.2管理员/教师/学生登录功能 ·················· 14
4.3 密码修改页面 ························ 18
第五章 管理员详细设计························ 22
5.1界面设计 ·························· 22
5.2设计方法 ·························· 22
第六章 测试及设计过程中的问题及解决 ·············· 27
6.1 数据库的连接 ························ 27
6.2 参数的传递 ························· 27
6.3 运行环境 ·························· 28
第七章 结论 ······························ 29 致 谢 ································· 30
参考文献 ································ 31
摘要
在没有学生选课系统之前,选课方法是随堂报名,这种方法虽然简单,但是造成选课的盲目性和教务处处理选课数据的繁重性,并且容易发生数据丢失和统计错误。为了减轻教务处工作量,以及更加合理的分配教学资源,对学生选课系统进行设计和开发。
本文主要针对学生选课系统管理员端,以及登录,注销,修改密码这些功能的设计和开发。针对管理员的功能,主要从管理员对教师,学生,院系,课程,以及管理员自身信息功能的添加,查看,修改,删除进行了设计和开发,实现了对教师,学生,院系,课程,以及管理员自身信息的管理功能。
学生选课系统的基本设计思想是使用B/S结构来开发,另外着重讨论了用 ASP.NET 技术和SQL Server 2000来开发该系统, 并给出了主要部分的实现代码及控件的使用,另外还对控件的优点进行讨论。系统在Windows XP系统和VS2008.NET 平台下开发完成,使用C #作为开发语言。由于架构比较合理,系统有较高的安全性和较好的使用性能。其中连接数据库的字符串可随时在web.config 里修改,增加了配置的灵活性,保证了数据库的安全。
关键词:学生选课,ASP.NET,B/S结构,管理员端
ABSTRACT
Elective system in the absence of the students before the course is random
application, this method is simple, but the cause of blindness and elective course dealing with the data of the Registrar Office of the heavy and prone to data loss and statistical error. Office of Academic Affairs in order to reduce the workload, as well as a more reasonable distribution of teaching resources, student selection system design and development.
In this paper, system administrator for the end of course students, as well as the registry, write-offs, modify the password of these features the design and
development. For the administrator's functions, mainly from the administrator of the teachers, students, faculty, curriculum, and administrators to add their own
information function, view, modify or delete a design and development, the
achievement of teachers, students, hospital Department, the curriculum, as well as the administrator of its own information management capabilities.
Students in the basic course design idea is to use the B / S structure to develop, while focused on the use of ASP.NET technology and SQL Server 2000 to develop the system, and gives the main part of the realization of code and control the use of other also discuss the advantages of control. System in the Windows XP system and development platform VS2008.NET completed, the use of C # as development
language. Due to a more reasonable structure, the system has high security and better performance. In which the database connection string in web.config can be readily modified to increase the flexibility of configuration to ensure the security of the database.
Keywords: online course, ASP.NET, B/S structure,management system
第一章 引言
1.1课题背景及意义
学生选课系统是一个高等院校十分重要的部分, 它的内容对于学校的决策者和管理者来说都至关重要。高等院校现在实行的是学生的自主选课模式。自主选课如果仍然是课堂通过纸上的方式选课,有可能会造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。另外还需浪费大量的人力进行统计分类,另一方面还可能在人为的统计过程中出现各类差错等情况。基于传统人工方式管理文件档案,这种管理方式存在着许多缺点, 如:效率低、保密性差, 时间一长将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的麻烦。
因此开发基于Web 的学生选课系统来管理学生选课很重要。意义在于,使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,可以使教学资源平均合理的分配,此外,学生选课信息以及课程成绩可以使用计算机来管理,方便快捷,另外,管理教师提出课程申请,完成课程发布也容易的多,可以大幅减少教师的工作量。
1.2开发工具的选用及介绍
Web 应用程序的真正核心主要是对数据库进行处理。开发Web 应用程序,可以使用JSP,ASP.NET,PHP 动态网页技术。我们选择了ASP.NET 技术, 在Windows XP操作系统下使用Visual Studio 2008开发,使用C #作为开发语言,使用IIS 6.0作为Web 服务器,SQL Server 2000作为数据库。采用浏览器/服务器(Browser/Server)结构。
(1)ASP.NET 介绍:它是一种全新的交互式网页编程技术,被设计为首编译方式,采用代码分离技术,提高程序的编制效率,缩短开发周期,支持vb ,c#等语言。优点有:ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。另外, 它采用基于文本的分层配置系统,简化了设置应用服务器环境和 Web 应用程序。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。 最后,借助内置的 Windows 身份验证和基于每
个应用程序的配置,可以保证应用程序是安全的。
图1.1 本地运行ASP.NET
(2)SQL Server 2000介绍:本系统以SQL server 2000做为数据库。SQL server 2000是Microsoft 公司开发的一个具有客户/服务器体系结构的关系数据库管理系统,它使用SQL 语言在客户机和SQL server服务器之间传递请求和响应。
(3)IIS 6.0介绍:IIS 全称是Internet 信息服务(Internet Information Service )。是微软提供的一个Web 服务程序,在开发中称之为Web 容器。 服务器上总要有个程序在运行,来响应用户的访问请求,这个程序就是Web 服务程序。IIS 是微软提供的,支持微软的一套开发环境开发的Web 程序。
HTML 介绍:
(4)HTML 介绍:HTML 的英文全称是"Hypertext Markup Language", 中文为“超文本标记语言”。“超文本”就是指页面内可以包含图片,链接,音乐,程序等非文字的元素。 一个HTML 文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。如果你还有一些图片、动画、声音或是任何其它形式的资源,HTML 文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。浏览的网页就是由HTML 语言编写出来的。HTML 的格式非常简单,只是由文字及标记组合而成,因此任何文本编辑器都可以制作HTML 页面。
1.3 课题的可行性分析
(1)技术可行性:ASP.NET制作基于Web 的信息管理系统技术已经相当成熟,微软有良好的框架和实现方案。
(2)经济可行性:本系统是为学生选课管理使用的系统,用户只要有浏览器,并且能连上互联网,即可使用此系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,所带来的效益远大于软件的开发成本,在经济上完全可行。
第二章 系统总体分析与设计
2.1设计构想
(1)登录与注销
每个用户(管理员,教师,学生)都可以用自己的帐号登录系统。用户操作完成后可以退出系统,注销后可以重新登录系统。
(2)修改密码
每个用户(管理员,教师,学生)第一次登录都使用默认密码,登录以后可以自己修改密码。
(3)系统管理员功能
录入管理员信息:通过此项功能可以实现对管理员信息的添加。
查看修改删除管理员信息:通过此项功能可以实现对管理员信息的查看修改删除。
录入教师个人信息:通过此项功能可以实现对教师个人信息的添加。 查看修改删除教师个人信息:通过此项功能可以实现对教师个人信息的查看修改删除。
录入学生个人信息:通过此项功能可以实现对学生个人信息的添加。 查看修改删除学生个人信息:通过此项功能可以实现对学生个人信息的查看修改删除。
录入课程信息:通过此项功能可以实现对课程信息的添加。
查看修改删除课程信息:通过此项功能可以实现对课程信息的查看修改删除,另外还可以导出课程信息到EXCEL 。
录入院系信息:通过此项功能可以实现对院系信息的添加。
查看修改删除院系信息:通过此项功能可以实现对院系信息的查看修改删除。
图2.1 管理员功能菜单
2.2界面规划
界面左上角使用Logo ,界面正上方中间为标题,界面左边为导航栏,界面正中央为主题,界面最底端为版权信息。
图2.2 界面规划
2.3数据流程规划
用户登录身份验证模块验证用户名和密码,并根据不同的用户类型,跳转到对应的欢迎界面。然后通过单击左侧导航栏可以跳转到相应模块,当跳转到管理员界面时,录入信息模块提供给系统管理员,用来录入学生和教师信息,录入课程信息以及录入院系及管理员信息。查看修改删除模块提供给管理员对学生,教师,课程信息,院系信息,管理员个人信息进行管理,最后注销退出系统。
图2.3 数据流程
第三章 数据库设计与实现
学生选课系统中所有的信息都存储在数据库中,在所有ASP.NET 页面中通过ADO.NET 与数据库连接,操作数据库中的数据,从而实现所有需要的功能。本系统中数据库采用SQL Server 2000作为数据库工具。数据库是网上选课系统的核心,数据库设计的合理与否对选课系统的建设有着至关重要的影响。一个良好的数据库开发过程一般是先系统分析,再逻辑设计,然后实现。系统分析中分析数据库用户需求,并画出E-R 图直观地表示出数据库系统的需求。逻辑设计中根据系统分析设计的一个关系模型。另外, ASP.NET提供了五个内建的数据源控件——SqlDataSource 、AccessDataSource 、ObjectDataSource 、XmlDataSource 以及SiteMapDataSource 。通过SqlDataSource ,需要给出一个数据库连接字符串,还有SQL 语句或是存储过程,然后就可以执行查询、插入、删除、更新操作了。当调用SqlDataSource 的Select()、Insert()、Delete()以及Update()方法时,会连接到指定的数据库并发出相应的SQL 查询。
3.1数据库系统分析
本系统的数据库实体主要有“学生”、“教师”、“院系”、“课程”等。其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N 门课程,即“教师”与“课程”之间是一对多的关系。一个学生可以学习N 门课程,一门课程可以有M 个学生学习,即“学生”与“课程”之间是多对多的关系。
图3.1 实体及其联系图
图3.2 学生实体属性图
图3.3 教师实体属性图
图3.4 课程, 教师开课,管理员实体属性图
图3.5 学生选课,院系实体属性图
3.2数据库逻辑设计
数据库逻辑设计就是将E —R 图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。 学生(学号,院系ID ,姓名,性别,年级,联系电话,电子邮箱,密码)。 教师(教师ID ,院系ID ,姓名,职称,性别,联系电话,电子邮箱,密码)。 课程(课程ID ,名称,课程类型,课程学分,上课教室,人数限制,上课时间,已选课人数,选课结束时间)。 学生选课信息(学号,课程ID ,院系ID ,成绩)。
教师开课(教师ID ,课程ID )。
系统管理员(系统管理员ID ,登录账号,密码)。
院系(院系ID ,院系名称)。
(1)Student 表。Student 表用来存储学生的个人信息,使用学号s_id作为主键。
图3.6 学生表
(2)Teacher 表。Teacher 表用来存储教师的个人信息,用教师编号t_id作为主键。
图3.7 教师表
(3)Course 表。Course 表用来存储课程信息,Course 表以课程编号c_id作为主键。
图3.8 课程表
(4)Department 表。Department 表用于存储院系信息,在Department 表中使用院系编号department_id作为主键。
图3.9 院系表
(5)学生选课表。学生选课表用于存储学生的选课信息,使用s_id,c_id做联合主键。
图3.10 学生选课表
(6)System_manager表。system_manager表用来存放系统管理员信息,使用manager_id作为主键。
图3.11 管理员表
(7)Teach_course_t表。Teach_course_t表用来存储老师开课的信息,t_id和c_id作为联合主键。
图3.12 教师开课表
第四章 登录界面详细设计
4.1界面设计
图4.1 登录界面设计
4.2管理员/教师/学生登录功能
图4.2 登录算法流程图
在登录页面对应的地方输入用户名、密码,然后选定用户角色后,确认登录。
先是通过客户端验证是否输入了用户名,是否输入了密码,如果没有输入,给出提示信息要求用户输入。在提交后的页面,先取得用户名和选择值,然后对数据库中的表进行检索用户名,若检索到的记录集为空,则说明用户名不存在,从而转到相应的出错处理程序,如果用户名正确,进而检查数据库中的密码和输入框的密码是否相等,不相等,报告密码错误,相等则转入成功的操作页面,并将信息以session 对象保存起来。
编写代码如下:
//登录按了以后触发
protected void LoginButton_Click(object sender, EventArgs e)
{
//接收用户输入的参数
string userName = UserName.Text.ToString().Trim();
string userPwd = Password.Text.ToString().Trim();
//选择按钮
string userRole = RadioButtonList1.SelectedValue.Trim();
string selectStr = "" ;
switch (userRole)
{
case "0" ://身份是学生时
selectStr="select * from student where s_id ='"+ userName +"'" ; break ;
case "1" ://身份是教师时
selectStr = "select * from teacher where t_id ='" + userName + "'" ; break ;
case "2" ://身份是管理员时
selectStr = "select * from system_manager where login_id ='" + userName + "'" ; break ;
}
//连接字符串
SqlConnection conn = new
SqlConnection (ConfigurationManager .ConnectionStrings["ConnectionString" ].ConnectionString); SqlCommand cmd = new SqlCommand (selectStr, conn);
try
{
//打开连接
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader();
//sdr.GetString的意思是从数据库的某一列(例如密码列)中取出值来
if (sdr.Read())
{
string temp_getstring="0" ;
if (userRole == "0" )
{
temp_getstring = sdr.GetString(3);
}
if (userRole == "1" )
{
temp_getstring = sdr.GetString(7);
}
if (userRole == "2" )
{
temp_getstring = sdr.GetString(2);
}
//判断密码是否正确
if (temp_getstring == userPwd)
{
//记录session
Session["UserRole" ] = userRole;
conn.Close();
switch (userRole)
{
case "0" ://身份是学生时
Session["s_id"]=userName;
Session ["t_id"]="" ;
Session["login_id"]="" ;
Response.Redirect("student/student.aspx");
break ;
case "1" ://身份是教师时
Session["t_id"]=userName;
Session ["s_id"]="" ;
Session["login_id"]="" ;
Response.Redirect("teacher/Teacher.aspx");
break ;
case "2" ://身份是管理员时
Session["login_id"]=userName;
Session ["t_id"]="" ;
Session["s_id"]="" ;
Response.Redirect("manager/manager.aspx");
break ;
}
}
else //密码错误,给出提示信息
{
lblmessage.Text=" 您输入的密码错误,请检查后重新输入" ;
}
}
else
//用户不存在或用户名输入错误
{
lblmessage.Text=" 用户不存在或用户名输入错误,请检查后输入" ;
}
}
//数据库错误
catch (Exception ee)
{
Response.Write(ee.Message .ToString ());
}
finally
{
conn.Close();
}
}
4.3 密码修改页面
图4.3 密码修改页面
密码修改的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入旧密码,新密码,确认新密码,确定后提交更改密码。
系统首先在客户端进行验证,是否3个文本框都输入了字符,如果没有都输入,给出错误信息,如果已经都输入了,则判断新密码和确认新密码是否相等,如果不等,给出错误信息。提交服务器后,首先根据传递的session 值判断是管理员用户,还是教师用户,或是学生用户,然后判断原始密码的正误,若错误,转到相应的处理程序,若正确,用新密码代替旧密码,更新数据库表中密码字段。
代码实现如下:
protected void ChangePasswordPushButton_Click(object sender, EventArgs e)
{ //获得session 值
string StudentId = Session["s_id"].ToString();
string TeacherId = Session["t_id"].ToString();
string ManagerId = Session["login_id"].ToString();
string oldpwd = ChangePassword1.CurrentPassword;
string newpwd = ChangePassword1.NewPassword;
string selectStr = "" ;
string updateStr = "" ;
switch (Session["UserRole" ].ToString ())
{
case "0" ://学生
selectStr = "select * from student where s_id ='" + StudentId + "' and s_password = '" + oldpwd + "'" ;
updateStr = " update student set s_password='" + newpwd + "' where s_id ='" + StudentId + "'" ;
break ;
case "1" ://教师
selectStr = "select * from teacher where t_id ='" +TeacherId+ "'" +"and t_password = '" + oldpwd + "'" ;
updateStr = "update teacher set t_password='" +newpwd+ "' where t_id ='" + TeacherId + "'" ;
break ;
case "2" ://管理员
selectStr = "select * from system_manager where login_id ='" + ManagerId + "' and manager_password = '" + oldpwd + "'" ;
updateStr = " update system_manager set manager_password='"+newpwd+"'where login_id='" + ManagerId + "'" ;
break ;
}
//数据库连接
SqlConnection conn = new
SqlConnection (ConfigurationManager .ConnectionStrings["ConnectionString" ].ConnectionString); SqlCommand selectcmd = new SqlCommand (selectStr, conn);
try
{
conn.Open();
SqlDataReader sdr = selectcmd.ExecuteReader();
if (sdr.Read())
{
sdr.Close();
SqlCommand updatecmd = new SqlCommand (updateStr, conn);
int i = updatecmd.ExecuteNonQuery();
if (i > 0)
{
Response.Write(" 成功修改密码" );
}
else
{
Response.Write(" 修改密码失败" );
}
}
else
{
Response.Write(" 您输入的密码错误,检查后重新输入" );
}
}
catch (Exception ex)
{ //数据库出错
Response.Write(" 系统出错,错误原因:" + ex.Message.ToString());
}
finally
{
conn.Close();
}
}
第五章 管理员详细设计
5.1界面设计
图5.1 管理员添加教师
5.2设计方法
(1)母版页
ASP.NET 2.0以上版本为开发人员提供了一种在一个文件中定义多个Web 页面布局的功能。以.master 为扩展名的文件,称之为母版页。 单个母版页可以定义所有页面的相同外观和通用行为,因而开发人员无须在每个页面中编写重复的代码,并且在需要修改页面布局时只需修改母版页即可。 利用母版页,开发人员可以创建单个网页模板并在应用程序中将该模板用作多个网页的基础,这样就无需从头创建所有新网页。 一个网站可以设置多种类型的母版页,以满足不同显示风格的需要。
(2)制作导航栏,TreeView 控件
TreeView 控件显示在浏览器中呈现为一个树形结构。该控件主要用来显示分级数据。TreeView 控件由一个或者多个节点构成,每个节点还可以有任意多个子节点,包含节点及其子节点的层次结构构成了TreeView 空间
所呈现的树形结构。
4种节点类型:
根节点:处于树形结构的最顶层。
父节点:具有一个父节点,并且有一个或者多个子节点的节点。 叶节点:处于树形结构的最下层。
选定节点:对应于当前被访问网页的节点。
图5.2 管理员母版页
(3)内容页面
内容页面的页面代码在这个标记之间:
(4)使用控件GridView
GridView 是 DataGrid的后继控件,在.NET Framework 2 中,虽然还存在DataGrid ,但是GridView 已经走上了历史的前台,取代DataGrid 的趋势已是势不可挡。GridView 和DataGrid 功能相似,都是在Web 页面中显示数据源中的数据,将数据源中的一行数据,也就是一条记录,显示为在Web 页面上输出表
格中的一行。
GridView 控件的功能有:绑定到任何平面结构或多层结构的数据源空间,拥有内置排序功能,编辑和删除数据记录,支持多个关键字段,根据主题和风格进行可视化的调整,根据不同的设备来调整显示结果,可以指定背景图片等等。
图5.3 GirdView与DetailsView 联动
图5.4 GirdView实现编辑删除
(5)制作导出到
EXCEL
图5.5 导出到EXCEL
代码编写如下:
protected void Button3_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true ;
Response.Charset = "GB2312" ;
Response.AppendHeader("Content-Disposition" , "attachment;filename=FileName.xls");
//设置输出流为简体中文
Response.ContentEncoding = System.Text.Encoding .GetEncoding("GB2312" );
//设置输出文件类型为excel 文件
Response.ContentType = "application/ms-excel";
EnableViewState = false ;
System.Globalization. CultureInfo myCItradSystem.Globalization.CultureInfo ("ZH-CN" , true ); System.IO.StringWriter oStringWriter = new System.IO.StringWriter (myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new
System.Web.UI. HtmlTextWriter (oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
(6)Session 的使用
在ASP.NET 中,Session 是 用于保持状态的基于 Web 服务器的方法。Session 允许将对象存储在 Web 服务器的内存中,可以在整个用户会话过程中保持任何对象。 存储需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览 Web 应用程序时需要的其它信息。
编写代码如下:
第六章 测试及设计过程中的问题及解决
对于没有使用session 的页面,测试过程中发现安全问题,对方可以直接通过在浏览器敲入我的文件路径而越过我的验证,访问某些页面,对于这个问题,可以通过以下的代码解决
if (Session["login_id"]==null )
{
Response.Write(" 没有登陆访问,请重新登陆" ); Response.Redirect("../login.aspx");
}
6.1 数据库的连接
在网上选课系统里面,由于每个页面都需要使用连接数据库的操作,所以需要在web.config 文件中指定数据库连接字符串的配置信息,可以在web.config 文件添加代码:
Catalog=web_course;User ID=sa;Password=123" providerName=" System.Data.SqlClient " />
Data Source:表示数据库服务器地址,可以填IP 地址。
Initial catalog:表示数据库名称。
Persist security info:表示数据库登录验证模式。
SQL Server支持用户名登录验证和Windows 身份验证两种模式。
User ID:表示登录数据库的用户名。
Password:表示登录数据库的用户名的密码。
6.2 参数的传递
在确保使用了命名空间System.Configuration 以后可以使用
configurationManager.connectionStrings[“connectionstring ”].connectionstring
6.3 运行环境
第七章 结论
通过对网上选课系统的毕业设计,我对C#和SQL 结构化语言的使用更加得心应手了,也认识到设计能力才是做出好软件的关键,是软件质量的关键,编写代码很重要,但不是关键。
对网上选课系统的设计和编写,我深刻理解了软件工程的思想,重新认识了数据库中3NF 规范化的重要性,避免了数据库的冗余和插入异常。在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。另外,对ASP.NET 的开发方法也更加熟悉,这对我以后的工作有很重大的帮助,此次设计唯一的不足就是自己CSS 方面比较薄弱,对页面的色彩和布局设计能力较弱,这点我将会在以后的工作和学习中改进,还有一些遗憾,就是没有使用AJAX ,AJAX 是现在Web 应用程序的新思想,新技术。虽然在设计和开发过程中遇到了许多困难,但是和同学深入的探讨和自己反复思索,解决了自己不少对ASP.NET 疑惑的问题。另外,通过使用母版页和制作导航栏,使我对ASP.NET 的新技术和新方法的运用了解的更加深入。
致 谢
论文的完成,离不开孙霞老师给予悉心的关怀与指导,在这里衷心的对孙老师表示感谢,您认真负责的工作态度、从论文题目的选定到论文写作的指导, 经由您悉心的点拨使我深受启发。另外,在面对技术困难和设计问题的时候和小组成员贺永峰之间的相互探讨也使我获益匪浅,给予了我前进的动力,在此一并感谢。同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友,以及在设计中被我引用或参考的论著的作者。
参考文献
[1]龙马工作室, 《新编ASP.NET2.0+SQL Server2005从入门到精通》,人民邮电出版社,出版时间2008
[2]龙马工作室, 《新编 Visual C# 2005 程序设计从入门到精通》,人民邮电出版社,出版时间2008
[3]萨师煊 王珊, 《数据库系统概论第3版》,高等教育出版社,出版时间 1999
[4]神龙工作室, 《ASP.NET2.0网络编程入门与提高》,人民邮电出版社,出版时间2008
[5]王寅永 李降宇 李广歌 《C#深入详解》 电子工业出版社 2008
[6]齐志昌 谭庆平 宇洪 《软件工程第二版》 高等教育出版社 1997
[7]邓文渊《ASP.NET AJAX 1.0》 机械工业出版社 2008
[8]李继武 《C#.NET项目开发实战从入门到精通》 清华大学出版社 2007
[9]求是科技 《ASP.NET 数据库管理系统开发实例导航》 人民邮电出版社 2005
[10]陈黎夫《ASP.NET AJAX 程序设计:服务器端》 人民邮电出版社 2007
[11]穆西亚诺《HTML&XHTML权威指南》 清华大学出版社 2007
[12]曾顺《精通CSS+DIV网页样式与布局》 人民邮电出版社 2007
[13]耿国华《数据结构-C 语言描述》 高等教育出版社 2005
[14]於志渊《动态Web 网页技术大全》 清华大学出版社 1999
[15]吴功宜《计算机网络第2版》 清华大学出版社 2006