资源描述
洛 阳 理 工 学 院
课 程 设 计 报 告
课程名称 Web程序设计课程设计
设计题目 学生成绩管理
专 业 计算机科学与技术
班 级
学 号
姓 名
完成日期
课 程 设 计 任 务 书
设计题目:___学生成绩管理
设计内容与要求:
1。1问题描述
建立B/S模式的学生成绩管理系统。
1.2 基本要求
(1)数据库设计要符合范式要求。
(2)能对学生信息、课程信息及成绩等进行添加、删除、修改等操作;
(3)提供学生成绩的查询功能,输入学生的学号或姓名,能查找出该生各学期的成绩;
(4)提供必要的统计功能,如计算不及格人数、生成给予警告名单等。
指导教师:
年 月 日
课 程 设 计 评 语
成绩:
指导教师:
年 月 日
洛 阳 理 工 学 院 课 程 设 计 报 告
目 录
第1章需求分析1
1。1 引言1
1。1。1 开发背景1
1。1.2 目的1
1。1。3 术语定义1
1.2 任务概述1
1.2。1 目标1
1。2.2 用户特点2
1。3 需求规定2
第2章数据库设计3
2.1 系统E—R图3
2.1。1 实体图3
2。1。2 实体联系图4
2.2 数据结构逻辑设计4
第3章概要设计6
3。1 总体设计6
3.1.1 功能分析6
3。1.2 功能模块图6
3.2 功能模块清单6
第4章详细设计与实现8
4。1 网页设计8
4。1。1 网页界面设计8
4。2 编码与实现10
第5章总结20
8
第1章 需求分析
1.1 引言
1。1.1 开发背景
随着计算机及网络技术的飞速发展,Internet/Intranet 应用在全球范围内日益 普及,在众多的网络服务中,Web 给人耳目一新的感觉。而如今随着大学的扩招,学校的学生成绩管理的数据越来越多,处理越来越复杂,为了能够更加快速,有效地管理这些信息,一个能够代替人工管理的系统急待开发。 通过这个系统,能够有效而解决信息量大,人工处理困难的问题。
1。1.2 目的
软件需求分析是把软件计划期间确定的软件工作过程要求精细化、规范化,这是软件生命期中重要的一步,也是软件实质性开发的第一步。保证软件开发的质量、需求的完整与可追溯性,编写此文档。通过此文档,以保证业务需求提出者与需求分析人员、开发人员、测试人员及其相关利益人对需求达成共识。
1.1。3 术语定义
数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明.
数据流条目:给出数据流的定义,通常列出组成该数据流的数据项。
数据存储条目:对数据存储的定义。
数据加工条目:说明加工的处理逻辑。
软件工程:IEEE的定义是开发、运行、维护、和修复软件的系统方法。
结构化分析(structured analysis,SA)方法是一种面向数据流的需求分析方法.它的基本思想是自顶向下逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。
结构化设计(structured design,SD)方法是一种面向数据流的设计方法,它是以结构化分析阶段所产生的文档(包括数据流图、数据字典和软件需求说明书)为基础,自顶向下,逐步求精和模块化的过程。
1.2 任务概述
1.2.1 目标
当今时代,互联网已经十分的普及,Web开发的应用程序也给人耳目一新的感觉,合理的利用当今有效地资源解放人力资源,提高工作效率是十分重要的,在本系统中,主要实现以下几个目标:
1。 为学生成绩管理者提供方便。传统的管理成绩的方法,速度慢,效率低,且浪费极大地人力、物力资源,通过本系统,可以让管理者轻松操作,就可以对学生的个人信息,课程信息,以及成绩信息进行增、删、改,方便快捷。
2。 让学生能够对自己的信息很了解。传统的成绩管理方法中,参与者只有老师,学生的信息被管理,学生本人却不能清除的了解自己的信息是否正确,有时候会造成很大的不方便,在此系统中,学生可以登录系统,查看自己的各种信息,发现错误,可以及时反馈给管理员,这对管理员的管理也很方便,同时又可以让学生了解自己的信息。
1。2.2 用户特点
在本系统中的用户分别有管理员和学生,管理员和学生都不需要具备专业的知识,只要掌握基本的操作方法即可,本系统界面美观且人性化,能使初学者很快的掌握系统的使用方法。管理员对学生的信息进行增、删、改操作,学生对自己的信息进行查询.
1。3 需求规定
学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。管理员可以通过成绩管理系统查阅学生成绩信息,课程信息,学生个人信息并对相关信息进行增、删、改等相关操作。
根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的成绩信息,课程信息,以及学生的个人信息的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对学生有关成绩方面的信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、资料众多,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统.因此,开发一套适和大众的、兼容性好的系统是很有必要的。
第2章 数据库设计
2。1 系统E—R图
2.1。1 实体图
学生实体包括学号、姓名、性别、年龄、班级、电话、密码几个属性,其中学号为主键,实体图如下:
图2—1 学生实体图
管理员实体包括密码和账号两个属性,其中管理员账号为主键,具体如下图所示:
图2—2 管理员实体图
成绩实体包括原始分数,有效分数,学期三个属性,三者联合起来构成成绩的主键,具体如下所示:
图2—3 成绩实体图
课程实体包括课程号,课程名,学时,学分四个属性,其中课程号为主键,具体如下图所示:
图2—3 成绩实体图
2.1.2 实体联系图
在本系统中,学生选择的有多门课程,每门课程对应两个分数,分别为原始成绩分和有效成绩分,管理员可以修改多个学生的成绩,同时可以修改多门课程信息,具体的实体联系图如下图所示:
图2—4 实体—联系图
2。2 数据结构逻辑设计
管理员表(Admin)
字段名
数据类型
长度(字节)
备注
id
int
4
编号
aname
nvarchar
50
用户名
apwd
nvarchar
50
密码
教师表(Teacher)
字段名
数据类型
长度(字节)
备注
id
int
4
编号
tname
nvarchar
50
教师名
tpwd
nvarchar
50
密码
学生表(Student)
字段名
数据类型
长度(字节)
备注
id
int
4
编号
sn
nvarchar
50
学号
sname
nvarchar
50
学生名
pwd
nvarchar
50
密码
major
nvarchar
50
专业
dept
nvarchar
50
系别
管理员左目录表(AdminMenu)
字段名
数据类型
长度(字节)
备注
menu_id
int
50
编号
menu_name
nvarchar
50
parent_id
int
50
父编号
menu_description
nvarcha
50
url_add
nvarchar
50
menu_target
nvarchar
50
指向目标
menu_tb
nvarchar
50
menu_openimg
nvarchar
50
打开按钮
menu_closeimg
nvarchar
50
关闭按钮
menu_style
nvarchar
50
systemrolekey
int
50
is_valid
bit
50
教师左目录表(TeacherMenu)
字段名
数据类型
长度(字节)
备注
menu_id
int
50
编号
menu_name
nvarchar
50
parent_id
int
50
父编号
menu_description
nvarcha
50
url_add
nvarchar
50
menu_target
nvarchar
50
指向目标
menu_tb
nvarchar
50
menu_openimg
nvarchar
50
打开按钮
menu_closeimg
nvarchar
50
关闭按钮
menu_style
nvarchar
50
systemrolekey
int
50
is_valid
bit
50
学生左目录表(StudentMenu)
字段名
数据类型
长度(字节)
备注
menu_id
int
50
编号
menu_name
nvarchar
50
parent_id
int
50
父编号
menu_description
nvarcha
50
url_add
nvarchar
50
menu_target
nvarchar
50
指向目标
menu_tb
nvarchar
50
menu_openimg
nvarchar
50
打开按钮
menu_closeimg
nvarchar
50
关闭按钮
menu_style
nvarchar
50
systemrolekey
int
50
is_valid
bit
50
课程表(Course)
字段名
数据类型
长度(字节)
备注
id
int
50
编号
coursename
nvarchar
50
课程名字
tname
nvarchar
50
教师名字
courseid
nvarchar
50
课程号
专业(Major)
字段名
数据类型
长度(字节)
备注
id
int
50
编号
Major
nvarchar
50
专业
Dept
nvarchar
50
系别
成绩表(Grade)
字段名
数据类型
长度(字节)
备注
id
int
50
编号
courseid
nvarchar
50
课程号
grade
nvarchar
50
成绩
tname
nvarchar
50
教师名字
sn
nvarchar
50
学号
sname
nvarchar
50
学生姓名
coursename
nvarchar
50
课程名字
第3章 概要设计
3。1 总体设计
3。1.1 功能分析
包括以下几个模块:用户登录,管理员修改学生信息(包括增、删、改),管理员修改课程信息(包括增、删、改),管理员修改学生成绩(包括增、删、改),管理员统计班级不及格人数,按学号对学生的信息进行查询等.这几个模块既相互联系又相互独立。
本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统",以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按学号对学生进行查询,并显示学生资料、成绩等,不过得以系统输入学生信息、成绩为前提;能添加学生成绩信息;能根据学生的姓名来查询该学生的成绩信息,并修改或是删除该学生信息;能把对系统所进行的操作进行保存,以及时更新系统中的数据.
3。1.2 功能模块图
图3—1 系统功能模块图
第4章 详细设计与实现
4。1 网页设计
4.1。1 网页界面设计
在本系统中,设计了多个页面,以下列其中几个,在浏览器中查看如下:
用户登录界面图
4-3 管理员操作主页面1
管理员操作主页面
4.2 编码与实现
主要代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile=”Login.aspx。cs” Inherits=”Login” %>
<!DOCTYPE html PUBLIC ”—//W3C//DTD XHTML 1。0 Transitional//EN" ”http://www。w3。org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server”〉
〈title〉无标题页〈/title〉
〈/head〉
〈body style=”background-image: url(images/1010538_070511screen09.jpg); background—repeat: repeat”〉
〈form id=”form1” runat=”server"〉
<div style=”text—align: center">
<span style=”font-size: 32pt”>
〈br /〉
〈br /〉
<br /〉
<span〉〈span style=”font—family: 华文彩云”〉〈span style=”font—size: 48pt”〉〈span〉欢5迎1光aspx临〈br /〉
成绩管理系统〈/span〉〈br />
〈/span〉〈/span〉
</span>〈/span>
〈br /〉
〈table style=”width: 206px; text-align: center; border-left—color: lightskyblue; border—bottom—color: lightskyblue; border—top-style: outset; border—top-color: lightskyblue; border—right—style: outset; border—left—style: outset; height: 120px; border-right-color: lightskyblue; border—bottom—style: outset;"〉
〈tr〉
<td style=”text—align: right”>
<strong〉学生:</strong〉〈/td>
<td style="text-align: left"〉
<asp:ImageButton ID=”imgbtn_Stu” runat="server" ImageUrl=”~/images/Login.gif" OnClick=”imgbtn_Stu_Click" /〉〈/td〉
〈/tr〉
<tr>
〈td style="text-align: right">
<strong〉老师:〈/strong>〈/td>
〈td style=”width: 100px; text—align: left"〉
<asp:ImageButton ID=”imgbtn_Tch" runat=”server” ImageUrl=”~/images/Login。gif” OnClick="imgbtn_Tch_Click” />〈/td〉
〈/tr>
〈tr〉
〈td style=”width: 100px; text—align: right; height: 18px;”〉
<strong>管理员:〈/strong>〈/td>
〈td style=”width: 100px; text—align: left; height: 18px;”>
<asp:ImageButton ID="imgbtn_Sa” runat="server" ImageUrl="~/images/Login.gif” OnClick=”imgbtn_Sa_Click” />〈/td>
〈/tr>
〈/table〉
〈br /〉
〈br />
〈/div〉
〈/form>
</body〉
</html〉
public partial class Student_StudentReg : System.Web.UI.Page
{
private static string strUser = ”";
SQLHelper sqlhelper = new SQLHelper();
Common common = new Common();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
common.BindDropDownList(ref ddl_major, ”select id,major from Major”);
common.BindDropDownList(ref ddl_dept, "select id,dept from Major”);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (this。tbx_sn.Text != ”" & this.tbx_name。Text != "”)
{
strUser = sqlhelper.RunSqlReturn("select sn from Student where sn='” + this.tbx_sn.Text + ”’ and sname=’" + this。tbx_name。Text + "’and pwd=’” + this。tbx_pwd1.Text + "’”);// 执行SQL语句,并返回第一行第一列结果,即学号
if (strUser。Equals(this。tbx_sn。Text))
{
Page.ClientScript。RegisterStartupScript(GetType(), ”MyScript”, "〈script〉alert(’该学生的信息已经有了!’) ;</script〉”);
}
else
{
SqlParameter[] prams ={
sqlhelper。CreateInParam(”@sn”,SqlDbType。NVarChar,50,this。tbx_sn.Text),
sqlhelper.CreateInParam("@sname”,SqlDbType.NVarChar,50,this.tbx_name。Text),
sqlhelper.CreateInParam("@pwd”,SqlDbType。NVarChar,50,this。tbx_pwd1。Text),
sqlhelper.CreateInParam(”@major",SqlDbType.NVarChar,50,this。ddl_major.SelectedItem。Text),
sqlhelper。CreateInParam(”@dept”,SqlDbType.NVarChar,50,this.ddl_dept.SelectedItem。Text),
};
sqlhelper.RunProc(”StudentInsert", prams);
Page.ClientScript.RegisterStartupScript(GetType(), ”MyScript”, "〈script〉alert(’保存成功’);window。close();〈/script>");
}
}
}
protected void btn_file_Click(object sender, EventArgs e)
{
Response.Clear();
Response。Buffer = false;
Response。Charset = ”GB2312”;
Response。AppendHeader("Content—Disposition", ”attachment;filename=pkmv_de。xls");
Response.ContentEncoding = System。Text。Encoding。GetEncoding(”GB2312”);
Response。ContentType = "application/ms—excel";
Response.Write(”<meta http—equiv=Content-Type content=\”text/html; charset=GB2312\”〉”);
this.EnableViewState = false;
System。IO。StringWriter oStringWriter = new System.IO。StringWriter();
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
GridView1。RenderControl(oHtmlTextWriter);
Response。Write(oStringWriter。ToString());
Response.End();
}
public partial class Teacher_TeacherLogin : System。Web。UI。Page
{
SQLHelper sqlhelper = new SQLHelper();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (this.tbx_name.Text。IndexOf(”'”) 〉 0 || this。tbx_name.Text。IndexOf(”—”) > 0)
{
this。Label_Msg。Text = "用户名中有非法字符”;
return;
}
Login lgn = new Login();
if (lgn。TeacherLogin(tbx_name。Text, tbx_pwd1。Text) != null)
{
Session[”tname"] = tbx_name。Text;
Session[”tpwd”] = tbx_pwd1。Text;
Response.Redirect("TeacherIndex。aspx”);
}
else
{
Page。ClientScript.RegisterStartupScript(GetType(), "MyScript”, "〈script〉alert('用户名或密码错误!') ;〈/script>”);
}
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
this。tbx_name。Text = "”;
this.tbx_pwd1.Text = ””;
this.tbx_pwd2。Text = ”";
}
第5章 总结
这次web综合课程设计是我们这学期对此课程的一次综合性检测。通过这次做综合设计,我明白了让理论联系上实际并不是一件简单的事。我们平时很少动手操作,这也使我们知道了很多以前没有涉及到的方面,让我们知道了更多的知识,增强了我们动手操作能力,实践能力,去发现问题,解决问题能力,为以后的学习、生活、工作积累了经验,打了一定基础。在这段时间的上机学习,我了解了关于web编程的简单基础知识和web程序开发环境,还有一些web数据库应用程序的一些知识,在学习过程中,我们遇到了不少问题,在建立数据库的过程中时有小问题发生,我们同学之间都会互相帮助,体现了大家的团结精神。老师首先给我们一个实例,分模块给我讲解,然后再让我们分模块一点一点理解,怎么运用,这样使我们更容易接受老师所讲的知识。当然,在学习过程中遇到的不少困难,大多是景老师为我们耐心的讲解,我们还需要多到图书馆去借阅相关书籍,读一些课外资料,使我们在有充分理论知识的前提下去增强动手能力,我想效果会更好.我们所具备的知识是远远不够的,需要在课下多和老师交流交流。总之,我们在这方面还有待提高,需要自身去努力。这次的学生成绩管理系统还存在着一定问题,希望在以后的时间里能提高自己,做得越来越好.
展开阅读全文