网络数据库课程设计实施方案_第1页
网络数据库课程设计实施方案_第2页
网络数据库课程设计实施方案_第3页
网络数据库课程设计实施方案_第4页
网络数据库课程设计实施方案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络数据库课程设计实施方案一、网络数据库课程设计目的及意义 通过设计一个数据库应用系统,可进一步熟悉SQL Server索引、视图、存储过程、触发器的概念、T-SQL语句的用法,在C#中的数据访问办法及实现方式。通过这个课程设计可以加深对SQL Server数据库知识的学习,理解,积累在实际工程中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面,客房管理系统也是很普遍的一种应用,选择该系统作为课程设计也可以为以后学生可能遇到的实际开发提供借鉴。二、课程设计项目选题(任选一) 1、客房管理系统 2、工资管理系统设计3、图书管理系统设计4、班级管理

2、系统5、教师信息管理系统6、成绩管理系统7、学生信息管理系统8、实验室管理系统9、科研项目管理系统10、商品销售管理系统三、时间与安排 时间为2周(12天时间),时间应该够用,因为早已把课程设计分解到平时上课所布置的课外作业中。粗略划分: 第1、2天布置任务及分组、总体需求分析与设计;编写相关文档、设计说明、查找资料 第3、4天数据库设计,数据表的设计、数据的录入,完整性约束 第5、6天视图、触发器和存储过程设计 第7、8各模块的编程设计; 第9、10使用C#)创建工程并编写代码;第11天程序总调试、修改, 撰写课程设计实习报告 四、课程设计报告 内容包括:系统设计目的、数据库对象、数据表结构

3、(每个表要注明索引、视图、触发器、存储过程)、功能模块划分、程序实现思路、设计说明文档、课程设计心得及程序清单(打印),并按学校的课程设计(论文)格式撰写并装订成册,以备下一次再代此课时使用。五、成绩考核: 系统测试、设计报告、单项实训分别占40%、40%、20%;六、进度与组织 1、课程设计进度安排(第17周-第18周) 交付方式:第16周交付已打印的文档、可演示的软件。 2、课程设计小组 学生每N人1组(一个面最多6组),自由组合,指定一个组长,负责本小组的任务分配与进度安排。在提交文档时,应在封面上注明小组参加人员,包括学号和姓名,以便老师打分。 课程设计小组应独立工作,可以相互讨论,但

4、小组间不允许互相抄抄袭。3、 19周进行演示。参考案例1:小型学生管理系统问题 本案例实现一个小型的学生管理系统。完成的功能:班级管理、学生管理、科目管理、课程管理、成绩管理以及系统管理员才具有的教师管理和用户管理。 1.班级管理:可对班级进行添加、删除、修改、查找和报表输出等功能,班级属性有:名称、班主任(来自于系统中保存的教师)、当前学生人数、建班日期和备注等属性。 2.学生管理:可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:学号、姓名、性别、所属班级(来自于系统中保存的班级)、相片、出生日期和备注等属性。 3.科目管理:可对科目进行添加、删除、修改、查找和报表输出等功能

5、,科目属性有:科目名称、学时数和备注等属性。 4.课程管理:可对每一个班级的上课科目进行添加、删除、修改、查找和报表输出等功能,课程属性有:所属班级(来自于系统中保存的班级)、授课老师(来自于系统中保存的教师)、开课日期、结课日期和备注等属性。 5.成绩管理:可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:学生姓名、所属班级(来自于系统中保存的班级)、课程名、成绩、备注等属性。指导教师讲解问题说明分析 根据系统的功能划分和实现的方便,我们将整个程序分为三层:数据层、业务层和界面层。数据层负责对数据库进行操作,包括向表中插入数据、更新数据、查询数据和删除

6、数据。业务层负责把界面上的各种操作传达给数据层。界面层主要负责界面的设计,包括控件的位置和外观等设置、实时反映系统的变化情况。数据库表的设计 根据程序的功能得出数据实体,进行数据库设计分析,确定以下数据表,如图所示:图1 班级表结构图2 课程表结构图3 分数表结构图4 学生表结构图5 科目表结构图6 教师表结构图7 用户信息表结构方案实现: 在解决方案中添加3个项目,分别代表数据层、业务层和界面层。因为班级、课程、成绩、学生、科目和教师等对象的实现方式类似,以下以班级类为示例,讲解实现过程: BusinessRuler.Classes类的实现 该类主要实现班级的业务逻辑,如:验证系统是否有班级

7、、该班是否有学生、该班学生人数是否已超过额定、班级名是否已存在、该班是否已开课、添加、删除、修改和查找班级。具体代码如下所示:using System;using System.Windows.Forms;using DataAccess;using System.Data.SqlClient;using System.Collections;using System.Data;namespace BusinessRulerpublic class Classesprivate DataGridView _dgvClass;public Classes(DataGridView dgv)_dg

8、vClass = dgv;public Classes()/验证系统是否有班级public static bool IsClassExists()if (DataAccess.Classes.IsClassExists().HasRows)return true;elseMessageBox.Show(目前还没有班级,请首先创建班级, 错误, MessageBoxButtons.OK, MessageBoxIcon.Information); return false;/验证该班是否有学生public bool IsStudentExists(string className)DataAcce

9、ss.Classes objClass = DataAccess.Classes.CreateInstance(className);if (objClass.CurrentCount 0 ) return true; elseMessageBox.Show(该班目前还没有学生,无法进行成绩管理,请首先添加学生!, 错误, MessageBoxButtons.OK, MessageBoxIcon.Information); return false;/验证该班学生人数是否已超过额定public static bool isInCapacity(string className) int stu

10、dentCapacity = Int32.Parse(BusinessRuler.ReaderWirteConfig.GetValueByKey(studentCapaticyInClass);DataAccess.Classes objClass = DataAccess.Classes.CreateInstance(className);if (objClass.CurrentCount = studentCapacity )MessageBox.Show(该班学生人数已满!, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error);return f

11、alse; return true;/验证班级名是否已存在 public static bool CheckExists(string className) return DataAccess.Classes.CheckExists(className).HasRows; /检查该班是否已开课 public bool IsCourseExist(string className) DataAccess.Classes objClass = new DataAccess.Classes(className);if (objClass.FillByAllSubjectName().Tables0.

12、Rows.Count 0 ) return true;else MessageBox.Show(className+ 班尚无课程,无法进行成绩管理,请先添加课程!,错误,MessageBoxButtons.OK,MessageBoxIcon.Error); return false; /更新数据网格的显示public void UpdateDataGrid()if (this._dgvClass != null) DataSet objDataSet = DataAccess.Classes.FillByAllClass();this._dgvClass.DataSource = objDat

13、aSet.Tables0;/添加班级 public void AddClass(string className, string director, DateTime entranceDate, string remark) /首先判断班级名称是否已存在if (CheckExists(className) MessageBox.Show(班级名 + className + 已存在,请重新输入班级名!, 班级名已存在, MessageBoxButtons.OK, MessageBoxIcon.Error);else if (DataAccess.Classes.CreateClass(class

14、Name, director, entranceDate, remark) 0)UpdateDataGrid(); MessageBox.Show(成功添加班级!, 操作成功, MessageBoxButtons.OK, MessageBoxIcon.Information); /修改班级 public void ModifyClass(string className, string director,DateTime entranceDate, string remark) DataAccess.Classes objClass = new DataAccess.Classes(class

15、Name); objClass.Director = director;objClass.EntranceDate = entranceDate;objClass.Remark = remark; if (objClass.Update() 0)UpdateDataGrid();MessageBox.Show(修改班级资料成功!, 操作成功, MessageBoxButtons.OK, MessageBoxIcon.Information); /删除班级public void DeleteClass(string className) if (!CheckExists(className) M

16、essageBox.Show(班级名 + className + 不存在,请重新输入班级名!, 班级名不存在, MessageBoxButtons.OK, MessageBoxIcon.Error); else if (DialogResult.Yes = MessageBox.Show(真的要删除班级 + className + 吗?n 删除该班时,将同时删除该班所有学生的档案及相关课程、成绩的记录,确定要继续吗?, 删除确认, MessageBoxButtons.YesNo, MessageBoxIcon.Question) DataAccess.Classes objClass = ne

17、w DataAccess.Classes(className);if (objClass.Delete() 0) UpdateDataGrid(); MessageBox.Show(成功删除班级 + className + !, 操作成功, MessageBoxButtons.OK, MessageBoxIcon.Information); public void FillCboByAllClassName(ComboBox cbo, int position)cbo.Items.Clear();DataTable classNames = DataAccess.Classes.GetAllC

18、lassName();foreach (DataRow row in classNames.Rows) cbo.Items.Add(row0.ToString();cbo.SelectedIndex = position; public void FillCboByAllClassName(ComboBox cbo, string theClassName) cbo.Items.Clear(); int position = 0; int i = 0; DataTable classNames = DataAccess.Classes.GetAllClassName();foreach(Dat

19、aRow row in classNames.Rows) cbo.Items.Add(row0.ToString();if (row0.ToString().Equals(theClassName) position = i; i+; cbo.SelectedIndex = position; /查找班级public static void FindByClassName(DataGridView dgv, string className)for (int row = 0; row dgv.Rows.Count; row+)if (dgv.Rowsrow.CellscolClassName.

20、Value.ToString().Equals(className)dgv.Rowsrow.Selected = true; return ; MessageBox.Show(已到记录末尾!, 结果, MessageBoxButtons.OK, MessageBoxIcon.Information); /按班主任查找 public static void FindByDirector(DataGridView dgv, string director,bool useMatch)for (int row = Int32.Parse(dgv.Tag.ToString(); row dgv.Row

21、s.Count; row+) bool condition = dgv.Rowsrow.CellscolDirector.Value.ToString().Equals(director);if (useMatch)condition = dgv.Rowsrow.CellscolDirector.Value.ToString().Contains(director);if (condition) dgv.Rowsrow.Selected = true;dgv.Tag = (row+1).ToString(); return ; MessageBox.Show(已到记录末尾!, 结果, Mess

22、ageBoxButtons.OK, MessageBoxIcon.Information); dgv.Tag = 0; /按建班日期查找public static void FindByDate(DataGridView dgv, DateTime startDate, DateTime finishDate)for (int row = Int32.Parse(dgv.Tag.ToString(); row = startDate & dateValue 0 ; SqlCommon sqlcomm = new SqlCommon();SqlDataReader reader = sqlcom

23、m.ExecuteReader(strSql,new SqlParameter(className,_className); return reader; /检查班级名是否已存在 public static SqlDataReader CheckExists(string className) string strSql = select * from Class where className = className;SqlCommon sqlcomm = new SqlCommon();SqlDataReader reader = sqlcomm.ExecuteReader(strSql,

24、 new SqlParameter(className, className);return reader; /得到所有班级的记录 public static DataSet FillByAllClass() string strSql = select * from Class; SqlCommon sqlcomm = new SqlCommon();DataSet ds = sqlcomm.CreaDataSet(strSql, null);return ds; /获取班级所有学生的集合 public DataSet FillByAllStudent() string strSql = s

25、elect StudentNo,StudentName,Gender,Birthday,Picture,Remark from Student where ClassName = className; SqlCommon sqlcomm = new SqlCommon();DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter(className, _className); return ds; public DataTable GetAllStudentNo() string strSql = select StudentNo fr

26、om Student where ClassName = className;SqlCommon sqlcomm = new SqlCommon(); DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter(className, _className); return ds.Tables0; /得到指定班级所有课程信息的记录 public DataSet FillByAllCourse() string strSql = select SubjectName,Teacher,BeginDate,FinishDate,Remark fr

27、om Course where ClassName = className;SqlCommon sqlcomm = new SqlCommon(); DataSet ds = sqlcomm.CreaDataSet(strSql,new SqlParameter(className,_className);return ds; /得到指定班级所有课程名称的记录 public DataSet FillByAllSubjectName() string strSql = select SubjectName from Course where ClassName = className;SqlCo

28、mmon sqlcomm = new SqlCommon(); DataSet ds = sqlcomm.CreaDataSet(strSql,new SqlParameter(className,_className); return ds; /判断该班是否已存在相应课程 public SqlDataReader GetDataReaderBySubjectName(string subjectName) string strSql = select * from Course where ClassName = className and SubjectName = subjectName

29、 ;SqlCommon sqlcomm = new SqlCommon(); SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter(className, _className), new SqlParameter(subjectName, subjectName); return reader; 界面设计: 系统的界面除去主运行界面和系统辅助窗体外,还有班级、课程、成绩、学生、科目、教师等对象相应的管理、添加、查找和修改等界面。具体的界面如下图所示:图8 程序运行主界面图9 添加班级界面图10 查找课程界面图

30、11 更新学生成绩界面图12学生管理界面图13登录界面图14更改密码界面图15系统选项设置界面图16系统用户管理界面(管理员登录)图17选择班级界面图18输出报表界面 说明:班级、课程、成绩、学生、科目和教师等对象的管理、添加、查找和修改界面类似,故以上没一一给出所有的界面。参考案例2:客房管理系统设计一、课程设计的目的和意义在当今经济和商务交往日益频繁的状况下,宾馆服务行业正面临客流量骤增的压力。越来越多的宾馆饭店都认识到传统的管理方法已经不能适合当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。“客房管理系统”可以说是整个宾馆计算机信息系统的中心子系统,因为宾馆最主要的功能就

31、是为旅客提供客房。设计客房管理这样一个系统,可以涉及到大多数SQL Server数据库的重要数据库对象、重要功能和特性,比如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深对这些SQL Server数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面,客房管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。本课程设计的主要目的是学习和练习SQL Server数据库的实际应用,所以选择SQL Server 2000作为数据库服务器。二、系统功能设计:本系统主要有以主要功能数据录入功能:在本系统中提供客人信息登记功能。可以录入客人的姓名、性别、年龄、身份证号码、家庭住址、工作单位、来自地的地名、入住时间、预住天数、客房类别、客房号、离店时间以及缴纳押金等信息。在客人退房时,系统根据输入的离店时间信客房单价自动计算客人住宿金额。数据查询功能:系统需提供以下查询功能查某类客房的入住情况及空房情况,显示所有该类客房空廖数据和客房号。根据客人的姓名来自地的地名、工作单位、或家庭住址等信息查询客人的确信息;根据客人房号查询入住客人的信息。查询某个客人住宿费用情况,显示客人缴纳押金

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论