成绩管理系统实验报告 - 图文

更新时间:2024-04-23 15:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库课程设计报告

题 目:成绩管理系统

专 业: 计算机科学与技术 班 级: 计本0903班 姓名学号1: 李 婷 0905170323 姓名学号2: 王 哲 0905170324 姓名学号3: 段少娟 0905170323 姓名学号4: 张 姝 0905170312 考核日期: 2012年1月6日

(报告及系统评语)

系统评语及评分:

报告评语及评分:

1

目录

一、系统需求分析 .....................................3 (一) 系统概述 ............................................................................3 (二) 数据流图 ............................................................................4 (三) 数据字典 ............................................................................6 二、系统设计 ........................................11 (一)数据库结构设计 .............................................................11

1.概念结构设计 ................................................................ 11 2.逻辑结构设计..................................................................... 13 3.物理结构设计.................................................................... 15 (二)软件结构设计 .................................................................15

1.概要设计 ........................................................................... 15 2.详细设计 ............................................................................ 16 三、系统实现 ........................................19 四、课程设计总结 ....................................29 参考文献 ...........................................31

2

一、系统需求分析

(一) 系统概述

学生成绩管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。

运用学生成绩管理系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。从大的方向说,就是为了加速我国四化建设的发展,实现全部的自动化,使我国发展成为通讯网络化,决策科学化,办公自动化的国家。

管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生成绩管理系统提供了强大的学生成绩管理管理功能,方便对学生成绩等信息的添加、修改、删除、查询等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。此成绩管理系统主要应用ASP.net和SQL Server 2000数据库技术。

成绩管理系统主要面向三类客户:学生,教师,管理员。 ⒈ 学生:

每个学生登录系统后可以查询和修改个人信息、修改自己的账号密码,以及自己所选课程任课老师的个人信息,同时在课程结束后可以查询在校期间各个时间段选修课程的成绩与学分,以及对单科成绩和总分的排名查询。 ⒉ 教师:

各科教师登录系统后可以查询和修改个人信息、修改自己的账号密码,查询自己的授课课程,实现对选修了自己课程的学生的成绩进行查询、录入和修改,各科老师可以对自己学生选修课程结束后给予分数,同时可以对自己所带课程的成绩优秀人数,及格人数和不及格人数的分布信息进行查询。 ⒊ 管理员:

实现管理员用户的添加,修改和删除,以及对教师添加、教师修改、教师删除、教师查询、学生的添加、学生的修改、学生的查询、修改等基本功能,并且参与开设课程、选择课程的管理,安排教师的任课和学生的选课工作,管理员为每门课程设置一个学分,每门课程可以是必修或则选修,如果学生及格,学生将获得该课程的学分。

3

(二) 数据流图

用户表 新用户 注册用户处系统进入 处理 用户 用户登录处理 用户登录 用户验证 修改密码 密码修改处用户表 :“用户登陆过程”流程图

管理员 登录

登陆 成功

安排教 师 任 课 和学生 选 课 工 作

“ 管理员”数据流图

4

进入管理员界面 添加修改 删除查询 添加修改 删除查询 添加修改 删除查询 学 教 课 生 师 程 基 基 基 本 本 本 信 信 信 息 息 息 筛选学生对老师评价并上传

验证 老师 登录 登陆成功

1.录入、修改、查看成绩 进入用户界面 用户信息 2.查看个人信息、评价 3.修改个人信息

成 绩 学 教信生 师 息信 信 息息

系统用户信息 系统用户信息 学生 登录 对老师评价 修改信息 查询成绩 选择课程 确认提交 学生信息 学期成绩查询 未通过成绩 成绩总览 课程信息 成绩信息

“学生”数据流图

5

(三) 数据字典

“学生成绩查询系统”数据结构

编号 数据结构名 含义说明 数据结构组成

S1 系统用户信息

S2 学生信息 S3 教师信息 S4 课程信息 S5 班级信息 S6 学生成绩信息

保存登录信用户码,密码 息

保存学生基学号,姓名,性别,班级,出生日期,家庭住址,本信息

联系电话,入学时间

保存教师基教工号,姓名,性别,联系电话,邮箱地址, 本信息

教师评价

保存开设课课程编号,课程名,课程属性 程基本信息

保存班级相班号,年级,专业 关信息

保存成绩相学号,课程名,分数 关信息

数据项定义S1

6

编号

数据项名

1 用户名 2 密码

含义说明

数据类型

唯一标识整型 每位用户

用户的登字符型 录密码

数据项定义S2

7

数据宽度

取值范围

11

20

编号

数据项含义说明 名

数据说数据宽度 明

取值范围

1 学号 唯一标识每位学生

整型 11

2 姓名 学生的姓名 字符型 20

3 性别 学生的性别 字符型 2

4 班级 学生的班级 字符型 50

5 年龄 学生的年龄 整型 8 15~30

6 家庭住学生的家庭住址

字符型 256

7 联系电学生的联系电话

字符型 11 默认值为手机号,区号+电话号码

8 入学时学生的入学时间

日期型 固定 默认值为插入信息时的固定日期

编号

数据项名 数据项定义S3

含义说明 数据类型 8

数据宽度 取值范围

1 2 3 4 5 6 教工号 姓名 性别 联系电话 邮箱地址 教师评价 唯一标识每位老师 教师的姓名 教师的性别 教师的联系电话 教师的邮箱地址 学生对教师的评价 整型 字符型 整型 字符型 字符型 字符型 6 20 2 11 50 100000 男|女 编号 1 2 3 数据项名 课程编号 课程名 课程属性 数据项定义S4

含义说明 数据类型 唯一标识每门课字符型 程 课程的名称 字符型 课程属于那种类型 字符型 数据宽度 10 100 20 取值范围 专业选修、专业必修、公共选修、公共必修 编号 1 2 3 数据项名 班号 专业 年级 数据项定义S5

含义说明 数据类型 唯一标识每个年字符型 级 班级所在专业 字符型 班级的年级 整型 数据项定义S6

含义说明 数据类型 唯一标识每个学整型 生 学生所选课程名 字符 学生所选课程的成绩 整型 数据宽度 20 50 4 取值范围 年份 编号 1 2 3

数据项名 学号 课程名 分数 数据宽度 11 100 4 取值范围 0~100 编号 u1

“学生/教师登录”数据处理

数据处理名 输入数据流 输出数据流 处理描述 用户注册 用户信息、教用户注册成功新用户的添9

u2 u3 编号 A1 师信息表、学信息 生信息表 用户登录验证 学号/教工号、登录错误/成密码(初始学功信息 号/教工号) 用户密码修改 学号/教工号、修改成功/失密码(修改的败信息 密码) “登录”数据流定义

数据流名 数据流来源 数据流去向 用户名 教师信息表和登录 学生信息表 加; 保存用户信息 用户登录进入系统 用户密码的更新修改 数据流组成 用户名=教工号/学号 密码=字符+数字 编号 B1 B2 数据处理名 录入 修改 “教师”数据处理

输入数据流 输出数据流 录入成绩信息录入成绩信息; (学生分数) 录入成功 成绩信息(学生修改成绩信息; 分数) 修改成功 B3 查询 成绩信息表 B4 B5 把成绩表的成绩成绩信息表 信息删除 查看评价 教师信息表 B6 B7 查看个人信息 修改个人信息 教师信息表 教师信息表 处理描述 把学生分数录入成绩表 如果录入有误,可根据成绩表的分数进行修改保存 查询成功 查询成绩信息表,可检查是否有误 删除成绩信息; 把成绩表的分删除成功 数进行删除 查看成功 查看学生对自己的评价和建议 查看成功 查看个人信息正确与否 修改个人信息; 若有改动,修修改成功 改个人信息表,方便学生联系等

10

二、系统设计

(一)数据库结构设计

1.概念结构设计

实体:学生、教师、管理员、课程、分数。 各实体之间联系: ①.

一个教师可以授课n门课程,一门课程也可以由m个教师进行授课,即“教师”与“课程”之间是多对多的关系。

②.

一个学生可以学习n门课程,一门课程可以有m个学生学习,即“学生”与“课程”之间是多对多的关系。

③.

一个管理员可以开设n门课程,即“管理员”与“课程”之间是一对多的关系。

整个数据库可以用一个E-R图表示,如图:

教 师 n 授 课 开 设 1 管理员 授课时间 m n 课 程 m n 学 生 选课考试

整体E-R图

11

学 号 系别 入学时间 姓 名 学 生 密码 备注 性 别 出生年月 家庭住址 政治面貌

学生E-R实体图

教师编号 职称 出生年月 姓 名 院系名称 密码 教师 性 别 政治面貌 学历 备注

教师E-R实体图

12

用 户 名 密 码 备 注 管理员

管理员E-R实体图

课程编号 学 分 课程名称 课 程 备 注

课程E-R实体图

2.逻辑结构设计

数据库逻辑设计就是将E—R图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有: (1)一个实体型转换为一个关系模式;

(2)一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并; (3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;

(4)一个多对多的关系转换成一个关系模式。

根据以上四条规则,下面将E—R图转换成关系模型。

对于“学生”、“课程”和它们之间的“选课考试”关系就可以规则(4)转换成三个关系模式。

学生(学号,姓名,性别,系别,出生年月,家庭地址,入学时间,政治面貌,备注,密码)

课程(课程号,课程名,学分,备注)

13

成绩(学号,课程号,日期,教师编号,分数)

依次类推,剩下的关系转换成下面两个关系模式:

教师(教师编号,姓名,性别,出生年月,院系名称,职称,学历,政治面貌,备注,密码 )

管理员(用户名,密码,备注)

系统数据库中包含以下5个表:admin,teacher,student,course,grade。

(学生信息表)student:用于保存学生的学号,姓名,性别,出生年月,所在院系,入学时间,家庭住址,政治面貌,密码等信息.

(系统管理员表)admin:用于保存系统管理员用户的用户名,密码备注等信息

(成绩信息表)grade:用于保存学生成绩信息,包括学号,课程号,分数,任课教师编号,日期等字段.

(教师信息表)teacher:用于保存教师的教师编号,姓名,性别,出生年月,所在院系,职称,学历,政治面貌,密码等信息.

(课程信息表)course:用户保存课程信息,包括课程名,课程号,学分,备注等信息.

表1 系统管理员表:admin

列名 用户名 密码 备注 数据类型 char varchar nvarchar 长度 10 10 50 主键 是

允许空 否 否 是 默认值 说明 表2 教师表:teacher

列名 教师编号 姓名 性别 出生年月 院系名称 职称 学历 政治面貌 备注 密码 数据类型 char char char smalldatetime char char char char text varchar 长度 10 10 2 4 16 10 10 16 16 10 主键 是 允许空 否 否 否 是 否 否 是 是 是 否 默认值 ('男') 说明

14

表3 学生表:student

列名 学号 姓名 性别 系别 出生年月 家庭住址 入学时间 政治面貌 备注 密码 数据类型 char char char char smalldatetime char smalldatetime char text varchar 长度 10 10 2 20 4 40 4 16 16 10 主键 是 允许空 否 否 否 否 是 是 否 是 是 否 默认值 ('男') 说明

表4 成绩表:grade

列名 学号 课程号 教师编号 分数 数据类型 char char char int 长度 10 20 10 4 主键 是 是 是 允许空 否 否 否 是 默认值 说明

表5 课程表:course

列名 课程号 课程名 学分 备注 数据类型 varchar varchar int text 长度 10 50 4 16 主键 是 允许空 否 否 否 是 默认值 说明

3.物理结构设计

选取SQL Server 2000数据库管理系统软件作为所选开发项目的数据库平台,其主文件、事务日志文件的物理存储位置。

(二)软件结构设计

1.概要设计

15

说明:进行功能模块划分并画出功能模块图。

2.详细设计

用户的操作界面和完成指定任务的程序流程。

用户登录主界面

16

用户首先选择用户类型然后输入用户名,输入密码。当用户选择了管理员,而且在数据库中存在此用户,则在你成功登录到系统中后,可以实现对用户信息管理、学生信息管理、教师信息管理、成绩课程信息管理等操作,用户信息管理了包括添加其他管理员用户,当你输入的新用户名在数据库中已经存在,则要求你重新输入新的用户名,同时,管理员本身还可以对自己的登录时的密码进行修改,在你修改成功后,系统会弹出修改成功,你要记住自己的新密码,在你下次登录时,则输入的密码就是你修改后的密码,否则,你就无法进入系统。

当你选择了用户,而且你输入的用户存在,且输入的密码正确,则当你进入到系统中就可以对各项基本信息进行查询,同时还可以对你自己的登录时的密码进行修改,如果你输入的用户名或者密码错误或者不存在,就会出现上面的对话框(用户名或密码有误!或者用户名)。

管理员进入界面

当你选择管理员后,进入管理员界面,有五个主要功能:修改自己的密码,学生信息管理,教师信息管理,课程信息管理,成绩信息管理。注销之后,返回登陆界面。

17

修改密码界面

进入修改密码界面,首先输入自己的用户名(登录用的用户名),点击查询旧密码,显示自己的旧密码,在输入自己的的新密码,确保输入两次密码相同,如果不相同,会有提示信息“两次输入密码不同”出现在确认按钮之上的红色字体上。最后点击确认,即修改完成。返回进入登陆界面。

添加,删除,修改学生信息界面

输入学生学号,点击查询,在以下的文本框内会出现学生基本信息;点击添加,修改,删除,进行相关的操作,如果操作不正确,机会出现相关的提示信息;点击返回,返回管理首页。

18

添加,删除,修改教师信息界面

输入教师编号,点击查询,在以下的文本框内会出现教师基本信息;点击添加,修改,删除,进行相关的操作,如果操作不正确,机会出现相关的提示信息;点击返回,返回管理首页。

成绩信息管理和课程信息管理与上面的老师,学生信息管理基本相同。

三、系统实现

源代码及其主要功能模块: 1.登录模块:

using System;

using System.Collections; using System.Configuration; using System.Data;

using System.Data.SqlClient; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;

namespace 成绩管理系统 {

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

19

{

protected void Page_Load(object sender, EventArgs e) {

}

protected void btn_login_Click(object sender, EventArgs e) {

SqlConnection myconn = new SqlConnection();

myconn.ConnectionString = \Catalog=scoremanager;Integrated Security=SSPI\; myconn.Open();

if (txtUsername.Text.Trim() != \ && txtPassword.Text.Trim() != \) {

string sqltext;

if (DropDownList1.Text == \管理员\) {

sqltext = \count(*) from admin where 用户名='\ + txtUsername.Text + \and 密码='\ + txtPassword.Text + \;

SqlCommand cmd = new SqlCommand(sqltext,myconn); int count = Convert.ToInt16(cmd.ExecuteScalar()); myconn.Close(); if (count == 1)

Response.Redirect(\); else

lbmsg.Text = \用户名或密码错误,请重新输入\;

}

if (DropDownList1.Text == \教师\) {

sqltext = \教师编号='\ + txtUsername.Text + \密码='\ + txtPassword.Text + \;

SqlCommand cmd = new SqlCommand(sqltext, myconn); int count = Convert.ToInt16(cmd.ExecuteScalar()); myconn.Close(); if (count == 1)

Response.Redirect(\); else

lbmsg.Text = \用户名或密码错误,请重新输入\; }

if (DropDownList1.Text == \学生\) {

sqltext = \学号='\ + txtUsername.Text + \密码='\ + txtPassword.Text + \;

SqlCommand cmd = new SqlCommand(sqltext, myconn);

20

int count = Convert.ToInt16(cmd.ExecuteScalar()); myconn.Close(); if (count == 1)

Response.Redirect(\); else

lbmsg.Text = \用户名或密码错误,请重新输入\; } } else {

lbmsg.Text = \用户名或密码不能为空\; txtUsername.Text = \; txtPassword.Text = \; }

myconn.Close(); } } }

2.管理员: (1)主界面

using System;

using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; namespace 成绩管理系统 {

public partial class admin1 : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) { }

protected void btn_1_Click(object sender, EventArgs e)

21

{

Response.Redirect(\); \\\\进入修改密码的界面 }

protected void btn_2_Click(object sender, EventArgs e) {

Response.Redirect(\); \\\\进入学生管理界面 }

protected void btn_3_Click(object sender, EventArgs e) {

Response.Redirect(\); \\\\进入教师管理界面 }

protected void btn_4_Click(object sender, EventArgs e) {

Response.Redirect(\); \\\\进入课程管理界面 }

protected void btn_5_Click(object sender, EventArgs e) {

Response.Redirect(\); \\\\进入分数管理界面 }

protected void Button1_Click(object sender, EventArgs e) {

Response.Redirect(\); \\\\注销后,返回到登陆界面 } } }

(2)课程管理

protected void chaxun_Click(object sender, EventArgs e) …………………… 课程信息的查询 {

if (TextBox1.Text.Trim() != \) {

string strCon = \Source=localhost; Initia Catalog=scoremanager;Integrated

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon);

string sqlStr = \课程号='\ + TextBox1.Text + \; SqlCommand cmd = new SqlCommand(sqlStr, conn); conn.Open();

SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) {

22

TextBox2.Text = dr[\课程号\].ToString(); TextBox3.Text = dr[\课程名\].ToString(); TextBox4.Text = dr[\学分\].ToString(); TextBox5.Text = dr[\备注\].ToString(); conn.Close(); } else {

lb.Text = \该记录不存在\; TextBox3.Text = \; TextBox4.Text = \; TextBox5.Text = \; } } else

lb.Text = \请输入课程号\; }

protected void tianjia_Click(object sender, EventArgs e) …………………… 课程信息的添加 {

if (TextBox2.Text.Trim() != \ && TextBox3.Text.Trim() != \ &&

TextBox4.Text.Trim() != \ )

{

string strCon = \

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon); conn.Open();

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \课程号,课程名,学分,备注) values('\ +

TextBox2.Text.Trim() + \ + TextBox3.Text.Trim() + \ + TextBox4.Text.Trim() + \ + TextBox5.Text.Trim() + \ + \;

cmd.ExecuteNonQuery(); conn.Close();

lb.Text = \添加成功\; } else

lb.Text = \请将信息补充完整\; }

protected void xiugai_Click(object sender, EventArgs e) …………………… 课程信息的修改 {

23

if (TextBox2.Text != \ && TextBox3.Text != \ && TextBox4.Text != \)

{

string connstr = \

Catalog=scoremanager;Integrated Security=SSPI\;

SqlConnection conn = new SqlConnection(connstr); conn.Open();

string sqlStr = \课程号='\ + TextBox1.Text +\; SqlCommand selcmd = new SqlCommand(sqlStr, conn); DataSet ds = new DataSet();

SqlDataAdapter da = new SqlDataAdapter();

string updateSql = \课程号='\ + TextBox2.Text.Trim() + \

课程名='\ + TextBox3.Text.Trim()

+ \学分='\ + TextBox4.Text.Trim() + \备注='\ + TextBox5.Text.Trim() + \; SqlCommand updatecmd = new SqlCommand(updateSql, conn); conn.Close();

lb.Text = \修改成功!\; } else

lb.Text = \请将信息补充完整\; }

protected void shanchu_Click(object sender, EventArgs e) …………………… 课程信息的删除 {

string strCon = \

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon); conn.Open();

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \课程号='\ + TextBox1.Text +\; cmd.ExecuteNonQuery(); conn.Close(); TextBox1.Text = \; TextBox2.Text = \; TextBox3.Text = \; TextBox4.Text = \; TextBox5.Text = \; lb.Text = \删除成功\; }

分数管理和课程管理代码基本上功能相同。

(3)学生管理

protected void chaxun_Click(object sender, EventArgs e) …………………… 学生信息的查询 {

24

if (TextBox1.Text.Trim() != \ && TextBox2.Text.Trim() != \) {

string strCon = \Source=localhost; Initial Catalog=scoremanager;Integrated

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon);

string sqlStr = \* from grade where 学号='\ + TextBox1.Text + \ + \

课程号='\ + TextBox2.Text + \;

SqlCommand cmd = new SqlCommand(sqlStr, conn); conn.Open();

SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) {

TextBox3.Text = dr[\学号\].ToString(); TextBox4.Text = dr[\课程号\].ToString(); TextBox5.Text = dr[\教师编号\].ToString(); TextBox6.Text = dr[\分数\].ToString(); conn.Close(); } else {

lb.Text = \该记录不存在\; TextBox3.Text = \; TextBox4.Text = \; TextBox5.Text = \; TextBox6.Text = \; } } else

lb.Text = \请输入学号和课程号\; }

protected void tianjia_Click(object sender, EventArgs e) …………………… 学生信息的添加 {

if (TextBox2.Text.Trim() != \ && TextBox3.Text.Trim() != \ &&

TextBox4.Text.Trim() != \ && TextBox6.Text.Trim() != \ && TextBox7.Text.Trim() != \ && TextBox11.Text.Trim() != \)

{

string strCon = \

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon); conn.Open();

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \学号,姓名,性别,院系,出生年月,家庭住址,

25

入学时间,政治面貌,备注,密码) values('\ + TextBox2.Text.Trim() + \ + TextBox3.Text.Trim() + \ + TextBox4.Text.Trim() + \ + TextBox5.Text.Trim() + \ + TextBox6.Text.Trim() + \ + TextBox7.Text.Trim() + \ + TextBox8.Text.Trim() + \ + TextBox9.Text.Trim() + \ + TextBox10.Text.Trim() + \ + TextBox11.Text.Trim() + \ + \;

cmd.ExecuteNonQuery(); conn.Close();

lb.Text = \添加成功\; } else

lb.Text = \请将信息补充完整\; }

protected void shanchu_Click(object sender, EventArgs e) …………………… 学生信息的删除 {

string strCon = \

Security=SSPI\;

SqlConnection conn = new SqlConnection(strCon); conn.Open();

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandText = \学号='\ + TextBox1.Text + \; cmd.ExecuteNonQuery(); conn.Close(); TextBox1.Text = \; TextBox2.Text = \; TextBox3.Text = \; TextBox4.Text = \; TextBox5.Text = \; TextBox6.Text = \; TextBox7.Text = \; TextBox8.Text = \; TextBox9.Text = \; TextBox10.Text = \; lb.Text = \删除成功\; }

protected void xiugai_Click(object sender, EventArgs e) …………………… 学生信息的修改 {

if (TextBox2.Text != \ && TextBox3.Text != \ && TextBox4.Text != \ &&

TextBox5.Text != \ && TextBox8.Text != \)

{

string connstr = \

Catalog=scoremanager;Integrated Security=SSPI\;

26

SqlConnection conn = new SqlConnection(connstr); conn.Open();

string strSQL = \学号='\ + TextBox1.Text + \; SqlCommand selcmd = new SqlCommand(strSQL, conn); DataSet ds = new DataSet();

SqlDataAdapter da = new SqlDataAdapter();

string updateSql = \学号='\ + TextBox2.Text.Trim()+ \姓

名='\ + TextBox3.Text.Trim() + \性别='\ +

TextBox4.Text.Trim()+ \院系='\ + TextBox5.Text.Trim()+ \出生年月='\ + TextBox6.Text.Trim()

+ \家庭住址='\ + TextBox7.Text.Trim()+ \入学时间='\ +

TextBox8.Text.Trim()+ \政治面貌='\ +

TextBox9.Text.Trim()+ \备注='\ + TextBox10.Text.Trim()+ \;

SqlCommand updatecmd = new SqlCommand(updateSql, conn); conn.Close();

lb.Text = \修改成功!\; } else

lb.Text = \请将信息补充完整\;

}

教师信息管理和学生信息管理代码类似。

3.创建数据库脚本:

---创建系统管理员表---

if exists (select * from sysobjects where id = OBJECT_ID('[admin]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [admin] CREATE TABLE [admin] (

[用户名] [char] (10) NOT NULL, [密码] [char] (10) NOT NULL, [备注] [nvarchar] (50) NULL)

ALTER TABLE [admin] ADD CONSTRAINT [PK_admin] PRIMARY KEY ([用户名]) GO

---创建课程表---

if exists (select * from sysobjects where id = OBJECT_ID('[course]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [course] CREATE TABLE [course] (

[课程号] [char] (10) NOT NULL, [课程名] [char] (20) NOT NULL, [学分] [int] NOT NULL,

27

[备注] [text] NULL)

ALTER TABLE [course] ADD CONSTRAINT [PK_course] PRIMARY KEY ( [课程号] ) GO

---创建学生表表---

if exists (select * from sysobjects where id = OBJECT_ID('[student]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [student] CREATE TABLE [student] ( [学号] [char] (10) NOT NULL, [姓名] [char] (10) NOT NULL,

[性别] [char] (2) NOT NULL DEFAULT ('男'), [系别] [char] (20) NOT NULL, [出生年月] [smalldatetime] NULL, [家庭住址] [char] (40) NULL,

[入学时间] [smalldatetime] NOT NULL, [政治面貌] [char] (16) NULL, [备注] [text] NULL,

[密码] [char] (10) NOT NULL)

ALTER TABLE [student] ADD CONSTRAINT [PK_student] PRIMARY KEY ( [学号] ) GO

---创建教师表---

if exists (select * from sysobjects where id = OBJECT_ID('[teacher]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [teacher] CREATE TABLE [teacher] (

[教师编号] [char] (10) NOT NULL, [姓名] [char] (10) NOT NULL,

[性别] [char] (2) NOT NULL DEFAULT ('男'), [出生年月] [smalldatetime] NULL, [院系名称] [char] (16) NOT NULL, [职称] [char] (10) NOT NULL, [学历] [char] (10) NULL, [政治面貌] [char] (16) NULL, [备注] [text] NULL,

[密码] [char] (10) NOT NULL)

ALTER TABLE [teacher] ADD CONSTRAINT [PK_teacher] PRIMARY KEY ( [教师编号] ) GO

---创建成绩表---

if exists (select * from sysobjects where id = OBJECT_ID('[grade]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [grade] CREATE TABLE [grade] ( [学号] [char] (10) NOT NULL, [课程号] [char] (10) NOT NULL,

28

[日期] [smalldatetime] NOT NULL, [教师编号] [char] (10) NOT NULL, [分数] [int] NULL)

ALTER TABLE [grade] ADD CONSTRAINT [FK_grade_course] FOREIGN KEY([课程号]) REFERENCES [course] ([课程号]) GO

ALTER TABLE [grade] ADD CONSTRAINT [FK_grade_student] FOREIGN KEY([学号]) REFERENCES [student] ([学号]) GO

ALTER TABLE [grade] ADD CONSTRAINT [FK_grade_teacher] FOREIGN KEY([教师编号]) REFERENCES [teacher] ([教师编号]) GO

ALTER TABLE [grade] ADD CONSTRAINT [PK_grade] PRIMARY KEY ( [学号], [课程号], [日期], [教师编号] ) GO

四、课程设计总结

1. 开发体会

本系统开发的技术难点主要有两个方面:一是系统功能的理解;二是数据库逻辑结构的设计。

系统功能的理解是依据成绩管理系统的功能、特点及其特殊的应用领域需要来进行设计的。只有在准确理解一个系统的功能之后才可能开发出适应其需求的应用系统,并且在系统之间模块的科学划分与结构组织都是要在正确理解实际应用需求的前提下才能完成的.

数据库设计是应用系统开发的另一个难点,只有科学的数据库设计才能使系统具有良好的结构及良好的可编程性,可扩展性.数据库设计是直接影响系统运行情况及程序设计的一个重要因素.因此,在开发相关数据库方面的管理系统时,都需要充分考虑到科学性,结构性,规范性,安全性,可扩展等相关问题. 2. 编程心得

进一步深入理解数据库设计的整个过程,该成绩管理系统的需求分析、数据库概念结构设计有关内容等。掌握使用前台程序设计ASP.net技术和SQL Server 数据库技术结合设计。综合练习了SQL Server的使用和数据库管理;综合熟悉并练习了SQL语言在编程中的使用; 综合训练编程能力。认识系统,取得系统需求分析,更重要得是在编程方面提高了实现目标代码得能力及调试代码得能力。

29

3. 系统不足

该成绩管理系统只实现了一些最基本的功能,如成绩的查询、录入、修改等,而且这些方面都只以简单的方式将其实现的,如按学号查询,并没有想一些完善的系统那样可以通过多中方式来实现某一操作,如可以分学期、按年份查询等。另外,我们没有 设计出一种可以让老师和学生之间可以进行交流的功能,如留言板的方式。 4. 小组成员及分工情况 张姝:需求分析及数据库设计 李婷:管理员模块 王哲:学生模块 段少娟:教师模块

当运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在SQL Server中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。当然也可以利用其他各种方法进行数据维护。

此项课题的研究与设计,经过老师的严格的监督与精心的指导,并参阅大量的有关计算机信息管理系统的书籍、资料、工具书的条件下完成,在设计中,采用最先进的数据开发语言和数据库管理系统。ASP.NET+SQL Server2000采用客户机/服务器(CLIENT/SERVER)结构。选择最实际、最适用的一种为标准。

经过两个月的课程设计和开发,成绩管理系统基本开发完毕。其功能基本符合用户需求。通过本次课程设计的选题、资料查询、需求分析、数据采集与处理、程序设计及最后的论文写作,使我们对成绩管理系统的制作过程有了深刻的了解,并且学到了很多了关于数据库方面的知识。

30

参考文献

[1] 候炳辉 ,沈临兴 ,彭澎 主编《计算机信息管理专业毕业设计案例摘选》[D] 清华大学出版社 2002.5

[2] 萨师煊,王珊 主编《数据库系统概论》(第三版)[S] 高等教育出版社 2004.7 [3] 吴林华 主编《网站建设与维护》 电子工业出版社,2004年6月

[4] 邵丽萍,张后杨,柯新生 《网页编程技术》 清华大学出版社,2004年1月 [5] 杨翼川,徐梅 《ASP动态网页设计实战》 机械工业出版社,2000年11月 [6] 包锦阳 《大专生毕业论文(设计)写作指导》 浙江大学出版社,2004年6 月 [7] 周佩德.《数据库原理及应用》电子工业出版社 [8] 王要武,管理系统,电子工业出版社,2003

[9] 李红等编著,管理信息系统开发与应用,电子工业出版社,2003 [10] 周之英缟著,现代软件工程,科学出版社,2003

[11](美) Dickinson Paul 编著, 张晓明 邓少鹍 翻译 《ADO.NET高级编程》

| Professional ADO.NET Programming 中国电力出版社 ,2003

[12](美)Douglas J. Reilly 编著, 赵海,许进,马静静 翻译《ASP.NET Web 应用程序开发

新思维》|Designing Microsoft(r) ASP.NET Applications ,人民邮电出版社,2002

31

本文来源:https://www.bwwdw.com/article/348p.html

Top