网站空间地址查询,标志设计英文,wordpress微信公众号采集插件,logo设计在线生成免费图片加文字摘要
设计本系统的目的是对选课信息进行管理。学生选课系统维护模块主要完成的是系统管理与维护功能。课题研究过程中#xff0c;首先对系统管理模块进行了详尽的需求分析#xff0c;经分析得到系统管理模块主要完成如下的功能#xff1a;用户基本信息、选课信息的录入,查看…摘要
设计本系统的目的是对选课信息进行管理。学生选课系统维护模块主要完成的是系统管理与维护功能。课题研究过程中首先对系统管理模块进行了详尽的需求分析经分析得到系统管理模块主要完成如下的功能用户基本信息、选课信息的录入,查看,修改,删除等同时还具有查询各个模块的功能数据备份数据还原 注销等功能。系统管理模块是整个系统的指挥中心保证整个系统在校园网上安全有效地运作。之后根据需求提出了系统管理模块的总体设计方案并据此进行了详细设计和编码实现。系统使用B/S结构设计和开发系统的编码实现基于VS.NET平台使用ASP.NET作为开发语言SQL Server 2000作为数据库。代码中通过使用进程中的Session、尽量使用存储过程和尽量减少数据库连接的打开时间等手段来提高性能。
关键词选课系统系统管理ASP .NET
1.2 关键技术介绍
1.2.1 ASP.NET简介
.NET框架.NET Framework主要有以下3部分组成 公共语言运行库Common Language Runtime,CLR 基础库类Base Class Libarary ASP.NET、VB.NET、C#等语言运行库
ASP.NET的功能和特点
ASP.NET是.NET框架中专门用来开发网上应用程序的它其实不是一种语言而更像一个框架在这个框架下可以采用VB.NET,C#等其他.NET语言开发网上程序。
1.2.2 SQL Server
SQL Server 是一个具备完全 Web 支持的数据库产品提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。
1.2.3 ADO.NET简介
ADO.NET是为.NET框架而创建的提供对Microsoft SQL Server、Oracle的数据源以及通过OLEDB和XML公开的数据的一致访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源并检索、操作和更新数据。
在连接环境下整个数据存取的步骤如下 (1) 用SqlConnection对象和数据库开启连接。 (2) 用SqlCommand对象向数据索取所要的数据。 (3) 把取回来的数据放在SqlDataReader对象中读取或者是做其他的存取。 (4) 在对数据库的存取、查询等操作做完后关闭SqlDataReader对象。 (5) 关闭SqlConnection对象。
连接环境下的数据库存取作业从开始到结束客户端与服务器端都是保持在联机的状态。
1.2.4 HTML
HTML的英文全称是Hypertext Markup Language,中文译为“超文本标记语言”。“超文本”就是指页面内可以包含图片联接甚至音乐程序等非文字的元素。在几年前作为SGML的一个子集开发的。一个HTML文件中包含了所有将显示在网页上的文字信息其中也包括对浏览器的一些指示如哪些文字应放置在何处显示模式是什么样的等。如果你还有一些图片、动画、声音或是任何其它形式的资源HTML文件也会告诉浏览器到哪里去查找这些资源以及这些资源将放置在网页的什么位置。浏览的网页就是由HTML语言编写出来的。虽然HTML是一种语言但HTML不是程序语言如 C 和 Java 之类它只是标示语言你只要明白了各种标记的用法便算学会了HTML的格式非常简单只是由文字及标记组合而成因此任何文本编辑器都可以制作HTML页面。
1.2.5 Script
脚本语言现在流行的主要是JavaScript和VBScript,下面简单介绍一下这两种语言:
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言有了JavaScript可使网页变得生动。使用它的目的是与HTML超文本标识语言、Java 脚本语言一起实现在一个网页中链接多个对象与网络客户交互作用从而可以开发客户端的应用程序。它是通过嵌入或调入在标准的HTML语言中实现的。
VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版). 正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. 我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语法基于Basic脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了.
4.1 系统实现
4.1.1 系统主界面
登录界面如图4.1所示。 图 4.1 主界面
主界面main.aspx的主要设计如下
插入两行两列的表将第一行单元格合并分别在上、左、右单元格中加入Panel控件分别设置ID为p3plpr。在page_load中添加代码 P3.Controls.Add(Page.LoadControl(header.ascx)) 加载图片控件 Pl.Controls.Add(Page.LoadControl(menu1.ascx)) 加载左侧菜单 Pr.Controls.Add(Page.LoadControl(js.ascx)) 初始时加载简介信息 If Request.QueryString(type) 0 Then 学生登录 Pr.Controls.Clear() Pr.Controls.Add(Page.LoadControl(login.ascx)) Exit Sub End If If Request.QueryString(type) 1 Then 教师登录 Pr.Controls.Clear() Pr.Controls.Add(Page.LoadControl(login.ascx)) Exit Sub End If If Request.QueryString(type) 2 Then 管理登录 Pr.Controls.Clear() Pr.Controls.Add(Page.LoadControl(login.ascx)) Exit Sub End If
header.ascx为一图片控件 menu1.ascx为用户登录菜单添加3个LinkButton控件分学生、教师、管理员身份 js.ascx为登录介绍。
在menu1.ascx中学生的LinkButton_Click中添加代码 Response.Redirect(main.aspx?type0)
在menu1.ascx中教师的LinkButton_Click中添加代码 Response.Redirect(main.aspx?type1)
在menu1.ascx中管理员的LinkButton_Click中添加代码 Response.Redirect(main.aspx?type2)
4.1.2 登录功能
当点击不同的用户后进入同一登录界面通过识别不同的标识即type值的不同而进入不同的用户界面。在登录页面对应的地方输入用户名、密码确认后登录。调用存储过程login根据编号、密码、type值的不同来判断用户身份。登录界面如图4.2所示。 图 4.2 登录界面
Login.ascx中的设计如下
确定按扭中添加代码 Dim s As String If Request.QueryString(reboot) 1 Then s Session(type) Else s Request.QueryString(type) End If Dim db As New dbaccess db.para.Add(user, bianhao.Text.Trim) db.para.Add(pwd, pwd.Text.Trim) db.para.Add(type, s) db.runproc(login) If db.retok Then Session(user) bianhao.Text.Trim Session(type) s Select Case s Case 0 Response.Redirect(student.aspx) Case 1 Response.Redirect(teacher.aspx) Case 2 Response.Redirect(admin.aspx) End Select Else Response.Redirect(登陆错误.aspx) End If
重置按扭中添加代码 bianhao.Text
pwd.Text
4.1.3 学生模块功能
当点击学生后通过输入学号和密码进入学生登录界面右边的表格中列出登录者的相关信息如输入错误跳转到登陆错误界面。教师、管理员的也相同。学生、教师登录成功后都可重新登陆、修改密码、查询相关内容和退出系统等功能。登录界面如图4.3所示。 图 4.3 学生登录成功界面
1重新登陆会跳转到Login.ascx的界面。
2退出系统中代码如下 Session.Abandon()清空会话信息 Response.Redirect(main.aspx)
为了安全退出后注销用户的Session信息跳转到主界面。
3修改密码中代码如下
If pwd2.Text.Trim pwd3.Text.Trim Then
Response.Write(script alert(两次输入的密码不一致);/script)
Else
Dim db As New dbaccess Response.Write(Session(type)) db.para.Add(id, Session(user)) db.para.Add(oldpwd, pwd1.Text.Trim) db.para.Add(pwd, pwd2.Text.Trim) Dim temp As String temp Session(type) db.para.Add(type, temp.Trim) db.runproc(changepwd) If (db.retok) Then Response.Write(script alert(修改成功);/script) Else Response.Write(script alert(原始密码错误);/script) End If
End If
4.1.4 教师模块功能
教师登陆也同样传递session值将教工号和type值保留以备调用不同的用户控件。其它功能同学生模块相同。登录界面如图4.4所示。 图 4.4 教师登录成功界面
4.1.5 管理员模块功能
管理员登陆成功后界面如图4.4所示重新登陆、修改密码、退出系统同上。系统还原调用存储过程hy备份调用存储过程bf添加、修改、删除课程信息分别调用存储过程ins_c、del_c、course_update添加、修改、删除学生信息分别调用存储过程ins_s、del_s、student _update添加、修改、删除课程信息分别调用存储过程ins_t、del_t、teacher_update。 图 4.5 管理员登录成功界面 1还原的LinkButton_Click中添加代码 db.runproc(hy, True) If db.retok Then Response.Write(script alert(还原成功);/script) Else Response.Write(script alert(还原失败);/script) End If
2addstudent.ascx中的代码如下
page_load中的代码 db.runproc(grade) If db.retok Then g.DataSource db.ds.Tables(0) 绑定班级信息 g.DataTextField db.ds.Tables(0).Columns(1).ToString 显示班级名 g.DataValueField db.ds.Tables(0).Columns(0).ToString 值为班级号 g.DataBind() End If
submit_Click中的代码 If studentid.Text.Trim And pwd.Text.Trim Then Dim db As New dbaccess db.para.Add(sid, studentid.Text.Trim) db.para.Add(pwd, pwd.Text.Trim) db.para.Add(sname, studentname.Text.Trim) db.para.Add(sex, sex.Text.Trim) db.para.Add(gradeid, g.SelectedValue) db.para.Add(telep, telep.Text.Trim) db.runproc(ins_s) If db.retok Then msg.Text insert success ! Else msg.Text insert failure! record may exists ! studentid.Text pwd.Text studentname.Text sex.Text telep.Text End If Else msg.Text 学号或密码不能为空! End If
4.1.6 存储过程
为了提高效率使代码简单大量使用了存储过程。
下面是登陆时调用的存储过程
CREATE proc login
user char(10),pwd char(10),type int0
as
if type0
begin
select * from 学生信息 as b
where b.学号user and b.密码pwd
end
if type1
begin
select * from 教师信息 as b
where b.教工号user and b.密码pwd
end
if type2
begin
select * from 管理员信息 as b
where b.账号user and b.密码pwd
end
下面是还原时调用的存储过程
CREATE PROCEDURE hy AS
DECLARE spid smallint
DECLARE sql char(10)
DECLARE deluser CURSOR FAST_FORWARD
FOR
SELECT spid FROM sysprocesses as p
where dbid in (select s.dbid from sysdatabases as s where s.namecc)
OPEN deluser
FETCH NEXT FROM deluser INTO spid
WHILE FETCH_STATUS ! -1
begin
SET sql KILL CAST(spid AS char(10))
EXEC(sql)
FETCH NEXT FROM deluser INTO spid
end
CLOSE deluser
DEALLOCATE deluser
restore database cc from bf
if error0 select ok
4.1.7 类的使用
在 OOP面向对象的编程中类定义一类对象,通过将大量逻辑添加到自定义类中不仅能使代码更易于重复使用还可以扩展现有的类添加新的功能或修改现有的功能。本程序中编写了一个类供各摸块使用代码如下
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Specialized
Public Class dbaccess 使用sql访问数据库的对象 Public Shared ds As New Data.DataSet Public retok As Boolean 如果返回的第一个表不为空,则为1,反之为0 Public para As New ListDictionary
出错返回Nothing
Public Sub runproc(ByVal procNAME As String, Optional ByVal master As Boolean False) Dim db As String If master Then db master Else db cc End If Dim conn As New SqlConnection(server.;database db ;uidcsf;pwdcsf) Dim comm As New SqlCommand Dim adp As New SqlDataAdapter(comm) comm.Connection conn comm.CommandType CommandType.StoredProcedure comm.CommandText procNAME comm.Parameters.Clear() Dim myDE As DictionaryEntry 加入参数 For Each myDE In para comm.Parameters.Add(myDE.Key, myDE.Value) Next myDE para.Clear() 参数已无用,回收空间 If Not (ds Is Nothing) Then 清空已有表 ds.Reset() End If retok 0 conn.Open() adp.Fill(ds) conn.Close() If ds.Tables.Count 0 Then If ds.Tables(0).Rows.Count 0 Then retok 1 如果有结果返回则为真 End If Else retok 0 反之返回零 End If End Sub
End Class