课程设计——教学管理系统_第1页
课程设计——教学管理系统_第2页
课程设计——教学管理系统_第3页
课程设计——教学管理系统_第4页
课程设计——教学管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、1. 课程设计的目的与要求1.1设计目的设计一个简单的教学管理系统,要求存储学生基本情况、课程基本情况,教师授课情况与学生成绩记录等,提供成绩录入、信息查询等功能以满足日常教学管理需要。对学生的成绩的管理、查询学生的各科成绩的学生成绩管理系统。该系统可以帮助我们更方便的管理学生的成绩,替代了以前的手工操作管理学生的成绩,节约我们珍贵的时间。而且老师和学生可以以不同个的身份登录,获得不同的操作权限,有效的提高教学管理系统的工作效率。1.2设计要求(1)软件开发环境:操作系统:Windows 7;数据库使用软件:Microsoft Office Access 2003开发工具: Microsoft

2、 Visual C+6.0(2) 功能需求按照提供的各表的数据结构和数据创建数据库与表实现学生基本情况、课程基本情况、教师授课表情况及学生成绩的数据录入与编辑、删除等。能够按姓名查询教师授课情况。1.3 系统总体设计的体系结构图 设计系统的体系结构图见下页 教学管理系统 教师管理系统 学生管理系统 学生基本 课程管 信息管理 理系统 课程基本 学生课程 信息管理 成绩管理 图1. 设计系统的体系结构图2. 数据库设计数据库技术是信息资源管理最有效的手段,它是指对于一个给定的应用环境,利用现有的数据库管理系统构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。

3、本系统的数据库是采用Microsoft Office Access 2003设计的。数据库设计分为6个阶段:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。数据库应用系统经过调试运行后即可投入正式运行。在数据库系统运行过程中,必须不断地对其进行评价、调整与修改。设计一个完善的数据库应用系统不可能一蹴而就,它往往是上述6个阶段的不断反复。 2.1 系统数据库概念结构设计2.1.1 局部E-R图 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键所在。它是现实世界的一个真实模型,表达

4、自然、直观,又易于理解。根据学生成绩管理的需求分析建立局部和全局ER图,如下所示。(1)局部ER设计由在系统中描述课程实体的相关信息有专业号,班级号,设计该实体ER图如图2所示。课程课程号课程名 学 时图2 实体课程局部ER图由在系统中描述教师实体的相关信息教师姓名,课程号,授课日期,设计该实体ER图如图3所示:系别教师教师姓名性别图3 实体教师局部ER图 年龄学生学生姓名学号系别 班级 性别由在系统中描述学生实体的相关信息有学号,学生姓名,系别,班级,性别,年龄,设计该实体ER图如图4所示: 图4 实体课程局部ER图 2.1.2 系统全局ER图学生系别图8 全局ER图图8 全局ER图年龄图8

5、 全局ER图图8 全局ER图成绩学号姓名教师姓名性别学生班级讲授教师选修教师系别性别课程课程号学时课程名图6 全局ER图2.2 数据库逻辑设计根据系统的需要还要全局ER图向关系模型的转换,要遵循以下规则: (1)一个实体转换为一个关系模型式。实体的属性就是关系的属性,实体的键就是关系的键。如学生实体可以转换为如下关系模式,其中学号为学生关系键。学生(学号,学生姓名,性别,系别,班级,年龄)同样课程、教师分别转换为一个关系模式,如下:课程(课程号,课程名,学时)教师(教师姓名,教师系别,性别) (2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,

6、而关系的键为各实体键的组合。如在成绩联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合键。成绩(学号,课程号,成绩)2.3 创建系统数据库与表创建数据库的过程实际上就是为数据库设计名称,设计所占用的存储空间和存放文件的位置过程等。使用Microsoft Office Access 2003创建数据库,其中数据库中包含了5个表。(1) 打开Microsoft Office Access 2003,单击文件>新建。(2) 在右边新建文件夹菜单下,选择“空数据库”菜单选项,单击它,系统会显示新建数据库的位置及名称对话框。(3) 在文件名一栏输入一个数据库名为“JWX

7、T(教学管理系统)”,点击“创建”。(4) 在出现的对话框下选择“对象”>“表”>“使用设计器创建表”,然后输入所需创建的表的列名、数据类型、长度、是否允许为空、默认值、主键。(5) 然后点击各表名进行数据的添加、修改、删除。 在此系统数据库中设计了6个表,分别是学生信息表(Student)、课程信息表(Course)、 教师信息表(Teacher)、教师授课表(Teachercourse)、学生选课表(Selectcourse)、学生成绩表(Score)。具体数据定义和内容设计如下面表1表14所示。学生信息表(Student)结构:表1列名数据类型长度是否允许为空说明sno(学号

8、)文本5N主键sname(姓名)文本10Nssex(性别)文本2Ysdept(系别)文本10Nsclass(班级)文本2Nsage(年龄)数字4Y 学生信息表(Student)内容:表2snosname sdeptsclassssexsage0001小花电子系01女190002小华电子系01男200003小小电子系01男200004小兰电子系02女210005小许电子系02男20课程信息表(Course)结构:表3 列名数据类型长度是否允许为空说明cno(课程号) 文本3N主键cname(课程名)文本16Nctime(学时)数字Y课程信息表(Course)内容:表4cnocnamectime0

9、01电路理论40002信号与系统48003工程磁场56F01电机学72F02管理学32G01电子设计自动化40G02日语入门32教师信息表(Teacher)结构:表5列名数据类型长度是否允许为空说明tname(教师姓名) 文本10N主键tdept(教师系别) 文本10Ytsex(性别) 文本2Y教师信息表(teacher)内容:表6tnametdepttsex安大电力系男柴琴外语系女丁小小电子系女董会电力系女董美美电子系女罗华自动化系男杨梅经管系女教师授课表(Teachercourse)结构:表7列名数据类型长度是否允许为空说明tname(教师姓名) 文本10N主键cno(课程号) 文本5N主

10、键time(授课日期) 文本Y教师授课表(Teachercourse)内容:表8tnamecnotime安大0032014-04-05柴琴G022014-04-06丁小小0012014-03-01董会F012014-04-22董美美0022014-04-12罗华G012014-04-13杨梅F022014-04-18学生选课表(Selectcourse)结构:表9列名数据类型长度是否允许为空说明sno(学号)char5N主键cno(课程号)char5N主键学生选课表(Selectcourse)内容:表10 sno cno00010010001G0100020020002G02000300300

11、03F020004F010005F02学生成绩表(Score)结构:表13列名数据类型长度是否允许为空说明sno(学号) 文本5N主键cno(课程号) 文本5N主键score(分数) 数字5,2Y学生成绩表(score)内容:表14snocno分数0001001980001G01890002002870002G02860003003900003F02760004F01850005F02932.4 创建数据库关系图图73应用软件的实现在Microsoft Visual C+6.0 中开发系统的第一步就是创建一个该系统的工程,来编写管理系统中的各种资源和代码。3.1 创建工程的步骤(1)打开Mic

12、rosoft Visual C+6.0 开发环境,在菜单中依次选择“文件”>“新建”菜单。(2)在新建对话框窗口选择“工程”菜单下的“MFC AppWizard【exe】”,同时在右边选择存储路径及为工程命名,然后单击“确定”按钮。(3)在接下来出现的MFC应用程序向导步骤1中创建的应用程序类型选择单文档,语言为中文简体,接下来步骤26选择默认设置。 这样,教学管理系统工程就创建完成。3.2 向单文档窗口添加菜单项(1) 在菜单栏中依次添加菜单名“学生”和“老师”以区分学生和老师的功能(2) 在“学生”下添加菜单选项“教师授课情况”,在“教师”下分别添加菜单选项“学生情况”、“课程名基本

13、情况”、“教师授课情况”、“学生成绩”。如图8图9所示 图8图93) 对菜单项“学生情况”设置ID为ID_person,并点击建立类向导,添加单击消息函数响应,添加代码如下: void CMainFrame:Onperson() / TODO: Add your command handler code here CGS m; m.DoModal();并在该类预定义那添加头函数 #include"GS.h"。“课程名基本情况”、“教师授课情况”、“学生成绩”、“教师授课查询”菜单消息响应添加同上。 3.3 对话框的设计(1) 对话框界面的设计及实现功能展示ADO数据连接。在

14、RescoureView下打开Dialog插入几个对话框,然后对各个对话框进行控件设置及界面的设计。界面设计及功能实现,如图10图14所示。图10图11(2) 对话框与数据库连接的实现1) 在文件Header File下的stdAfx.h中引入ADO库代码#import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")2) 初始化COM环境,创建连接对象在对话框类加入成员变量:ConnectionPtr m_pCo

15、nnection1;并实现初始化,代码如下:CGS:OnInitDialog() AfxOleInit();m_pConnection1.CreateInstance(_uuidof(Connection);m_pConnection1->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=jwxt.mdb","","",adModeUnknown); 3) 打开记录集,初始化对话框在对话框类加入成员变量:_RecordsetPtr m_pRecordset3;用ClassWiz

16、ard给窗口中每个编辑框添加成员变量,本对话框添加了:m_sno,m_sname, m_sdept, m_sclass, m_ssex ,sage在对话框初始化函数CGS:OnInitDialog()中添加 m_pRecordset3.CreateInstance(_uuidof(Recordset);m_pRecordset3->Open("SELECT*FROM Student",m_pConnection1.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 4) 对对话框中各个按钮添加消息响

17、应函数即功能实现的代码,学生基本情况对话框各种功能的实现代码如下: 显示函数: CGS:DispRecord()/在对话框显示数据_variant_t theValue1; if(!m_pRecordset3->adoEOF) theValue1=m_pRecordset3->GetCollect("sno"); if(theValue1.vt!=VT_NULL) m_sno=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sname"); if(theVa

18、lue1.vt!=VT_NULL) m_sname=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sdept"); if(theValue1.vt!=VT_NULL) m_sdept=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sclass"); if(theValue1.vt!=VT_NULL) m_sclass=(char*)_bstr_t(theValue1); theVa

19、lue1=m_pRecordset3->GetCollect("ssex"); if(theValue1.vt!=VT_NULL) m_ssex=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sage"); if(theValue1.vt!=VT_NULL) m_sage=theValue1.iVal;UpdateData(false); void CGS:OnButton5() /前一条函数:可以浏览数据/ TODO: Add your control not

20、ification handler code here m_pRecordset3->MovePrevious();if(m_pRecordset3->BOF)m_pRecordset3->MoveFirst();DispRecord(); void CGS:OnButton6() /后一条:可以浏览数据/ TODO: Add your control notification handler code here m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF) m_pRecordset3->MoveL

21、ast();DispRecord();void CGS:OnButton1() /录入函数:在录入数据前先点击录入/ TODO: Add your control notification handler code here RefreshData();try/ 写入各字段值m_pRecordset3->AddNew();catch(_com_error *e)AfxMessageBox(e->ErrorMessage();CGS:RefreshData()/清空函数 m_sno=""m_sname=""m_sdept=""

22、;m_sclass=""m_ssex="男"m_sage=0;UpdateData(FALSE);void CGS:OnButton4() /保存函数:录入数据后,实现保存数据功能/ TODO: Add your control notification handler code hereUpdateData(TRUE); m_pRecordset3->PutCollect("sno",_bstr_t(m_sno); m_pRecordset3->PutCollect("sname",_bstr_t(m

23、_sname); m_pRecordset3->PutCollect("sdept",_bstr_t(m_sdept); m_pRecordset3->PutCollect("sclass",_bstr_t(m_sclass); m_pRecordset3->PutCollect("ssex",_bstr_t(m_ssex); m_pRecordset3->PutCollect("sage",long(m_sage); m_pRecordset3->Update(); m_pRecor

24、dset3->MoveLast();void CGS:OnButton3() /删除函数:删除不要的数据/ TODO: Add your control notification handler code heretryAfxMessageBox("删除当前记录"); m_pRecordset3->Delete(adAffectCurrent); m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF) m_pRecordset3->MoveLast(); DispRecord();catch(_

25、com_error *e)AfxMessageBox(e->ErrorMessage();void CGS:OnButton2() /编辑函数:对数据进行更改/ TODO: Add your control notification handler code hereUpdateData(TRUE); m_pRecordset3->PutCollect("sno",_bstr_t(m_sno);m_pRecordset3->PutCollect("sname",_bstr_t(m_sname); m_pRecordset3->Pu

26、tCollect("sdept",_bstr_t(m_sdept); m_pRecordset3->PutCollect("sclass",_bstr_t(m_sclass);m_pRecordset3->PutCollect("ssex",_bstr_t(m_ssex);m_pRecordset3->PutCollect("sage",long(m_sage); m_pRecordset3->Update(); m_pRecordset3->MoveLast();5) 上述为学生基本

27、情况的对话框实现代码,课程基本情况、教师授课表情况及学生成绩三个个对话框的各功能实现代码与上述代码相似。6) 对于学生查询教师授课情况主要查询功能实现代码如下: void tc:OnButton1() / TODO: Add your control notification handler code here m_pRecordset.CreateInstance(_uuidof(Recordset); UpdateData(true); CString strSql; strSql.Format("SELECT*FROM Teachercourse WHERE tname='%s'",m_tname);m_pRecordset->Open(strSql.AllocSysString(),m_pConnection.GetInter

温馨提示

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

评论

0/150

提交评论