1、 洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 web程序设计课程设计 设计题目 __学生成绩管理系统 专 业 __计算机科学与技术_ 班 级 B100506 学 号 B10050633 姓 名 孙亚威
2、 完成日期 2013.6.20 课 程 设 计 任 务 书 设计题目:学生成绩管理系统 设计内容与要求: (1)数据库设计要符合范式要求。 (2)能对学生信息、课程信息及成绩等进行添加、删除、修改等操作; (3)提供学生成绩的查询功能,输入学生的学号或姓名,能查找出该生各学期的成绩; (4)提供必要的统计功能,如
3、计算不及格人数、生成给予警告名单等。 指导教师:_______________ 年 月 日 课 程 设 计 评 语 成绩: 指导教师:_______________ 年 月 日 目录 一 系统的需求分析和设计 1
4、 1.1 系统概述 1 1.2系统的需求分析 1 二 数据库的设计 2 2.1管理员数据库 2 2.2学生信息数据库 3 2.3课程信息数据库 3 2.4成绩信息数据库 4 三 网站系统的实现 4 3.1登录页面 4 3.2管理员登陆界面 6 3.3学生信息管理界面 7 3.4课程信息管理界面 9 3.5成绩信息管理界面 11 3.5学生登录界面 12 四 总结 14 参考文献 15 摘要 随着科学技术的发展,计算机领域不断取得新的研究成果。并不断地代替和延伸脑力劳动方面发挥越来越重要的作用,无论是工业还是日常生活都越来越离不开计算机,尤其是在学校里,随着
5、不同高校的的不断扩大和招生人数的不断增加,要处理大量的学生数据信息显得尤为的重要。学生的信息管理是学校工作中一项重要的内容。 本系统论文主要是管理学生的资料。重点介绍其功能:信息添加、信息修改、信息的删除及信息查询。使用进行静态页面设计,应用ASP程序进行后台管理操作。主要是以四大功能进行系统的设计和实现。 关键词:ASP 数据库 一 系统的需求分析和设计 1.1 系统概述 经过对部分学生成绩管理网站系统详细调查,并阅读大量相关资料后,加深了对现行管理网站管理业务的了解,在此基础上,对本系统做出简单介绍:本系统提供用户注册、登录功能,且在此基础上可进行成绩的查询、修改、删除、插入
6、等功能,此网站提供友好的页面且是使管理员能够进行简单维护的网站。 1.2系统的需求分析 如果我国各个学校管理水平还停留在纸介质的基础上,已不能适应时代的发展,因为它浪费了许多人力和物力,在当今的信息时代这种管理方法必然被计算机为基础的信息管理所取代。学生成绩管理系统的开发,适合任何一个大中小学校的管理, 该学生成绩管理系统归纳起来有四点: 1.信息的插入。可以插入不同地区的学生的姓名、个人联系方法、所在院系、班级及相关情况。实现了信息的动态管理。 2.信息的查询。学生的信息使管理员可以通过多种方式(年级、班级、姓名、学号、所在系等等)的查询,就可以直接查看自己需要的学生的相关信
7、息。实现了信息的动态管理。 3.信息的修改。管理人员可以随时对转入、转出的学生进行修改,比如学号、所在系等等实现了信息的动态管理。 4.信息的删除。管理人员可以随时对转入、转出的学生进行删除,比如学号、所在系等等实现了信息的动态管理。 好处为: 1. 可以存储大量的学生成绩数据,安全、高效; 2. 只需一到二名档案录入员即可操作系统,节省大量人力; 3. 可以迅速查找到所需要的信息。 其功能结构如图: 学生成绩管理系统 管理员登录 学生登录 学生信息管理 课程信息管理 成绩信息管理 查询,统计信息 按学号查询成
8、绩 按姓名查询成绩 二 数据库的设计 数据库是整个学生成绩管理系统的核心部分。只有通过数据库的调用才能进行信息更新处理、插入资料、删除资料和查询资料,方便管理进行管理,减少管理员的工作量以及更多的人力。 2.1管理员数据库 管理员表是用于管理员登陆时用于验证管理员身份,这样使前后台分隔开,保护网站的安全,阻止除了管理员之外的任何人进入后台,威胁到整个网站的安全。包括用户名、密码。 表2.1 管理员登录信息表 字段 字段名 类型 是否为主键 可否为空 no 管理员号 varchar(10
9、) 是 否 Passwor 密码 Varchar(50) 否 否 2.2学生信息数据库 Student表用于对学生信息的查询,删除,修改,添加,管理员能对student表进行查询,删除,修改等操作,包括学生号,学生名,性别,出生日期等 表4.2学生信息表 字段 字段名 类型 是否为主键 可否为空 sno 学生号 varchar(10) 是 否 sname 学生名 Varchar(50) 否 否 sex 性别 Varchar(10) 否 否 birth 出生日期 datatime 否 否
10、 2.3课程信息数据库 course表用于对课程信息的查询,删除,修改,添加,管理员能对course表进行查询,删除,修改等操作,包括课程号,课程名,学分,教师等信息。 表2.3课程信息表 字段 字段名 类型 是否为主键 可否为空 cno 课程号 varchar(10) 是 否 cname 课程名 varchar(50) 否 否 cscore 学分 varchar(50) 否 否 teacher 教师 varchar(50) 否 否 2.4成绩信息数据库 Score表用于对课程信息的查询,删除,修改,
11、添加,管理员能对course表进行查询,删除,修改等操作,学生可以通过学号和姓名查询自己的成绩,包括课程号,学号,分数,学期等信息 字段 字段名 类型 是否为主键 可否为空 sno 学号 varchar(10) 是 否 cno 课程号 varchar(10) 是 否 分数 分数 varchar(10) 否 否 学期 学期 datatime 否 否 三 网站系统的实现 3.1登录页面 运行后的界面: 运行代码如下: protected void Button1_Click(object sender,
12、 EventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection sqlconn = new SqlConnection(sqlconnstr); SqlCommand sqlcommand = new SqlCommand(); sqlcommand.Connection = sqlconn;
13、 sqlconn.Open(); if (DropDownList1.SelectedItem.Text == "学生") { sqlcommand.CommandText = "select * from student"; SqlDataReader sqldatareader = sqlcommand.ExecuteReader(); while (sqldatareader.Read())
14、 { strzh = sqldatareader["sno"].ToString(); strpass = sqldatareader["sid"].ToString(); if (strzh.Trim() == TextBox1.Text) { if (strpass.Trim() == TextBox2.Text)
15、 { Session["sno"] = TextBox1.Text; Session["sname"] = sqldatareader["sname"].ToString(); Response.Redirect("学生界面.aspx"); sqlconn.Close(); return;
16、 } else { MessageBox("用户名和密码不匹配,请重新输入"); } } } } else if(DropDownList1.SelectedItem.Text == "管理员")
17、 { sqlcommand.CommandText = "select * from gl"; SqlDataReader sqldatareader = sqlcommand.ExecuteReader(); while (sqldatareader.Read()) { strzh = sqldatareader["gno"].ToString();
18、strpass = sqldatareader["gid"].ToString(); if (strpass.Trim() == TextBox1.Text) { if (strzh.Trim() == TextBox2.Text) { Session["gno"] = TextBox1.Text;
19、 Session["gname"] = sqldatareader["gname"].ToString(); Response.Redirect("管理员界面.aspx"); sqlconn.Close(); return; } else {
20、 MessageBox("用户名和密码不匹配,请重新输入"); } } } 3.2管理员登陆界面 管理员进入系统后的运行界面 运行代码如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Session
21、["gno"] != null) { Label7.Text = "当前用户:"+Session["gno"].ToString(); } bindgrid(); } } void bindgrid() { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionSt
22、ring; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from gl", sqlconnstr); sqld.Fill(ds, "tabgl"); } GridView1.DataSource = ds.Tables
23、["tabgl"].DefaultView; GridView1.DataBind(); } protected void Button1_Click(object sender, EventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnecti
24、on sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from gl", sqlconnstr); sqld.Fill(ds, "tabgl"); } GridView1.DataSource = ds.Tables["tabgl"].DefaultView; GridView1.DataBind(); Label6.
25、Text = "查找成功"; } 3.3学生信息管理界面 运行后的界面: 运行代码如下: protected void Page_Load(object sender, EventArgs e) { if(!Page.IsPostBack) bindgrid(); } void bindgrid() { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionStri
26、ng"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconnstr); sqld.Fill(ds, "tabstudent"); } GridV
27、iew1.DataSource = ds.Tables["tabstudent"].DefaultView; GridView1.DataBind(); } protected void Button1_Click(object sender, EventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSe
28、t(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconnstr); sqld.Fill(ds, "tabstudent"); } GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
29、 GridView1.DataBind(); Label1.Text = "查找成功"; } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection sqlconn = n
30、ew SqlConnection(sqlconnstr); SqlCommand Comm = new SqlCommand(); Comm.Connection = sqlconn; sqlconn.Open(); Comm.CommandText = "update student set sname=@name where sno=@no"; Comm.Parameters.AddWithValue("@no",GridView1.DataKeys[e.RowIndex].Value.ToStrin
31、g()); Comm.Parameters.AddWithValue("@name",((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text); Comm.ExecuteNonQuery(); sqlconn.Close(); sqlconn = null; Comm = null; GridView1.EditIndex = -1; bindgrid(); } protec
32、ted void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; bindgrid(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; bind
33、grid(); } 3.4课程信息管理界面 运行后的界面: 运行代码如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) bindgrid(); } void bindgrid() { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"
34、].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from course", sqlconnstr); sqld.Fill(ds, "tabcourse"); } GridView1.
35、DataSource = ds.Tables["tabcourse"].DefaultView; GridView1.DataBind(); } protected void Button1_Click(object sender, EventArgs e) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet();
36、 using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from course", sqlconnstr); sqld.Fill(ds, "tabcourse"); } GridView1.DataSource = ds.Tables["tabcourse"].DefaultView;
37、GridView1.DataBind(); Label1.Text = "查找成功"; } protected void Button2_Click(object sender, EventArgs e) { int intinsertCount; string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection sqlconn = new
38、 SqlConnection(sqlconnstr); SqlCommand sqlcommand = new SqlCommand(); sqlcommand.Connection = sqlconn; sqlcommand.CommandText = "insert into course(cno,cname) values(@no,@name)"; sqlcommand.Parameters.AddWithValue("@no", TextBox1.Text); sqlcommand.Paramet
39、ers.AddWithValue("@name", TextBox2.Text); try { sqlconn.Open(); intinsertCount = sqlcommand.ExecuteNonQuery(); if (intinsertCount > 0) Label6.Text = "成功增加记录"; } catch (Exception ex) { Lab
40、el6.Text = "错误原因:" + ex.Message; } finally { sqlcommand = null; sqlconn.Close(); sqlconn = null; } } 3.5成绩信息管理界面 运行后的界面: 运行代码如下 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPos
41、tBack) bindgrid(); } void bindgrid() { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) {
42、 SqlDataAdapter sqld = new SqlDataAdapter("select * from sc", sqlconnstr); sqld.Fill(ds, "tabsc"); } GridView1.DataSource = ds.Tables["tabsc"].DefaultView; GridView1.DataBind(); } protected void Button3_Click(object sender, EventArgs e) {
43、 string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from sc where s
44、core<60", sqlconnstr); sqld.Fill(ds, "tabsc"); } GridView1.DataSource = ds.Tables["tabsc"].DefaultView; GridView1.DataBind(); Label1.Text = "查找成功"; } protected void Button1_Click(object sender, EventArgs e) { string sqlconnstr
45、 ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { SqlDataAdapter sqld = new SqlDataAdapter("select * from sc", sqlconnstr); sql
46、d.Fill(ds, "tabsc"); } GridView1.DataSource = ds.Tables["tabsc"].DefaultView; GridView1.DataBind(); Label1.Text = "查找成功"; } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1;
47、 bindgrid(); } 3.5学生登录界面 运行后的界面 运行代码如下: protected void Page_Load(object sender, EventArgs e) { if (Session["sno"] != null) Label3.Text = Session["sno"].ToString(); } public enum st { no = -1, s = 0,
48、 x = 1 } protected void Button1_Click(object sender, EventArgs e) { if (MultiView1.ActiveViewIndex > -1) { st m = (st)MultiView1.ActiveViewIndex; switch (m) { case st.s: dos(TextBox1.Text,
49、 DropDownList1.SelectedItem.Text, m); break; case st.x: dos(TextBox2.Text.Trim(), DropDownList2.SelectedItem.Text, m); break; case st.no: break; } } }
50、 protected void dos(String s1, String s2, st type) { string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; DataSet ds = new DataSet(); using (SqlConnection sqlcom = new SqlConnection(sqlconnstr)) { if ((






