教学管理系统_第1页
教学管理系统_第2页
教学管理系统_第3页
教学管理系统_第4页
教学管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、教学管理系统系统设计设计目标减轻教学日常信息管理的负担,方便学生、教师查询信息和学校对所有信 息的管理。以简单便捷的操作获取详尽的信息。设计思路在日常的教学管理活动中主要涉及:1、教职工和学生的信息管理2、学生的成绩管理、查询、统计3、教师查询自己教授学生的信息和成绩的录入修改4、各门课程的安排和信息查询对日常教学管理活动的分析后,对各种信息统一规范整理,实现各种信息 的自动管理。为便于信息的查询,找出各种信息的关联性,根据各种需求 设计出合理的报表。在管理上详细区分学生、教师、管理员三者各自拥有 的权限,和他们不同的需求,仔细考虑他们的不同点,合理整理信息,确 保各自的需求得到最大化满足功能

2、模块主要分为四大模块:1、用户账户的区分和管理2、学生系统3、教师系统4、管理员系统其详细功能如图:教学管理系统用 户 账 户 管 理辛学生 系统管理员系统I个课教选删各各人程师择除科科信信信课所成成息息息程选绩绩查查查课查分询询询程询布个教教成成人授授绩绩信课学添修息程生加改查信信询息息添查添查添查各各加询加询加询科科修学修课修教成成改生改程改师绩绩删信删信删信管报除息除息除息理表数据库设计数据库需求分析1)信息需求:(1) 学生信息:学号、姓名、性别、出生日期、入学成绩、所在系 号。(2) 教职工信息:职工号、姓名、性别、出身年月、所在系号、职 称、专业及教学方向。(3) 系的基本信息:系

3、号、系名称、系的简介。(4) 课程信息:课程号、课程名称、任课教师号、学时、学分、上 课时间、上课地点、考试时间。(5) 成绩信息:学号、课程号、平时成绩、考试成绩、总评成绩。2)处理需求:(1) 学生基本信息管理 新生信息录入。 学生信息修改:按学号查询出某学生的信息并做信息修改。* 学生转学(转入和转出) ,学生毕业等。毕业和转学的学生有关信 息存储到历史库中。(2) 系基本信息管理:系的基本信息输入、修改、删除(3) 课程信息管理:课程信息的输入、修改、删除(4) 教职工信息管理:教职工信息的输入、修改、删除(5) 选课管理:每学期所选课程的学分不能超过 15 分。(创建触发器) 学生可

4、以同时选修一门或多门课程。 可以同时为多个学生选修某一门或某几门课程。 删除和修改选课信息。(6) 成绩管理(视图)按课程输入和修改成绩。 (查询选该门课程的学生) 按学生输入和修改成绩。 (查询该学生所选的课程)(7)信息查询 按学号、姓名、系号查询学生基本信息。 按职工号、姓名、系号查询教职工基本信息。 按系号、系名称查询系的基本信息。 按课程号、课程名称、上课教师姓名查询课程基本信息。 按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学 生成绩,内容包括课程基本情况。若查询涉及多门课程,则按课程分组。 每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩 (平时成绩、

5、考试成绩和总评成绩) 。(8)统计报表 成绩登记表,内容包括课程基本信息(课程号、课程名称、任课教师 号、学时、学分、上课时间、上课地点、考试时间) 、选课学生名单(学 号、姓名、性别) ,每个学生的平时成绩(空格) 、考试成绩(空格)和总 评成绩(空格) ,按学号排序:顺序输出所有课程的成绩登记表。 按课程号、课程名称、教师姓名输出对应课程的成绩登记表。* 按系号输出对应课程的成绩登记表(本系所有教师担任的课程) 。 成绩报表, 内容包括课程基本信息 (课程号、 课程名称、 任课教师号、 学时、学分、上课时间、上课地点、考试时间) ,选课学生名单(学号、 姓名、 性别),每个学生的平时成绩、

6、 考试成绩和总评成绩, >=90 分、>=80 分、>=70分、 >=60分及不及格学生的人数及比例,按学号排序:顺序输出所有课程的成绩报表。 (报表格式自己订制,可以参考学校 的系统的输出格式)按课程号、课程名称、教师姓名输出对应课程的成绩报表。 * 按系号输出对应课程的成绩报表(本系所有教师担任的课程)概念结构设计表的设计课程(课程号,课程名,职工号,学时,学分,上课时间,上课地点,考 试时间)主码:课程号 外码: 职工号Course(Cno,Cname,Tno,Cperiod,Ccredit,Cbeigan,Caddress,Cexamtime)系(系号,系名,系

7、简介)主码: 系号Dept(Dno,Dname,Dintro) 学生(学号,姓名,性别,出生日期,入学成绩,系号)主码:学号 外码:系号Student(Sno,Sname,Ssex,Sbirth,Senrolgrade,Dno)教职工(职工号,姓名,性别,出生日期,职称,专业级教学方向,系号) 主码:职工号 外码:系号Teacher(Tno,Tname,Tsex,Tbirth,Tjodtitle,Tprofes sion,Dno)选课(学号,课程号,平时成绩,考试成绩,总成绩) 主码:学号,课程号 外码:学号,课程号 .SC(Sno,Cno,Gordinary,Gexam,Gsum)表的关系图

8、数据库结构:课程表:CREATETABLECourse (Cno varchar ( 12) NOT NULL PRIMARYKEYCHECK( CnoLIKE '0-90-90-90-90-90-90-90-90-90-90-90-9')Cnamevarchar ( 10)NULL,CperiodsmallintNULL,CcreditsmallintNULL,Cbeiganvarchar ( 10)NULLCHECK( Cbeigan LIKE '0-90-9-0-90-90-90-9-0-90-9' ),Caddress varchar ( 20)NULL

9、,Cexamtime varchar ( 2)NULL,Tno varchar ( 12)NULLREFERENCETSeacher (Tno)ON UPDATECASCADEON DELETE CASCAD,E)系表:CREATETABLEDept (Dno varchar (12) NOT NULL PRIMARYKEYCHECK( DnoLIKE '0-90-90-90-90-90-90-90-90-90-90-90-9' )>Dnamevarchar (20) NULL,Dintrontext NULL,)学生表:CREATETABLEStudent (Sno v

10、archar (12) NOT NULL PRIMARYKEYCHECK( SnoLIKE '0-90-90-90-90-90-90-90-90-90-90-90-9' )>Snamevarchar (10)NULL,Ssexchar (2)NULLCHECK( Ssex = ' 男' ORSsex = '女' ),SbirthDATETIMENULL,Senrolgrade smallintNULL,CHECK( Senrolgrade >= 0 ),Dno varchar (12) NULL REFERENCEDSept ( Dn

11、o)ON UPDATECASCADEON DELETE CASCAD,E)职工表:CREATETABLETeacher (Tno varchar (12) NOT NULL PRIMARYKEYCHECK( TnoLIKE '0-90-90-90-90-90-90-90-90-90-90-90-9' )Tnamevarchar (10)NULL,Tsexchar (2)NULLCHECK( Tsex= ' 男' ORTsex = '女' ),TbirthDATETIMENULL,Tjobtitlevarchar (20)NULL,Tprofess

12、ionvarchar (20)NULL,Dnovarchar (12)NULL REFERENCEDSept ( Dno)ON UPDATECASCADEON DELETE CASCAD,E )学课和成绩表:CREATETABLESC(Snovarchar (12)NOT NULL REFERENCEStudent (Sno),Cno varchar (12)Gordinary smallintGexam smallintNOT NULL REFERENCECSourse ( Cno),NULL CHECK( Gordinary >=0 ANDGordinary <=100 ),N

13、ULL CHECK( Gexam>=0 ANDGexam<=100 ),Gsum AS ( Gordinary *+ Gexam*,PRIMARYKEY( Sno, Cno),)创建的存储过程:对 Dept 、 Student 、 Teacher 、Course 表的删除 CREATEPROCdeleteByNoNovarchar ( 12),type smallint = 1ASbegin transactionIF type = 1BEGINDELETEFROMDeptWHEREDno = No;ENDIF type = 2BEGINDELETEFROMTeacherWHERE

14、Tno = NoENDIF type = 3BEGINDELETEFROMStudentWHERESno = NoENDIF type = 4BEGINDELETE FROM CourseWHERE Cno = NoENDCOMMIT添加系信息:CREATEPROCInsertDeptDnovarchar (12), Dnamevarchar ( 20), Dintro ntextASBEGIN TRANSACTIONINSERT INTO DeptVALUES( Dn,oDnam,eDintro )COMMIT添加学生信息:CREATEPROCInsertStudentSnovarchar

15、(12), Snamevarchar ( 10), Ssex char (2), Sbirth datetime , Senrolgrade smallint = 0 , Dnovarchar (12)ASBEGIN TRANSACTIONINSERT INTO StudentVALUES( Sno, Snam,eSsex, Sbirth , Senrolgrade , Dno)COMMIT添加课程信息:CREATEPROCInsertCourseCnovarchar (12), Cnamevarchar ( 20), Cperiod smallint = 0 ,Ccredit Smallin

16、t = 0, Cbeigan varchar ( 10), Caddress varchar ( 20), Cexamtime varchar ( 2), Tno varchar (12)ASBEGIN TRANSACTIONINSERT INTO CourseVALUES( Cn,oCnam,eCperiod,Ccredit, Cbeigan, Caddress, Cexamtime, Tno)COMMIT添加职工信息:CREATE PROC InsertTeacherTno varchar(12),Tname varchar(10),Tsex char(2),Tbirth datetime

17、,Tjobtitle varchar(20),Tprofession varchar(20),Dno varchar(12)ASBEGIN TRANSACTIONINSERT INTO TeacherVALUES(Tno,Tname,Tsex,Tbirth,Tjobtitle,Tprofession,Dno)COMMIT创建的视图:CREATE VIEW ChooseCourse (Sno,Sname,Cno,Cname,Ccredit)ASSELECT ,FROM Student,Course,SCWHERE = AND =CREATE VIEW Score(Sno,Sname,Cno,Cn

18、ame,Gordinary,Gexam,Gsum) ASSelect ,Sname,Cname,Gordinary,Gexam,GsumFrom Student,Course,SCWhere = AND =创建的触发器Create trigger insertchoose on SCFOR insertasdeclare i int, Sno varchar(12) select Sno = SnoFrom inserted select i=sum(Ccredit) from ChooseCourse where = Sno if(i>15) beginROLLBACK TRANSAC

19、TIONRAISERROR(你选修的学分大于 15学分,请确认后选课,16,1)END程序的详细设计一、数据库操作类 ADOCoonenum Type CSTRING,INT1,;class ADOConnpublic:ADOConn();virtual ADOConn();void OnInitDBConnect();_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);ProcNmae,CString*_RecordsetPtr& ExcuteStoreProc(CStringParameters,CString* Values,Type

20、 *type);BOOL ExecuteSQL(_bstr_t bstrSQL);void ExitConect();_ConnectionPtr GetConnection();private:_ConnectionPtr m_PConnection;_RecordsetPtr m_PRecordPtr;ADOConn:ADOConn()OnInitDBConnect();ADOConn:ADOConn()ADOConn:ExitConect();void ADOConn:OnInitDBConnect():CoInitialize(NULL);try("");_bstr

21、_t strConnect = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ljx;Data Source=(local)"m_PConnection->Open(strConnect,"","",adModeUnknown);catch(_com_error e)AfxMessageBox();_RecordsetPtr& ADOConn:GetRecordSet(_bstr_t bstr

22、SQL)tryif(m_PConnection = NULL)OnInitDBConnect();(_uuidof(Recordset);m_PRecordPtr->Open(bstrSQL,(),adOpenDynamic,adLockOptimisti c,adCmdText);catch(_com_error e)AfxMessageBox();return m_PRecordPtr;BOOL ADOConn:ExecuteSQL(_bstr_t bstrSQL)tryif(m_PConnection = NULL)OnInitDBConnect();m_PConnection -

23、>Execute(bstrSQL,NULL,adCmdText);return TRUE;catch(_com_error e)AfxMessageBox();return FALSE;void ADOConn:ExitConect()if(m_PRecordPtr != NULL)();m_PConnection->Close();:CoUninitialize();_RecordsetPtr& ADOConn:ExcuteStoreProc(CString ProcNmae,CString* Parameters,CString* Values,Type *type)_

24、CommandPtr pCmd = NULL;tryif(m_PConnection = NULL)OnInitDBConnect();(_uuidof(Command);(_uuidof(Recordset);pCmd->ActiveConnection = m_PConnection; pCmd->CommandType = adCmdStoredProc; pCmd->CommandText = _bstr_t(ProcNmae); pCmd->Parameters->Refresh();while(*Parameters != "0")

25、switch(*type)case CSTRING: pCmd->Parameters->Item_variant_t(_bstr_t(*Parameters)->V alue = _variant_t(*Values);Parameters+;Values+;type+;break;case INT1:CString str = *Values;int mm = atoi(str);pCmd->Parameters->Item_variant_t(_bstr_t(*Parameters)->V alue = _variant_t(long)mm);Para

26、meters+;Values+;type+; break;default: break;m_PRecordPtr = pCmd->Execute(NULL,NULL,adCmdStoredProc); catch(_com_error e) AfxMessageBox();();return m_PRecordPtr;_ConnectionPtr ADOConn:GetConnection() if(m_PConnection = NULL) OnInitDBConnect();return m_PConnection;二、登陆界面响应登陆按钮的消息:void CMyDlg:OnLogi

27、n() ormat("%d",m_Grade);t ype4 = INT1; str5 = m_Dno;t ype5 = CSTRING;void CAddStudent:GetString(CString *str)str0 = m_Sno;str1 = m_Name; str2 = Sex;str3 = m_Sbirth; str4.Format("%d",m_Grade);str5 = m_Dno;void CAddStudent:SetWindowCString(CString *Info)i f(Info = NULL)return;GetDl

28、gItem(IDC_SNO)->SetWindowText(Info0); GetDlgItem(IDC_SNAME)->SetWindowText(Info1);i f(Info2 = "男 ")(1); (CButton*)GetDlgItem(IDC_SEX2)->SetCheck(0); Sex = " 男 "else(0); (CButton*)GetDlgItem(IDC_SEX2)->SetCheck(1); Sex = " 女 " GetDlgItem(IDC_SBIRTH)->SetWi

29、ndowText(Info3);GetDlgItem(IDC_GRADE)->SetWindowText(Info4); GetDlgItem(IDC_DNO)->SetWindowText(Info5); t his->Info = NULL;void CAddStudent:SetCString(CString *info)t his->Info = info;主程序添加功能的实现:void CAdminStudent:OnAdd()strVal;str +="rn"str += " 性别 "str += m_Rec->

30、GetCollect(_T("Ssex").bstrVal;str +="rn"str += " 出生日期: " data=m_Rec->GetCollect(_T("Sbirth"); birth= COleDateTime(data);(_T("%d-%d-%d"),(),(),();str += Sno;str +="rn"str += " 入学成绩: "("%d",m_Rec->GetCollect(_T("

31、;Senrolgrade").bstrVal);str += Sno;str +="rn"str += " 所在系号: "str += m_Rec->GetCollect(_T("Dno").bstrVal;MessageBox(str);) 修改功能( UPDAT)E需要的对话框前面已经设计 ( CAddStudent )( CGetSno) 主程序添加的代码:void CAdminStudent:OnUpdate()strVal;Info2m_Rec->GetCollect(_T("Ssex&quo

32、t;).bstrVal;data=m_Rec->GetCollect(_T("Sbirth");birth= COleDateTime(data);(_T("%d-%d-%d"),(),(),();Info3 = (10); ("%d",m_Rec->GetCollect(_T("Senrolgrade"). bstrVal);Info4 = Sno;Info5m_Rec->GetCollect(_T("Dno").bstrVal;CAddStudent ADdlg;BOOL m_bool = FALSE;CString sql = "UPDATE Student SET "(Info);if() = IDOK)(G

温馨提示

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

评论

0/150

提交评论