1、软件验收报告学生管理系统软件 验收报告第一章 项目概述学生信息管理系统(Student Information Management System),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。4ehJL。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产
2、生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟, 使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理的重要条件。用计算机制作的学校信息管理系统还可以通过功能强大的互联网及时的向学生的家长传递该生在校的最新
3、成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用。因此,开发这样一套管理软件成为很有必要的事情。doFlP。1.1项目背景随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。onBAv。目前信息处理技术的飞速发展,基于计算机网络的信息处理已成为人们日常工作,学习和生活必备系统在Internet飞速发展的今天,互联网已成为人们快速获取,发布和传递信息的重要渠道,它已成为社会生活的一部分学生信息处理的电
4、脑化网络化,是实现学校管理现代化和信息化的重要内容,也是方便用户快捷查询相关充足信息的重要工具与传统学生信息处理模式相比,基于网络的学生管理系统具有无可比拟的优越性nFdh2。因此开发一套有关学校的信息管理系统不仅能大大提高工作效率而且还能给师生的工作学习带来极大的便利。1.2相关文档1学生管理系统软件测试方案2学生管理系统软件测试用例1.3参考资料软件测试从入门到精通软测之魂:核心测试设计精解软件测试与测试技术1.4部分系统截图1.5系统结构图第二章 验收定义2.1验收策略由开发方提供被验收内容、验收文档,由监理公司与用户进行评审,在评审无误的情况下,确认通过验收。2.2验收依据软件测试验收
5、准则2.3验收环境学生管理系统软件实际运行的生产环境为验收环境。 硬件平台 计算机 软件平台Window操作系统:window xp、window7、window82.4验收标准2.4.1项目验收原则1、 审查提供验收的各类文档的正确性、完整性和统一性,审查文档是否齐全、合理;2、 审查项目功能是否达到了合同规定的要求;3、 审查项目有关服务指标是否达到了合同的要求;4、 审查项目投资以及实施进度的情况;对项目的技术水平做出评价,并得出项目的验收结论。2.4.2验收流程本项目的验收采取项目验收流程的方式进行验收。具体流程如下图所示。 2.4.3系统功能标准严重程度 描 述A学生信息管理系统由于
6、出现问题不能继续运转(崩溃)学生信息管理系统的数据出现错误。B某项业务无法进行。学生信息管理系统产生数据错误。C学生信息管理系统中某一操作不能继续运转或错误,但不影响业务的进行。(有替代办法)学生信息管理系统打印的凭证或流水不符合需求所提出的标准。D其他学生信息管理系统在某种状态下产生的错误,不影响正常功能。如果各模块验收测试结果如下表所述则视为验收合格,否则将进行修改,以进行再次验收评审。严重程度关系发生个数A=0B =102.5验收范围用户以及监理方进行验收确认。验收确认包括以下两方面确认内容:1 参照验收标准确认合同所涉及的功能以及项目组的实施工作是否完成;2 抽取客户端进行测试,确定系
7、统能够稳定运行。2.6验收人员单位人员职责/任务联系方式/Email备注哈师大学生张紫娜组长第三章 项目验收内容3.1实施工作验收工作阶段工作内容工作是否完成需求调研通过与用户的沟通,根据项目实际情况编写提交需求说明书、概要设计、详细设计。完成 未完成系统开发根据概要设计内容,完成详细设计并根据详细设计开发系统和测试。每周提交项目进度及情况报告、测试报告。完成 未完成系统安装安装产品,对系统进行部署。完成 未完成用户培训编写用户使用手册,对用户进行使用培训。完成 未完成系统运行跟踪监控系统运行。对使用中发现的问题进行记录和评估,在不影响系统结构的情况下对发现的问题进行修正。完成 未完成3.2软
8、件平台验收单验收人:张紫娜验收时间:序号软件类型软件名称验收结果备注1系统软件学生管理系统完成3.3功能模块验收单序号功能模块验收内容合同要求验收结果1登录验证能否正常登陆必须实现合格2密码模块能否修改密码必须实现合格3学生模块正常实现添加修改功能可以有差错合格4课程模块正常实现添加修改功能必须实现合格5成绩模块正常实现添加修改功能必须实现合格6退出模块正常退出系统必须实现合格3.4项目文档验收单序号文档名称用 途验收结果备注1软件需求分析分析软件的需求,为后续的工作合格2软件测试用例对以实现的软件进行测试合格3.5运行结果验收系统运行内容是否符合要求a.软件登录符合b.软件测试符合C软件查询
9、符合d.软件修改符合e.软件退出符合第四章 验收结论经过严格的测试本软件达到要求标准,符合验收要求。第五章 交付物清单文档提交清单1学生管理系统软件测试方案2学生管理系统软件测试用例源码提交清单源程序清单(仅给出核心代码部分)typedef char bool;#define c:stuinfo.dat#define INFOPATH c:test.txt#define MAXSPACECOUNT 10 /系统所记录的最大冗余块数#define MAXSUBCOUNT 20 /系统所允许存储的最多科目数#define RANDSTUCOUNT 100 /系统将自动产生的学生个数#define
10、RANDSUBCOUNT 20 /系统将自动产生的科目个数#define BUFSIZE 20 /字符缓冲区大小#define SHOWMAX 6 /屏幕最大显示的科目数#define TRUE 1 #define FALSE 0#define READ 0x81#define WRITE 0x82#define SEARCH_SCHID 0x83 /通过学生的学号进行搜索#define SEARCH_NAME 0x85 /通过学生的姓名进行搜索#define SEARCH_SUB 0x86 /通过学科的名称进行搜索#define SHOW_PRIV 0x87 /显示单个学生的个人信息#def
11、ine SHOW_PERMARK 0x89 /显示单个学生的个人成绩#define SHOW_ALLMARK 0x90 /显示所有学生的某科成绩#define SORT_DECLINE 0x92 /以降序排列#define SORT_INCLINE 0x93 /以升序排列#define ALPHAWORD 0x94 /以字母构成的字符串(用于随机产生学生的姓名#define NUMBERWORD 0x95 /以数字构成的字符串(用于随机产生学号#define ADDSUB 0x96 /科目编辑模式为添加#define EDITSUB 0x97 /科目编辑模式为修改#define BIGNUMB
12、ER 0x0ffffff /系统延迟采用的循环中的大数#define LONGSIZE sizeof(long)#define INTSIZE sizeof(int)#define LINKSIZE sizeof(link)#define STUINFOSIZE sizeof(stuinfo)#define SUBINFOSIZE sizeof(subinfo)#define TCHINFOSIZE sizeof(tchinfo)#define SUBMARKSIZE sizeof(submark)#define sizeof()#define MYSTUSIZE sizeof(mystu)#
13、define DATASEEK ()#define DATATRANS (STUINFOSIZE+LONGSIZE)#define SETERR(S) printf(S);return FALSE; /显示出错信息并返回b7q0t。#define NEW(I) (I*)malloc(sizeof(I) /开辟新的内存空间Udoup。typedef struct _submarkinfo bool flag; /flag=0表该块无效 int sub_id; /科目的id号 double sub_mark; /该科目的成绩submark,*psubmark;/科目成绩信息typedef stru
14、ct _stu char stu_name20; /学生姓名 char stu_schid20; /学生学号 int stu_sex; /学生性别 0=man 1=woman char stu_major20; /学生专业和班级(电子0606)mystu,*pmystu;/学生个人信息typedef struct _stuinfo bool flag; /flag=0表该生作废 int stu_sysid; /学生id号 /系统将为每个学生产生唯一的ID号 mystu stu_privacy; /学生个人信息 long stu_seek; /在文件中的地址 int stu_markcount;
15、 /已有的成绩数 double stu_avemark; /学生加权平均分 submark stu_markMAXSUBCOUNT;/学生成绩数组stuinfo,*pstuinfo;/学生信息(包括个人信息和系统信息)typedef struct _subinfo bool flag; /flag=0表该块无效 int sub_id; /科目的id号 int sub_term; /科目开课的学期 double sub_rate; /科目所占的学分 char sub_name20; /科目名称subinfo,*psubinfo;/科目信息typedef struct _ int stucount
16、; /已注册的学生人数 int countmax; /最大学生数,用于产生id int spacecount; /文件冗余块数 long seekMAXSPACECOUNT;/文件冗余块在文件中的地址 int subcount; /已注册的科目的个数 subinfo subMAXSUBCOUNT;/科目信息数组,*p;/学生信息文件头typedef struct _link double mark; long stuseek; struct _link* next;link,*plink;/该结构体用于产生链表/链表用于对成绩排序之用核心功能函数:/本函数设置系统错误,并终止程序void se
17、terr(char*err) memset(void*)myerr,0,errnosize); int n=strlen(err); if(nerrnosize-1) n=errnosize; memcpy(myerr,err,n); printf(nn%snn,err); exit(0);/*本函数用于清理所有全局变量包括文件指针和全局结构体指针*/void freeparam() if(fp)fclose(fp);fp=NULL; if(my)free(my); my; if(mystuinfo)free(mystuinfo); mystuinfo=NULL;/本函数用于对文件进行操作,将
18、常用的文件操作集于一身void fcntl(long seek,int cntlmode,void *pdata,int size)7kGPY。 if(!fp)fp=fopen(,rb+); if(!fp)initfile(); rewind(fp); fseek(fp,seek,SEEK_SET); if(!pdata)return; if(!size)seterr(fcntl:parameter not matched); switch(cntlmode) case READ: fread(pdata,size,1,fp); break; case WRITE: fwrite(pdata,
19、size,1,fp); break; default: seterr(fcntl:cntlmode invalid); /初始化数据库void initfile() if(!fp)fp=fopen(,wb+); if(!my) my(); memset(my); myseek0=DATASEEK; int i=0; for(;isubi.sub_id=i+1; fcntl(0,WRITE,my);/添加学生的核心函数void addstu(pmystu newstuinfo) if(!newstuinfo) seterr(addstu:newstuinfo null); if(search(n
20、ewstuinfo-stu_schid,SEARCH_SCHID) seterr(addstu:database schid collision); if(!my) my(); fcntl(0,READ,my); int spacecount=myspacecount; if(spacecount=MAXSPACECOUNT) seterr(addstu:parameter invalid); long seek=myseekspacecount; if(spacecount) myseekspacecount=0; myspacecount-; else myseekspacecount+=
21、DATATRANS; if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); memcpy(&(mystuinfo-stu_privacy),newstuinfo,MYSTUSIZE);nZ4wT。 mystuinfo-stu_seek=seek; mystuinfo-flag=1;int i; mystuinfo-stu_sysid=mycountmax+1; for(i=0;istu_marki.sub_id=i+1; fcntl(seek,WRITE,mystuinfo,STUINFOSIZE); my
22、stucount+; mycountmax+; fcntl(0,WRITE,my);/删除学生的核心函数void delstu(long delstuseek) if(!delstuseek)seterr(delstu:parameter zero); if(!my) my(); fcntl(0,READ,my); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); fcntl(delstuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seter
23、r(delstu:parameter invalid);TZbUa。 mystuinfo-flag=0; fcntl(delstuseek,WRITE,mystuinfo,STUINFOSIZE); mystucount-; myspacecount+; int count=myspacecount; if(countseekcount=delstuseek; else myspacecount-; fcntl(0,WRITE,my);/编辑一个已存在学生的核心函数void editstu(long editstuseek,pmystu tempstu) if(!tempstu)seterr(
24、editstu:parameter null); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); fcntl(editstuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag) seterr(editstu:editstu invalid); plink linkhead=search(tempstu-stu_schid,SEARCH_SCHID);CYLGF。 if(linkhead&linkhead-data-editstuseek) sete
25、rr(editstu:database schid collision); memcpy(&mystuinfo-stu_privacy,tempstu,MYSTUSIZE); fcntl(editstuseek,WRITE,mystuinfo,STUINFOSIZE);/添加新的学科的核心函数void addsub(psubinfo newsub) if(!newsub)seterr(addsub:parameter null); if(newsub-sub_termsub_term8) seterr(addsub:parameter invalid); if(newsub-sub_rates
26、ub_rate6) seterr(addsub:parameter invalid); if(search(newsub-sub_name,SEARCH_SUB) seterr(addsub:database sub collision); if(!my) my(); fcntl(0,READ,my); int subcount=mysubcount; if(subcount=MAXSUBCOUNT) seterr(addsub:subject full); psubinfo psubtemp=mysub; newsub-flag=1;int i; for(i=0;iflag) newsub-
27、sub_id=psubtemp-sub_id; memcpy(psubtemp,newsub,SUBINFOSIZE); break; if(i=MAXSUBCOUNT) seterr(addsub:subject all in use); mysubcount+; fcntl(0,WRITE,my);/删除一个已经存在学科的核心函数void delsub(int subid) if(subidMAXSUBCOUNT) seterr(delsub:subid invalid); if(!my) my(); fcntl(0,READ,my); if(mysubcountsub+subid-1; if(!subtemp-flag)seterr(delsub:flag invalid); subtemp-flag=0;mysubcount-; fcntl(0,WRITE,my); if(!mystuinfo)mystui
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1