二工大学籍管理系统设计说明书_第1页
二工大学籍管理系统设计说明书_第2页
二工大学籍管理系统设计说明书_第3页
二工大学籍管理系统设计说明书_第4页
二工大学籍管理系统设计说明书_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

学籍管理设计说明书学院计算机与信息学院专业软件工程目录、需求分析TOC\o"1-5"\h\z.目标用户 03-.主要功能 03-.问题描述 03-.问题分析 03-二、概要设计.方案确定 03-.软件结构 03-.模块功能说明 03-三、详细结构设计.数据设计 04-.流程图 04-四、T-SOL源程序.存储过程 09-.触发器 09-五、调试分析和测试结果\o"CurrentDocument"调试分析和测试结果 11-六个人体会利用详细程序设计书一、需求分析.目标用户管理人员班级辅导员(或班主任)教师学生等.主要功能序号功能名称功能说明1学生管理登记学生的基本信息(性别,姓名,班级等),并提供查询功能2课程管理登记课程基本情况(课程名称,开课学期,课程类型,学分等),提供查询功能3教师管理登记教师基本情况(姓名,年龄,性别,学历等),提供统计查询4成绩管理登记学生各门课程的考试成绩,提供查询统计功能5'授课管理登记教师讲授课程,授课地点和授课学期,提供查询功能6编码维护维护系统中使用的编码(如职称编码等).问题描述管理人员需要建立学生的学籍,汇总每学期没有拿到规定学分的学生以及这些学生的详细情况;学生完成一门课程的学习以后,教师需要录入学生的考试成绩,计算平均成绩,汇总各个分数段的人数;学生需要查询已结业的各门课的成绩;班主任需要查询本班学习情况,包括各门课程的平均成绩和每个学生的开始通过情况。为此,设计一套实用的学籍管理系统可以大大简化管理人员,班主任和任课教师的工作,方便学生查询自己的学习情况。4.问题分析1确定系统的源点和汇点2确定系统所需的存储文3确定顶层加工4确定数据流二、概要设计1)根据系统的初步需求,分析设计顶层数据流图2)根据顶层数据流图,细化出一层数据流图3)继续细化数据流图4)制定整理数据字典三、详细设计教师管理人员马力0^I教学计划信息箸编码………教师信息考试成绩汇总报:本信息学生基本信息教师信息学生试成试成绩,课程信息教学计划考试成绩—顶层数据流图—顶层数据流图1顶层数据流图2第一层数据流图3第二层数据流图4细化后的成绩录入3层数据流图四、部分T-SQL源程序1.存储过程——Creditconvert(功能:学分转换)CREATEFUNCTIONCreditConvert(@成绩NUMERIC(3,1),@学分NUMERIC(3,1))--@成绩:考试成绩--@学分:课程规定学分RETURNSNUMERIC(5,2)--应得学分ASBEGINRETURNCASESIGN询成绩-60)WHEN1THEN@学分WHEN0THEN@学分WHEN-1THEN0ENDEND——termConvert(功能:学期转换)CREATEFUNCTIONtermConvert(@termCHAR(11),@CLnoCHAR(6))--@term学年,格式如:2006-2007/2--@CLno班级编号,格式如:020001,前2位代表入学年份RETURNSINT--在校第几学期ASBEGINRETURN(CONVERT(NUMERIC,SUBSTRING(@term,1,4))-CONVERT(NUMERIC,'20'+SUBSTRING(@CLno,1,2)))*2+CONVERT(NUMERIC,SUBSTRING(@TERM,11,1))END统计不同分数段人数存储过程设计-按照课程编号统计最高分、最低分,不同分数段的人数,平均成绩CREATEPROCEDUREp_SatSore@cnoCHAR(5),--人口参数:班级编号@clnoCHAR(6)--人口参数:课程编号ASBEGINDECLARE@socre1INT--待统计分数段上限DECLARE@socre2INT--待统计分数段下限DECLARE@numINT--待统计分数段人数DECLARE@CLNameVARCHAR(30)--班级名称DECLARE@CNameVARCHAR(50)--课程名称-查询课程名称和班级名称SET@CLName=(SELECTCLNameFROMclassWHERECLno=@clno)SET@CName=(SELECT课程名称FROMcourseWHERE课程编号二@方。)PRINT@CLName+'<'+@CName+'>'+'考试成绩按照分数段统计情况’-设置被统计分数段的初值SET@socre1=100SET@socre2=90WHILE(@socre1>=60)BEGINSET@num=(SELECTcount(*)FROM选课a,classb,classmatecWHEREb.CLno=c.CLnoANDa.no=c.noANDb.CLno=@clnoANDa.no=@cnoAND成绩BETWEEN@socre2AND@socre1)PRINTSTR(@socre2)+'至'+STR(@socre1)+'分人数为'+STR(@num)-调整统计分数段SET@socre1=@socre2IF@socre1>60SET@socre2=@socre2-10ELSESET@socre2=0ENDEND汇总平均成绩存储过程设计CREATEProcedurep_AverageScore@termVARCHAR(11)--人口参数:学期--学期的格式为:****-****/*--前9位表示学年,最后一位表示本学年的第几期。例如,2005-2006/2表示2005-2006学年的第二学期。asBEGINDECLARE@课程编号VARCHAR(5)--变量:课程编号DECLARE@CLnameVARCHAR(30)--变量:班级名称DECLARE@CLnoVARCHAR(6)--变量:班级编号DECLARE@avgscoreNUMERIC(10,2) --变量:平均成绩DECLARE@CtermINT --变量:学期--定义班级游标DECLAREclass_cursorCURSORFORSELECTCLname,CLno,dbo.termConvert(@term,CLno)FROMclassWHEREdbo.termConvert(@term,CLno)<=8--过滤掉已经毕业的班级OPENclass_cursorFETCHNEXTFROMclass_cursorINTO@CLname,@CLno,@CtermWHILE@@FETCH_STATUS=0BEGINSET@avgscore=(SELECTISNULL(avg成绩),0)FROM选课a,classmateb,classc,coursedWHEREa.no=b.noANDb.CLno=c.CLnoANDb.CLno=@CLnoANDa.课程编号二4.课程编号ANDd.学期二@Cterm)--根据班级平均成绩判断该班的成绩是否登记,如果平均成绩>0,则计算每名学生的平均成绩IF@avgscore>0BEGINPRINT@term+'学期'+@CLname+'各门课总平均成绩为'+STR(@avgscore,5,1)--每个学生的平均成绩和获得的学分PRINT'该班每个学生的平均成绩如下:,SELECTe.SName,d.avgscore,totalCreditFROM(SELECTa.no,AVG(成绩)avgscore,SUM(dbo.CreditConvert(score,学分))totalCreditFROMStudenta,选课b,coursecWHEREa.no=b.noANDb课程编号二©.课程编号ANDc.学期二@CtermGROUPBYa.SNo)d,classmatee,classfWHEREe.no=d.noANDe.CLno=f.CLnoANDf.CLno=@CLnoENDELSEPRINT@term+'学期'+@CLname+@CLno+'^'+'成绩没有登记’FETCHNEXTFROMclass_cursorINTO@CLname,@CLno,@CtermENDCLOSEclass_cursorDEALLOCATEclass_cursorEND2.触发器修改学分触发器CREATETRIGGERt_tcreditsON选课FORINSERT,UPDATE,DELETEASDECLARE@tcreditsNUMERIC(4,0)--总学分DECLARE@noCHAR(5)--学号DECLAREinsert_cursorCURSORFORSELECTnoFROMINSERTEDDECLAREdelete_cursorCURSORFORSELECTnoFROMDELETEDBEGIN--处理删除的记录OPENdelete_cursorFETCHNEXTFROMdelete_cursorINTO@noWHILE@@FETCH_STATUS=0BEGINSET@tcredits=(SELECTSUM(^分)FROMoursea,选课bWHEREa.课程编号C.课程编号ANDb.成绩>60ANDb.no=@no)UPDATEStudentSETSCredits=@tcreditsWHEREno=@noFETCHNEXTFROMdelete_cursorINTO@noENDCLOSEdelete_cursorDEALLOCATEdelete_cursor--处理修改和增加的记录IFUPDATE(成绩)BEGINOPENinsert_coursorFETCHNEXTFROMinsert_cursorINTO@noWHILE@@FETCH_STATUS=0BEGINSET@tcredits=(SELECTSUM(学分)FROMcoursea,选课bWHEREa.课程编号C.课程编号ANDb.成绩>60ANDb.no=@no

温馨提示

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

评论

0/150

提交评论