您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 网络数据库课程设计实施方案
《网络数据库》课程设计实施方案一、《网络数据库》课程设计目的及意义通过设计一个数据库应用系统,可进一步熟悉SQLServer索引、视图、存储过程、触发器的概念、T-SQL语句的用法,在C#中的数据访问办法及实现方式。通过这个课程设计可以加深对SQLServer数据库知识的学习,理解,积累在实际工程中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面,客房管理系统也是很普遍的一种应用,选择该系统作为课程设计也可以为以后学生可能遇到的实际开发提供借鉴。二、课程设计项目选题(任选一)1、客房管理系统2、工资管理系统设计3、图书管理系统设计4、班级管理系统5、教师信息管理系统6、成绩管理系统7、学生信息管理系统8、实验室管理系统9、科研项目管理系统10、商品销售管理系统三、时间与安排时间为2周(12天时间),时间应该够用,因为早已把课程设计分解到平时上课所布置的课外作业中。粗略划分:第1、2天布置任务及分组、总体需求分析与设计;编写相关文档、设计说明、查找资料第3、4天数据库设计,数据表的设计、数据的录入,完整性约束第5、6天视图、触发器和存储过程设计第7、8各模块的编程设计;第9、10使用C#)创建工程并编写代码;第11天程序总调试、修改,撰写课程设计实习报告四、课程设计报告内容包括:系统设计目的、数据库对象、数据表结构(每个表要注明索引、视图、触发器、存储过程)、功能模块划分、程序实现思路、设计说明文档、课程设计心得及程序清单(打印),并按学校的课程设计(论文)格式撰写并装订成册,以备下一次再代此课时使用。五、成绩考核:系统测试、设计报告、单项实训分别占40%、40%、20%;六、进度与组织1、课程设计进度安排(第17周-第18周)交付方式:第16周交付已打印的文档、可演示的软件。2、课程设计小组学生每N人1组(一个面最多6组),自由组合,指定一个组长,负责本小组的任务分配与进度安排。在提交文档时,应在封面上注明小组参加人员,包括学号和姓名,以便老师打分。课程设计小组应独立工作,可以相互讨论,但小组间不允许互相抄抄袭。3、19周进行演示。参考案例1:小型学生管理系统问题本案例实现一个小型的学生管理系统。完成的功能:班级管理、学生管理、科目管理、课程管理、成绩管理以及系统管理员才具有的教师管理和用户管理。1.班级管理:可对班级进行添加、删除、修改、查找和报表输出等功能,班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。2.学生管理:可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。3.科目管理:可对科目进行添加、删除、修改、查找和报表输出等功能,科目属性有:科目名称、学时数和备注等属性。4.课程管理:可对每一个班级的上课科目进行添加、删除、修改、查找和报表输出等功能,课程属性有:所属班级(来自于系统中保存的班级)、授课老师(来自于系统中保存的教师)、开课日期、结课日期和备注等属性。5.成绩管理:可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。指导教师讲解问题说明分析根据系统的功能划分和实现的方便,我们将整个程序分为三层:数据层、业务层和界面层。数据层负责对数据库进行操作,包括向表中插入数据、更新数据、查询数据和删除数据。业务层负责把界面上的各种操作传达给数据层。界面层主要负责界面的设计,包括控件的位置和外观等设置、实时反映系统的变化情况。数据库表的设计根据程序的功能得出数据实体,进行数据库设计分析,确定以下数据表,如图所示:图1班级表结构图2课程表结构图3分数表结构图4学生表结构图5科目表结构图6教师表结构图7用户信息表结构方案实现:在解决方案中添加3个项目,分别代表数据层、业务层和界面层。因为班级、课程、成绩、学生、科目和教师等对象的实现方式类似,以下以班级类为示例,讲解实现过程:BusinessRuler.Classes类的实现该类主要实现班级的业务逻辑,如:验证系统是否有班级、该班是否有学生、该班学生人数是否已超过额定、班级名是否已存在、该班是否已开课、添加、删除、修改和查找班级。具体代码如下所示:usingSystem;usingSystem.Windows.Forms;usingDataAccess;usingSystem.Data.SqlClient;usingSystem.Collections;usingSystem.Data;namespaceBusinessRuler{publicclassClasses{privateDataGridView_dgvClass;publicClasses(DataGridViewdgv){_dgvClass=dgv;}publicClasses(){}//验证系统是否有班级publicstaticboolIsClassExists(){if(DataAccess.Classes.IsClassExists().HasRows){returntrue;}else{MessageBox.Show(目前还没有班级,请首先创建班级,错误,MessageBoxButtons.OK,MessageBoxIcon.Information);returnfalse;}}//验证该班是否有学生publicboolIsStudentExists(stringclassName)DataAccess.ClassesobjClass=DataAccess.Classes.CreateInstance(className);if(objClass.CurrentCount0){returntrue;}else{MessageBox.Show(该班目前还没有学生,无法进行成绩管理,请首先添加学生!,错误,MessageBoxButtons.OK,MessageBoxIcon.Information);returnfalse;}}//验证该班学生人数是否已超过额定publicstaticboolisInCapacity(stringclassName){intstudentCapacity=Int32.Parse(BusinessRuler.ReaderWirteConfig.GetValueByKey(studentCapaticyInClass));DataAccess.ClassesobjClass=DataAccess.Classes.CreateInstance(className);if(objClass.CurrentCount==studentCapacity){MessageBox.Show(该班学生人数已满!,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);returnfalse;}returntrue;}//验证班级名是否已存在publicstaticboolCheckExists(stringclassName){returnDataAccess.Classes.CheckExists(className).HasRows;}//检查该班是否已开课publicboolIsCourseExist(stringclassName){DataAccess.ClassesobjClass=newDataAccess.Classes(className);if(objClass.FillByAllSubjectName().Tables[0].Rows.Count0){returntrue;}else{MessageBox.Show(className+班尚无课程,无法进行成绩管理,请先添加课程!,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);returnfalse;}}//更新数据网格的显示publicvoidUpdateDataGrid(){if(this._dgvClass!=null){DataSetobjDataSet=DataAccess.Classes.FillByAllClass();this._dgvClass.DataSource=objDataSet.Tables[0];}}//添加班级publicvoidAddClass(stringclassName,stringdirector,DateTimeentranceDate,stringremark){//首先判断班级名称是否已存在if(CheckExists(className)){MessageBox.Show(班级名+className+已存在,请重新输入班级名!,班级名已存在,MessageBoxButtons.OK,MessageBoxIcon.Error);}else{if(DataAccess.Classes.CreateClass(className,director,entranceDate,remark)0){UpdateDataGrid();MessageBox.Show(成功添加班级!,操作成功,MessageBoxButtons.OK,MessageBoxIcon.Information);}}}//修改班级publicvoidModifyClass(stringclassName,stringdirector,DateTimeentranceDate,stringremark){DataAccess.ClassesobjClass=newDataAccess.Classes(className);objClass.Director=director;objClass.EntranceDate=entranceDate;objClass.Remark=remark;if(objClass.Update()0){UpdateDataGrid();MessageBox.Show(修改班级资料成功!,操作成功,MessageBoxButtons.OK,MessageBoxIcon.Information);}}//删除班级publicvoidDeleteClass(stringclassName){if(!CheckExists(className)){MessageBox.Show(班级名+className+不存在,请重新输入班级名!,班级名不存在,MessageBoxButtons.OK,MessageBoxIcon.Error);}else{if(DialogResult.Yes==MessageBox.Show(真的要删除班级'+className+'吗?\n删除该班时,将同时删除该班所有学生的档案及相关课程、成绩的记录,确定要继续吗?,删除确认,MessageBoxButtons.YesNo,MessageBoxIcon.Question)){DataAccess.ClassesobjClass=newDataAccess.Classes(className);if(objClass.Delete()0){UpdateDataGrid();MessageBox.Show(成功删除班级'+className+'!,操作成功,MessageBoxButtons.OK,MessageBoxIcon.Information);}}}}publicvoidFillCboByAllClassName(ComboBoxcbo,intposition){cbo.Items.Clear();DataTableclassNames=DataAccess.Classes.GetAllClassName();foreach(DataRowrowinclassNames.Rows){cbo.Items.Add
本文标题:网络数据库课程设计实施方案
链接地址:https://www.777doc.com/doc-2142671 .html