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

下载本文档

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

文档简介

1.课程设计的目的与要求设计目的设计一个简单的教学管理系统,要求存储学生根本情况、课程根本情况,教师授课情况与学生成绩记录等,提供成绩录入、信息查询等功能以满足日常教学管理需要。对学生的成绩的管理、查询学生的各科成绩的学生成绩管理系统。该系统可以帮助我们更方便的管理学生的成绩,替代了以前的手工操作管理学生的成绩,节约我们珍贵的时间。而且教师和学生可以以不同个的身份登录,获得不同的操作权限,有效的提高教学管理系统的工作效率。设计要求〔1〕软件开发环境:操作系统:Windows7;数据库使用软件:MicrosoftOfficeAccess2003功能需求按照提供的各表的数据构造和数据创立数据库与表实现学生根本情况、课程根本情况、教师授课表情况及学生成绩的数据录入与编辑、删除等。能够按姓名查询教师授课情况。1.3系统总体设计的体系构造图设计系统的体系构造图见下页教学管理系统教师管理系统学生管理系统学生根本课程管信息管理理系统课程根本学生课程信息管理成绩管理图1.设计系统的体系构造图2.数据库设计数据库技术是信息资源管理最有效的手段,它是指对于一个给定的应用环境,利用现有的数据库管理系统构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。本系统的数据库是采用MicrosoftOfficeAccess2003设计的。数据库设计分为6个阶段:需求分析阶段、概念构造设计阶段、逻辑构造设计阶段、数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。数据库应用系统经过调试运行后即可投入正式运行。在数据库系统运行过程中,必须不断地对其进展评价、调整与修改。设计一个完善的数据库应用系统不可能一蹴而就,它往往是上述6个阶段的不断反复。

2.1系统数据库概念构造设计2.1.1局部E-R图将需求分析得到的用户需求抽象为信息构造即概念模型的过程就是概念构造设计。它是整个数据库设计的关键所在。它是现实世界的一个真实模型,表达自然、直观,又易于理解。根据学生成绩管理的需求分析建立局部和全局ER图,如下所示。(1)局部E—R设计由在系统中描述课程实体的相关信息有专业号,班级号,设计该实体ER图如图2所示。课程课程课程号课程名学时图2实体课程局部ER图由在系统中描述教师实体的相关信息教师姓名,课程号,授课日期,设计该实体ER图如图3所示:系别系别教师教师姓名性别图3实体教师局部ER图年龄年龄学生学生姓名学号系别班级性别图4实体课程局部ER图2.1.2系统全局ER图学生系别学生系别图8全局ER图图8全局ER图年龄年龄图8全局ER图图8全局ER图成绩成绩学号姓名教师姓名性别学生学号姓名教师姓名性别学生班级讲授教师选修教师系别性别班级讲授教师选修教师系别性别课程课程号学时课程课程课程号学时课程名图6全局ER图2.2数据库逻辑设计根据系统的需要还要全局ER图向关系模型的转换,要遵循以下规那么:〔1〕一个实体转换为一个关系模型式。实体的属性就是关系的属性,实体的键就是关系的键。如学生实体可以转换为如下关系模式,其中学号为学生关系键。学生〔学号,学生姓名,性别,系别,班级,年龄〕同样课程、教师分别转换为一个关系模式,如下:课程〔课程号,课程名,学时〕教师〔教师姓名,教师系别,性别〕〔2〕一个m:n联系转换为一个关系模式。与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为各实体键的组合。如在成绩联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合键。成绩〔学号,课程号,成绩〕2.3创立系统数据库与表创立数据库的过程实际上就是为数据库设计名称,设计所占用的存储空间和存放文件的位置过程等。使用MicrosoftOfficeAccess2003创立数据库,其中数据库中包含了5个表。翻开MicrosoftOfficeAccess2003,单击文件—>新建。在右边新建文件夹菜单下,选择“空数据库〞菜单项选择项,单击它,系统会显示新建数据库的位置及名称对话框。在文件名一栏输入一个数据库名为“JWXT〔教学管理系统〕〞,点击“创立〞。在出现的对话框下选择“对象〞—>“表〞—>“使用设计器创立表〞,然后输入所需创立的表的列名、数据类型、长度、是否允许为空、默认值、主键。然后点击各表名进展数据的添加、修改、删除。在此系统数据库中设计了6个表,分别是学生信息表〔Student〕、课程信息表〔Course〕、教师信息表〔Teacher〕、教师授课表〔Teachercourse〕、学生选课表〔Selectcourse〕、学生成绩表〔Score〕。具体数据定义和内容设计如下面表1——表14所示。学生信息表〔Student〕构造:表1列名数据类型长度是否允许为空说明sno〔学号〕文本5N主键sname〔姓名〕文本10Nssex(性别〕文本2Ysdept(系别〕文本10Nsclass(班级〕文本2Nsage〔年龄〕数字4Y学生信息表〔Student〕内容:表2snosnamesdeptsclassssexsage0001小花电子系01女190002小华电子系01男200003小小电子系01男200004小兰电子系02女210005小许电子系02男20课程信息表〔Course〕构造:表3列名数据类型长度是否允许为空说明cno(课程号)文本3N主键cname(课程名)文本16Nctime(学时)数字Y课程信息表〔Course〕内容:表4cnocnamectime001电路理论40002信号与系统48003工程磁场56F01电机学72F02管理学32G01电子设计自动化40G02日语入门32教师信息表〔Teacher〕构造:表5列名数据类型长度是否允许为空说明tname〔教师姓名〕文本10N主键tdept〔教师系别〕文本10Ytsex〔性别〕文本2Y教师信息表〔teacher〕内容:表6tnametdepttsex安大电力系男柴琴外语系女丁小小电子系女董会电力系女董美美电子系女罗华自动化系男杨梅经管系女教师授课表〔Teachercourse〕构造:表7列名数据类型长度是否允许为空说明tname〔教师姓名〕文本10N主键cno〔课程号〕文本5N主键time〔授课日期〕文本Y教师授课表〔Teachercourse〕内容:表8tnamecnotime安大0032021-04-05柴琴G022021-04-06丁小小0012021-03-01董会F012021-04-22董美美0022021-04-12罗华G012021-04-13杨梅F022021-04-18学生选课表〔Selectcourse〕构造:表9列名数据类型长度是否允许为空说明sno〔学号〕char5N主键cno〔课程号〕char5N主键学生选课表〔Selectcourse〕内容:表10snocno00010010001G0100020020002G0200030030003F020004F010005F02学生成绩表〔Score〕构造:表13列名数据类型长度是否允许为空说明sno〔学号〕文本5N主键cno〔课程号〕文本5N主键score〔分数〕数字5,2Y学生成绩表〔score〕内容:表14snocno分数0001001980001G01890002002870002G02860003003900003F02760004F01850005F02932.4创立数据库关系图图73.应用软件的实现在MicrosoftVisualC++6.0中开发系统的第一步就是创立一个该系统的工程,来编写管理系统中的各种资源和代码。3.1创立工程的步骤〔1〕翻开MicrosoftVisualC++6.0开发环境,在菜单中依次选择“文件〞—>“新建〞菜单。〔2〕在新建对话框窗口选择“工程〞菜单下的“MFCAppWizard【exe】〞,同时在右边选择存储路径及为工程命名,然后单击“确定〞按钮。〔3〕在接下来出现的MFC应用程序向导步骤1中创立的应用程序类型选择单文档,语言为中文简体,接下来步骤2~6选择默认设置。这样,教学管理系统工程就创立完成。3.2向单文档窗口添加菜单项(1)在菜单栏中依次添加菜单名“学生〞和“教师〞以区分学生和教师的功能(2)在“学生〞下添加菜单项选择项“教师授课情况〞,在“教师〞下分别添加菜单项选择项“学生情况〞、“课程名根本情况〞、“教师授课情况〞、“学生成绩〞。如图8——图9所示图8图9对菜单项“学生情况〞设置ID为ID_person,并点击建立类向导,添加单击消息函数响应,添加代码如下: voidCMainFrame::Onperson() //TODO:Addyourcommandhandlercodehere CGSm; m.DoModal();并在该类预定义那添加头函数#include"GS.h"。“课程名根本情况〞、“教师授课情况〞、“学生成绩〞、“教师授课查询〞菜单消息响应添加同上。3.3对话框的设计(1)对话框界面的设计及实现功能展示ADO数据连接。在RescoureView下翻开Dialog插入几个对话框,然后对各个对话框进展控件设置及界面的设计。界面设计及功能实现,如图10——图14所示。图10图11对话框与数据库连接的实现#import"c:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")初始化COM环境,创立连接对象在对话框类参加成员变量:ConnectionPtrm_pConnection1;并实现初始化,代码如下:CGS::OnInitDialog()AfxOleInit(); m_pConnection1.CreateInstance(_uuidof(Connection)); m_pConnection1->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=jwxt.mdb","","",adModeUnknown);翻开记录集,初始化对话框在对话框类参加成员变量:_RecordsetPtrm_pRecordset3;用ClassWizard给窗口中每个编辑框添加成员变量,本对话框添加了:m_sno,m_sname,m_sdept,m_sclass,m_ssex,sage在对话框初始化函数CGS::OnInitDialog()中添加m_pRecordset3.CreateInstance(_uuidof(Recordset));m_pRecordset3->Open("SELECT*FROMStudent",m_pConnection1.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);对对话框中各个按钮添加消息响应函数即功能实现的代码,学生根本情况对话框各种功能的实现代码如下:显示函数:CGS::DispRecord()//在对话框显示数据 _variant_ttheValue1;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(theValue1.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); theValue1=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);voidCGS::OnButton5()//前一条函数:可以浏览数据 //TODO:Addyourcontrolnotificationhandlercodeherem_pRecordset3->MovePrevious(); if(m_pRecordset3->BOF) m_pRecordset3->MoveFirst(); DispRecord();voidCGS::OnButton6()//后一条:可以浏览数据 //TODO:Addyourcontrolnotificationhandlercodehere m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF)m_pRecordset3->MoveLast(); DispRecord();voidCGS::OnButton1()//录入函数:在录入数据前先点击录入 //TODO:AddyourcontrolnotificationhandlercodehereRefreshData(); try //写入各字段值 m_pRecordset3->AddNew(); catch(_com_error*e) AfxMessageBox(e->ErrorMessage());CGS::RefreshData()//清空函数m_sno=""; m_sname=""; m_sdept=""; m_sclass=""; m_ssex="男"; m_sage=0; UpdateData(FALSE);voidCGS::OnButton4()//保存函数:录入数据后,实现保存数据功能 //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(TRUE); m_pRecordset3->PutCollect("sno",_bstr_t(m_sno));m_pRecordset3->PutCollect("sname",_bstr_t(m_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_pRecordset3->MoveLast();voidCGS::OnButton3()//删除函数:删除不要的数据 //TODO:Addyourcontrolnotificationhandlercodehere try AfxMessageBox("删除当前记录"); m_pRecordset3->Delete(adAffectCurrent); m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF)m_pRecordset3->MoveLast(); DispRecord(); catch(_com_error*e) AfxMessageBox(e->ErrorMessage());voidCGS::OnButton2()//编辑函数:对数据进展更改 //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(TRUE);m_pRecordset3->PutCollect("sno",_bstr_t(m_sno)); m_pRecordset3->PutCollect("sname",_bstr_t(m_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_pRecordset3->MoveLast();上述为学生根本情况的对话框实现代码,课程根本情况、教师授课表情况及学生成绩三个个对话框的各功能实现代码与上述代码相似。对于学生查询教师授课情况主要查询功能实现代码如下:voidtc::OnButton1() //TODO:Addyourcontrolnotificationhandlercodeherem_pRecordset.CreateInstance(_uuidof(Recordset));UpdateData(true);CStringstrSql;strSql.Format("SELECT*FROMTeachercourseWHEREtname='%s'",m_tname);m_pRecordset->Open(strSql.AllocSy

温馨提示

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

评论

0/150

提交评论