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

下载本文档

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

文档简介

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源码提交清单

2、11附件 : 28程序流程图 28最新可编辑 word 文档第一章 项目概述学生信息管理系统( Student Information Management System ) , 以下简 称SIMS是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的 管理信息系统(ManagementInformation System)。它是一个教育单位不可缺少 的部分, 它的内容对于学校的决策者和管理者来说都至关重要 ,它能够为用户提 供充足的信息和快捷的查询手段。 能有效的帮助学校和老师掌握学生的情况, 为 学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如

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

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

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

6、2 5 8生嘗 学分科 加示加 添显添4 7最新可编辑word文档请作岀选择汀舉逆环迦硒的讐记录:嘯入辜号2;社数t=女m添加成功?按任意键返回主菜单生码序 嘗程 暑-B 3 6 9生数目 学分科 鬲扁0B w 2 5 8生数目 学分科 加示加 添显添请作出选择=8跳扌屠库中有以下科目;马克思2-电路3.14az5.固电量子R复变氛物理9 -微积吩伽.线代丄丄-体育丄篁英语13 -语文丄4上语言丄5.近代史込信号思修18.概率论皆单片机2孔数据库21 -工程制图駝电工实习酹.军事理论24毛概1.5系统结构图最新可编辑 word 文档第二章 验收定义2.1 验收策略由开发方提供被验收内容、验收文

7、档,由监理公司与用户进行评审,在评审 无误的情况下,确认通过验收。2.2 验收依据软件测试验收准则2.3 验收环境学生管理系统软件实际运行的生产环境为验收环境。硬件平台计算机软件平台Window操作系统: window xp、window7、window82.4 验收标准2.4.1 项目验收原则1、审查提供验收的各类文档的正确性、完整性和统一性,审查文档是否齐全、合理;2、审查项目功能是否达到了合同规定的要求;3、审查项目有关服务指标是否达到了合同的要求;4、审查项目投资以及实施进度的情况;对项目的技术水平做出评价,并得出项目的验收结论。242验收流程本项目的验收采取项目验收流程的方式进行验收

8、。具体流程如下图所示开发方与监理公司制定验收流程1T验收流程用户确认r用户确认是否通过?1r开发方提供验收内容列表、验收文档1r监理公司、客户对验收内容、验收文档进行确认亠匸验收内容、验收文档能1r-_ _扌否通过?r项目验收、结束)项目验收流程243系统功能标准严重程度描述A学生信息管理系统由于出现问题不能继续运转(崩溃) 学生信息管理系统的数据出现错误。B某项业务无法进行。学生信息管理系统产生数据错误。C学生信息管理系统中某一操作不能继续运转或错误,但不 影响业务的进行。(有替代办法)学生信息管理系统打印的凭证或流水不符合需求所提出的 标准。D其他学生信息管理系统在某种状态下产生的错误,不

9、影响 正常功能。如果各模块验收测试结果如下表所述则视为验收合格,否则将进行修改,以进行再次验收评审。严重程度关系发生个数A=0BV =102.5验收范围用户以及监理方进行验收确认。验收确认包括以下两方面确认内容:1. 参照验收标准确认合同所涉及的功能以及项目组的实施工作是否完成;2. 抽取客户端进行测试,确定系统能够稳定运行。2.6验收人员单位人员职责/任务联系方式/Email备注哈师大学生张紫娜组长第三章项目验收内容3.1实施工作验收工作阶段工作内容工作是否完成需求调研通过与用户的沟通,根据项目实际情 况编写提交需求说明书、概要设 计、详细设计。完成 未完成系统开发根据概要设计内容,完成详细

10、 设计并根据详细设计开发系统 和测试。每周提交项目进度及情况报 告、测试报告。完成 未完成系统安装安装产品,对系统进行部署。完成 未完成用户培训编写用户使用手册,对用户进行使用 培训。完成 未完成系统运行跟踪监控系统运行。对使用中发现的 问题进行记录和评估,在不影响系统 结构的情况下对发现的冋题进行修 正。完成 未完成3.2软件平台验收单验收人:张紫娜验收时间:序 号软件类型软件名称验收结果备注1系统软件学生管理系统完成3.3功能模块验收单序 号功能模块验收内容合同要求验收结果1登录验证能否正常登陆必须实现合格2密码模块能否修改密码必须实现合格3学生模块正常实现添加修改功 能可以有差错合格4课

11、程模块正常实现添加修改功 能必须实现合格5成绩模块正常实现添加修改功 能必须实现合格6退出模块正常退出系统必须实现合格3.4项目文档验收单序 号文档名称用途验收结果备注1软件需求分析分析软件的需求,为后续的工作合格2软件测试用例对以实现的软件进行测试合格3.5运行结果验收系统运行内容是否符合要求a.软件登录符合b.软件测试符合C.软件查询符合d.软件修改符合e.软件退出符合第四章验收结论经过严格的测试本软件达到要求标准,符合验收要求第五章交付物清单文档提交清单1学生管理系统软件测试方案2学生管理系统软件测试用例源码提交清单源程序清单(仅给出核心代码部分)typedef char bool;#d

12、efi ne FILEPATHc:stui nfo.dat#defi ne INFOPATHc:test.txt#defi ne MAXSPACECOUNT10/系统所记录的最大冗余块数#defi ne MAXSUBCOUNT20/系统所允许存储的最多科目数#defi ne RANDSTUCOUNT100/系统将自动产生的学生个数#defi ne RANDSUBCOUNT20/系统将自动产生的科目个数#defi ne BUFSIZE20/字符缓冲区大小最新可编辑word文档#define SHOWMAX6/屏幕最大显示的科目数#define TRUE1#define FALSE0#define

13、 READ0x81#define WRITE0x82#define SEARCH_SCHID0x83/通过学生的学号进行搜索#define SEARCH_NAME0x85/通过学生的姓名进行搜索#define SEARCH_SUB0x86/通过学科的名称进行搜索#define SHOW_PRIV0x87/显示单个学生的个人信息#define SHOW_PERMARK0x89/显示单个学生的个人成绩#define SHOW_ALLMARK 0x90/显示所有学生的某科成绩#define SORT_DECLINE0x92/以降序排列#define SORT_INCLINE0x93/以升序排列#de

14、fine ALPHAWORD0x94/以字母构成的字符串 (用于随机产生学生的姓名#define NUMBERWORD0x95/以数字构成的字符串 (用于随机产生学号#define ADDSUB0x96/科目编辑模式为添加#define EDITSUB0x97/科目编辑模式为修改#define BIGNUMBER0x0ffffff/系统延迟采用的循环中的大数#define LONGSIZEsizeof(long)#define INTSIZEsizeof(int)#define LINKSIZEsizeof(link)最新可编辑 word 文档#define STUINFOSIZE #defi

15、ne SUBINFOSIZE #define TCHINFOSIZE #define SUBMARKSIZE #define FILEINFOSIZE #define MYSTUSIZE #define DATASEEKsizeof(stuinfo) sizeof(subinfo)sizeof(tchinfo)sizeof(submark)sizeof(fileinfo)sizeof(mystu)(FILEINFOSIZE+LONGSIZE)#define DATATRANS(STUINFOSIZE+LONGSIZE)/显示出错信息并返回/开辟新的内存空间#define SETERR(S)#d

16、efine NEW(I)typedef struct _submarkinfo bool flag;int sub_id;double sub_mark;submark,*psubmark;/科目成绩信息printf(S);return FALSE;(I*)malloc(sizeof(I)/flag=0 表该块无效/ 科目的 id 号/该科目的成绩typedef struct _stucharstu_name20; / 学生姓名charstu_schid20; / 学生学号int stu_sex;/ 学生性别 0=man 1=womanchar stu_major20; /学生专业和班级 (电

17、子 0606) mystu,*pmystu;/学生个人信息 typedef struct _stuinfobool flag;/flag=0 表该生作废int stu_sysid;/ 学生 id 号/学生个人信息/在文件中的地址/已有的成绩数/学生加权平均分/系统将为每个学生产生唯一的 ID 号mystu stu_privacy; long stu_seek; int stu_markcount; double stu_avemark;submark stu_markMAXSUBCOUNT;/ 学生成绩数组stuinfo,*pstuinfo;/ 学生信息 (包括个人信息和系统信息 ) type

18、def struct _subinfobool flag;/flag=0 表该块无效int sub_id;/ 科目的 id 号int sub_term;/科目开课的学期double sub_rate;/科目所占的学分char sub_name20;/ 科目名称subinfo,*psubinfo;/科目信息 typedef struct _fileinfoint stucount;/ 已注册的学生人数int countmax;/ 最大学生数 ,用于产生 idint spacecount;/ 文件冗余块数long seekMAXSPACECOUNT;/ 文件冗余块在文件中的地址int subcou

19、nt;/ 已注册的科目的个数subinfo subMAXSUBCOUNT;/ 科目信息数组fileinfo,*pfileinfo;/学生信息文件头 typedef struct _linkdouble mark; long stuseek;struct _link* next;link,*plink;/该结构体用于产生链表 /链表用于对成绩排序之用核心功能函数: /本函数设置系统错误,并终止程序 void seterr(char*err) memset(void*)myerr,0,errnosize); int n=strlen(err);if(nerrnosize-1)n=errnosize

20、; memcpy(myerr,err,n); printf(nn%snn,err);exit(0);/*本函数用于清理所有全局变量 包括文件指针和全局结构体指针 */ void freeparam()if(fp)fclose(fp);fp=NULL; if(myfileinfo)free(myfileinfo); myfileinfo=NULL;if(mystuinfo)free(mystuinfo); mystuinfo=NULL;/本函数用于对文件进行操作,将常用的文件操作集于一身 void fcntl(long seek,int cntlmode,void *pdata,int size

21、)if(!fp)fp=fopen(FILEPATH,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,size,1,fp);break;default:seterr(fcntl:cntlmode invalid);/初始化数据库void initfil

22、e()if(!fp)fp=fopen(FILEPATH,wb+);if(!myfileinfo)myfileinfo=NEW(fileinfo);memset(myfileinfo,0,FILEINFOSIZE);myfileinfo-seek0=DATASEEK;int i=0;for(;isubi.sub_id=i+1;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/添加学生的核心函数 void addstu(pmystu newstuinfo)if(!newstuinfo)seterr(addstu:newstuinfo null);if(search(n

23、ewstuinfo-stu_schid,SEARCH_SCHID) seterr(addstu:database schid collision);if(!myfileinfo)myfileinfo=NEW(fileinfo); fcntl(0,READ,myfileinfo,FILEINFOSIZE);int spacecount=myfileinfo-spacecount;if(spacecount=MAXSPACECOUNT)seterr(addstu:parameter invalid);long seek=myfileinfo-seekspacecount;if(spacecount

24、)myfileinfo-seekspacecount=0;myfileinfo-spacecount-;else myfileinfo-seekspacecount+=DATATRANS;if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);memcpy(&(mystuinfo-stu_privacy),newstuinfo,MYSTUSIZE);mystuinfo-stu_seek=seek;mystuinfo-flag=1;int i;mystuinfo-stu_sysid=myfileinfo-count

25、max+1;for(i=0;istu_marki.sub_id=i+1;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo-stucount+;myfileinfo-countmax+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/删除学生的核心函数void delstu(long delstuseek)if(!delstuseek)seterr(delstu:parameter zero);if(!myfileinfo)myfileinfo=NEW(fileinfo); fcntl(0,READ,myfile

26、info,FILEINFOSIZE);if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); fcntl(delstuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(delstu:parameter invalid); mystuinfo-flag=0;fcntl(delstuseek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo-stucount-;myfileinfo-spacecount+;int

27、count=myfileinfo-spacecount; if(countseekcount=delstuseek;else myfileinfo-spacecount-; fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/编辑一个已存在学生的核心函数void editstu(long editstuseek,pmystu tempstu)if(!tempstu)seterr(editstu:parameter null); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE);

28、 fcntl(editstuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(editstu:editstu invalid);plink linkhead=search(tempstu-stu_schid,SEARCH_SCHID); if(linkhead&linkhead-data-editstuseek) seterr(editstu:database schid collision);memcpy(&mystuinfo-stu_privacy,tempstu,MYSTUSIZE); fcntl(editstusee

29、k,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_ratesub_rate6) seterr(addsub:parameter invalid);if(search(newsub-sub_name,SEARCH_SUB) seterr(addsub:database su

30、b collision);if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);int subcount=myfileinfo-subcount;if(subcount=MAXSUBCOUNT)seterr(addsub:subject full);psubinfo psubtemp=myfileinfo-sub;newsub-flag=1;int i;for(i=0;iflag) newsub-sub_id=psubtemp-sub_id; memcpy(psubtemp,newsub,SU

31、BINFOSIZE); break;if(i=MAXSUBCOUNT)seterr(addsub:subject all in use);myfileinfo-subcount+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/删除一个已经存在学科的核心函数 void delsub(int subid)if(subidMAXSUBCOUNT)seterr(delsub:subid invalid);if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE); if(m

32、yfileinfo-subcountsub+subid-1; if(!subtemp-flag)seterr(delsub:flag invalid); subtemp-flag=0;myfileinfo-subcount-; fcntl(0,WRITE,myfileinfo,FILEINFOSIZE); if(!mystuinfo)mystuinfo=NEW(stuinfo); long seek=DATASEEK;int i;psubmark marktemp=NULL; for(i=0;istucount;i+,seek+=DATATRANS) fcntl(seek,READ,mystu

33、info,STUINFOSIZE); if(!mystuinfo-flag)i-;continue; marktemp=mystuinfo-stu_mark+subid-1; if(marktemp-flag) memset(marktemp,0,SUBMARKSIZE); mystuinfo-stu_markcount-;最新可编辑 word 文档else continue;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE); makeavemark(seek);/编辑一个已经存在的学科的核心函数void editsub(psubinfo newsub)if(!n

34、ewsub)seterr(editsub:newsub null); if(!newsub-flag)seterr(editsub:newsub invalid); int subid=newsub-sub_id; if(subidMAXSUBCOUNT) seterr(editsub:subid invalid); int term=newsub-sub_term; if(term8)seterr(editsub:subterm invalid); double rate=newsub-sub_rate; if(rate6)seterr(editsub:subrate invalid); i

35、nt size=strlen(newsub-sub_name); if(size=20)newsub-sub_name19=0; if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);plink linkhead=search(newsub-sub_name,SEARCH_SUB); if(linkhead&linkhead-next)seterr(editsub:search invalid);if(linkhead&linkhead-data-subid)seterr(editsub:da

36、tabase sub collision);newsub-flag=1;psubinfo subtemp=myfileinfo-sub+subid-1;memcpy(subtemp,newsub,SUBINFOSIZE);fcntl(0,WRITE,myfileinfo,FILEINFOSIZE); if(!mystuinfo)mystuinfo=NEW(stuinfo);int count=myfileinfo-stucount;int i;long seek=DATASEEK;for(i=0;iflag)i-;continue; makeavemark(seek);/编辑某学生某科目的核心

37、函数void editmark(psubmark newmark,long stuseek)if(!newmark|!stuseek)seterr(addmark:parameter null);int subid=newmark-sub_id;if(subidMAXSUBCOUNT|!subid)seterr(editmark:subid invalid);double mark=newmark-sub_mark;最新可编辑 word 文档if(mark100)seterr(editmark:submark invalid);if(!mystuinfo)mystuinfo=NEW(stuin

38、fo);memset(mystuinfo,0,STUINFOSIZE); fcntl(stuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(editmark:student invalid);psubmark marktemp=mystuinfo-stu_mark+subid-1; int flag1=marktemp-flag,flag2=newmark-flag; if(!flag1&!flag2)seterr(editmark:markflag invalid); memcpy(marktemp,newmark,SU

39、BMARKSIZE); if(!flag1&flag2)mystuinfo-stu_markcount+; if(flag1&!flag2)mystuinfo-stu_markcount-; fcntl(stuseek,WRITE,mystuinfo,STUINFOSIZE); makeavemark(stuseek);/计算某学生的加权分数的核心函数void makeavemark(long stuseek)if(!stuseek)seterr(makeavemark:parameter null); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(

40、mystuinfo,0,STUINFOSIZE); fcntl(stuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo-flag)seterr(makeavemark:parameter invalid); if(!myfileinfo)myfileinfo=NEW(fileinfo); fcntl(0,READ,myfileinfo,FILEINFOSIZE);int subcount=myfileinfo-subcount; if(!subcount|!mystuinfo-stu_markcount) mystuinfo-stu_avemark=0; fcntl(mystuinfo-stu_seek,WRITE,mystuinfo,STUINFOSIZE); return;psubinfo subtemp=myfileinfo-sub; psubmark marktemp=mystuinfo-stu_mark;int i;double marksum=0.0,rate,ratesum=0.0;

温馨提示

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

评论

0/150

提交评论