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

下载本文档

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

文档简介

1、学生管理系统软件验收报告目录第一章项目概述 . 31.1 项目背景 . 41.2 相关文档 . 41.3 参考资料 . 41.4 部分系统截图 . 51.5 系统结构图 . 6第二章验收定义 . 72.1 验收策略 . 72.2 验收依据 . 72.3 验收环境 . 72.4 验收标准 . 72.4.1 项目验收原则 . 7精品文档2.4.2 验收流程 . 82.4.3 系统功能标准. . 82.5 验收范围 . 92.6 验收人员 . 9第三章项目验收内容 . 93.1 实施工作验收 . 93.2 软件平台验收单. 103.3 功能模块验收单. 103.4 项目文档验收单. 103.5 运行

2、结果验收 . 11第四章验收结论 . 11第五章交付物清单 . 11文档提交清单 . . 11源码提交清单 . . 11附件 : . . 28程序流程图 . 28精品文档第一章项目概述学生信息管理系统(stude nt in formation ma nageme nt system ),以下简称sims是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(managementinformation system) 。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情

3、况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。这些优点能够极大地提高学生信息管理的效率,也是学校

4、的科学化、正规化管理的重要条件。用计算机制作的学校信息管理系统还可以通过功能强大的互联网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用。因此,开发这样一套管理软件成为很有必要的事情。精品文档1.1项目背景随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。目前信息处理技术的飞速发展,基于计算机网络的信息处理已成为人们日常工作,学习和生活必备系统?在in tern

5、et 飞速发展的今天,互联网已成为人们快速获取,发布和传递信息的重要渠道,它已成为社会生活的一部分?学生信息处理的电脑化?网络化,是实现学校管理现代化和信息化的重要内容,也是方便用户快捷查询相关充足信息的重要工具?与传统学生信息处理模式相比,基于网络的学生管理系统具有无可比拟的优越性?因此开发一套有关学校的信息管理系统不仅能大大提高工作效率而且还能给师生的工作学习带来极大的便利。1.2相关文档1学生管理系统软件测试方案2学生管理系统软件测试用例1.3参考资料软件测试从入门到精通软测之魂:核心测试设计精解软件测试与测试技术精品文档1.4部分系统截图生数目学分科生码序蚩龍索g添加成功 宇按任意键返

6、回主菜单r添加科目请作出选择調殺据库中有以下科目:马克思量子花电路r曩变3.1筑物理n-#w. 语文込信号k ?工程制图1青输 人科目的选项丐:i?思修眈?电工实习诃?概率论辭. 军事理论汕- 单片机24?毛概精品文档1.5系统结构图精品文档第二章验收定义2.1验收策略由开发方提供被验收内容、验收文档,由监理公司与用户进行评审,在评审无误的情况下,确认通过验收。2.2验收依据软件测试验收准则2.3验收环境学生管理系统软件实际运行的生产环境为验收环境。硬件平台计算机软件平台window操作系统:window xp、window7、window8 2.4验收标准2.4.1 项目验收原则1、 审查提

7、供验收的各类文档的正确性、完整性和统一性,审查文档是否齐全、合理;2、 审查项目功能是否达到了合同规定的要求;3、 审查项目有关服务指标是否达到了合同的要求;4、 审查项目投资以及实施进度的情况;对项目的技术水平做出评价,并得出项目的验收结论精品文档242 验收流程本项目的验收采取项目验收流程的方式进行验收。具体流程如下图所示开发方与监理公司制定验收流程1r验收流程用户确认_ 用户确认是否通过 ?项目验收、结束项目验收流程243 系统功能标准严重程度描述a 学生信息管理系统由于出现问题不能继续运转(崩溃)学生信息管理系统的数据出现错误。b 某项业务无法进行。学生信息管理系统产生数据错误。c 学

8、生信息管理系统中某一操作不能继续运转或错误,但不影响业务的进行。(有替代办法)学生信息管理系统打印的凭证或流水不符合需求所提出的标准。+ 开发方提供验收内容列表、验收文档1r 监理公司、客户对验收内容、验收文档进行确认1 一- r. - =.验收内容、验收文档能否通过?h _ _精品文档d 其他学生信息管理系统在某种状态下产生的错误,不影响正常功能。精品文档如果各模块验收测试结果如下表所述则视为验收合格,否则将进行修改,以进行再次验收评审。严重程度关系发生个数a = 0 b v = 10 2.5验收范围用户以及监理方进行验收确认。验收确认包括以下两方面确认内容:1. 参照验收标准确认合同所涉及

9、的功能以及项目组的实施工作是否完成; 2. 抽取客户端进行测试,确定系统能够稳定运行。2.6验收人员单位人员职责/任务联系方式/email 备注哈师大学生张紫娜组长第三章项目验收内容3.1实施工作验收工作阶段工作内容工作是否完成需求调研通过与用户的沟通,根据项目实际情况编写提交需求说明书、概要设计、详细设计。完成未完成系统开发根据概要设计内容,完成详细设计并根据详细设计开发系统和测试。每周提交项目进度及情况报告、测试报告。完成未完成系统安装安装产品,对系统进行部署。完成未完成精品文档用户培训编写用户使用手册,对用户进行使用培训。完成未完成系统运行跟踪监控系统运行。对使用中发现的问题进行记录和评

10、估,在不影响系统结构的情况下对发现的冋题进行修正。完成未完成3.2软件平台验收单验收人:张紫娜验收时间:序 号软件类型软件名称验收结果备注1 系统软件学生管理系统完成3.3功能模块验收单序号功能模块验收内容合同要求验收结果1 登录验证能否正常登陆必须实现合格2 密码模块能否修改密码必须实现合格3 学生模块正常实现添加修改功能可以有差错合格4 课程模块正常实现添加修改功能必须实现合格5 成绩模块正常实现添加修改功能必须实现合格6 退出模块正常退出系统必须实现合格3.4项目文档验收单序号文档名称用途验收结果备注1 软件需求分析分析软件的需求,为后续的工作合格2 软件测试用例对以实现的软件进行测试合

11、格精品文档3.5运行结果验收系统运行内容是否符合要求a.软件登录符合b.软件测试符合c.软件查询符合d.软件修改符合e.软件退出符合第四章验收结论经过严格的测试本软件达到要求标准,符合验收要求第五章交付物清单文档提交清单1学生管理系统软件测试方案2学生管理系统软件测试用例源码提交清单源程序清单(仅给出核心代码部分)typedef char bool; #defi ne filepath c:stui nfo.dat #defi ne infopath c:test.txt #defi ne maxspacecount 10 /系统所记录的最大冗余块数#defi ne maxsubcount 2

12、0 /系统所允许存储的最多科目数#defi ne randstucount 100 /系统将自动产生的学生个数#defi ne randsubcount 20 /系统将自动产生的科目个数#defi ne bufsize 20 /字符缓冲区大小精品文档#defi ne showmax 6 /屏幕最大显示的科目数#defi ne true 1 #defi ne false 0 #defi ne read 0 x81 #defi ne write 0 x82 #defi ne search_schid 0 x83 /通过学生的学号进行搜索#defi ne search_name 0 x85 /通过学

13、生的姓名进行搜索#defi ne search_sub 0 x86 /通过学科的名称进行搜索#defi ne show_priv 0 x87 显示单个学生的个人信息#defi ne show_permark 0 x89 显示单个学生的个人成绩#defi ne show_allmark 0 x90 显示所有学生的某科成绩#defi ne sort_decline 0 x92 /以降序排列#defi ne sort_incline 0 x93 /以升序排列#defi ne alphaword 0 x94 /以字母构成的字符串(用于随机产生学生的姓名#defi ne numberword 0 x95

14、 /以数字构成的字符串(用于随机产生学号#defi ne addsub 0 x96 /科目编辑模式为添加#defi ne editsub 0 x97 科目编辑模式为修改#defi ne bignumber 0 x0ffffff 系统延迟米用的循环中的大数#defi ne longsize sizeof( long) #defi ne intsize sizeof( int) #defi ne linksize sizeof(li nk) #defi ne stuinfosize sizeof(stu info) #defi ne subinfosize sizeof(sub info) #de

15、fi ne tchinfosize sizeof(tch info) #defi ne submarksize sizeof(submark) #defi ne fileinfosize sizeof(filei nfo) #defi ne mystusize sizeof(mystu) #defi ne dataseek (fileinfosize+longsize)精品文档#defi ne datatrans #defi ne seterr(s) #defi ne new(i) typedef struct _submark info bool flag; int sub_id; doub

16、le sub_mark; submark,*psubmark; ii科目成绩信息(stuinfosize+longsize) pri ntf(s);return false; (l*)malloc(sizeof(l) iiflag=0 表该块无效ii 科目的 id 号ii 该科目的成绩typedef struct _stu char stu_ name20; ii 学生姓名char stu_schid20; ii 学生学号int stu_sex; ii 学生性另u 0=ma n 1=woma n char stu_major20; ii学生专业和班级(电子 0606) mystu,*pmyst

17、u; 学生个人信息typedef struct _stu info bool flag; iiflag=0 表该生作废int stu_sysid; ii 学生 id 号系统将为每个学生产生唯一的id 号mystu stu_privacy; 学生个人信息long stu_seek; ii 在文件中的地址int stu_markco unt; ii 已有的成绩数double stu_avemark; 学生加权平均分submark stu_markmaxsubcount; 学生成绩数组ii 显示出错信息并返回开辟新的内存空间精品文档stui nfo,*pstui nfo; 学生信息(包括个人信息和系

18、统信息)typedef struct _sub info bool flag; /flag=0 表该块无效int sub_id; /科目的 id 号int sub_term; /科目开课的学期double sub_rate; /科目所占的学分char sub_name20; 科目名称sub in fo,*psub info; 科目信息typedef struct _file info int stucou nt; /已注册的学生人数int countmax; /最大学生数,用于产生 id int spacecou nt; /文件冗余块数long seekmaxspacecount;文件冗余块在

19、文件中的地址int subcou nt; /已注册的科目的个数sub info submaxsubcount; 科目信息数组filei nfo,*pfilei nfo; 学生信息文件头typedef struct _li nk double mark; long stuseek; struct _li nk* n ext; li nk,*pli nk; 精品文档/该结构体用于产生链表/链表用于对成绩排序之用核心功能函数:/本函数设置系统错误,并终止程序void seterr(char*err) memset(void*)myerr,0,errno size); int n=strle n( e

20、rr); if(nerrno size-1) n=errno size; memcpy(myerr,err, n); prin tf(nn%snn,err); exit(0); /*本函数用于清理所有全局变量包括文件指针和全局结构体指针*/void freeparam() if(fp)fclose(fp);fp=null; if(myfilei nfo)free(myfilei nfo); myfilei nfo=null; if(mystui nfo)free(mystui nfo); mystui nfo=null; /本函数用于对文件进行操作,将常用的文件操作集于一身void fen t

21、l(l ong seek,i nt cn tlmode,void *pdata,i nt size) if(!fp)fp=fope n( filepath,rb+); if(!fp)i nitfile(); 精品文档rewi nd(fp); fseek(fp,seek,seek_set); if(!pdata)return; if(!size)seterr(fcntl:parameter not matched); switch(c ntlmode) case read: fread(pdata,size,1,fp); break; case write: fwrite(pdata,size,

22、1,fp); break; default: seterr(fc ntl:c ntlmode inv alid); /初始化数据库void ini tfile() if(!fp)fp=fope n( filepath,wb+); if(!myfile info) myfilei nfo=new(filei nfo); memset(myfilei nfo,0,fileinfosize); myfilei nfo-seek0=dataseek; int i=0; for(;isubi.sub_id=i+1; fcntl(o,write,myfilei nfo,fileinfosize); 精品文

23、档/添加学生的核心函数void addstu(pmystu n ewstu info) if(! newstui nfo) seterr(addstu: newstui nfo nu ii); if(search( newstui nfo-stu_schid,search_schid) seterr(addstu:database schid collisi on); if(!myfile info) myfilei nfo=new(filei nfo); fcn tl(0,read,myfilei nfo,fileinfosize); int spaceco un t=myfile in f

24、o-spaceco unt; if(spacecou nt=maxspacecount) seterr(addstu:parameter inv alid); long seek=myfile in fo-seekspaceco un t; if(spaceco unt) myfile in fo-seekspaceco un t=0; myfile in fo-spaceco un t-; else myfilei nfo-seekspacecou nt+=datatrans; if(!mystui nfo)mystui nfo=new(stui nfo); memset(mystui nf

25、o,0,stuinfosize); memcpy(&(m ystui nfo-stu_privacy), newstui nfo,mystusize); mystu in fo-stu_seek=seek; mystu in fo-flag=1;i nt i; mystui nfo-stu_sysid=myfilei nfo-cou ntmax+1; for(i=0;istu_marki.sub_id=i+1; fcntl(seek,write,mystui nfo,stuinfosize); 精品文档myfilei nfo-stucou nt+; myfile in fo-co un

26、 tmax+; fcntl(0,write,myfilei nfo,fileinfosize); 删除学生的核心函数void delstu(l ong delstuseek) if(!delstuseek)seterr(delstu:parameter zero); if(!myfile info) myfilei nfo=new(filei nfo); fcn tl(0,read,myfilei nfo,fileinfosize); if(!mystui nfo)mystui nfo=new(stui nfo); memset(mystui nfo,0,stuinfosize); fcntl

27、(delstuseek,read,mystui nfo,stuinfosize); if(!mystui nfo-flag)seterr(delstu:parameter inv alid); mystui nfo-flag=0; fcntl(delstuseek,write,mystui nfo,stuinfosize); myfilei nfo-stuco un t-; myfile in fo-spaceco un t+; int coun t=myfile in fo-spaceco unt; if(cou ntvmaxspacecount) myfilei nfo-seekco un

28、 t=delstuseek; else myfile in fo-spaceco un t-; fcntl(o,write,myfilei nfo,fileinfosize); 精品文档/编辑一个已存在学生的核心函数void editstu(l ong editstuseek,pmystu tempstu) if(!tempstu)seterr(editstu:parameter nu ii); if(!mystui nfo)mystui nfo=new(stui nfo); memset(mystui nfo,0,stuinfosize); fcntl(editstuseek,read,my

29、stui nfo,stuinfosize); if(!mystui nfo-flag) seterr(editstu:editstu in valid); pli nk lin khead=search(tempstu-stu_schid,search_schid); if(li nkhead&li nkhead-data-editstuseek) seterr(editstu:database schid collisio n); memcpy(&m ystui nfo-stu_privacy,tempstu,mystusize); fcntl(editstuseek,wri

30、te,mystui nfo,stuinfosize); /添加新的学科的核心函数void addsub(psub info n ewsub) if(! newsub)seterr(addsub:parameter nu ii); if(n ewsub-sub_termsub_term8) seterr(addsub:parameter in valid); if(n ewsub-sub_ratesub_rate6) seterr(addsub:parameter in valid); if(search( newsub-sub_name,search_sub) seterr(addsub:da

31、tabase sub collisi on); if(!myfile info) myfilei nfo=new(filei nfo); fen tl(0,read,myfilei nfo,fileinfosize); 精品文档 int subeo un t=myfile in fo-subeo unt; if(subeou nt=maxsubcount) seterr(addsub:subjeet full); psub info psubtemp=myfile in fo-sub; n ewsub-flag=1;i nt i; for(i=0;iflag) n ewsub-sub_id=p

32、subtemp-sub_id; memcpy(psubtemp ,n ewsub,subinfosize); break; if(i=maxsubcount) seterr(addsub:subjeet all in use); myfilei nfo-subeou nt+; fentl(0,write,myfilei nfo,fileinfosize); 删除一个已经存在学科的核心函数void delsub(i nt subid) if(subidmaxsubcount) seterr(delsub:subid inv alid); if(!myfile info) myfilei nfo=

33、new(filei nfo); fen tl(o,read,myfilei nfo,fileinfosize); if(myfile in fo-subeo un tsub+subid-1; if(!subtemp-flag)seterr(delsub:flag in valid); 精品文档subtemp-flag=o;myfilei nfo-subeo un t-; fentl(o,write,myfilei nfo,fileinfosize); if(!mystui nfo)mystui nfo=new(stui nfo); long seek=dataseek; int i;psubm

34、ark marktemp=null; for(i=o;istueou nt;i+,seek+=datatrans) fen tl(seek,read,mystui nfo,stuinfosize); if(!mystui nfo-flag)i-;eo nti nu e; marktemp=mystui nfo-stu_mark+subid-1; if(marktemp-flag) memset(marktemp,o,submarksize); mystui nfo-stu_markeo un t-; else con ti nue; fen tl(seek,write,mystui nfo,s

35、tuinfosize); makeavemark(seek); /编辑一个已经存在的学科的核心函数void editsub(psub info n ewsub) if(! newsub) seterr(editsub:n ewsub nu ii); if(! newsub-flag) seterr(editsub: newsub inv alid); int subid=n ewsub-sub_id; if(subidmaxsubcount) seterr(editsub:subid inv alid); int term=n ewsub-sub_term; if(term8) seterr(

36、editsub:subterm in valid); double rate=n ewsub-sub_rate; if(rate6) seterr(editsub:subrate in valid); 精品文档int size=strle n(n ewsub-sub_ name); if(size=20) newsub-sub_ name19=0; if(!myfile info) myfilei nfo=new(filei nfo); fen tl(o,read,myfilei nfo,fileinfosize); pli nk lin khead=search( newsub-sub_na

37、me,search_sub); if(li nkhead&lin khead- next) seterr(editsub:search in valid); if(li nkhead&lin khead-data-subid) seterr(editsub:database sub collisi on); n ewsub-flag=1; psub info subtemp=myfile in fo-sub+subid-1; memcpy(subtemp, newsub,subinfosize); fcntl(o,write,myfilei nfo,fileinfosize);

38、 if(!mystui nfo)mystui nfo=new(stui nfo); int coun t=myfilei nfo-stuco unt; int i;lo ng seek=dataseek; for(i=0;iflag)i-;co nti nu e; makeavemark(seek); /编辑某学生某科目的核心函数void editmark(psubmark n ewmark,lo ng stuseek) if(! newmark|!stuseek) seterr(addmark:parameter nu ii); int subid=n ewmark-sub_id; if(s

39、ubidmaxsubcount|!subid) seterr(editmark:subid in 精品文档valid); double mark=n ewmark-sub_mark; if(mark100) seterr(editmark:submark inv alid); if(!mystui nfo)mystui nfo=new(stui nfo); memset(mystui nfo,0,stuinfosize); fcntl(stuseek,read,mystui nfo,stuinfosize); if(!mystui nfo-flag) seterr(editmark:stude

40、 nt inv alid); psubmark marktemp=mystui nfo-stu_mark+subid-1; int flag仁marktemp-flag,flag2=n ewmark-flag; if(!flag1 &!flag2) seterr(editmark:markflag inv alid); memcpy(marktemp, newmark,submarksize); if(!flag1 &flag2)mystu in fo-stu_markco un t+; if(flag1 &!flag2)mystui nfo-stu_markco un

41、 t-; fcntl(stuseek,write,mystui nfo,stuinfosize); makeavemark(stuseek); /计算某学生的加权分数的核心函数void makeavemark(lo ng stuseek) if(!stuseek)seterr(makeavemark:parameter nu ii); if(!mystui nfo)mystui nfo=new(stui nfo); memset(mystui nfo,0,stuinfosize); fcntl(stuseek,read,mystui nfo,stuinfosize); if(!mystui n

42、fo-flag)seterr(makeavemark:parameter inv alid); if(!myfile info) myfilei nfo=new(filei nfo); 精品文档fen tl(o,read,myfilei nfo,fileinfosize); int subco un t=myfile in fo-subco unt; if(!subco un t|!mystu in fo-stu_markco unt) mystui nfo-stu_avemark=0; fen tl(mystui nfo-stu_seek,write,mystui nfo,stuinfosize); return; psub info subtemp=myfile in fo-sub; psubmark marktemp=mystui nfo-st

温馨提示

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

评论

0/150

提交评论