软件验收报告_第1页
软件验收报告_第2页
软件验收报告_第3页
软件验收报告_第4页
软件验收报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、学生管理系统软件验收报告目录第一章项目概述31.1 项目背景41.2 相关文档41.3 参考资料41.4 部分系统截图51.5 系统结构图6第二章验收定义72.1 验收策略72.2 验收依据72.3 验收环境72.4 验收标准72.4.1 项目验收原则72.4.2 验收流程82.4.3 系统功能标准82.5 验收范围92.6 验收人员9第三章项目验收内容93.1 实施工作验收93.2 软件平台验收单103.3 功能模块验收单103.4 项目文档验收单103.5 运行结果验收11第四章验收结论11第五章交付物清单11文档提交清单11源码提交清单11附件:28程序流程图28最新可编辑word 文档

2、第一章项目概述学生信息管理系统(StudentInformationManagementSystem),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,

3、令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理的重要条件。用计算机制作的学校信息管理系统还可以通过功能强大的互联网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定

4、的促进作用。因此,开发这样一套管理软件成为很有必要的事情。1.1 项目背景随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。目前信息处理技术的飞速发展,基于计算机网络的信息处理已成为人们日常工作,学习和生活必备系统?在Internet飞速发展的今天,互联网已成为人们快速获取,发布和传递信息的重要渠道,它已成为社会生活的一部分?学生信息处理的电脑化?网络化,是实现学校管理现代化和信息化的重要内容,也是方便用户快捷查询相关充足

5、信息的重要工具?与传统学生信息处理模式相比,基于网络的学生管理系统具有无可比拟的优越性?因此开发一套有关学校的信息管理系统不仅能大大提高工作效率而且还能给师生的工作学习带来极大的便利。1.2 相关文档1学生管理系统软件测试方案2学生管理系统软件测试用例1.3 参考资料软件测试从入门到精通软测之魂:核心测试设计精解软件测试与测试技术1.4部分系统截图学分科加示加添显添扁扁.扁生数目学分科生码序宅i请作出选择,i藜的磬记录二清输入孽号普;应数字dmm能性笑爨熊学号'卜人专业班级二计算机添加成功?按任意键返回主菜单.一最新可编辑word文档生码序至程素望生数目学分科.扁扁.扁生数目学分科加示

6、加添显添3.18.物理,3 .语文概率论23.军事理论请作出选择,8数据库中有以下科目:"马克思2.电路E.量子7.复变.体育工2.英语16.信号17.思修21.工程制图22.电工实习座震要狗耨哪一科目?番输入科目的选项号式4.2S.固电9.微积分10.线代“.C语言".近代史19.单片机20.数据库24.毛概1.5系统结构图最新可编辑word文档第二章验收定义2.1 验收策略由开发方提供被验收内容、验收文档,由监理公司与用户进行评审,在评审无误的情况下,确认通过验收。2.2 验收依据软件测试验收准则2.3 验收环境学生管理系统软件实际运行的生产环境为验收环境。硬件平台计算

7、机软件平台Window操作系统:windowxp、window7、window82.4 验收标准2.4.1 项目验收原则1、审查提供验收的各类文档的正确性、完整性和统一性,审查文档是否齐全、合理;2、审查项目功能是否达到了合同规定的要求;3、审查项目有关服务指标是否达到了合同的要求;4、审查项目投资以及实施进度的情况;对项目的技术水平做出评价,并得出项目的验收结论。最新可编辑word 文档本项目的验收采取项目验收流程的方式进行验收。具体流程如下图所示开发万与监理公司制定验收流程F验收流程用工确认r,用户确认是否通过?;.1r开发方提供验收内容列表、验收文档1r监理公司、客户对验收内容、验收文档

8、进行确认1_-i一一-_验畋内容、验收文档能否通过?项目验收、结束项目验收流程2.4.3系统功能标准严重程度描述A学生信息管理系统由于出现问题不能继续运转(崩溃)学生信息管理系统的数据出现错误。B某项业务无法进行。学生信息管理系统产生数据错误。C学生信息管理系统中某一操作不能继续运转或错误,但不影响业务的进行。(有替代办法)学生信息管理系统打印的凭证或流水不符合需求所提出的标准。D其他学生信息管理系统在某种状态下产生的错误,不影响正常功能。如果各模块验收测试结果如下表所述则视为验收合格,否则将进行修改,以进行再次验收评审。严重程度关系发生个数A=0B<=102.5验收范围用户以及监理方进

9、行验收确认。验收确认包括以下两方面确认内容:1 .参照验收标准确认合同所涉及的功能以及项目组的实施工作是否完成;2 .抽取客户端进行测试,确定系统能够稳定运行。2.6验收人员单位人员职责/任务联余方式/Email备注哈师大学生张紫娜组长第三章项目验收内容3.1 实施工作验收工作阶段工作内容工作是否完成需求调研通过与用户的沟通,根据项目实际情况编写提交需求说明书、概要设计、详细设计。完成口未完成系统开发根据概要设计内容,完成详细设计并根据详细设计开发系统和测试。每周提交项目进度及情况报告、测试报告。完成口未完成系统安装安装产品,对系统进行部署。完成口未完成最新可编辑word文档用户培训编写用户使

10、用手册,对用户进行使用培训。完成口未完成系统运行跟踪监控系统运行。对使用中发现的问题进行记录和评估,在不影响系统结构的情况下对发现的问题进行修正。完成口未完成3.2 软件平台验收单验收人:张紫娜验收时间:序号软件类型软件名称验收结果备注1系统软件学生管理系统完成3.3 功能模块验收单序号功能模块验收内容合同要求验收结果1登录验证能否正常登陆必须实现合格2密码模块能否修改密码必须实现合格3学生模块正常实现添加修改功能可以肩差错合格4课程模块正常实现添加修改功能必须实现合格5成绩模块正常实现添加修改功能必须实现合格6退出模块正常退出系统必须实现合格3.4 项目文档验收单序号文档名称用途验收结果备注

11、1软件需求分析分析软件的需求,为后续的工作合格2软件测试用例对以实现的软件进行测试合格3.5 运行结果验收系统运行内容是否符合要求a.软件登录符合b.软件测试符合C软件查询符合d.软件修改符合e.软件退出符合第四章验收结论经过严格的测试本软件达到要求标准,符合验收要求第五章交付物清单文档提交清单1学生管理系统软件测试方案2学生管理系统软件测试用例源码提交清单源程序清单(仅给出核心代码部分)typedefcharbool;#defineFILEPATH"c:stuinfo.dat”#defineINFOPATH"c:test.txt”系统所记录的最大冗余块数系统所允许存储的最

12、多科目数系统将自动产生的学生个数系统将自动产生的科目个数字符缓冲区大小#defineMAXSPACECOUNT10#defineMAXSUBCOUNT20#defineRANDSTUCOUNT100#defineRANDSUBCOUNT20#defineBUFSIZE20#defineSHOWMAX#defineTRUE1#defineFALSE0#defineREAD0x81#defineWRITE0x82#defineSEARCH_SCHID0x83#defineSEARCH_NAME0x85#defineSEARCH_SUB0x86#defineSHOW_PRIV0x87#defineS

13、HOW_PERMARK0x89#defineSHOW_ALLMARK0x90#defineSORT_DECLINE0x92#defineSORT_INCLINE0x93#defineALPHAWORD0x94生的姓名#defineNUMBERWORD0x95号#defineADDSUB0x96#defineEDITSUB0x97#defineBIGNUMBER0x0ffffff#defineLONGSIZEsizeof(long)#defineINTSIZEsizeof(int)/屏幕最大显示的科目数/通过学生的学号进行搜索/通过学生的姓名进行搜索/通过学科的名称进行搜索/显示单个学生的个人信

14、息/显示单个学生的个人成绩/显示所有学生的某科成绩/以降序排列/以升序排列/以字母构成的字符串(用于随机产生学/以数字构成的字符串(用于随机产生学/科目编辑模式为添加/科目编辑模式为修改/系统延迟采用的循环中的大数#defineLINKSIZEsizeof(link)#define DATASEEK(FILEINFOSIZE+LONGSIZE)最新可编辑word 文档#defineSTUINFOSIZE#defineSUBINFOSIZE#defineTCHINFOSIZE#defineSUBMARKSIZE#defineFILEINFOSIZE#defineMYSTUSIZEsizeof(s

15、tuinfo)sizeof(subinfo)sizeof(tchinfo)sizeof(submark)sizeof(fileinfo)sizeof(mystu)#define DATATRANS(STUINFOSIZE+LONGSIZE)最新可编辑word 文档#defineSETERR(S)#defineNEW(I)typedefstruct_submarkinfoboolflag;intsub_id;doublesub_mark;submark,*psubmark;/科目成绩信息printf(S);returnFALSE;(I*)malloc(sizeof(I)/flag=0表该块无效/

16、科目的id号/该科目的成绩/显示出错信息并返回/开辟新的内存空间typedefstruct_stucharstu_name20;/学生姓名charstu_schid20;/学生学号intstu_sex;/学生性别0=man1=womancharstu_major20;/学生专业和班级(电子0606)mystu,*pmystu;/学生个人信息typedefstruct_stuinfoboolflag;/flag=0表该生作废intstu_sysid;/学生id号/系统将为每个学生产生唯一的ID号mystustu_privacy;longstu_seek;intstu_markcount;doub

17、lestu_avemark;/学生个人信息/在文件中的地址/已有的成绩数/学生加权平均分submarkstu_markMAXSUBCOUNT;/学生成绩数组stuinfo,*pstuinfo;/学生信息(包括个人信息和系统信息)typedefstruct_subinfo/flag=0 表该块无效boolflag;int sub_id;/科目的id号int sub_term;/科目开课的学期double sub_rate;/科目所占的学分char sub_name20;/ 科目名称subinfo,*psubinfo;/科目信息typedef struct _fileinfointstucount

18、;/已注册的学生人数intcountmax;/最大学生数,用于产生idintspacecount;/文件冗余块数long seekMAXSPACECOUNT;/ 文件冗余块在文件中的地址int subcount;/已注册的科目的个数subinfosubMAXSUBCOUNT;/科目信息数组fileinfo,*pfileinfo;/学生信息文件头typedefstruct_linkdoublemark;longstuseek;struct_link*next;link,*plink;/该结构体用于产生链表/链表用于对成绩排序之用核心功能函数:/本函数设置系统错误,并终止程序voidseterr(

19、char*err)memset(void*)myerr,0,errnosize);intn=strlen(err);if(n>errnosize-1)n=errnosize;memcpy(myerr,err,n);printf("nn%snn",err);exit(0);/*本函数用于清理所有全局变量包括文件指针和全局结构体指针*/voidfreeparam()if(fp)fclose(fp);fp=NULL;if(myfileinfo)free(myfileinfo);myfileinfo=NULL;if(mystuinfo)free(mystuinfo);myst

20、uinfo=NULL;/本函数用于对文件进行操作,将常用的文件操作集于一身voidfcntl(longseek,intcntlmode,void*pdata,intsize)if(!fp)fp=fopen(FILEPATH,"rb+");if(!fp)initfile();rewind(fp);fseek(fp,seek,SEEK_SET);if(!pdata)return;if(!size)seterr("fcntl:parameternotmatched");switch(cntlmode)caseREAD:fread(pdata,size,1,fp

21、);break;caseWRITE:fwrite(pdata,size,1,fp);break;default:seterr("fcntl:cntlmodeinvalid");/初始化数据库voidinitfile()if(!fp)fp=fopen(FILEPATH,"wb+");if(!myfileinfo)myfileinfo=NEW(fileinfo);memset(myfileinfo,0,FILEINFOSIZE);myfileinfo->seek0=DATASEEK;inti=0;最新可编辑word 文档for(;i<MAXSUB

22、COUNT;i+)myfileinfo->subi.sub_id=i+1;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/添加学生的核心函数voidaddstu(pmystunewstuinfo)if(!newstuinfo)seterr("addstu:newstuinfonull");if(search(newstuinfo->stu_schid,SEARCH_SCHID)seterr("addstu:databaseschidcollision");if(!myfileinfo)myfileinfo=NE

23、W(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);intspacecount=myfileinfo->spacecount;if(spacecount>=MAXSPACECOUNT)seterr("addstu:parameterinvalid");longseek=myfileinfo->seekspacecount;if(spacecount)myfileinfo->seekspacecount=0;myfileinfo->spacecount-;elsemyfileinfo->see

24、kspacecount+=DATATRANS;if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);memcpy(&(mystuinfo->stu_privacy),newstuinfo,MYSTUSIZE);mystuinfo->stu_seek=seek;mystuinfo->flag=1;inti;mystuinfo->stu_sysid=myfileinfo->countmax+1;for(i=0;i<MAXSUBCOUNT;i+)mystuinfo->

25、stu_marki.sub_id=i+1;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo->stucount+;myfileinfo->countmax+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/删除学生的核心函数voiddelstu(longdelstuseek)if(!delstuseek)seterr("delstu:parameterzero");if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfil

26、einfo,FILEINFOSIZE);if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);fcntl(delstuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)seterr("delstu:parameterinvalid");mystuinfo->flag=0;fcntl(delstuseek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo->stucount-;myfilei

27、nfo->spacecount+;intcount=myfileinfo->spacecount;if(count<MAXSPACECOUNT)myfileinfo->seekcount=delstuseek;elsemyfileinfo->spacecount-;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/编辑一个已存在学生的核心函数voideditstu(longeditstuseek,pmystutempstu)if(!tempstu)seterr("editstu:parameternull");if

28、(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);fcntl(editstuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)seterr("editstu:editstuinvalid");plinklinkhead=search(tempstu->stu_schid,SEARCH_SCHID);if(linkhead&&linkhead->data-editstuseek)seterr("

29、editstu:databaseschidcollision");memcpy(&mystuinfo->stu_privacy,tempstu,MYSTUSIZE);fcntl(editstuseek,WRITE,mystuinfo,STUINFOSIZE);/添加新的学科的核心函数voidaddsub(psubinfonewsub)if(!newsub)seterr("addsub:parameternull");if(newsub->sub_term<1|newsub->sub_term>8)seterr("ad

30、dsub:parameterinvalid");if(newsub->sub_rate<0.5|newsub->sub_rate>6)seterr("addsub:parameterinvalid");if(search(newsub->sub_name,SEARCH_SUB)seterr("addsub:databasesubcollision");if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);intsu

31、bcount=myfileinfo->subcount;if(subcount>=MAXSUBCOUNT)seterr("addsub:subjectfull");psubinfopsubtemp=myfileinfo->sub;newsub->flag=1;inti;for(i=0;i<MAXSUBCOUNT;i+,psubtemp+)if(!psubtemp->flag)newsub->sub_id=psubtemp->sub_id;memcpy(psubtemp,newsub,SUBINFOSIZE);break;if(

32、i>=MAXSUBCOUNT)seterr("addsub:subjectallinuse");myfileinfo->subcount+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/删除一个已经存在学科的核心函数voiddelsub(intsubid)if(subid<1|subid>MAXSUBCOUNT)seterr("delsub:subidinvalid");if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,

33、FILEINFOSIZE);if(myfileinfo->subcount<=0)seterr("delsub:subcountzero");psubinfosubtemp=myfileinfo->sub+subid-1;if(!subtemp->flag)seterr("delsub:flaginvalid");subtemp->flag=0;myfileinfo->subcount-;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);if(!mystuinfo)mystuinfo=NEW

34、(stuinfo);longseek=DATASEEK;inti;psubmarkmarktemp=NULL;for(i=0;i<myfileinfo->stucount;i+,seek+=DATATRANS)fcntl(seek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)i-;continue;marktemp=mystuinfo->stu_mark+subid-1;if(marktemp->flag)memset(marktemp,0,SUBMARKSIZE);mystuinfo->stu_markc

35、ount-;elsecontinue;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);makeavemark(seek);/编辑一个已经存在的学科的核心函数voideditsub(psubinfonewsub)if(!newsub)seterr("editsub:newsubnull");if(!newsub->flag)seterr("editsub:newsubinvalid");intsubid=newsub->sub_id;if(subid<1|subid>MAXSUBCOUNT)seter

36、r("editsub:subidinvalid");intterm=newsub->sub_term;if(term<1|term>8)seterr("editsub:subterminvalid");doublerate=newsub->sub_rate;if(rate<0.5|rate>6)seterr("editsub:subrateinvalid");intsize=strlen(newsub->sub_name);if(size>=20)newsub->sub_name1

37、9=0;if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);plinklinkhead=search(newsub->sub_name,SEARCH_SUB);if(linkhead&&linkhead->next)seterr("editsub:searchinvalid");if(linkhead&&linkhead->data-subid)seterr("editsub:databasesubcollisi

38、on");newsub->flag=1;psubinfosubtemp=myfileinfo->sub+subid-1;memcpy(subtemp,newsub,SUBINFOSIZE);fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);if(!mystuinfo)mystuinfo=NEW(stuinfo);intcount=myfileinfo->stucount;inti;longseek=DATASEEK;for(i=0;i<count;i+,seek+=DATATRANS)fcntl(seek,READ,mystuinf

39、o,STUINFOSIZE);if(!mystuinfo->flag)i-;continue;makeavemark(seek);/编辑某学生某科目的核心函数voideditmark(psubmarknewmark,longstuseek)if(!newmark|!stuseek)seterr("addmark:parameternull");intsubid=newmark->sub_id;if(subid<-1|subid>MAXSUBCOUNT|!subid)seterr("editmark:subidinvalid");d

40、oublemark=newmark->sub_mark;if(mark<0|mark>100)seterr("editmark:submarkinvalid");if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);fcntl(stuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)seterr("editmark:studentinvalid");psubmarkmarktemp=mystu

41、info->stu_mark+subid-1;intflag1=marktemp->flag,flag2=newmark->flag;if(!flag1&&!flag2)seterr("editmark:markflaginvalid");memcpy(marktemp,newmark,SUBMARKSIZE);if(!flag1&&flag2)mystuinfo->stu_markcount+;if(flag1&&!flag2)mystuinfo->stu_markcount-;fcntl(st

42、useek,WRITE,mystuinfo,STUINFOSIZE);makeavemark(stuseek);/计算某学生的加权分数的核心函数voidmakeavemark(longstuseek)if(!stuseek)seterr("makeavemark:parameternull");if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);fcntl(stuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)seterr(&

43、quot;makeavemark:parameterinvalid");if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);intsubcount=myfileinfo->subcount;if(!subcount|!mystuinfo->stu_markcount)mystuinfo->stu_avemark=0;fcntl(mystuinfo->stu_seek,WRITE,mystuinfo,STUINFOSIZE);return;psubinfosubtemp=myfileinfo->sub;psubmarkmarktemp=mystuinfo->stu_mark;inti;doublemarksum=0.0,rate,ratesum=0.0;for(i=0;i<subcount;i+,subtemp+,marktemp+)if(!subtemp->flag)i-;continue;if(!marktemp->flag)

温馨提示

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

评论

0/150

提交评论