




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理课程设计报告题目名称:教学管理系统 任课教师:曹伟姓 名:王乐陶学 号:2402090406 2011年11月13日 目录1、概述311设计背景31 . 2设计目的413 设计内容42、需求分析421 功能分析422 工作流图423 数据流图524 数据库表格设计525数据字典63、概念模型设计64、逻辑设计75、源代码及查询截图851 数据库的链接:852增加的函数源代码953 流程图155.4 截图166总结18摘要教学管理系统的开发主要包括后台数据库的建立和维护以及前端网页的设计两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求网页功能完备,易使用等特点。1、 概述11设计背景随着当前学校规模的不断扩大,学生数量的不断增加,学生信息量也成倍增长.学生数 量的增长给教学管理带来了很大的冲击, 教学管理的高低直接影响到学生培养的质量. 为有效的提高教学管理工作的效率,我设计开发了此教学管理系统.。教学系统就是对教学信息的管理. 教学管理系统主要面向三大主体用户: 教务处工作人员,教师,学生.针对不同群体设计不同的应用系统,满足不同群体的需求,达到真正服务 教学的目的. 教务处信息系统包括学生基本信息的维护和更新 (包括个人信息和成绩管理) ; 教师信息管理主要实现的是查询本班级的学生基本信息及给予其响应课程的课程成绩; 学生系统主要实现学生基本信息的查询 ,成绩查询等1 . 2设计目的 设计出一款可以实现查询功能的软件,可以方便的查看到学生,教师,课程以及学生的成绩。13 设计内容主要的设计内容包括:数据库的建立、学生基本信息查询模块、教师基本信息管理模块、课程信息模块及学生成绩等模块的设计。2、 需求分析21 功能分析总体流程图如图2.1-1所示:菜单学生信息查询教师信息查询课程信息查询学生成绩查询不及格成绩查询添加学生信息图2.1-1 整体流程图22 工作流图工作流图如图2.2-1所示:开始选择查询对象输入关键字显示查询结果 图2.2-1 工作流图23 数据流图数据流图如图2.3-1所示:用户进入软件功能选择 数据操作数据输 出 图2.3-1 数据流图24 数据库表格设计学生基本信息 列名 数据类型说明学号char学号(主键)姓名char姓名性别char性别籍贯char籍贯qqcharqq号码教师基本信息 列名 数据类型说明教师编号char教师编号(主键)姓名char姓名性别char性别院系char院系 教师授课表 列名 数据类型说明课号char课号教师号char教师号成绩表 列名 数据类型说明学号char学号课号char课号成绩char成绩课程信息 列名 数据类型说明课号char课号课程名char课程名学时char学时学期Char学期25数据字典teacher 教师信息student 学生信息t_c 授课result 学生成绩course 课程3、 概念模型设计完成功能:按学号、姓名查询学生基本信息。按姓名、教师号称查询教职工基本信息。按课程号、课程名称、上课教师姓名查询课程基本信息。按学号、学生姓名、课程号、课程名称、教师姓名查询学生成绩。按课程号、课程名称查询不及格学生学号、姓名。添加学生信息E-R图 :教学管理系统要三个实体,学生,教师,课程,学生和课程通过学习相连,教师和课程通过教授相连。成绩与学生和课程都有关联。E-R图,如图3-1所示:学生教师课程学习教授学号姓名籍贯性别qq号码教师号课程名字学时学期课程号性别所在院系教师姓名成绩拥有拥有3-1 E-R图4、 逻辑设计E-R模型转换关系模式为:Student(学号,姓名,性别,籍贯,qq);Teacher(教师编号,姓名,性别,院系);Result(课号、学号、成绩);Teacher_course(教师编号、课号);course(课号、课程名);5、源代码及查询截图51 数据库的链接:ADOConn类定义:class ADOConn / 定义变量public:/添加一个指向Connection对象的指针:_ConnectionPtr m_pConnection;/添加一个指向Recordset对象的指针:_RecordsetPtr m_pRecordset;/ 定义方法public:ADOConn();virtual ADOConn();void OnInitADOConn();/ 初始化连接数据库_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);/ 执行查询BOOL ExecuteSQL(_bstr_t bstrSQL);/ 执行SQL语句,Insert Update /_variant_tvoid ExitConnect();/ 断开连接;在头文件StdAfx.h中加入如下代码:#import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF, adoEOF)在主对话框类CAdminbetal2Dlg中定义一个变量 _ConnectionPtr m_pConnection;在主对话框初始化函数OnInitDialog中加入如下代码:void ADOConn:OnInitADOConn()/ 初始化OLE/COM库环境 :CoInitialize(NULL);try/ 创建Connection对象m_pConnection.CreateInstance(ADODB.Connection);/ 设置连接字符串,必须是BSTR型或者_bstr_t类型_bstr_t strConnect = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=StuManage;Data Source=jackie;m_pConnection-Open(strConnect,adModeUnknown);/ 捕捉异常catch(_com_error e)/ 显示错误信息AfxMessageBox(e.Description();52增加的函数源代码学生信息查询函数:void CStuinfoDlg:OnSearch() / TODO: Add your control notification handler code hereADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); UpdateData(true); /设置SELECT语句_bstr_t vSQL;vSQL=SELECT * FROM student WHERE s_id = + m_sid +or+ s_name= + m_sname +;/执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSet(vSQL);/返回各列的值while (m_pRecordset-adoEOF = 0) m_slist.InsertItem (0,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_id);m_slist.SetItemText(0,1,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_name);m_slist.SetItemText(0,2,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_sex);m_slist.SetItemText(0,3,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_adress);m_slist.SetItemText(0,4,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_qq); m_pRecordset-MoveNext();/断开与数据库的连接m_AdoConn.ExitConnect();学生信息对话框初始化:BOOL CStuinfoDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_slist.InsertColumn(0,学号);m_slist.InsertColumn(1,姓名);m_slist.InsertColumn(2,性别);m_slist.InsertColumn(3,籍贯);m_slist.InsertColumn(4,qq); RECT rect;m_slist.GetWindowRect(&rect);int wid=rect.right-rect.left;m_slist.SetColumnWidth(0,wid/5);m_slist.SetColumnWidth(1,wid/5); m_slist.SetColumnWidth(2,wid/5);m_slist.SetColumnWidth(3,wid/5);m_slist.SetColumnWidth(4,wid/5);m_slist.SetExtendedStyle(LVS_EX_FULLROWSELECT);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE教师信息查询函数:void CTecinfoDlg:OnTsearch() / TODO: Add your control notification handler code hereADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); UpdateData(true); /设置SELECT语句_bstr_t vSQL;vSQL=SELECT * FROM teacher WHERE t_id = + m_tid +or+ t_name= + m_tname +;/执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSet(vSQL);/返回各列的值while (m_pRecordset-adoEOF = 0) m_tlist.InsertItem (0,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(t_id);m_tlist.SetItemText(0,1,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(t_name);m_tlist.SetItemText(0,2,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(t_sex);m_tlist.SetItemText(0,3,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(t_department); m_pRecordset-MoveNext();/断开与数据库的连接m_AdoConn.ExitConnect();教师信息对话框初始化:BOOL CTecinfoDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_tlist.InsertColumn(0,教师号);m_tlist.InsertColumn(1,姓名);m_tlist.InsertColumn(2,性别);m_tlist.InsertColumn(3,院系);RECT rect;m_tlist.GetWindowRect(&rect);int wid=rect.right-rect.left;m_tlist.SetColumnWidth(0,wid/4);m_tlist.SetColumnWidth(1,wid/4); m_tlist.SetColumnWidth(2,wid/4);m_tlist.SetColumnWidth(3,wid/4);m_tlist.SetExtendedStyle(LVS_EX_FULLROWSELECT);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE课程信息查询函数:oid CCouinfoDlg:OnCsearch() / TODO: Add your control notification handler code hereADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); UpdateData(true); /设置SELECT语句_bstr_t vSQL;vSQL=SELECT course.c_number,c_name,c_time,t_name FROM t_c,course,teacher WHERE t_c.c_number=course.c_number and teacher.t_id=t_c.t_id and (t_c.c_number=+m_cnumber+ or c_name=+m_cname+ or t_name=+m_tcname+);/执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSet(vSQL);/返回各列的值while (m_pRecordset-adoEOF = 0) m_clist.InsertItem (0,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(c_number);m_clist.SetItemText(0,1,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(c_name);m_clist.SetItemText(0,2,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(c_time);m_clist.SetItemText(0,3,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(t_name); m_pRecordset-MoveNext();/断开与数据库的连接m_AdoConn.ExitConnect();课程信息对话框初始化:BOOL CCouinfoDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_clist.InsertColumn(0,课程号);m_clist.InsertColumn(1,课程名);m_clist.InsertColumn(2,学时);m_clist.InsertColumn(3,任课教师);RECT rect;m_clist.GetWindowRect(&rect);int wid=rect.right-rect.left;m_clist.SetColumnWidth(0,wid/4);m_clist.SetColumnWidth(1,wid/4); m_clist.SetColumnWidth(2,wid/4);m_clist.SetColumnWidth(3,wid/4);m_clist.SetExtendedStyle(LVS_EX_FULLROWSELECT);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE成绩查询函数:void CRessearch:OnRessearch() / TODO: Add your control notification handler code hereADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); UpdateData(true); /设置SELECT语句_bstr_t vSQL;vSQL=SELECT student.s_id,student.s_name,course.c_name,result FROM t_c,course,teacher,student,result WHERE t_c.c_number=course.c_number and teacher.t_id=t_c.t_id and result.s_id=student.s_id and result.c_number=course.c_number and (student.s_id= + m_sid + or student.s_name= + m_sname + or course.c_number= + m_cnumber + or course.c_name=+m_cname+ or teacher.t_name=+m_tname+); /执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset = m_AdoConn.GetRecordSet(vSQL);/返回各列的值while (m_pRecordset-adoEOF = 0) m_reslist.InsertItem (0,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_id);m_reslist.SetItemText(0,1,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_name);m_reslist.SetItemText(0,2,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(c_name);m_reslist.SetItemText(0,3,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(result); m_pRecordset-MoveNext();/断开与数据库的连接m_AdoConn.ExitConnect();成绩查询对话框初始化:BOOL CRessearch:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_reslist.InsertColumn(0,学号);m_reslist.InsertColumn(1,姓名);m_reslist.InsertColumn(2,课号);m_reslist.InsertColumn(3,成绩);RECT rect;m_reslist.GetWindowRect(&rect);int wid=rect.right-rect.left;m_reslist.SetColumnWidth(0,wid/5);m_reslist.SetColumnWidth(1,wid/5); m_reslist.SetColumnWidth(2,wid/5);m_reslist.SetColumnWidth(3,wid/5);m_reslist.SetExtendedStyle(LVS_EX_FULLROWSELECT);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE不及格查询函数:void CBjgsearch:OnBjgcx() / TODO: Add your control notification handler code hereADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); UpdateData(true); /设置SELECT语句_bstr_t vSQL;vSQL=SELECT student.s_id,student.s_name,result FROM student,result,course WHERE student.s_id=result.s_id and course.c_number=result.c_number and resultadoEOF = 0) m_bjglist.InsertItem (0,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_id);m_bjglist.SetItemText(0,1,(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(s_name); m_pRecordset-MoveNext();m_AdoConn.ExitConnect();不及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆明市五华区人力资源和社会保障局服务中心见习大学生招聘(5人)模拟试卷含答案详解
- 2025届浪潮集团春季校园招聘笔试题库历年考点版附带答案详解
- 2025广东肇庆市人力资源和社会保障局选聘法律顾问模拟试卷附答案详解(考试直接用)
- 2025北京师范大学黔南龙溪实验学校引进人才18人考前自测高频考点模拟试题及答案详解(全优)
- 2025年河北省人民医院招聘工作人员模拟试卷附答案详解
- 师范大学就业实习协议书9篇
- 2025北京首旅置业集团有限公司市场化选聘总经理助理1人笔试题库历年考点版附带答案详解
- 2025居间代理协议合同样本
- 2025标准合同终止劳动合同协议书模板
- 禁限寄安全培训课件
- 企业防台风安全培训课件
- 2025年全国消防设施操作员中级理论考试(单选上)
- 产品设计调研课件
- 高校实验室安全基础课(实验室准入教育)学习通网课章节测试答案
- 项目需求分析文档(模板)
- 长阳清江画廊
- 四川2023年专业技术人员公需科目“数字经济与驱动发展”参考答案(通用版)
- 液压泵站使用说明书
- 职工三级安全教育卡模版
- 化工企业物料编码规则物料分类清晰、编码简短、容易识别
- 儿科学腹泻病
评论
0/150
提交评论