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

下载本文档

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

文档简介

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

2、理系统设计3. 图书管理系统设计4. 班级管理系统5. 教师信息管理系统6. 成绩管理系统7. 学生信息管理系统8. 实验室管理系统9. 科研项目管理系统10. 商品销售管理系统三. 时间与安排时间为 2 周( 12天时间) ,时间应该够用 ,因为早已把课程设计分解到平时上课所布置地课外作 业中 .粗略划分: 聞創沟燴鐺險爱氇谴净。第 1.2 天 布置任务及分组 .总体需求分析与设计;编写相关文档 .设计说明 .查找资料第 3.4 天数据库设计 ,数据表地设计 .数据地录入 ,完整性约束 第5.6天视图 .触发器和存储过程设计第 7.8 各模块地编程设计;第9.10使用C#)创建工程并编写代码

3、;第 11 天 程序总调试 .修改 , 撰写课程设计实习报告四 . 课程设计报告内容包括:系统设计目地 .数据库对象 .数据表结构(每个表要注明索引 .视图.触发器 .存储过程) . 功能模块划分 .程序实现思路 .设计说明文档 .课程设计心得及程序清单(打印),并按学校地课程设计(论文)格式撰写并装订成册 ,以备下一次再代此课时使用 .残骛楼諍锩瀨濟溆塹籟。五.成绩考核:系统测试 .设计报告 .单项实训分别占 40%.40%.20% ;六.进度与组织1. 课程设计进度安排(第 17周-第 18周)交付方式:第 16 周交付已打印地文档 .可演示地软件 .2. 课程设计小组学生每 N 人 1

4、组(一个面最多 6 组) ,自由组合 ,指定一个组长 ,负责本小组地任务分配与进度 安排 .在提交文档时 ,应在封面上注明小组参加人员 ,包括学号和姓名 ,以便老师打分 . 课程设计小组 应独立工作 ,可以相互讨论 ,但小组间不允许互相抄抄袭 .酽锕极額閉镇桧猪訣锥。3. 19 周进行演示 .参考案例 1:小型学生管理系统问题本案例实现一个小型地学生管理系统.完成地功能: 班级管理 .学生管理 .科目管理 .课程管理 .成绩管理以及系统管理员才具有地教师管理和用户管理 .1. 班级管理:可对班级进行添加 .删除.修改.查找和报表输出等功能 ,班级属性有: 名称 .班主任(来 自于系统中保存地教

5、师) .当前学生人数 .建班日期和备注等属性 .2. 学生管理: 可对学生进行添加 .删除.修改 .查找和报表输出等功能 ,学生属性有: 学号.姓名.性别. 所属班级(来自于系统中保存地班级).相片 .出生日期和备注等属性 .3. 科目管理:可对科目进行添加 .删除 .修改 .查找和报表输出等功能 ,科目属性有:科目名称 .学时 数和备注等属性 .4. 课程管理:可对每一个班级地上课科目进行添加.删除 .修改 .查找和报表输出等功能 ,课程属性有:所属班级(来自于系统中保存地班级).授课老师(来自于系统中保存地教师) .开课日期 .结课日期和备注等属性 .5. 成绩管理:可对每一个班级地上课科

6、目地学生成绩进行添加.删除.修改 .查找和报表输出等功能成绩属性有:学生姓名 .所属班级(来自于系统中保存地班级).课程名 .成绩 .备注等属性 .彈贸摄尔霁毙攬砖卤庑。指导教师讲解问题说明 分析根据系统地功能划分和实现地方便,我们将整个程序分为三层:数据层业务层和界面层数据层负责对数据库进行操作,包括向表中插入数据更新数据查询数据和删除数据业务层负责把界面上 地各种操作传达给数据层界面层主要负责界面地设计,包括控件地位置和外观等设置 实时反映系 统地变化情况謀荞抟箧飆鐸怼类蒋薔。数据库表地设计根据程序地功能得出数据实体 ,进行数据库设计分析,确定以下数据表,如图所示:键 ID名称数据类型大小

7、空歎认值DassNamevafchar20DnrMcborvachar20CurrentCount旳日Hint2 (0)EntrariceDtedatetimeBRemarkvacchar256图1班级表结构犍 ID 名称数据类型大小空i 食 Sf CourselDint4fC lassN amevarchat20SubjedHamevarchar20T eachervarchar20BeginDatedatetirrie8FinishDatedatetime8Remarkvarchar256图2课程表结构键 ID 笆称讐牌松二至砺 ScorelDint4StudentNarnt4Course

8、lDint4Scorefloat9图3分数表结构键ID名称数据类型大小StudentNoint4!3StudentNamevarchar20口Gendervarchai4Birthdaydatetime0匚 lassNamevarchar20Picturevarchar25&髓 nRemarkvarchar256图4学生表结构龍 ID 名称数据类型大小空默认值喩SubjectNamevarchsf20IPeriodint4(Q)Remarkvarchat 256图5科目表结构列名1軽删长度允许空|1 e1'it <varchar20Gendtrvarchar2Birthd

9、aydatetimeaHJCfirdchar20zITni varsityvarchar20Spxi alf i eldvarchar50Diploimavarchar20Fi cturevarchir50Remarkvarchar25B图6教师表结构键lD 名痢数据类型大小空默认值:舐UserNamevarchar20iPasswordvarchar2033G83SB8Levelbit1沁bit11)图7用户信息表结构方案实现:在解决方案中添加 3个项目,分别代表数据层业务层和界面层因为班级.课程成绩学生科目和 教师等对象地实现方式类似,以下以班级类为示例,讲解实现过程:BusinessRu

10、ler.Classes 类地实现该类主要实现班级地业务逻辑,如:验证系统是否有班级该班是否有学生该班学生人数是否已 超过额定班级名是否已存在该班是否已开课添加删除修改和查找班级具体代码如下所示: 厦礴 恳蹒骈時盡继價骚。using System;using System.Wi ndows.Forms;using DataAccess;using System.Data.SqlClie nt;using System.Collect ions;using System.Data;n amespace Busin essRulerpublic class Classesprivate DataGr

11、idView _dgvClass;public Classes(DataGridView dgv)_dgvClass = dgv;public Classes() 验证系统是否有班级public static bool lsClassExists()if (DataAccess.Classes .I sClassExists().HasRows)return true;elseMessageBox.Show(”目前还没有班级,请首先创建班级","错误", MessageBoxButtons.OK, MessageBoxIco n.ln formatio n);re

12、turn false;/验证该班是否有学生public bool IsStude ntExists(stri ng className)DataAccess.Classes objClass = DataAccess.Classes.Create In sta nce(className);if (objClass.CurrentCount > 0 )return true;elseMessageBox.Show(”该班目前还没有学生,无法进行成绩管理,请首先添加学生!","错误",MessageBoxButt on s.OK, MessageBoxIco

13、n.ln formatio n);return false;验证该班学生人数是否已超过额定public static bool isInCapacity(string className)int stude ntCapacity =In t32.Parse(Bus in essRuler.ReaderWirteCo nfig.GetValueByKey("stude ntCapaticyl nClass");DataAccess.Classes objClass = DataAccess.Classes.Create In sta nce(className);if (ob

14、jClass.Curre ntCo unt = stude ntCapacity )MessageBox.Show(”该班学生人数已满!","错误",MessageBoxButt on s.OK,MessageBoxlc on .Error);return false;return true;/验证班级名是否已存在public static bool CheckExists(string className)return DataAccess.Classes.CheckExists(className).HasRows;/检查该班是否已开课public bool

15、IsCourseExist(stri ng className)DataAccess.Classes objClass = new DataAccess.Classes(className);if (objClass.FillByAIISubjectName().Tables0.Rows.Cou nt > 0 )return true;elseMessageBox.Show(className+ "班尚无课程,无法进行成绩管理,请先添加课程!","错误"MessageBoxButt on s.OK,MessageBoxlc on .Error);r

16、eturn false;/更新数据网格地显示public void UpdateDataGrid()if (this._dgvClass != null)DataSet objDataSet = DataAccess.Classes.FillByAIICIass();this._dgvClass.DataSource = objDataSet.Tables0;/添加班级public void AddClass(stri ng className, stri ng director, DateTime entran ceDate, stri ng remark)首先判断班级名称是否已存在if (

17、CheckExists(className)MessageBox.Show(”班级名” + className + "已存在,请重新输入班级名!","班级名已存在 ", MessageBoxButt on s.OK, MessageBoxIc on .Error);elseif (DataAccess.Classes.CreateClass(className, director, entran ceDate, remark) > 0)UpdateDataGrid();MessageBox.Show(” 成功添加班级!","操作

18、成功", MessageBoxButtons.OK, MessageBoxIco n.ln formatio n);/修改班级public void ModifyClass(stri ng className, stri ng director,DateTime entran ceDate, stri ng remark)DataAccess.Classes objClass = new DataAccess.Classes(className);objClass.Director = director;objClass.E ntran ceDate = entran ceDate;

19、objClass.Remark = remark;if (objClass.Update() > 0)UpdateDataGrid();MessageBox.Show(” 修改班级资料成功!","操作成功", MessageBoxButtons.OK,MessageBoxIco n.ln formatio n);/删除班级public void DeleteClass(stri ng className)if (!CheckExists(className)MessageBox.Show(”班级名” + className + "不存在,请重新输入

20、班级名!","班级名不存在 ", MessageBoxButt on s.OK, MessageBoxIc on .Error);elseif (DialogResult.Yes = MessageBox.Show(” 真地要删除班级'"+ className + "'吗?n 删除 该班时,将同时删除该班所有学生地档案及相关课程.成绩地记录,确定要继续吗?","删除确认", MessageBoxButt on s.YesNo, MessageBoxIc on. Questi on)DataAcces

21、s.Classes objClass = new DataAccess.Classes(className);if (objClass.Delete() > 0)UpdateDataGrid();MessageBox.Show(” 成功删除班级'"+ className + " '!","操作成功",MessageBoxButt on s.OK, MessageBoxIco n.ln formatio n);public void FillCboByAIICIassName(ComboBox cbo, i nt posit

22、io n)cbo.I tems.Clear();DataTable classNames = DataAccess.Classes.GetAllClassName();foreach (DataRow row in classNames.Rows)cbo.ltems.Add(row0.ToStri ng();cbo.SelectedI ndex = positi on;public void FillCboByAIICIassName(ComboBox cbo, stri ng theClassName)cbo.Items.CIear();int positi on = 0;int i = 0

23、;DataTable classNames = DataAccess.CIasses.GetAIICIassName();foreach(DataRow row in classNames.Rows)cbo.ltems.Add(row0.ToStri ng();if (row0.ToStri ng().Equals(theClassName)positi on = i;i+;cbo.SelectedI ndex = positi on;查找班级public static void Fin dByClassName(DataGridView dgv, stri ng className)for

24、(int row = 0; row < dgv.Rows.Co unt; row+)if (dgv.Rowsrow.Cells"colClassName".Value.ToStri ng().Equals(className)dgv.Rowsrow.Selected = true;return ;MessageBox.Show(” 已到记录末尾!","结果", MessageBoxButtons.OK, MessageBoxIco n.ln formatio n);/按班主任查找public static void Fi ndByDire

25、ctor(DataGridView dgv, stri ng director,bool useMatch)for (int row = In t32.Parse(dgv.Tag.ToStri ng(); row < dgv.Rows.Co unt; row+)bool con diti on = dgv.Rowsrow.Cells"colDirector".Value.ToStri ng().Equals(director);if (useMatch)con diti on = dgv.Rowsrow.Cells"colDirector".Val

26、ue.ToStri ng().C on tai ns(director);if (con diti on)dgv.Rowsrow.Selected = true;dgv.Tag = (row+1).ToStri ng();return ;MessageBox.Show(”已到记录末尾!","结果",MessageBoxButt on s.OK,MessageBoxIc on.ln formatio n);dgv.Tag = 0;/按建班日期查找public static void Fin dByDate(DataGridView dgv, DateTime sta

27、rtDate, DateTime fini shDate) for (int row = In t32.Parse(dgv.Tag.ToStri ng(); row < dgv.Rows.Co unt; row+)DateTime dateValue =DateTime.Parse(dgv.Rowsrow.Cells"colE ntra nceDate".Value.ToStri ng();if (dateValue >= startDate && dateValue <= fin ishDate)dgv.Rowsrow.Selected

28、= true;dgv.Tag = (row + 1).ToStri ng();return;MessageBox.Show(” 已到记录末尾!","结果", MessageBoxButtons.OK,MessageBoxIco n.ln formatio n);dgv.Tag = 0;DataAccess.Classes类地实现该类主要实现班级地对象地创建和数据库操作,如:得到所有班级名.新建班级.获取班级所有学生地集合.得到指定班级所有课程信息地记录.添加.删除和修改班级.具体代码如下所示:茕桢广鳓鯡选 块网羈泪。using System;using Syste

29、m.Collect ion s.Ge neric;using System.Text;using System.Data;using System.Data.SqlClie nt;using System.Collect ions;n amespace DataAccesspublic class Classesprivate string _className; private stri ng director;private int _curre ntCo unt;private DateTime _entran ceDate;private string _remark;#regi on

30、public stri ng Namegetretur n _className;set_className = value;public stri ng Directorgetretur n _director;set_director = value;public int Curren tCo untgetretur n _curre ntCo unt;set_curre ntCo unt = value;public DateTime Entran ceDategetretur n entran ceDate;set_entran ceDate = value;public stri n

31、g Remarkgetreturn _remark;set_remark = value;#en dregi on/实例化班级public Classes(stri ng className)_className = className;public Classes()public static Classes Create In sta nce(stri ng className)Classes c = n ull;stri ng strSql = "select * from Class where ClassName = className "SqlCom mon s

32、qlcomm = new SqlCommo n();SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("className", className);if (reader.Read()c = new Classes(className);c._director = reader"Director".ToStri ng();c._curre ntCou nt = (In t32.Parse(reader"Curre ntCou nt".ToStri

33、 ng();c._e ntran ceDate = (DateTime)reader"E ntran ceDate"c._remark = reader"Remark".ToStri ng();reader.Close();return c;/得到所有班级名public static DataTable GetAIICIassName()stri ng strSql = "select ClassName from Class"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sql

34、comm.CreaDataSet(strSql, n ull);retur n ds.TablesO;/新建班级public static int CreateClass(stri ng className, stri ng director, DateTime entran ceDate, stri ng remark)string strSql = "insert into Class(ClassName,Director,EntranceDate,Remark) values(className,director,e ntra nceDate,remark);"Sql

35、Com mon sqlcomm = new SqlCommo n();SqlParameter pa = new SqlParameter4;paO = new SqlParameter("ClassName", className);pa1 = new SqlParameter("Director", director);pa2 = new SqlParameter("E ntran ceDate", entran ceDate);pa3 = new SqlParameter("Remark", remark);

36、retur n sqlcomm.ExecuteN on Query(strSql, pa);/更新班级public int Update()stri ng strSql = "update Class set Director = director,E ntran ceDate=en tra nceDate,Remark = remark where ClassName = className"SqlCom mon sqlcomm = new SqlCommo n();return sqlcomm.ExecuteN on Query(strSql, new SqlParam

37、eter("Director", this._director), new SqlParameter("E ntran ceDate", this._e ntran ceDate), new SqlParameter("Remark", this._remark),new SqlParameter("className",_className);/删除班级public int Delete()删除班级地同时删除该班所有学生记录.课程记录.成绩记录Stri ngBuilder strSql = new Stri ng

38、Builder();strSql.Appe nd("delete from Score where Stude ntNo in (Select Stude ntNo from Stude nt where ClassName = className) ;");strSql.Appe nd("delete from Course where ClassName = className ;");strSql.Appe nd("delete from Stude nt where ClassName = className ;");strS

39、ql.Appe nd("delete from Class where ClassName = className ;");SqlCom mon sqlcomm = new SqlCommo n();return sqlcomm.ExecuteN on Query(strSql.ToStri ng(),true,false, new SqlParameter("className", _className);/检查是否有班public static SqlDataReader lsClassExists()stri ng strSql = "s

40、elect * from Class "SqlCom mon sqlcomm = new SqlCommo n();SqlDataReader reader = sqlcomm.ExecuteReader(strSql, n ull);retur n reader;/检查是否有学生public SqlDataReader IsStude ntExists()stri ng strSql = "select * from Class where ClassName = className andCurrentCount > 0 "SqlCom mon sqlc

41、omm = new SqlCommo n();SqlDataReader reader = sqlcomm.ExecuteReader(strSql, newSqlParameter("className",_className);retur n reader;/检查班级名是否已存在public static SqlDataReader CheckExists(string className)stri ng strSql = "select * from Class where className = className"SqlCom mon sqlc

42、omm = new SqlCommo n();SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("className", className);retur n reader;/得到所有班级地记录public static DataSet FillByAIICIass()stri ng strSql = "select * from Class"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sqlcomm.Cre

43、aDataSet(strSql, n ull);return ds;/获取班级所有学生地集合public DataSet FillByAIIStude nt()stri ng strSql = "select Stude ntNo,Stude ntName,Ge nder,Birthday,Picture,Remark fromStude nt where ClassName = className"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlPa

44、rameter("className", _className);return ds;public DataTable GetAllStude ntNo()stri ng strSql = "select Stude ntNo from Stude nt where ClassName = className"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("className", _clas

45、sName);return ds.TablesO;/得到指定班级所有课程信息地记录public DataSet FillByAllCourse()stri ng strSql = "select SubjectName,Teacher,Begi nDate,Fi nishDate,Remark from Course where ClassName = className"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("

46、className",_className); return ds;/得到指定班级所有课程名称地记录public DataSet FillByAIISubjectName()stri ng strSql = "select SubjectName from Course where ClassName = className"SqlCom mon sqlcomm = new SqlCommo n();DataSet ds = sqlcomm.CreaDataSet(strSql, newSqlParameter("className",_cla

47、ssName);return ds;/判断该班是否已存在相应课程public SqlDataReader GetDataReaderBySubjectName(stri ng subjectName)stri ng strSql = "select * from Course where ClassName = className and SubjectName = subjectName "SqlCom mon sqlcomm = new SqlCommo n();SqlDataReader reader = sqlcomm.ExecuteReader(strSql, n

48、ewSqlParameter("className", _className), new SqlParameter("subjectName", subjectName); retur n reader;界面设计:系统地界面除去主运行界面和系统辅助窗体外,还有班级课程成绩学生科目.教师等对象相应地管理添加查找和修改等界面具体地界面如下图所示:鹅娅尽損鹤惨歷茏鴛賴。丁1帝*営罚耗镰 刚加J | J "I耳邨 rfc(t)寮卅猛 箱嗖工 庄痔 廉搐 t(#i i<i番毘* ' 翻戻社銓 *玄炯L Sf? 7打前竺=S常订畀a口口左!&

49、#171;«與加伍:w:06 co ±m-集淞型t)tq*|挣图8程序运行主界面图9添加班级界面图10查找课程界面修改信息:修改观图11更新学生成绩界面图12学生管理界面图13登录界面图14更改密码界面图15系统选项设置界面口回冈J胡户管理图16系统用户管理界面(管理员登录)图17选择班级界面图 18 输出报表界面说明:班级 .课程.成绩.学生 .科目和教师等对象地管理 .添加.查找和修改界面类似 ,故以上没一一 给出所有地界面 .籟丛妈羥为贍偾蛏练淨。参考案例 2:客房管理系统设计一. 课程设计地目地和意义在当今经济和商务交往日益频繁地状况下 ,宾馆服务行业正面临客流量骤增地压力 .越来越多 地宾馆饭店都认识到传统地管理方法已经不能适合当今社会地需要,必须借助先进地计算机信息技术对宾馆服务进行管理 .“客房管理系统”可以说是整个宾馆计算机信息系统地中心子系统 ,因为宾 馆最主要地功能就是为旅客提供客房 .设计客房管理这样一个系统 ,可以涉及到大多数 SQL Server 数据库地重要数据库对象 .重要功能和特性 ,比如:视图 .触发器和存储过程等 .由此 ,通过这个课程设 计可以加深对这些 SQL Server 数据库知识地

温馨提示

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

评论

0/150

提交评论