数据库系统概论课程设计.doc
《数据库系统概论课程设计.doc》由会员分享,可在线阅读,更多相关《数据库系统概论课程设计.doc(57页珍藏版)》请在咨信网上搜索。
(完整word版)数据库系统概论课程设计 《数据库系统概论》课程设计 实验报告书 姓 名 夏小宅 专 业 计算机科学与技术 班 级 计101 学 号 冷小七制作 指导教师 戴小平 安徽工业大学计算机学院 2012年12月7日 第 1 页 共 57 页 摘 要 随着信息技术在教务管理上越来越深入而广泛的应用,教务管理系统的实施在技术上已逐步成熟。教务管理系统是一个不断发展并创新的具有潜力的系统,任何一个学校要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的教务管理系统。 本文介绍了在VS2012 C#.NET环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个简单的教务管理信息系统的过程。通过根据本学校的教务管理,模仿了一套行之有效的计算机管理学生、教师和课程的方案。文章介绍了教务管理系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。 关键词: 管理员管理、教师管理、学生管理、C#与SQL Sever 应用 教务管理系统 1.系统概述 此系统模拟了学校的教务管理系统,具有管理员、教师和学生的独自登陆界面,并分别为其服务。 1.1系统需求及分析 经过调查,要求系统具有一下几个基本功能: (1) 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; (2) 由于该系统的使用对象多,要求有较好的权限管理; (3) 原始数据修改简单方便,支持多条件修改; (4) 方便的数据查询,支持多条件查询; (5) 在相应的权限下,删除数据方便简单,数据稳定性好; 因为此系统主要面对学校的教务管理人员、教师和学生,所以管理员具有增删改自己信息、教师信息、课程信息、学生信息的基本功能,教师要具有修改个人信息、学生成绩录入、修改和管理、课程的管理等基本功能,学生具有修改个人信息、查看成绩、选课情况等基本功能。这些功能都在VS2010.NET C# 语言和SQL Sever 2008 数据库下可以实现。 1.2系统的功能简介 管理员:管理员管理、教师管理、学生管理、课程管理、特殊管理; 窗体界面如下: 教师:挂机、个人信息、个人课程、成绩管理; 窗体界面如下: 学生:个人信息、个人课程、个人成绩; 窗体界面如下: 1.3系统开发目标 出于本系统是学校教务管理的一个综合性的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。 2. 系统设计 系统设计包括系统模块设计和数据库设计。 2.1系统模块设计 主要功能模块如图所示: 公共模块:密码修改、用户登录 如图所示: 2.2数据库设计 数据库设计的任务是确定系统所需要的数据库。数据库是表的集合,通常一个系统只需要一个数据库。设计的任务是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。 根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表之间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。 数据库在SQL Sever 2008下创建,数据库名为Infor_System_School。 2.2.1本项目根据分析确定系统要设置如下表: 1. User_admin表、User_Stu表和User_Teach表: 属性名 含义 数据类型 限制条件 User_ID 编号 Char(3) PRIMARY KEY User_name 姓名 Varchar(20) NOT NULL User_password 密码 Varchar(10) NOT NULL 2. Admin 表: 属性名 含义 数据类型 限制条件 Admin_no 编号 Char(3) PRIMARY KEY Admin_name 姓名 varchar(10) NOT NULL Admin_position 职务 varchar(10) NOT NULL Admin_sex 性别 char(2) NOT NULL Admin_age 年龄 int NOT NULL Admin_tel 联系方式 char(11) Admin_mail 邮箱 varchar(20) Admin_addr 住址 varchar(50) 3. Student表 属性名 含义 数据类型 限制条件 Stu_no 学号 Char(9) PRIMARY KEY Stu_name 姓名 varchar(10) NOT NULL Stu_sex 性别 Char(2) NOT NULL Stu_bir 出生日期 date Stu_class 班级 varchar(10) NOT NULL Stu_dept 专业 varchar(20) NOT NULL Stu_prof 学院 varchar(20) NOT NULL Stu_tel 联系方式 Char(11) Stu_addr 宿舍地址 varchar(6) Stu_mail 邮箱 varchar(20) Stu_rtime 入学时间 date 4. Teacher表: 属性名 含义 数据类型 限制条件 Teach_no 工号 Char(5) PRIMARY KEY Teach_name 姓名 varchar(10) NOT NULL Teach_photo 照片 varbinary(MAX) Teach_sex 性别 Char(2) NOT NULL Teach_bir 出生日期 date Teach_prof 学院 varchar(20) NOT NULL Teach_ttime 入校时间 date Teach_tel 联系方式 char(11) Teach_mail 邮箱 varchar(20) Teach_addr 住址 varchar(50) 5. Course表: 属性名 含义 数据类型 限制条件 Cou_no 课程号 Char(5) PRIMARY KEY Cou_name 课程名 varchar(20) NOT NULL Cou_redit 学分 float NOT NULL Cou_time 学时 int NOT NULL Cou_type 学科类型 varchar(4) NOT NULL 6. TeachCou表: 属性名 含义 数据类型 限制条件 Cou_no 课程号 Char(5) PRIMARY KEY Teach_no 教师工号 Char(5) PRIMARY KEY 7. Score表: 属性名 含义 数据类型 限制条件 Cou_no 课程号 Char(5) PRIMARY KEY Stu_no 学号 Char(9) PRIMARY KEY Teach_no 教师工号 Char(5) PRIMARY KEY grade 成绩 float 注:各表内容见附录1. 2.2.2数据表间的逻辑关系 为了能使用户更直观地了解数据库中的个表之间的关系,可以通过建立关系图,如下图所示: 3.系统的代码实现 本系统采用的是C#语言和SQL Sever数据库服务器。 3.1 C# 与SQL Sever 的基本介绍与连接 3.1.1 SQL Sever 简介 SQL Sever 数据提供程序只能用于SQL Sever,在System.Data.SqlCilent命名空间中实现。 3.1.2 ADO.NET 介绍 ADO(ActiveX Data Objects)是一个用于存取数据源的COM组件,用于实现访问关系或非关系数据库中的数据。ADO为编程语言和统一数据访问方式OLE DB提供了一个中间层。开发人员在访问数据库是只需要关心到数据库的连接,而不需要知道关系数据库是如何实现的。 ADO.NET提供了平台互用性和可伸缩的数据访问,支持对数据的松耦合访问,增强了对非连接编程模式的支持。ADO.NET 中主要包含的对象包括SqlConnection 对象、Command 对象、SqlDataReader对象、DataSet 对象和SqlDataAdapter 对象等。 此外,ADO.NET还提供了脱机访问模式,及提供了断开连接的数据访问模型,也就是说,首先连接数据库,获取需要的数据,然后断开与数据库的连接,在DataSet或DataTable组件中脱机处理数据,这位应用程序提供了很高的可伸缩性,因为该模型允许多个客户连接数据库,检索数据。在Web应用程序中,这是很重要的,因为可能同时有成千上万个客户请求数据,这样,通过脱机访问模式,就可以在DataSet或DataTable组件中脱机处理数据,减少了对服务器端的压力。 3.1.3 C#与SQL Sever 连接 在进行SQL Sever数据库连接的时候,首先要使用数据库连接的提供者,因此在程序的开始要使用以下代码: using System.Data; using System.Data.SqlClient; 接下来要连接数据源,这需要使用连接字符串创建一个连接对象。连接字符串中包含希望链接的数据库提供者名称、登录信息以及希望使用的数据库名称。 创建连接对象的代码如下: string source = "Server=SQL Sever 名称;Initial Catalog=数据库名称;Integrated Security=SSPI;"; SqlConnection conn= new SqlConnection(source); 这样,就有了一个为计算机和数据库配置的连接对象了,但是该对象还未激活,因此必须打开连接。再有了对象之后就可以打开它,建立与数据库的连接 conn.Open();如果Open方法未成功,那么就会抛出SqlException异常。 3.2 系统中只要窗体和代码 3.2.1 登录窗体 功能实现:输入用户名和密码,登录教务管理系统。 窗体: 主要代码:lab_error1.Text = ""; lab_error2.Text = ""; if (comboB_name.Text == "") { lab_error1.Text = "用户名不能为空!"; } else if (textB_password.Text == "") { lab_error2.Text = "请输入密码!"; } else { try { string source = "Server=姜梦龙-;Initial Catalog=Infor_System_School;Integrated Security=SSPI;"; string select; SqlConnection conn = new SqlConnection(source); conn.Open(); if (radioB_stu.Checked) { select = "select User_ID,User_name,User_password from User_Stu Where [User_ID]='" + comboB_name.Text + "' AND [User_password]='" + textB_password.Text + "'"; } else if (radioB_teach.Checked) { select = "select User_ID,User_name,User_password from User_Teach Where [User_ID]='" + comboB_name.Text + "' AND [User_password]='" + textB_password.Text + "'"; } else { select = "select User_ID,User_name,User_password from User_admin Where [User_ID]='" + comboB_name.Text + "' AND [User_password]='" + textB_password.Text + "'"; } SqlCommand cmd = new SqlCommand(select, conn); SqlDataReader dr = cmd.ExecuteReader(); if (!dr.HasRows) { textB_password.Text = ""; MessageBox.Show("用户名或密码错误!", "错误提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { dr.Read(); string name = dr.GetString(1); if (radioB_stu.Checked) { MessageBox.Show("欢迎 " + name + " 同学使用教务管理系统","提示:"); this.Hide(); 学生 F = new 学生(); F.Show(); } else if (radioB_teach.Checked) { MessageBox.Show("欢迎 " + name + " 教师使用教务管理系统", "提示:"); this.Hide(); 教师 F = new 教师(); F.Show(); } else { MessageBox.Show("欢迎 " + name + " 管理员使用教务管理系统", "提示:"); this.Hide(); 管理员 F = new 管理员(); F.Show(); } dr.Close(); } conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } 3.2.2 管理员窗体框架 功能实现:管理员具有增加、查询、修改、注销管理员、教师、学生、课程,授课课程管理,还有特殊服务:密码服务等基本功能。 窗体: 主要代码:代码太多,只选其中一部分代码。 private void button_save_导入_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(source); char sex; if (radioB_男.Checked) { sex = '男'; } else { sex = '女'; } string insert_admin = "insert into Admin values('" + textB_no_导入.Text + "','" + textB_name_导入.Text + "','" + textB_posi_导入.Text + "','"+sex+"','" + textB_age_导入.Text + "','" + textB_tel_导入.Text + "','" + textB_mial_导入.Text + "','" + textB_addr_导入.Text + "')"; string insert_user = "insert into User_admin values('" + textB_no_导入.Text + "','" + textB_name_导入.Text + "','" + 123456 + "')"; SqlCommand cmd_admin = new SqlCommand(insert_admin, conn); SqlCommand cmd_user = new SqlCommand(insert_user, conn); try { conn.Open(); cmd_admin.ExecuteNonQuery(); cmd_user.ExecuteNonQuery(); } catch(Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show("录入出现异常!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); } finally { conn.Close(); } MessageBox.Show("录入成功!", "提示"); } private void button_查询_admin_Click(object sender, EventArgs e) { ds = new DataSet(); ds.Clear(); string select; SqlConnection conn = new SqlConnection(source); conn.Open(); if (textB_查询_admin.Text == "") { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin"; } else if (radioB_编号_admin.Checked) { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin Where Admin_no='" + textB_查询_admin.Text + "'"; } else if (radioB_姓名_admin.Checked) { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin Where Admin_name like '%" + textB_查询_admin.Text + "%'"; } else if (radioB_职务_admin.Checked) { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin Where Admin_position = '" + textB_查询_admin.Text + "'"; } else { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin Where Admin_age = '" + textB_查询_admin.Text + "'"; } da = new SqlDataAdapter(select, conn); SqlCommandBuilder admin = new SqlCommandBuilder(da); da.Fill(ds); this.DataGV_admin.DataSource = ds.Tables[0]; conn.Close(); } private void button_delete_admin_Click(object sender, EventArgs e) { ds = new DataSet(); ds.Clear(); string select, delete_admin,delete_user; SqlConnection conn = new SqlConnection(source); if (textB_delete_admin.Text == "") { MessageBox.Show("请输入你要删除管理员的编号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { select = "select distinct Admin_no AS 编号,Admin_name AS 姓名,Admin_position AS 职务,Admin_sex AS 性别,Admin_age AS 年龄,Admin_tel AS 联系方式,Admin_mail AS 邮箱,Admin_addr AS 住址 from Admin"; delete_admin = "delete from Admin Where Admin_no='" + textB_delete_admin.Text + "'"; delete_user = "delete from User_admin Where User_ID='" + textB_delete_admin.Text + "'"; SqlCommand cmd_admin = new SqlCommand(delete_admin, conn); SqlCommand cmd_user = new SqlCommand(delete_user, conn); try { conn.Open(); cmd_admin.ExecuteNonQuery(); cmd_user.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); MessageBox.Show("注销出现异常!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); } finally { conn.Close(); } MessageBox.Show("注销成功!", "提示"); da = new SqlDataAdapter(select, conn); SqlCommandBuilder admin = new SqlCommandBuilder(da); da.Fill(ds); this.DataGV_admin.DataSource = ds.Tables[0]; } } 3.2.3教师窗体框架 功能实现:教师具有修改个人信息,学生成绩录入、修改、查看、管理,还有查看课程等基本功能。 窗体: 主要代码:注:代码太多,只选取其中一部分。 private void button_score_in_确定_Click(object sender, EventArgs e) { ds = new DataSet(); ds.Clear(); string select; SqlConnection conn = new SqlConnection(source); conn.Open(); if (textB_score_in.Text == "") { select = "select C.Cou_no AS 课程号,Cou_name AS 课程名,S.Stu_no AS 学号,Stu_name AS 姓名,grade AS 成绩 from Score,Course C,Student S Where Teach_no='" + textB_logn_name.Text + "' AND S.Stu_no=Score.Stu_no AND Score.Cou_no=C.Cou_no ORDER BY Score.Cou_no ASC,S.Stu_no ASC"; } else if (radioB_score_in_cno.Checked) { select = "select C.Cou_no AS 课程号,Cou_name AS 课程名,S.Stu_no AS 学号,Stu_name AS 姓名,grade AS 成绩 from Score,Course C,Student S Where Teach_no='" + textB_logn_name.Text + "' AND Score.Cou_no='" + textB_score_in.Text + "' AND S.Stu_no=Score.Stu_no AND Score.Cou_no=C.Cou_no"; } else if (radioB_score_in_cnam.Checked) { select = "select C.Cou_no AS 课程号,Cou_name AS 课程名,S.Stu_no AS 学号,Stu_name AS 姓名,grade AS 成绩 from Score,Course C,Student S Where Teach_no='" + textB_logn_name.Text + "' AND C.Cou_name like '%" + textB_score_in.Text + "%' AND S.Stu_no=Score.Stu_no AND Score.Cou_no=C.Cou_no ORDER BY C.Cou_no ASC"; } else if (radioB_score_in_dept.Checked) { select = "select C.Cou_no AS 课程号,Cou_name AS 课程名,S.Stu_no AS 学号,Stu_name AS 姓名,grade AS 成绩 from Score,Course C,Student S Where Teach_no='" + textB_logn_name.Text + "' AND S.Stu_dept like '%" + textB_score_in.Text + "%' AND S.Stu_no=Score.Stu_no AND Scor- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 数据库 系统 概论 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文