教务辅助标准管理系统样本.docx
《教务辅助标准管理系统样本.docx》由会员分享,可在线阅读,更多相关《教务辅助标准管理系统样本.docx(21页珍藏版)》请在冰豆网上搜索。
教务辅助标准管理系统样本
教务辅助标准管理系统
数据库课程设计
教务辅助管理系统
院(系)别
班级
学号
姓名
指导教师
时间
课程设计任务书
题目教务辅助管理系统
系(部)
专业
班级
学生姓名
学号
月日至月日共周
指导教师(签字)
系主任(签字)
年月日
一、设计内容及要求
1.设计内容:
(1)主要的数据表
教师基本信息表,课程表,教室资源表等等。
(2)主要功能模块
1)对上课教师基本信息进行管理。
2)对全院开设的课程进行管理。
3)录入教师基本上课信息。
4)实现自动排课功能。
5)简单计算工作量。
6)能够进行各种数据统计。
7)能够输出相应的报表。
8)具有数据备份和数据恢复功能。
2.要求:
软件功能主要考虑实用,具体功能模块一定要先进行调研。
二、设计原始资料
<<数据库系统概论>>(第三版)萨师煊、王珊高等教育出版社
《数据库原理及应用——SQLServer2000》夏冰冰主编国防工业出版社
《数据库设计教程》(原书第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 机械工业出版社
数据库原理及应用 作者:
张凤琴
出版社:
清华大学出版社 北京交通大学出版社
《数据库设计解决方案入门精典》主编王海涛清华大学出版社
《VisualC++文档窗体设计》主编丁有和青岛出版社
《C++程序设计教程》主编(美)GreyPerry清华大学社出版社
成绩评定表
作品成绩
报告成绩
口试(答辩)成绩
总评成绩
2教务辅助管理系统总体设计----------------------------------------------2
教务辅助管理系统总体设计思想----------------------------------------2
3教务辅助管理系统详细设计-------------------------------------------------3
4代码分析-----------------------------------------------------------------4
E-R图设计------------------------------------------------------------11
存储过程-------------------------------------------------------------12
设计体会及今后的改进意见--------------------------------------------------14
参考文献-----------------------------------------------------------------15.
1课程设计概述
1.1教务辅助管理系统功能概述
1.1.1VisualC++是微软公司的重要产品之一,是一种功能强大行之有效的可视化编程工具。
它提供了MFC类库,使用户可以方便的开发自己想实现的功能。
VisualC++:
(1)自动化和宏功能。
(2)可以灵活地定制工具栏和菜单。
(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。
(4)支持Internet连接。
(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。
(6)在工作区内可以包含多个并列的工程文件。
(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。
(8)FindinFile命令支持两个独立的输出窗格,可以保存上一次搜索的结果。
这些新特性可以更好地利用VisualC++开发工具进行Windows应用程序开发。
1.1.2SQL(StructuredQueryLanguage),结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
它的主要功能介绍:
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
1.2开发环境概述
1.2.1利用SQLServer2005和VisualC++这两款软件连接起来共同设计教务辅助管理系统。
SQLServer2005用来设计数据库,其中包括数据库的表和表间关系;VisualC++主要用来编程,其中主要用到其MFC的功能。
2教务辅助管理系统总体设计
2.1教务辅助管理系统总体设计思想
教务辅助管理系统主要是针对管理者对学校教务方面进行统一管理
教务辅助管理系统的功能模块有:
(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。
(2)对上课教师基本信息进行管理。
(3)对全院开设的课程进行管理。
(4)对教室进行管理。
2.2总体设计流程图
图2-1 总体设计流程
3教务辅助管理系统详细设计
:
Classroom
Course
TeacherInfo
4程序测试
4.1菜单界面
4.1.1使用ODBC连接数据源
图4-1菜单界面
如图所示可以看出此界面能够实现增加、修改、删除、清屏、查询等功能。
4.2增加功能
添加功能核心代码:
voidCTeacher:
:
OnAdd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringa;
CStringb="teacher";
("DSN=%s",b);
(a,CDatabase:
:
noOdbcDialog);//打开数据库
UpdateData(true);
if(!
UpdateData())
return;
TRY{
();
CRecordsetrs(&m_db);
CStringsql;
//获取新的ID值.
(CRecordset:
:
dynaset,
"Selectmax(ID)fromTeacherInfo");
intnewID=1;
if(!
())
{
CDBVariantvar;
((short)0,var,SQL_C_SLONG);
if(!
=DBVT_NULL)
{
newID=+1;
();
}
}
//插入新的信息记录.
("exec%d,'%s','%s','%s','%s','%s','%s'",newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College);//使用存储过程
(sql);
();
//向界面中插入新的信息.
InsertCRInfoItem(newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College);
();
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
();
}
AND_CATCH(CException,e)
{
TCHARszError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
();
}
END_CATCH
();
}
4.3删除功能
其代码如下:
voidCTeacher:
:
OnDelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringa;
CStringb="teacher";
("DSN=%s",b);
(a,CDatabase:
:
noOdbcDialog);
UpdateData(true);
//TODO:
Addyourcontrolnotificationhandlercodehere
intnItem=(-1,LVNI_SELECTED);
//如果没有选择要删除的纪录,返回.
if(nItem==-1){
AfxMessageBox("请选择要删除的信息");
return;
}
//从列表框控件中获取选择的客户信息.
intlid=atoi((nItem,0));
TRY{
();
CStringdeletedSql;
//删除客户信息
("exec%d",lid);
(deletedSql);
//删除界面上的数据
(nItem);
();
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
();
}
AND_CATCH(CException,e)
{
TCHARszError[100];
e-