教务辅助管理系统.doc_第1页
教务辅助管理系统.doc_第2页
教务辅助管理系统.doc_第3页
教务辅助管理系统.doc_第4页
教务辅助管理系统.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

精品文档数据库课程设计教务辅助管理系统院(系)别 班 级 学 号 姓 名 指导教师 时 间 课 程 设 计 任 务 书题 目 教务辅助管理系统 系 (部) 专 业 班 级 学生姓名 学 号 月 日至 月 日 共 周指导教师(签字) 系 主 任(签字) 年 月 日一、 设计内容及要求1. 设计内容:(1)主要的数据表教师基本信息表,课程表,教室资源表等等。(2)主要功能模块1) 对上课教师基本信息进行管理。2) 对全院开设的课程进行管理。3) 录入教师基本上课信息。4) 实现自动排课功能。5) 简单计算工作量。6) 能够进行各种数据统计。7) 能够输出相应的报表。8) 具有数据备份和数据恢复功能。2. 要求: 软件功能主要考虑实用,具体功能模块一定要先进行调研。二、 设计原始资料 (第三版) 萨师煊、王珊 高等教育出版社数据库原理及应用SQL Server 2000 夏冰冰 主编 国防工业出版社数据库设计教程(原书第2版) 作者:Thomas M. Connolly, Carolyn E. Begg 机械工业出版社 数据库原理及应用 作者:张凤琴 出版社:清华大学出版社 北京交通大学出版社 三、设计完成后提交的文件和图表1计算说明书部分数据库设计分析根据要求可知,新建一数据库 teacher ,在此数据库中建立三张表:Classroom,Course,TeacherInfo。Course包括 课程编号,课程名,任课老师,课时,上课时间;TeacherInfo包括 教师编号,名称,年龄,性别,电话,职称,所在院系Classroom包括教室编号,名称,及设备信息。鉴于有可能一个教师可以教授多门课一门课可以由多个教师教授,所以要建立表间关系。具体实现在下面会有体现!2图纸部分:程序流程图退出返回还原备份上课地点上课节数教师课程名课程编号所在学院职称电话性别年龄编号姓名教室信息班级查询返回备份还原课程信息教师信息教室信息程序开始四、进程安排内容学时地点备注分配任务与分组1天实验室系统功能需求分析1天实验室数据库需求分析1天实验室逻辑数据库结构2天实验室查询视图、存储过程、触发器1天实验室编程2天实验室程序测试和成果验收2天实验室五、主要参考资料数据库设计教程(原书第2版) 作者:Thomas M. Connolly, Carolyn E. Begg 机械工业出版社 数据库原理及应用 作者:张凤琴 出版社:清华大学出版社 北京交通大学出版社 数据库设计解决方案入门精典 主编 王海涛 清华大学出版社 Visual C+ 文档窗体设计 主编 丁有和 青岛出版社C+程序设计教程 主编(美) Grey Perry 清华大学社出版社成 绩 评 定 表作品成绩报告成绩口试(答辩)成绩总评成绩8欢迎下载。目 录1课程设计概述-11.1教务辅助管理系统功能概述-11.2开发环境概述-12 教务辅助管理系统总体设计-22.1 教务辅助管理系统总体设计思想-22.2总体设计流程图-23 教务辅助管理系统详细设计-33.1 需要体现的地方.-34 代码分析-44.8.1 E-R图设计-114.8.2 存储过程-124.9备份删除-.13设计体会及今后的改进意见-14参考文献-15.1欢迎下载。1 课程设计概述1.1 教务辅助管理系统功能概述1.1.1 Visual C+是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了MFC类库,使用户可以方便的开发自己想实现的功能。Visual C+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持Internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。(8)Find in File命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用Visual C+开发工具进行Windows应用程序开发。1.1.2 SQL(Structured Query Language),结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。它的主要功能介绍:SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。1.2 开发环境概述1.2.1 利用SQL Server 2005和Visual C+这两款软件连接起来共同设计教务辅助管理系统。SQL Server 2005用来设计数据库,其中包括数据库的表和表间关系;Visual C+主要用来编程,其中主要用到其MFC的功能。2 教务辅助管理系统总体设计2.1 教务辅助管理系统总体设计思想教务辅助管理系统主要是针对管理者对学校教务方面进行统一管理教务辅助管理系统的功能模块有:(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。(2) 对上课教师基本信息进行管理。(3) 对全院开设的课程进行管理。(4) 对教室进行管理。2.2 总体设计流程图程序开始菜单界面面教师信息教室信息课程信息备份还原退出返回添加功能删除功能修改功能查询功能图2-1 总体设计流程3 教务辅助管理系统详细设计3.1三个表的组成: 图3.1 Classroom 图3.2 Course 图3.3 TeacherInfo4 程序测试4.1 菜单界面4.1.1 使用ODBC连接数据源图4-1 菜单界面如图所示可以看出此界面能够实现增加、修改、删除、清屏、查询等功能。4.2 增加功能添加功能核心代码:void CTeacher:OnAdd() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);/打开数据库UpdateData(true);if(!UpdateData()return;TRY m_db.BeginTrans();CRecordset rs(&m_db);CString sql;/获取新的ID值. rs.Open(CRecordset:dynaset, Select max(ID) from TeacherInfo);int newID = 1; if(!rs.IsEOF() CDBVariant var; rs.GetFieldValue(short)0, var, SQL_C_SLONG); if (var.m_dwType != DBVT_NULL)newID = var.m_iVal+1;var.Clear(); /插入新的信息记录. sql.Format(exec dbo.add_teacherinfo %d,%s,%s,%s,%s,%s,%s,newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College);/使用存储过程 m_db.ExecuteSQL(sql); rs.Close();/向界面中插入新的信息.InsertCRInfoItem(newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College); m_db.CommitTrans();CATCH(CDBException,ex)AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close();4.3 删除功能 其代码如下:void CTeacher:OnDelete() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);UpdateData(true);/ TODO: Add your control notification handler code here int nItem = m_ListTeacher.GetNextItem(-1, LVNI_SELECTED);/如果没有选择要删除的纪录,返回.if(nItem = -1)AfxMessageBox(请选择要删除的信息);return;/从列表框控件中获取选择的客户信息.int lid = atoi(m_ListTeacher.GetItemText(nItem,0);TRYm_db.BeginTrans();CString deletedSql;/删除客户信息deletedSql.Format(exec dbo.detete_teacher_information %d,lid);m_db.ExecuteSQL(deletedSql);/删除界面上的数据m_ListTeacher.DeleteItem(nItem);m_db.CommitTrans();CATCH(CDBException,ex)AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close();4.4 修改功能其代码如下:void CTeacher:OnUpdate() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);UpdateData(true);if(!UpdateData()return;int nItem = m_ListTeacher.GetNextItem(-1, LVNI_SELECTED);if(nItem = -1)AfxMessageBox(没有修改信息!);return;int ID = atoi(m_ListTeacher.GetItemText(nItem,0); TRYm_db.BeginTrans();CString sql; sql.Format(update TeacherInfo set Name=%s,Age=%s,Sex=%s,Tel=%s,Title=%s,College=%swhere ID=%d,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College,ID); m_db.ExecuteSQL(sql);m_ListTeacher.SetItemText(nItem,1,m_Name);m_ListTeacher.SetItemText(nItem,2,m_Age);m_ListTeacher.SetItemText(nItem,3,m_Sex);m_ListTeacher.SetItemText(nItem,4,m_Tel);m_ListTeacher.SetItemText(nItem,5,m_Title);m_ListTeacher.SetItemText(nItem,6,m_College); m_db.CommitTrans();CATCH(CDBException,ex)AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close(); 4.5 清除编辑框中的信息程序运行界面的清屏。代码如下:void CTeacher:OnButtonClear() / TODO: Add your control notification handler code herem_No.Empty();m_Name.Empty();m_Age.Empty();m_Sex.Empty(); m_Tel.Empty();m_Title.Empty();m_College.Empty();UpdateData(FALSE);4.6 查询功能代码如下:void CTeacher:OnNoquire() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);if(!UpdateData()return;if(m_No.IsEmpty()AfxMessageBox(ID不能够为空);return;if(!m_db.IsOpen()MessageBox(数据库未打开);return;m_ListTeacher.DeleteAllItems();CRecordset rs(&m_db);CString temp = %;CString sql;sql.Format(select * from TeacherInfo where ID like %s%s%s,temp,m_No,temp);rs.Open(CRecordset:dynaset, sql);while (!rs.IsEOF() int ID;CString Name,Age,Sex,Tel,Title,College;CDBVariant var;rs.GetFieldValue(short)0, var, SQL_C_SLONG);if (var.m_dwType != DBVT_NULL)ID = var.m_iVal;var.Clear();rs.GetFieldValue(1,Name);rs.GetFieldValue(2,Age);rs.GetFieldValue(3,Sex);rs.GetFieldValue(4,Tel);rs.GetFieldValue(5,Title);rs.GetFieldValue(6,College);InsertCRInfoItem(ID,Name,Age,Sex,Tel,Title,College);rs.MoveNext();rs.Close();m_db.Close();说明对于其它模块(例如课程和教室等的管理)与教师信息管理模块的实现基本相同,在此就不一一举例了。4.7 数据库设计4.7.1 ER图设计 4.7.2 存储过程 在进行提取数据库的信息时我采取了存储过程的应用。在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQL Server 2005 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。在此列出添加、删除、修改、查询的存储过程的模式:添加CREATE procedure studentinsert no char(10),name char(10),sex char(10),age int,dept char(10) as insert into student(sno,sname,ssex,sage,sdept) values(no,name,sex,age,dept) 修改create procedure studentupdateno int,name char(10),sex char(10),age char(10),dept char(10)asupdate studentset sname=name,ssex=sex,sage=age,sdept=deptwhere sno=no删除create procedure studentdeleteno intasdeletefrom studentwhere sno=no查询alter procedure studentselectname char(10)asselect *from studentwhere sname like %name%模糊查询,关键字“like”Select *from ()where()like “%”()括号中所填写的为条件;4.8 备份和还原 本程序还实现了备份和还原功能。在电脑上先建立一个backup文件夹,单击备份按钮后,将自动将数据库备份到backup文件夹中。单机还原按钮可还原至上次备份时数据库的状态。具体代码:void CBeifen:OnButton1() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog); UpdateData(true);if(!m_db.IsOpen() if(!m_db.Open(_T( teacher) MessageBox( 不能打开到该数据源的连接! ); CString strSQL; strSQL=backup database teacher to disk=;strSQL=backup database teacher to disk=d:backupteacher; m_db.ExecuteSQL(strSQL); m_db.Close(); AfxMessageBox(数据库备份成功!);void CBeifen:OnButton2() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog); UpdateData(true);if(!m_db.IsOpen() if(!m_db.Open(_T( teacher) MessageBox( 不能打开到该数据源的连接! ); CString strSQL; strSQL=use master; /这里转换到master数据库 m_db.ExecuteSQL(strSQL); strSQL=restore database teacher from disk=; strSQ

温馨提示

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

评论

0/150

提交评论