基于asp.net新闻发布系统_课程设计报告(18页).doc
-基于新闻发布系统_课程设计报告-第 14 页存档资料 成绩: 课程设计报告书课程名称 程序设计 题 目 基于新闻发布系统 分 院 电信分院 专业班级 11电子商务 学号 20110210460228 学生姓名 龚云凯 指导教师 付念 2014年 1 月2日 目录第1章 引言11.1 系统开发的背景11.2 系统开发的工具和环境1第2章 概要设计22.1系统概论22.2系统预览22.3系统的总体框架3第3章 数据库的设计与实现43.1数据库的需求分析43.2数据库概念结构设计43.3数据库的详细设计51) 数据库的建立52) 数据表的建立5第4章 详细设计71、 登陆页面72、 主界面83、 学生信息添加94、 学生信息管理111) 用户的信息显示112) 学生的详细信息123) 学生信息的修改125、 成绩管理141) 成绩的添加142) 成绩查询166、 系统设置171) 用户管理172) 密码修改20第5章 课程设计心得23参考文献(资料)24第1章 引言1.1 系统开发的背景 长期以来,学校对学生学籍的管理都还使用着传统的模式。在此模式下,人工的记录学生信息、考试信息等等。而随着现代素质教育与时代的不断发展这样的模式已经不能完全适应现代的教育形势。信息化时代的到来,使学校传统的管理方法和办学水平都受到了极大的挑战。随着Internet技术持续迅猛的发展,给传统的办学模式提出了新的要求。进入新世纪,从世界各国教育信息化的进程来看,不但竞争异常激烈,而且无论是在教育信息基础设施和资源建设上,还是在普及的程度上,中国与西方发达国家甚至某些发展中国家相比,都存在着较大的差距。新的世纪里,如果中国不能很好地利用互联网的平台和以较低的成本对推动教育信息化缺乏明确的方向,势必偏离信息化的轨道,进而阻碍社会信息化的进程和整个国民经济的发展。因此,实施教育的信息化已经刻不容缓、迫在眉睫,而其中的学生学籍管理是其中一个不可或缺的环节。较之传统的管理方式,笔者开发的学生学籍管理系统的优势有:一方面可以实现数据共享,又能像使用单机系统一样,进行便捷地各种数据添加、修改、删除、查询和统计等操作,并且具有相当的安全性和可靠性。;另一方面,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是学校的科学化、正规化管理,与社会接轨的重要条件。1.2 系统开发的工具和环境 20世纪末,随着我国计划生育的不断普及和深入,入校人数正逐步下降,而各个学校的规模却在不断扩大,校与校之间的合并规模也越来越大,而此时计算机在各学校也开始普及,一些学校开始将计算机应用到学生信息的管理中去,为学生管理信息系统的形成打下了坚实的基础。而此时的应用计算机的功能还仅限于记录学生的基本信息,以供需要时查询,数据库是比较流行的SQL Server Management Studio。制作网页的工具我选择Visual Studio 2010,它提供了一种面向对象的开发环境。C#吸收了C+、Visual Basic、Delphi、Java等语言的优点,继承了C语言的语法风格,同时有继承了C+的面向对象的特性。Microsoft SQL Server是微软公司于1997年开始推出的数据库管理系统。它主要以NT Server为运作平台。并以其强大、灵活、易于使用等优点雄居业界前列。Microsoft SQL Server是作为一个组织内部的全部数据的中心存储来设计的数据库系统,是在成熟和强大的关系模型中建立的。它是客户/服务器系统的一个完美的实例,它提供了安装到服务器系统上的服务器软件和一些安装到客户系统上的客户软件,并提供了一些应用程序工具来进行数据库的管理和访问。第2章 概要设计2.1系统概论 学生学籍管理是目前院校学生管理职能部门的一个重要环节,并且该环节的顺利实施有助于推动学校的信息化建设。目前,院校的学生信息管理工作已经不再局限于对学生基本信息数据的维护,而是越来越多地参与到与其他部门相协调的互动工作中。本系统提供了一套学生综合信息管理平台,能够使系统管理人员对院校的专业进行分类管理,进而确定各个专业中所包含的班级信息,从而在已有班级信息的基础上对学生信息进行集中管理。本系统具有以下特点:本系统各项功能的操作都比较直观、简单,因此用户可以很轻松地胜任信息的管理与维护。数据库采用SQL server2005作为本系统的数据库平台,从而降低了程序对硬件以及操作系统版本的要求。通过数据表之间的关系解决了数据之间的依赖关系以及数据完整性问题。2.2系统预览图2-1所示为用户登录系统以后应用程序的主界面,通过该窗体中所提供的主菜单,用户可以分别对专业信息、班级信息、学生信息、课程信息、成绩信息等功能的管理,并且在整个系统中添加不同的角色。图2-1 主界面 在本系统中,需要解决的核心技术问题为如何通过最合理的方式对数据进行存取查询操作,本系统中队数据存取的操作流程图如图2-2所示:图2-2 数据存储流程图一般情况下,SqlCommand控件可用于执行无返回记录的SQL语句,如对班级信息的添加、修改、删除等操作,也可以用于执行含有返回记录的SQL语句,如对成绩信息的查询统计等操作。2.3系统的总体框架学生个人信息管理管理员用户登陆系 部 管 理成 绩 管 理学生学籍管理系统学 籍 管 理系 统 管 理个人资料的查看与修改学生用户登陆成 绩 查 询第3章 数据库的设计与实现3.1数据库的需求分析 由于在本系统中需要采集大量信息,包括学生信息、班级信息等信息,如果不能合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么在后期进行数据的整理及汇总时,就会增加开发人员的编程难度,并造成效率的下降,根据收集来的信息,归纳出以下规律。一个专业包含多个班级。一个分院包含多个专业一个班级包含多个学生一个班级对应一个入学年份及年制。一个班级可以包含多个学生。每一位学生拥有唯一的学号。一个班级对应连续的两个学期。一个班级在一个学期可以开设多门课程每一门课程需要记录每一位同学的成绩。根据上述数据间的对应及依赖关系,可以确定出数据库中应该包含的数据表信息如下。专业信息:包含所开设的专业的名称及描述。班级信息:包含班级名称、所属专业、入校时间、学制及班主任信息。学生信息:包含学生学号、姓名、性别及所属班级等基础信息。分院信息:包含分院名称、院长、编号及备注信息。成绩信息:包含学生学号、课程及学期和成绩等信息。用户信息:包含用户名称、密码及角色信息。根据数据库需要实现的功能不难看出一共需要设计6张表格,实现相应的功能。分别为T_Adjoy_Info(用于存放分院的信息)、T_Class_Info(用以存放班级的信息)、T_Department_Info(用以存放专业的信息)、T_Course_Info(用以存放课程的信息)、T_Student_Info(用于存放学生的信息)、T_Score_Info(用以存放学生成绩)、T_Users_Login(用以存放用户的账号和密码)。3.2数据库概念结构设计根据数据库需求分析得到的结果,可以确定并概括出程序中所包含的实体及实体间的关系,为后续的数据库逻辑结构设计提供指导。下面通过直观的ER实体关系图对实体进行描述(以成绩信息表为例)。成绩信息实体如图3-1所示:成 绩 信 息成 绩学 年课程编号学生学号图3-1 成绩信息实体3.3数据库的详细设计1) 数据库的建立建立一个名为StudentDB的数据库,创建数据库的代码如下所示:USE masterGO/* Object: Database StudentDB Script Date: 01/02/2014 20:39:52 */CREATE DATABASE StudentDB ON PRIMARY ( NAME = N'StudentDB', FILENAME = N'E:数据库12345DB_51aspxStudentDB.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'StudentDB_log', FILENAME = N'E:数据库12345DB_51aspxStudentDB_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO建好数据库后打开出现如图3-2所示页面:图3-2 数据库2) 数据表的建立 以建立T_Score_Info表为例,需要设计学号,学年,课程编号,成绩4个对象名称,学号的数据类型设为varchar,学年的数据类型为nchar,课程编号的数据类型为nvarchar,成绩的数据类型为int,以学号为主键。创建T_Score_Info代码如图3-3所示:图3-3 数据库建立代码执行上述代码后生成T_Score_Info表,出现操作成功字样,打开该表,表的结构如图3-4所示:图3-4第4章 详细设计1、 登陆页面首先设计用户的登陆页面,该页面应具备以下功能: 能够输入用户的账户、密码、验证码,输入正确后进入主界面。 能够调用T_Users_Login数据表的内容,用以验证所输入的账户信息是否正确。 当用户输入的信息由错误时,能够提示用户的错误命令。 介绍本系统的主要功能以及设计人员的姓名。运行login.aspx界面,获得如图4-1所示的效果图:图4-1 登陆界面点击登陆按钮,触发Submit_Click事件,执行如下代码:public partial class login_in : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) string username = Request.Form"username".Trim(); /获取传送的表单内的值 string password = Request.Form"password".Trim(); SqlConnectionSqlCon=newSqlConnection (ConfigurationManager.ConnectionStrings"ConStr".ConnectionString); /设置连接字符串 try SqlCon.Open(); /打开连接 SqlCommand SqlCom = new SqlCommand(); /创建SqlCommand实例 SqlCom.Connection = SqlCon; SqlCom.CommandText = "select * from T_User_Login where UserName=username and PassWord=password" /设置sql执行语句 SqlCom.Parameters.Add(new SqlParameter("username", username); /为sql语句添加参数 SqlCom.Parameters.Add(new SqlParameter("password", password); SqlDataReaderSqlD=SqlCom.ExecuteReader(); /读取数据 if (SqlDR.HasRows) /判断查询是否有数据 Session"user" = username; Response.Write(username); Response.Redirect("index.aspx"); else Session"user" = null; Response.Write("<script>alert('用户名或密码错误,登录失败!')</script>"); Response.Redirect("login.aspx"); catch (SqlException a) Response.Write(a.Message); finally SqlCon.Close(); /关闭连接 当未输入账号、密码、验证码时,会出现如图4-2所示的提示:图4-2 账户验证提示2、 主界面主界面应具备以下功能: 在页面上方显示用户的用户名。 页面的左侧提供各个功能的链接。 当用户点开相关的连接后,在页面右侧显示具体的操作页面。 当用户输入正确的账号、密码、验证码后,就入到学生学籍管理系统的主界面。主界面由三个页面组合而成,分别为:admin_top.aspx,left.aspx,right.aspx,其中admin_top.aspx页面显示管理员的名称,left.aspx提供系统中所有功能链接,在right.aspx中显示left.aspx中链接的页面,即具体功能操作页面。默认的right.aspx页面显示具体的系统功能、系统的使用方法、版权信息、设计人员以及技术支持等相关信息。主界面的效果如图4-3所示:图4-3 主界面3、 学生信息添加 学生信息添加应具备以下功能: 可以输入学生的姓名,班级等信息 当输入有误时,能够提示错误。 当输入完成后,点击提交,能够把信息写入到T_Student_Info表中。点击功能栏的左侧学生个人信息管理下的添加学生信息,写好学生的信息。如图4-4所示:图4-4 添加学生信息 点击页面下方的提交,即可把学生的信息写回到T_Student_Info中,提交完成后在数据库后台中显示如图4-5所示:图4-5 表T_Student_Info中显示的数据当点击提交时,触发Button1_Click事件,执行的代码如下:protected void Button1_Click(object sender, EventArgs e) string StuId = TextBox1.Text.Trim(); /定义字符串类型保存相关数据 string StuName = TextBox2.Text.Trim(); string Ssex = DropDownList1.Text; string Jiguan = TextBox3.Text.Trim(); string Minzu = TextBox4.Text.Trim(); string Data = DropDownList2.Text + "-" + DropDownList4.Text + "-" + DropDownList5.Text; string zzmm = DropDownList6.Text.Trim(); string sfzh = TextBox6.Text.Trim(); string phone = TextBox7.Text.Trim(); string add = TextBox8.Text.Trim(); string classid = TextBox9.Text.Trim(); if (StuId = string.Empty | StuName = string.Empty | classid = string.Empty) /判断用户输入的值是否为空 Response.Write("<script>alert('输入不能为空!')</script>"); return; /调用自定义函数实现实现插入数据 int s = Sql.InsertSql("insert into T_Student_Info(ID,学号,姓名,性别,籍贯,民族,班级编号,出生日期,政治面貌,身份证号,联系电话,家庭住址) values(newid(),StuID,StuName,Ssex,Jiguan,minzu,Data,zzmm,sfzh,phone,add,classid)", new SqlParameter("StuId", StuId), new SqlParameter("StuName", StuName), new SqlParameter("Ssex", Ssex), new SqlParameter("Jiguan", Jiguan), new SqlParameter("Minzu", Minzu), new SqlParameter("classid", classid), new SqlParameter("Data", Data), new SqlParameter("zzmm", zzmm), new SqlParameter("sfzh", sfzh), new SqlParameter("phone", phone), new SqlParameter("add", add); if (s >= 0) /判断返回值是否为0 Response.Write("<script>alert('插入数据成功!')</script>"); else Response.Write("<script>alert('插入数据失败!')</script>"); 上述代码中包含InsertSql函数,该函数的功能是插入数据,具体代码如下所示: public static int InsertSql(string sql, params SqlParameter paramenters) /插入数据 SqlConnectioSqlCon=newSqlConnection (ConfigurationManager.ConnectionStrings"ConStr".ConnectionString); SqlCon.Open(); SqlCommand SqlCom = new SqlCommand(sql, SqlCon); foreach (SqlParameter paramenter in paramenters) SqlCom.Parameters.Add(paramenter); return SqlCom.ExecuteNonQuery(); SqlCon.Close();4、 学生信息管理1) 用户的信息显示学生管理界面应具备以下的功能: 能够显示学生的信息(包括学生姓名、学号等)。 提供一个进入到学生信息详情的链接。点击左侧功能栏学生个人信息管理下方的学生信息管理,进入Manage_StuInfo.aspx页面,进入该页面会是会调用T_Student_Info数据表的内容并显示在GridView控件中。效果图如下所示:图4-6 学生信息详情调用数据库的内容并显示在GridView中的代码如下:public partial class Manage_StuInfo : System.Web.UI.Page string nowsql = "select 学号,姓名,班级编号,政治面貌 from T_Student_Info" protected void Page_Load(object sender, EventArgs e) Sql.GridToView(nowsql, GridView1); protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) Stringid=Server.UrlEncode (GridView1.DataKeyse.NewSelectedIndex0.ToString(); Response.Redirect("Examine_StuInfo.aspx?id=" + id);2) 学生的详细信息 在此页面应具备以下的功能 能够显示学生所有的信息。 提供一个链接,能返回到原来的页面。 提供一个链接,进入到学生信息的修改页面。点击GridView页面学生信息的详细字样,进入到Examine_StuInfo.aspx页面,显示该学生的所有信息,如图4-7所示:图4-7 学生的所有信息3) 学生信息的修改 在此页面也具备功能: 把原先的学生信息写到相应的控件中,并可以对学生信息的修改。 把写好的信息重新写回到数据表中。首先页面先把原来的学生数据库的内容显示在页面中,当用户把修改的内容填写好后,点击更新按钮,触发Button1_Click事件,页面效果如图4-8所示:图4-8 修改学生信息执行的代码如下:/当鼠标点击修改时,首先在页面打开时,需要载入选中学生的详细信息public partial class Manage_StuInfo_Edit : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) string id = Request.QueryString"id" string sql = "select * from T_Student_Info where 学号='" + id + "'" SqlConnection SqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings"ConStr".ConnectionString); SqlCon.Open(); SqlCommand SqlCom = new SqlCommand(sql, SqlCon); SqlDataReader SqlDR = SqlCom.ExecuteReader(); while (SqlDR.Read() Label1.Text = SqlDR.GetValue(0).ToString(); TextBox2.Text = SqlDR.GetValue(1).ToString(); TextBox3.Text = SqlDR.GetValue(2).ToString(); TextBox4.Text = SqlDR.GetValue(3).ToString(); TextBox5.Text = SqlDR.GetValue(4).ToString(); TextBox6.Text = SqlDR.GetValue(5).ToString(); TextBox8.Text = SqlDR.GetValue(6).ToString(); TextBox7.Text = SqlDR.GetValue(7).ToString(); TextBox9.Text = SqlDR.GetValue(8).ToString(); TextBox10.Text = SqlDR.GetValue(9).ToString(); TextBox11.Text = SqlDR.GetValue(10).ToString(); SqlCon.Close();/当学生信息修改完毕时,点击更新按钮,调用更新函数,并把更新的内容写入后台数据库中 protected void Button1_Click(object sender, EventArgs e) string StuID=Label1.Text.Trim(); string StuName =TextBox2.Text.Trim(); string Ssex=TextBox3.Text.Trim(); string City=TextBox4.Text.Trim(); string Minzu=TextBox5.Text.Trim(); string date=TextBox6.Text.Trim(); string Zzmm=TextBox7.Text.Trim(); string ClassID=TextBox8.Text.Trim(); string PeoNum=TextBox9.Text.Trim(); string Phone=TextBox10.Text.Trim(); string Add=TextBox11.Text.Trim(); string upsql="update T_Student_Info set 学号='" + StuID + "',姓名='" + StuName + "',性别='"+ Ssex + "',籍贯='" + City + "',民族='" + Minzu + "',出生日期='" + date + "',政治面貌='" + Zzmm +"',班级编号='" + ClassID + "',联系电话='" + Phone + "',家庭住址='" + Add +"' where 学号='" + StuID + "'" Sql.UpdataSql(upsql); /更新函数 Response.Redirect("Examine_StuInfo.aspx?id=" + Server.UrlEncode(Request.QueryString"id".ToString(); 在上述的代码汇总会调用更新的函数,更新函数的代码如下(代码存放于App-code中): public static int UpdataSql(string sql) /用于更新数据 SqlConnectionSqlCon=new SqlConnection(ConfigurationManager.ConnectionStrings"ConStr".ConnectionString); SqlCon.Open(); SqlCommand SqlCom = new SqlCommand(sql, SqlCon); return SqlCom.ExecuteNonQuery(); SqlCon.Close();5、 成绩管理1) 成绩的添加老师要把学生的成绩输入到数据库,可以更据输入学生的学号,课程号,学年以及成绩,点击添加即可成功。点击左侧功能栏成绩管理中添加成绩的链接,进入到add_Score.aspx页面,输入相关的信息后点击添加,即可完成成绩的录入。效果图如4-9所示:图4-19 成绩添加当点击添加成功后,数据库显示数据如图4-10所示:图4-10 成绩的数据后台当点击添加按钮后,触发Button1_Click事件,执行如下的代码:public partial class add_Score : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) for (int i = 2010; i <= 2015; i+) DropDownList1.Items.Add(Convert.ToString(i); DropDownList1.Text = "2012" protected void Button1_Click(object sender, EventArgs e) protected void Button1_Click1(object sender, EventArgs e) string StuID = TextBox1.Text.Trim(); string CouID = TextBox2.Text.Trim(); string year=DropDownList1.Text.Trim(); string cj = TextBox3.Text.Trim(); if (StuID = "" | CouID = "" | cj = "") Response.Write("<script>alert('输入不能为空!')<script>"); return; else string sql = "insert into T_Score_Info(学号,课程编号,学年,成绩) values('" + StuID + "','" + CouID + "','" + year + "','" + cj + "')" int s= Sql.InsertSql(sql); if (s > 0) Response.Write("<script>alert('插入成功!')<script>"); TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" else Response.Write("<script>alert('插入失败!')<script>");2) 成绩查询当学生需要查询自己的成绩时,可以登录网站,点击左侧功能栏成绩管理中的成绩管理,进入Manage_Score.aspx页面,在文本框内输入自己的学号就可以查找自己的成绩。当输入的信息有误时不会显示成绩信息。演示的效果如图4-11所示:图4-11 课程成绩的查询此部分代码如下(编辑和删除演示以及代码省略):public partial class Manage_Score : System.Web.UI.Page public string sql = "select * from T_Score_Info" protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) Sql.GridToView(sql, GridView1); protected void Button1_Click(object sender, EventArgs e) Sql.GridToView("select * from T_Score_Info where 学号='" + TextBox1.Text.Trim() + "'",GridView1);6、 系统设置1) 用户管理点击左侧功能栏系统设置中点击用户管理,进入到Manage_User.aspx页面中,在此页面可以进行用户的查找,编