龙空技术网

基于Web的网上选课系统论文

大壮二壮剪影 83

前言:

现时小伙伴们对“选课系统html”大致比较重视,我们都需要知道一些“选课系统html”的相关知识。那么小编在网上搜集了一些关于“选课系统html””的相关资讯,希望小伙伴们能喜欢,小伙伴们一起来学习一下吧!

目 录

第1章 系统功能简介

1.1课题研究现状分析

1.1.1 本领域内已开展的研究工作

1.1.2 已经取得的研究成果

1.2选题的目的及意义

第2章 系统需求分析

2.1 问题的提出

2.2 系统的设计目标

2.3功能模块划分分析

第3章 系统总体设计

3.1系统层次模块图

3.2数据库的设计

3.3库中各个表的设计

3.4系统架构设计

第4章 系统实现

4.1 登陆模块

4.2 管理员模块

4.3 学生模块

第5章 系统使用说明

第6章 总结

6.1 主要问题及解决办法

6.2 课程设计体会

6.3 自我评定

参考文献

第1章 系统功能简介

随着信息产业的飞速发展,信息化管理已经引入并应用到各行业管理领域,各种形式的百货商场、大型仓储超市、便利店、连锁超市和专卖店等形式的零售业鳞次栉比,不断改变、影响着人们的价值观念和生活方式。因此,要提升企业竞争力,就要大力推进企业信息化建设,利用先进的办公自动化系统来实现企业内部信息管理、共享及交流,才能使企业在竞争激烈的21世纪取得先机。

1.1课题研究现状分析

在我们的教育事业里,计算机早涉及。在学生的管理中,如果通过使用计算机可以减少大量的手工操作,提高工作效率。学生选课管理系统过去采用人工处理方式,由于工作量非常之大,为了提高工作效率,方便管理,因此需要开发一个学生选课管理系统。

本次课题为:学生选课管理系统,它的主要功能是先通过用户身份验证,然后即可登录系统,然后通过增、删、查、改等操作对学生信息及教师信息等进行管理和维护。

1.1.1 本领域内已开展的研究工作

1. 理论研究基础

(1) 后台以SQL2000数据库支持。

(2) 前台以 Microsoft Visual Studio 2005为开发环境,实现学生选课管理的增、删、查、改操作。

2. 技术层面的支持

系统的设计与实现采用三层体系结构模式,三层即表示层、业务逻辑层和数据层。

1.1.2 已经取得的研究成果

本次课设对学生教师等基本信息实现了基本的增、删、查、改等操作。

1.2选题的目的及意义

目的:提高学生选课及成绩的管理工作效率,方便快捷。

意义:切合实际,亲身体会。

第2章 系统需求分析2.1 问题的提出

为了减少人工工作量,提高工作效率,使学生教务部门的工作更加有效地进行。

2.2 系统的设计目标

本系统是对教育部门进行一体化管理的软件系统,其核心管理思想是实现对学生和教师信息及学生成绩的增、删、改的管理。

2.3功能模块划分分析

本系统总体是两个大模块,一个是登录模块;另一个是信息处理模块,有三个登陆身份,分别有不同的操作权限。详细功能模块如下图2-1,图2-2所示:

图2-1

图2-2

各功能模块分析:

登陆模块:

l 登陆模块:用户在提供正确的验证信息之后,进一步使用本系统。

管理员模块:

l 教师信息管理模块:增删查改教师的基本信息。

l 学生信息管理模块:增删查改学生的基本信息。

l 登陆密码设置模块:用于修改登陆密码。

l 成绩查询模块:查询所有成绩的基本信息。

l 成绩录入模块:录入所教学生的成绩信息。

l 成绩修改模块:修改所教学生的成绩信息。

学生模块:

l 登陆密码设置模块:用于修改登陆密码。

l 成绩查询模块:查询自己的所有课程成绩的基本信息。

l 学生选课模块:可以选择学生下学期所学课程。

第3章 系统总体设计3.1系统层次模块图

系统的总体结构图如图3-1所示。

图3-1

3.2数据库的设计

表3-1 数据库中的表

表名

作用

admin

用于存储管理员的基本信息

stu

用于存储学生的基本信息

tea

用于存储教师的基本信息

les

用于存储课程的基本信息

sco

用于存储成绩的基本信息

3.3库中各个表的设计

用户基本信息表admin用于维护管理员的基本情况,主键为ID。表中各字段功能定义如表3-3所示。

表3-2 admin表

字段名

类型

宽度

是否为空

字段意义

ID

int

4

No

标示字段

Name

varchar

20

Yes

用户名

Pwd

varchar

20

Yes

密码

学生基本信息表stu用于显示学生的基本情况,主键为Num。表中各字段功能定义如表3-3所示。

表3-3 stu表

字段名

类型

宽度

是否为空

字段意义

ID

int

4

No

标示字段

Num

varchar

10

No

学号

Pass

char

10

Yes

登录密码

Name

varchar

20

Yes

姓名

Sex

char

2

Yes

性别

Age

int

4

Yes

年龄

Class

varchar

20

Yes

班级

教师基本信息表tea用于显示教师的基本情况,主键为teano。表中各字段功能定义如表3-4所示。

表3-3 tea表

字段名

类型

宽度

是否为空

字段意义

id

int

4

No

标示字段

teano

char

10

No

编号

teaname

char

20

Yes

姓名

课程基本信息表course用于显示课程的基本情况,主键为lesno。表中各字段功能定义如表3-4所示。

表3-4 les表

字段名

类型

宽度

是否为空

字段意义

id

int

4

No

标示字段

lesno

char

10

No

课程号

lesname

char

10

Yes

课程名

teaname

char

20

Yes

姓名

成绩基本信息表sco用于显示学生选课及成绩的基本情况。表中各字段功能定义如表3-5所示。

表3-5 sco表

字段名

类型

宽度

是否为空

字段意义

ID

int

4

No

标示字段

lesno

char

10

No

课程号

Num

varchar

10

No

学号

score

float

8

Yes

成绩

3.4系统架构设计

1、三层模型

(1)表示层:

提供应用程序的用户界面,通常也包括Window窗体和ASP.NET页面的使用。

(2)业务层:

业务层实现应用程序的业务功能。

(3)数据层:

数据层提供对外部系统(如数据库)的访问,该层涉及到的主要.NET技术是ADO.NET的数据库访问技术.

通过这三层访问和保护数据库中的数据,分层之后系统程序的结构如下图:

图 3-2

2、系统总体说明

了解了系统的多层架构设计的基本概念后,我们对学生选课管理系统的结构进行总体说明,本系统包括如下几个文件,名称以及它们之间的关系如图3-3:

图 3-3 系统结构

在学生选课管理系统的整体包结构中,每一个文件都有自己的职责,具体作用如下表所示:

表 3-7

名称

作用

App_Code

负责数据库操作代码。

admin

用于维护管理员的基本信息。

stu

用于维护学生的基本信息

tea

用于维护教师的基本信息。

sco

用于维护选课及成绩的基本信息。

les

用于维护课程的基本信息。

Web.config

Web配置文件

第4章 系统实现4.1 登陆模块

1.登陆按钮代码:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page

{

AdministratorBusiness administratorBusiness;

Administrator administrator;

StudentBusiness studentBusiness;

Student student;

protected void Page_Load(object sender, EventArgs e)

{

administratorBusiness = new AdministratorBusiness();

administrator = new Administrator();

studentBusiness = new StudentBusiness();

student = new Student();

}

protected void Button1_Click(object sender, EventArgs e)

{

if (RadioButtonList1.SelectedItem.Text.Equals("管理员"))

{

administrator.setName(TextBox_Name.Text.Trim());

administrator.setPwd(TextBox_Pwd.Text.Trim());

string check = administratorBusiness.CheckAdminExist(administrator);

if (check == "fail")

Label1.Text = "用户名或密码错误!";

else

{

Session["Authority"] = check;

Response.Redirect("index.aspx");

}

}

else

{

student.setNum(TextBox_Name.Text.Trim());

student.setPass(TextBox_Pwd.Text.Trim());

string check = studentBusiness.CheckstuExist(student);

if (check == "fail")

Label1.Text = "用户名或密码错误!";

else

{

Session["Authority"] = check;

Response.Redirect("index2.aspx");

}

}

}

protected void Button2_Click(object sender, EventArgs e)

{

TextBox_Name.Text = "";

TextBox_Pwd.Text = "";

}

}

2.运行界面:

4.2 管理员模块

1.主要代码:

using System;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class Web_admin_updatePwd : System.Web.UI.Page

{

AdministratorBusiness administratorBusiness = new AdministratorBusiness();

Administrator administrator = new Administrator();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

Label2.Text = Session["Authority"].ToString();

}

protected void Button1_Click1(object sender, EventArgs e)

{

administrator.setName(Session["Authority"].ToString().Trim());

if (administratorBusiness.CheckAdminPwd(administrator) == TextBox1.Text.Trim())

{

if (TextBox2.Text.Trim() == TextBox3.Text.Trim())

{

administrator.setPwd(TextBox3.Text.Trim());

if (administratorBusiness.updatePwd(administrator) == "fail")

Label1.Text = "修改失败";

else

Label1.Text = "修改成功";

}

else

{

Label1.Text = "新密码前后输入不一致!";

}

}

else

{

Label1.Text = "原密码输入有误!";

}

}

}

public partial class StuInsert : System.Web.UI.Page

{

StudentBusiness studentBusiness = new StudentBusiness();

Student student = new Student();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

}

protected void Button1_Click(object sender, EventArgs e)

{

student.setNum(TextBox_Num.Text.Trim());

student.setName(TextBox_Name.Text.Trim());

student.setPass(TextBox_Num.Text.Trim());

student.setSex(DropDownList_Sex.SelectedItem.Text.Trim());

student.setAge(Convert.ToInt32(TextBox_Age.Text.Trim()));

student.setClass(TextBox_class.Text.Trim());

if (studentBusiness.insertStudent(student)=="fail")

Label1.Text ="添加失败!";

else

Label1.Text = "添加成功!";

}

}

public partial class StuShow : System.Web.UI.Page

{

StudentBusiness studentBusiness = new StudentBusiness();

Student student = new Student();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

StuDataBind(true);

}

private void StuDataBind(bool flag)

{

student.setNum(TextBox_Num.Text.Trim());

student.setName(TextBox_Name.Text.Trim());

student.setSex(DropDownList_Sex.SelectedValue.Trim());

student.setClass(TextBox_Class.Text.Trim());

GridView1.DataSource = studentBusiness.FindAllByCondition(student).DefaultView;

if (flag == true)

GridView1.PageIndex = 0;

GridView1.DataBind();

}

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

int id=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString().Trim());

studentBusiness.deleteStudentById(id);

StuDataBind(false);

}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

LinkButton d = (LinkButton)e.Row.Cells[8].Controls[0];

d.Attributes.Add("onclick", "javascript:return confirm('你确认要删除吗?')");

int indexID = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;

e.Row.Cells[1].Text = indexID.ToString();

}

}

protected void Button_Search_Click(object sender, EventArgs e)

{

StuDataBind(true);

}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

StuDataBind(false);

}

}

public partial class StuInsert : System.Web.UI.Page

{

StudentBusiness studentBusiness = new StudentBusiness();

Student student = new Student();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

StuDataBind();

}

protected void Button1_Click(object sender, EventArgs e)

{

student.setID(Convert.ToInt32(Request.QueryString["id"].ToString().Trim()));

student.setNum(TextBox_Num.Text.Trim());

student.setName(TextBox_Name.Text.Trim());

student.setSex(DropDownList_Sex.SelectedItem.Text.Trim());

student.setAge(Convert.ToInt32(TextBox_Age.Text.Trim()));

student.setClass(TextBox_Class.Text.Trim());

if (studentBusiness.updateStudent(student)=="fail")

Label1.Text ="修改失败!";

else

Label1.Text = "修改成功!";

}

private void StuDataBind()

{

DataTable dt = new DataTable();

int id = Convert.ToInt32(Request.QueryString["id"].ToString().Trim());

dt = studentBusiness.findAllByID(id);

TextBox_Num.Text = dt.Rows[0]["Num"].ToString().Trim();

TextBox_Name.Text = dt.Rows[0]["Name"].ToString().Trim();

DropDownList_Sex.SelectedValue = dt.Rows[0]["Sex"].ToString().Trim();

TextBox_Age.Text = dt.Rows[0]["Age"].ToString().Trim();

TextBox_Class.Text = dt.Rows[0]["Class"].ToString().Trim();

}

}

2.运行界面

4.3 学生模块

1.主要代码:

public partial class Web_stu_SelfInfo : System.Web.UI.Page

{

Student student = new Student();

StudentBusiness studentBusiness = new StudentBusiness();

DataTable dt = new DataTable();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

TextBox1.Text = Session["Authority"].ToString();

string S = Session["Authority"].ToString().Trim();

dt = studentBusiness.findAllByNum(S);

TextBox2.Text = dt.Rows[0]["Name"].ToString().Trim();

TextBox3.Text = dt.Rows[0]["Sex"].ToString().Trim();

TextBox4.Text = dt.Rows[0]["Age"].ToString().Trim();

TextBox5.Text = dt.Rows[0]["Class"].ToString().Trim();

}

}

public partial class Web_stu_selectLes : System.Web.UI.Page

{

Score_VIEWBusiness score_VIEWBusiness = new Score_VIEWBusiness();

Score_VIEW score_VIEW = new Score_VIEW();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

{

TextBox1.Text = Session["Authority"].ToString();

ScoDataBind(true);

}

}

private void ScoDataBind(bool flag)

{

score_VIEW.setNum(TextBox1.Text.Trim());

score_VIEW.setName("");

score_VIEW.setClass("");

score_VIEW.setlesname("");

score_VIEW.setteaname("");

GridView1.DataSource= score_VIEWBusiness.FindAllByCondition(score_VIEW).DefaultView;

if (flag == true)

GridView1.PageIndex = 0;

GridView1.DataBind();

}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

ScoDataBind(false);

}

public partial class Web_les_selectLesson : System.Web.UI.Page

{

Score_VIEWBusiness score_VIEWBusiness = new Score_VIEWBusiness();

Score_VIEW score_VIEW = new Score_VIEW();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

{

ScoDataBind(true);

}

}

private void ScoDataBind(bool flag)

{

score_VIEW.setNum("");

score_VIEW.setName("");

score_VIEW.setClass("");

score_VIEW.setlesname(TextBox1.Text.Trim());

score_VIEW.setteaname("");

GridView1.DataSource = score_VIEWBusiness.FindAllByCondition(score_VIEW).DefaultView;

if (flag == true)

GridView1.PageIndex = 0;

GridView1.DataBind();

}

protected void Button1_Click(object sender, EventArgs e)

{

ScoDataBind(true);

}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

GridView1.PageIndex = e.NewPageIndex;

ScoDataBind(false);

}

}

public partial class Web_les_xiangxi1 : System.Web.UI.Page

{

Score_VIEWBusiness score_VIEWBusiness = new Score_VIEWBusiness();

Score_VIEW score_VIEW = new Score_VIEW();

ScoreBusiness scoreBusiness = new ScoreBusiness();

Score score = new Score();

LessonBusiness lessonBusiness = new LessonBusiness();

Lesson lesson = new Lesson();

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Authority"] == null || Session["Authority"].ToString().Trim() == "")

Response.Redirect("~/Web/Login.aspx");

if (!Page.IsPostBack)

{

ScoDataBind(true);

}

}

private void ScoDataBind(bool flag)

{

DataTable dt1 = new DataTable();

DataTable dt2 = new DataTable();

int id = Convert.ToInt32(Request.QueryString["id"].ToString().Trim());

dt1 = score_VIEWBusiness.findAllScoreByID(id);

TextBox1.Text=dt1.Rows[0]["lesname"].ToString().Trim();

TextBox2.Text=dt1.Rows[0]["teaname"].ToString().Trim();

dt2=score_VIEWBusiness.findAllScoreBylesname(dt1.Rows[0]["lesname"].ToString().Trim());

TextBox3.Text=dt2.Rows.Count.ToString().Trim();

}

protected void Button1_Click(object sender, EventArgs e)

{

DataTable dt = new DataTable();

score.setID(Convert.ToInt32(Request.QueryString["id"].ToString().Trim()));

dt = lessonBusiness.findAllLessonBylesname(TextBox1.Text.Trim());

score.setNum(Session["Authority"].ToString().Trim());

score.setlesno(dt.Rows[0]["lesno"].ToString().Trim());

if(scoreBusiness.updateSco(score) == "fail")

Label1.Text = "失败!";

else

Label1.Text = "成功!";

}

protected void Button2_Click(object sender, EventArgs e)

{

Response.Redirect("~/Web/les/selectLes.aspx");

}

}

2.运行界面

第5章 系统使用说明

本系统的用户分为管理员和学生。

管理员可以对学生、班级、课程等信息进行统一的管理,包括学生信息管理、教师信息管理、基本课程信息管理、选课管理、学生成绩管理等。

学生只能利用本系统进行与自己有关的操作,不能浏览或修改其他信息,主要包括管理个人信息,如浏览个人信息、修改密码、查询个人成绩等;执行选课操作,如可以进行选课、查看所选课程的基本信息和教师信息、查看选课人数和浏览个人选课情况。

第6章 总结6.1 主要问题及解决办法

1.数据库语句的使用容易出错,解决方法:先在查询分析器中使用,无误后再写入程序中。

2.文本框中内容总是读入空格,解决方法:在后加系统方法trim()来消除空格;

3.界面总是不堪入目,解决方法:上网参看实例来规范自己的界面风格,使其美观大方。

6.2 课程设计体会

在这次的系统制作中,因为比较贴近自己本身的生活,故做起来比较顺手,也更深的了解了ASP.NET的应用和数据库的连接,与SQL语句的应用。

6.3 自我评定

在这次的系统实现中,由于时间的不是很富裕,并且对ASP.NET学得不是很到位,但系统所要求一些基本的功能都实现了,自己有待努力完善。课设过程中遇到很多问题,在老师和同学们的帮助下一一解决,在此表示感谢!

参考文献

[1] 邵良斌. ASP.NET(C#)实践教程.北京:清华大学出版社,2007.7

[2] 贝尔利纳索. ASP.NET 2.0网站开发全程解析. 北京:清华大学出版社,2008.6

[3] 孙高毅.基于.NET的ASP.NET MVC框架研究[D].中南大学,2009-06-30

[4] 马骏.ASP.NET网页设计与网站开发.北京:人民邮电出版社,2007.9

[5] 赛坤春.SQL Server数据库开发实例解析. 北京:机械工业出版社,2006.1

[6] 刘丹妮.ASP.NET 2.0(C#)大学实用教程. 北京:电子工业出版社,2009.1

标签: #选课系统html #选课系统功能结构图 #选课系统结构图 #学生选课管理系统结构图 #学生选课管理系统功能分析怎么写