1、新乡学院计算机与信息工程学院项目实训报告项目名称教学管理系统班 级11级信管一班学 号11042051032姓 名解笑汝指导教师黄楠2013年 12 月 29 日项目实训主要目的 本实训是计算机信息管理专业学生的实训课,融合前面所学课程内容,按项目导向、任务驱动的方式,通过任务引领和软件开发过程中各种文档的识读、综合运用WEB程序设计、信息系统分析和数据库实现一个小系统项目,增强学生的动手能力,使学生能够掌握一个完整的管理信息系统的开发过程并能实际动手开发一个小型系统。项目实训任务要求1. 完成项目开发中的需求分析、数据库设计、数据库建立、应用系统的设计和开发、用户界面的设计和实现、系统调试和
2、安装等全过程.2。DBMS和开发工具的选择DBMS建议使用SQL Server2008等RDBMS。开发工具建议Visual Studio2008,C语言,网页设计技术等.3。 系统结构要求建议采用B/S结构。教师评语成绩: 指导教师(签名) 目 录1. 设计任务说明11。1 人员及分工11。2 教学管理系统的定义 12需求分析13数据库设计24。 软件功能设计34。1登录界面代码 44。2主界面代码74。3修改密码界面代码134。4完善信息界面代码14总结17参考文献18161。设计任务说明本系统教学管理系统就是为了实现高效的管理这些数据而专门设计的。该教学管理系统是用数据库应用开发工具SQ
3、L sever2005语言开发而来的.它主要包括学生管理、成绩管理、班级管理、课程管理以及教师管理,对学校的日常教学系统进行有效地组织。1。1人员及分工解笑汝负责创建数据库、教学管理系统代码的编写。靳晓晓负责规划前台界面运行、数据库逻辑设计、软件功能设计。1.2教学管理系统的定义(1)制定学校教学工作计划,明确教学工作目标,保证学校教学工作有计划、有步骤、有条不紊地运转。(2)建立和健全学校教学管理系统,明确职责范围,发挥管理机构及人员的作用。(3)加强教师的教学质量和学生的学习质量管理。(4)组织开展教学研究活动,促进教学工作改革。(5)深入教学第一线,加强检查指导,及时总结经验,提高教学质
4、量。(6)加强教务行政管理工作.2。需求分析该教学管理系统是开发目标是有效管理学生,教师,课程等信息,实现这些信息的数据录入、浏览、修改、查询等,从而实现对信息的规范化、系统化、自动化管理。根据对终端用户的调研,了解了用户端的需求,进行分析得出下面的几项需求:(1)由于信息具有一定的保密性,为了使拥有权限的管理员对数据进行管理,应该为用户设置密码保护,在用户访问是该系统时进行身份的鉴别,以提高系统的数据安全性。(2)使用该教学系统,能够实时对学生,教师信息时行记录,并能够非常方便地浏览、添加、编辑和查询.(3)成绩管理,能够对学生每学期的成绩进行录入,修改,并提供计算学生的平均成绩的功能,以及
5、每个班级某些课程的平均分进行计算。(4)学校的班级数可能增加,有些班级也可能被撤编,所以应用程序应该能够方便地对学生班级进行添加、编辑、删除。同时班级系统还要记录算数学院和专业以及该班级的学生数量.(5)课程管理描述了课程号、课程名称、授课教师等重要教学方面的信息,课程号用于方便学生的学课系统管理。3。数据库设计数据库逻辑设计根据E-R图得出各个关系模型的逻辑结构:学生信息表(学号,姓名,性别,出生日期,班级号,总学分)班级信息表(班级号,班级名,学院,专业,人数)课程信息表(课程号,课程名,学时,学分,开课学期,教师号)教师信息表(教师号,教师名,性别,职称)成绩信息表(学号,课程号,分数,
6、学期,班级号)用户表(用户名,密码)其中用户表是教学管理系统注册用户使用的.由关系模式得出关系表如下:字段名数据类型含义说明空值情况学号Char(6)学生编号主关键字姓名varchar(20)学生姓名不为空班级号Char(2)学生性别不为空成绩Date出生日期可为空班级号Char(10)所在班级可为空总学分Dec(4,1)总学分可为空表1user1学生信息表字段名数据类型含义说明空值情况班级号Char(6)班级编号主关键字班级名Char(12)班级名称可为空学号Char(12)所在学院可为空专业Char(12)所在专业可为空人数Dec(2)班级人数可为空表2grides班级信息表字段名数据类型
7、含义说明空值情况课程号Char(6)课程编号主关键字课程名Char(12)课程编号不为空学号Dec(2)课程学时可为空教师编号Dec(2)课程学分可为空开课学期Dec(2)开课学期可为空教师号Char(6)授课教师外键表3courses课程信息表字段名数据类型含义说明空值情况学号Char(6)学生编号主关键字课程号Char(6)课程编号主关键字分数Dec(2)考试分数可为空学期Dec(2)考试学期可为空班级号Char(6)班级编号可为空表4 score成绩信息表字段名数据类型含义说明空值情况用户名Varchar(12)用户名称主关键字密码Varchar(12)用户密码不为空表5 pass用户信
8、息表4.软件功能设计4.1登录界面代码登录到教学管理系统可以完成系统管理功能、学生管理功能、成绩管理功能、班级管理功能、课程管理功能.系统管理:可以实现用户的添加和修改密码。学生管理:可以对学生的记录进行添加,删除,修改和查询。还可以统计某学生,某学期的所有课程的成绩.成绩管理:可以对成绩记录进行添加,删除,修改和查询.还可以统计某学生、某学期的所有课程的成绩 ,根据成绩进行添加,修改,查询.课程管理:可以对课程记录进行添加,删除,修改和查询。登录界面代码:protectedvoid Page_Load(object sender, EventArgs e) HttpCookie cookie
9、 = Request。Cookies”name”;if (cookie != null) Sessionname = Request.Cookies”name”Name”。ToString(); Response。Redirect(mainmenu。aspx); protectedvoid btndl_Click(object sender, EventArgs e) if (SessionValidateNo != null) string s = Session”ValidateNo”。ToString();if (txtyzm。Text != s) Response。Write(”scr
10、iptalert( + s + )/script”); else SqlConnection con = newSqlConnection(Data Source=。SQLEXPRESS;AttachDbFilename=DataDirectoryjiaowu。mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”); con。Open();/2 SQL语句string sql = select from pass where userName=” + TextBox4。Text + ”and userpass=”
11、 + TextBox5.Text + / 3 datareader command 对象SqlCommand cmd = newSqlCommand(sql, con);SqlDataReader dr = cmd。ExecuteReader();/ 4 判断有没数据if (dr。Read() HttpCookie cookie = Request.Cookies”name;if (cookie = null) cookie = newHttpCookie(”name”); cookie。Values。Remove(Name); cookie。Values.Remove(”Pass”); co
12、okie.Values。Add(”Name”, TextBox4。Text); cookie。Values。Add(”Pass”, TextBox5。Text);switch (DropDownList1.SelectedIndex) case 0:break;case 1: cookie。Expires = DateTime.Now.AddDays(1);break;case 2: cookie.Expires = DateTime。Now。AddDays(30);break;case 3: cookie。Expires = DateTime。Now.AddYears(1);break; R
13、esponse。Cookies。Add(cookie);/1 保存session 2 保存COOKIE 3 跳转到主页面 Sessionname = TextBox4。Text; Response.Write(scriptalert(success!)/script”); Response。Redirect(”mainmenu。aspx”); else Response。Write(scriptalert(error!)/script”); else Response.Write(”scriptalert(验证码暂不存在!)/script”); protectedvoid Button3_Cl
14、ick(object sender, EventArgs e) Response。Redirect(”Default。aspx); 4.2主界面代码主界面代码:protectedvoid Page_Load(object sender, EventArgs e) if (Session”name” = null) msg。ShowMessage(请先登录”, ”Default.aspx”); else lblLogin。Text = 欢迎 + Session”name”。ToString() + ” + DateTime。Now。ToString(”hh:mm:ss) + ” 登录系统!; 排
15、课管理界面代码:publicpartialclassWebForm5 : System.Web。UI.Page SqlConnection sqlcon;SqlCommand sqlcom;string strCon = Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectoryjiaowu。mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;dataop dp = newdataop();protectedvoid Page_Load(object sende
16、r, EventArgs e) if (!IsPostBack) bind(); privatevoid bind() SqlConnection con = newSqlConnection(Data Source=。SQLEXPRESS;AttachDbFilename=DataDirectoryjiaowu.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”); con.Open();string sql = select from JXB;SqlDataAdapter da = newSqlDataAd
17、apter(sql, con);DataSet ds = newDataSet(); da.Fill(ds, ”JXB); GridView1.DataKeyNames = newstring 教学班号” ;/主键 GridView1。DataSource = ds; GridView1.DataBind(); protectedvoid GridView1_SelectedIndexChanged(object sender, EventArgs e) protectedvoid GridView1_PageIndexChanging(object sender, GridViewPageE
18、ventArgs e) GridView1。PageIndex = e.NewPageIndex; bind(); protectedvoid GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) GridView1。EditIndex = 1; bind(); protectedvoid GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) sqlcon = newSqlConnection(strCon);string sql
19、str = ”update JXB set 教学安排= + (TextBox)(GridView1.Rowse.RowIndex。Cells3。Controls0)。Text.ToString()。Trim() + , 教师编号= + (TextBox)(GridView1。Rowse.RowIndex。Cells2.Controls0).Text.ToString()。Trim() + ” where 教学班号=” + GridView1。DataKeyse.RowIndex。Value。ToString() + ”; sqlcom = newSqlCommand(sqlstr, sqlco
20、n); sqlcon。Open(); sqlcom。ExecuteNonQuery(); sqlcon。Close(); GridView1。EditIndex = 1; bind(); protectedvoid GridView1_RowEditing(object sender, GridViewEditEventArgs e) GridView1。EditIndex = e。NewEditIndex; bind(); protectedvoid GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) string
21、sql = ”delete from JXB where 教学班号= + GridView1.DataKeyse。RowIndex.Value.ToString() + ”; sqlcon = newSqlConnection(strCon ); sqlcom = newSqlCommand(sql, sqlcon); sqlcon.Open(); sqlcom。ExecuteNonQuery(); sqlcon。Close(); bind(); protectedvoid GridView1_RowDataBound(object sender, GridViewRowEventArgs e
22、) if (e。Row.RowType = DataControlRowType。DataRow) e.Row.Attributes。Add(”onmouseover”, this。style。backgroundColor=#E6F5FA”); e。Row.Attributes。Add(”onmouseout”, this。style。backgroundColor=#FFFFFF);if (e.Row。RowState = DataControlRowState。Normal | e.Row.RowState = DataControlRowState。Alternate) (LinkBu
23、tton)e.Row。Cells7。Controls0)。Attributes.Add(onclick, ”javascript:return confirm(你确认要删除:” + e.Row。Cells1.Text + ”吗?)); protectedvoid GridView1_Sorting(object sender, GridViewSortEventArgs e) string sPage = e.SortExpression;if (ViewState”SortOrder.ToString() = sPage) if (ViewState”OrderDire”.ToString(
24、) = ”Desc) ViewState”OrderDire = ”ASC”;else ViewState”OrderDire = Desc”; else ViewStateSortOrder” = e。SortExpression; bind(); 4。3修改密码界面代码修改密码界面代码:protectedvoid btnOK_Click(object sender, EventArgs e) string pass1 = txtPassword1。Text;string pass2 = txtPassword2。Text;if (pass1 != pass2) lblMessage。Tex
25、t = ”确认密码不一致!”;return; SqlConnection con = newSqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectoryjiaowu。mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”);string sql = Update Users set 密码 =password where 编号 =usersID”;SqlCommand cmdUpdate = newSqlCommand(sql, con);
26、 cmdUpdate。Parameters.AddWithValue(”usersID”,Session ”UsersID”); cmdUpdate 。Parameters 。AddWithValue (password”,pass1 );try con。Open(); cmdUpdate。ExecuteNonQuery(); Response。Redirect(”mainmenu。aspx”); catch (Exception ex) lblMessage。Text = ex。Message; finally con。Close(); protectedvoid btnCancel_Cli
27、ck(object sender, EventArgs e) Response.Redirect(”mainmenu.aspx); 4。4完善信息界面代码完善信息界面代码:SqlConnection con = newSqlConnection(Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|jiaowu。mdf;Integrated Security=True;Connect Timeout=30;User Instance=True);protectedvoid Page_Load(object sender, EventAr
28、gs e) name。Text = Session”name.ToString();if (!IsPostBack) if (Session”name = null) msg。ShowMessage(”请先注册”, ”information.aspx”); else name.Text = Session”name.ToString(); SqlConnection con = newSqlConnection(”Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectoryjiaowu。mdf;Integrated Security=True;
29、Connect Timeout=30;User Instance=True); con。Open();string sql = select from Users where 编号=” + name。Text + ”;SqlCommand cmd = newSqlCommand(sql, con);SqlDataReader dr = cmd.ExecuteReader();if (dr。Read() name。Text = dr”Username.ToString(); con.Close(); bool CheckFileType(string filename) string ext =
30、 Path.GetExtension(filename);switch (ext) case。gif”:returntrue;case。jpg”:returntrue;case。png”:returntrue;default:returnfalse; protectedvoid Button1_Click(object sender, EventArgs e) con。Open();string name = Sessionname”.ToString();string编号 = TextBox1.Text;string姓名 = TextBox2。Text;string区分 = TextBox4
31、。Text;string insertsql = ”insert into Users(编号,姓名,区分)values(” + 编号 + , + 姓名 + ”,” +区分 +);SqlCommand cmd = newSqlCommand(insertsql, con); cmd。ExecuteNonQuery(); con.Close(); Sessionname = TextBox1。Text; Response。Redirect(”default。aspx); 总结课程设计是培养学生综合运用所学的知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训
32、练和考察过程。回顾起此次课程设计,至今我们仍感慨颇多,的确,从理论到实践,学到很多很多的东西。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中而得出结论,才能真正为社会服务,从而提升自己的实际能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解的不够深刻,掌握的不够牢固,我们把前面所学的知识又重新稳固了一遍.教学管理系统,虽然是很简单的一个小小的程序,但对我来说却是一个很大的困难,而且编程是一件高精度,模范化的事情,稍有疏忽都会影响全局,也
33、可能因为某一处是我小的错误而导致整个程序的无法运行,所以认真仔细就是非常重要的了.当一个程序运行成功的时候哪种喜悦时无法用语言表述的,哪种成就感是无法比拟的,尽管程序不是很完善,不过还是很高兴的,无论如何使自己的劳动成果,是自己经过努力得到的成绩,同时也是学习ASP。NET的一次实践作业。参考文献【1】杨千里,王育民.C#与应用M。北京:电子工业出版社,1999. 【2】卞文志.WEB研发运用与实例 J. 电子工业出版社.2007。【3】李勇平。 ASP。NET 2。0(C#)基础教程M.北京:清华大学出版社,2008. 【4】马照亭等.ASP Web编程实例教程M。北京:北京希望电子出版社,2002。 【5】刘亚姝,许小荣,张玉梅等. ASP动态网站开发技术与实践M。北京:电子工业出版社,2007。 【6】张伟,蒋德华。基于B/S架构的网站设计研究J。软件导刊。2008.【7】冀振燕著.JAVE设计与应用案例M。北京:人们邮电出版社,2003。 【8】吴晨,张亮,张静.ASP.NET + SQL Server数据库开发与实例M。北京:清华大学出版社,2006。