网络数据库课程设计报告
网络数据库课程设计报告
题目: 学生信息管理系统
学号: 0903032250 姓名: 彭玉亭 专业: 网络技术 班级: 09网络2班
2010年1月
第一章
系统需求分析
1.1学生信息管理系统分析
学生信息管理是实现对学生信息的管理,从实用的角度考 虑,要求系统实现如下的功能。 (1)用户管理模块:主要实现用户登录、添加用户和修 改用户密码等功能。录入用户的用户名称、用户密码和用户描
图2-1: 系统功能模块图 二、系统主要模块流程图
登录 添加信息
输入用户名密码名 添加信息到库 输入新记录 是否与库中原记录重复 错误:记录重复 是 否
图2-2 添加信息流程图
登录 浏览学籍信息 输入用户名密码名 系别 查询库中符合条件的记录 性别 选择条件 显示 提示:没有符合条件的记录 找到符合条件的记录 未找到符合条件的记录
图3-1用户登录界面 添加一个ToolTip组件,提示用户输入正确的用户名和密 码形式,提示用户密码是否正确。 用户登录代码如下所示:
con.Open(); string sql = "select * from tb_user where 用户名='" + textBox1.Text.Trim() + "' and 用户密码='" + textBox2.Text.Trim() + "'"; SqlCommand cmd = new SqlCommand(sql, con); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read())
约束 Primary key Unique Check
选修或必修
Varchar(4)
Not null
Check(‘是’or’否’)
4、 成绩信息表S_Score 表2-4 成绩信息表 字段名 数据类型 空值 学号 Varchar(10) Not null
约束 Primary key 来自S_Info(学 号) Primay key 来自 S_Course(课 程号) check
约束 Primary key
Varchar(10) Not null 2、 学生信息表 S_Info 表2-2 学生信息表 字段名 数据类型 空值 编号 学号 姓名 性别 入学时间 出生日期 联系电话 家庭住址 Int Varchar(10) Varchar(20) Varchar(4) Varchar(20) Varchar(20) Varchar(26) Varchar(20) Not null Not null Not null Not null Null null Not null Not null
课程号
Varchar(10)
Not null
分数
Varrchar(10)
Not null
第三章
系统详细设计
3.1 SQL Server服务器端数据处理
一、在服务器端和主界面的连接
1、存储过程的部分主要SQL代码:
/*添加课程时应用的存储过程*/ if exists (select * from sysobjects where name='AddC' ) drop proc AddC go create proc AddC @CID varchar(10),@Cname varchar(20),@Cscore varchar(10),@Ctearcher varchar(20),@Cxuan varchar(20) as insert into S_Course values(@CID,@Cname,@Cscore,@Ctearcher,@Cxuan) go
述。 (2)学籍信息管理模块:该模块主要实现对学生基本信 息的录入、修改、删除和查询等操作。录入学生的学号、姓 名、性别、入学时间、出生日期、联系电话和家庭住址等信 息,以学号作为唯一关键字。 (3)课程信息管理模块:实现学校课程信息的录入、修 改、删除和查询操作。录入课程的课程号、课程名、学分、教 师、选修或必修等信息。 (4)学生成绩管理模块:实现学生成绩的录入、修改、 删除和查询操作。录入学生成绩的学号、课程编号、分数。
2、数据库中表和关系的创建情况 此系统包含四个表,用户名登录表tb_user,学生信息表 S_Info,学生课程表S_Course,学生成绩表S_Score,以下是这 些表的结构:
1、 用户登录信息表tb_user 表2-1 用户登录信息表 字段名 数据类型 空值 用户名 用户密码 描述 Varchar(10) Varchar(10) Not null Not null
第二章
系统需求设计
2.1客户端设计
一、学生信息管理系统的系统模块:
用户登录
学生信息管理系统 学生信息
课程信息 成绩信息 用户管理
帮助 添加用户信息 修改用户密码 删除用户信息 录入学生信息 修改学生信息 删除学生信息 查询学生信息 录入课程信息 修改课程信息 删除课程信息 查询课程信息 录入成绩信息 修改成绩信息 删除成绩信息 查询成绩信息
txtCname.Clear(); txtCscore.Clear(); txtCteacher.Clear();
3. 触发器的部分主要SQL代码:
/*删除学生表信息时自动删除成绩表的信息*/ if exists (select * from sysobjects where name='DeleteS' and type='tr') drop trigger DeleteS go create trigger DeleteS on s_info after delete as begin declare @sid varchar(10) select @sid=学号 from deleted delete from s_score where 学号=@sid end go /*删除成绩表信息时自动删除成绩表的信息*/ if exists (select * from sysobjects where name='DeleteC' and type='tr') drop trigger DeleteC go create trigger DeleteC on S_Course after delete as begin declare @cid varchar(10) select @cid=课程号 from deleted delete from s_score where 课程号=@cid end go
如图2-6 课程表E-R图 二、逻辑设计 1、数据库的创建 此系统创建studentmang数据库,库中包含一个主日志 文件(idf),一个辅助文件(ndf),一个主文件(mdf)
create database studentmange on ( name='data1', filename='e:\SQL Server 2008\sql课程设计 \studentmange\data1.mdf', size=10mb, maxsize=50mb, filegrowth=10% ), ( name='data2', filename='e:\SQL Server 2008\sql课程设计 \studentmange\data2.ndf', size=5mb, maxsize=40mb, filegrowth=3mb ) log on ( name='data3', filename='e:\SQL Server 2008\sql课程设计 \studentmange\data3.idf', size=13mb, maxsize=50mb, filegrowth=5mb ) go use studentmange go
tempChild.Close(); } friAddStudent.MdiParent = this; friAddStudent.Show(); } } BrowseStudent friBrowseStudent; private void 浏览学生 ToolStripMenuItem_Click(object sender, EventArgs e) { if (friBrowseStudent == null || friBrowseStudent.IsDisposed) { friBrowseStudent=new BrowseStudent(); for (int x = 0; x < this.MdiChildren.Length; x++) { Form tempChild= (Form)this.MdiChildren[x]; tempChild.Close(); } friBrowseStudent.MdiParent=this; friBrowseStudent.Show(); } }
2.要C#中的主要代码:
SqlCommand cmd = new SqlCommand("select * from s_score where 课程号='" + txtCid.Text.Trim() + "'", con); string cid = txtCid.Text.ToString(); string cname = txtCname.Text.ToString(); string csore = txtCscore.Text.ToString(); string cterarcher = txtCteacher.Text.ToString(); string cxuan = txtCchoice.Text.ToString(); string sql = "exec AddCourse '" + cid + "','" + cname + "','" + csore + "','" + cterarcher + "','" + cxuan + "'"; mandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show("添加课 程信息成功!", "提示"); txtCchoice.Clear(); txtCid.Clear();