




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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文档提交
2、清单. 11源码提交清单. 11附件 : 28程序流程图 . 283欢迎。下载第一章 项目概述学生信息管理系统( Student Information Management System ) , 以下简 称SIMS是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的 管理信息系统(ManagementInformation System)。它是一个教育单位不可缺少 的部分, 它的内容对于学校的决策者和管理者来说都至关重要 ,它能够为用户提 供充足的信息和快捷的查询手段。 能有效的帮助学校和老师掌握学生的情况, 为 学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存
3、在着较多的缺点,如:效率 底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护 等。诸如这些情况, 令学校管理者对学生的信息管理带来了很大困难, 严重影响 了教育工作者的工作效率。随着科学技术的不断提高 , 计算机科学日渐成熟 , 使 用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管 理,其强大的功能已为人们深刻认识 , 它已进入人类社会的各个领域并发挥着越 来越重要的作用。作为计算机应用的一部分, 使用计算机对学生信息进行管理 ,具有着手工管理所无法比拟的优点。 这些优点能够极大地提高学生信息管理的效 率, 也是学校的科学化、正规化管理的重要条件。用计算
4、机制作的学校信息管理 系统还可以通过功能强大的互联网及时的向学生的家长传递该生在校的最新成 绩,有助于学校与家长的信息互动, 为更好地把握学校的教育方针一定的促进作 用。因此,开发这样一套管理软件成为很有必要的事情。1.1 项目背景随着信息技术在管理上越来越深入而广泛的应用, 管理信息系统的实施在技 术上已逐步成熟。 管理信息系统是一个不断发展的新型学科, 任何一个单位要生 存要发展, 要高效率地把内部活动有机地组织起来, 就必须建立与自身特点相适 应的管理信息系统。目前信息处理技术的飞速发展 , 基于计算机网络的信息处理已成为人们日 常工作 , 学习和生活必备系统 ?在 Internet 飞
5、速发展的今天 , 互联网已成为人们 快速获取 ,发布和传递信息的重要渠道 , 它已成为社会生活的一部分 ?学生信息处 理的电脑化 ?网络化, 是实现学校管理现代化和信息化的重要内容 , 也是方便用户 快捷查询相关充足信息的重要工具 ?与传统学生信息处理模式相比 , 基于网络的 学生管理系统具有无可比拟的优越性 ?因此开发一套有关学校的信息管理系统不仅能大大提高工作效率而且还能 给师生的工作学习带来极大的便利。1.2 相关文档1学生管理系统软件测试方案 2学生管理系统软件测试用例1.3 参考资料软件测试从入门到精通 软测之魂:核心测试设计精解 软件测试与测试技术精品文档5欢迎下载1.4部分系统截
6、图生数目 学分科 - 2 5 8生码序 蚩龍 索g H I! 2 6 9添加成功宇按任意键返回主菜单7-添加科目请作出选择胡敎据库中有叹下科目:1”马克思量子花电路R曩变3.1筑物理5.固电丄謙线代n-#W.语文丄煮近代史込信号21-工程制图请输人和-目的选项丐=i思修 眈电工实习诃概率论辭.军事理论汕-单片机24毛概-数据库精品文档7欢迎。下载1.5系统结构图第二章 验收定义2.1 验收策略由开发方提供被验收内容、验收文档,由监理公司与用户进行评审,在评审无误的情况下,确认通过验收。2.2 验收依据软件测试验收准则2.3 验收环境学生管理系统软件实际运行的生产环境为验收环境。硬件平台计算机软
7、件平台Window操作系统: window xp、window7、window82.4 验收标准2.4.1 项目验收原则1、审查提供验收的各类文档的正确性、完整性和统一性,审查文档是否齐全、合理;2、审查项目功能是否达到了合同规定的要求;3、审查项目有关服务指标是否达到了合同的要求;4、审查项目投资以及实施进度的情况;对项目的技术水平做出评价,并得出项目的验收结论。242验收流程本项目的验收采取项目验收流程的方式进行验收。具体流程如下图所示开发方与监理公司制定验收流程1r验收流程用户确认_ 用户确认是否通过?+开发方提供验收内容列表、验收文档1r监理公司、客户对验收内容、验收文档进行确认1 一
8、-r.=.验收内容、验收文档能否通过?h _ _项目验收、结束项目验收流程243系统功能标准严重程度描述A学生信息管理系统由于出现问题不能继续运转(崩溃) 学生信息管理系统的数据出现错误。B某项业务无法进行。学生信息管理系统产生数据错误。C学生信息管理系统中某一操作不能继续运转或错误,但不 影响业务的进行。(有替代办法)学生信息管理系统打印的凭证或流水不符合需求所提出的 标准。D其他学生信息管理系统在某种状态下产生的错误,不影响 正常功能。精品文档如果各模块验收测试结果如下表所述则视为验收合格,否则将进行修改,以进行再次验收评审。严重程度关系发生个数A=0BV =102.5验收范围用户以及监理
9、方进行验收确认。验收确认包括以下两方面确认内容:1. 参照验收标准确认合同所涉及的功能以及项目组的实施工作是否完成;2. 抽取客户端进行测试,确定系统能够稳定运行。2.6验收人员单位人员职责/任务联系方式/Email备注哈师大学生张紫娜组长第三章项目验收内容3.1实施工作验收工作阶段工作内容工作是否完成需求调研通过与用户的沟通,根据项目实际情 况编写提交需求说明书、概要设 计、详细设计。完成 未完成系统开发根据概要设计内容,完成详细 设计并根据详细设计开发系统 和测试。每周提交项目进度及情况报 告、测试报告。完成 未完成系统安装安装产品,对系统进行部署。完成 未完成用户培训编写用户使用手册,对
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学生管理系统软件测试用例源码提交清单源程序清单(仅给出核心代码部分)typedef char bool;#defi ne FILEPATHc:stui nfo.dat#defi ne INFOPATHc:test.txt#defi ne MAXSPACECOUNT10/系
12、统所记录的最大冗余块数#defi ne MAXSUBCOUNT20/系统所允许存储的最多科目数#defi ne RANDSTUCOUNT100/系统将自动产生的学生个数#defi ne RANDSUBCOUNT20/系统将自动产生的科目个数#defi ne BUFSIZE20/字符缓冲区大小13欢迎下载精品文档#define SHOWMAX6/ 屏幕最大显示的科目数#define TRUE1#define FALSE0#define READ0x81#define WRITE0x82#define SEARCH_SCHID0x83/ 通过学生的学号进行搜索#define SEARCH_NAME
13、0x85/通过学生的姓名进行搜索#define SEARCH_SUB0x86/ 通过学科的名称进行搜索#define SHOW_PRIV0x87/ 显示单个学生的个人信息#define SHOW_PERMARK0x89/显示单个学生的个人成绩#define SHOW_ALLMARK0x90/显示所有学生的某科成绩#define SORT_DECLINE0x92/ 以降序排列#define SORT_INCLINE0x93/ 以升序排列#define ALPHAWORD0x94/ 以字母构成的字符串 ( 用于随机产生学生的姓名#define NUMBERWORD0x95/以数字构成的字符串 (
14、用于随机产生学号#define ADDSUB0x96/ 科目编辑模式为添加#define EDITSUB0x97/ 科目编辑模式为修改#define BIGNUMBER0x0ffffff/ 系统延迟采用的循环中的大数#define LONGSIZEsizeof(long)#define INTSIZEsizeof(int)#define LINKSIZEsizeof(link)#define STUINFOSIZEsizeof(stuinfo)27欢。迎下载#define SUBINFOSIZEsizeof(subinfo)#define TCHINFOSIZEsizeof(tchinfo)#
15、define SUBMARKSIZE#define FILEINFOSIZE#define MYSTUSIZE#define DATASEEK#define DATATRANSsizeof(submark) sizeof(fileinfo) sizeof(mystu) (FILEINFOSIZE+LONGSIZE) (STUINFOSIZE+LONGSIZE)#define SETERR(S)回#define NEW(I)typedef struct _submarkinfo boolflag;intsub_id;double sub_mark;submark,*psubmark;/ 科目成绩
16、信息显示出错信息并返开辟新的内存空间printf(S);return FALSE;/(I*)malloc(sizeof(I)/flag=0 表该块无效/ 科目的 id 号/ 该科目的成绩typedef struct _stucharstu_name20;/ 学生姓名charstu_schid20;/ 学生学号intstu_sex;/ 学生性别 0=man 1=womancharstu_major20;/ 学生专业和班级 ( 电子 0606)mystu,*pmystu;/ 学生个人信息typedef struct _stuinfoboolflag;/flag=0 表该生作废intstu_sysi
17、d;/ 学生 id 号/ 系统将为每个学生产生唯一的ID 号mystustu_privacy;/ 学生个人信息longstu_seek;/ 在文件中的地址intstu_markcount;/ 已有的成绩数doublestu_avemark;/ 学生加权平均分submark stu_markMAXSUBCOUNT;/ 学生成绩数组stuinfo,*pstuinfo;/ 学生信息 ( 包括个人信息和系统信息 )typedef struct _subinfobool flag; intsub_id;intsub_term;double sub_rate;char sub_name20; subinf
18、o,*psubinfo;/ 科目信息typedef struct _fileinfointstucount;intcountmax;intspacecount;long/flag=0 表该块无效/ 科目的 id 号/ 科目开课的学期/ 科目所占的学分/ 科目名称/ 已注册的学生人数/ 最大学生数 , 用于产生 id/ 文件冗余块数seekMAXSPACECOUNT;/文件冗余块在文件中的地址intsubcount;/ 已注册的科目的个数subinfo subMAXSUBCOUNT;/ 科目信息数组 fileinfo,*pfileinfo;/ 学生信息文件头typedef struct _lin
19、kdouble 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; memcpy(myerr,err,n); printf(nn%snn,err);exit(0);/* 本函数用于清理所有全局变量 包括文件指针和全局结构体指针 */ void fre
20、eparam()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)if(!fp)fp=fopen(FILEPATH,rb+); if(!fp)initfile();rewind(fp);fseek(fp,seek,SEEK_SET);if(!pda
21、ta)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 initfile()if(!fp)fp=fopen(FILEPATH,wb+);if(!myfileinfo)myfileinfo=NEW(fileinfo); memset(myfileinf
22、o,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(newstuinfo-stu_schid,SEARCH_SCHID) seterr(addstu:database schid collision);if(!myfileinfo
23、)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)myfileinfo-seekspacecount=0;myfileinfo-spacecount-;else myfileinfo-seekspacecount+=DATA
24、TRANS;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-countmax+1;for(i=0;istu_marki.sub_id=i+1;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo
25、-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,myfileinfo,FILEINFOSIZE);if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE
26、);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 count=myfileinfo-spacecount;if(countseekcount=delstuseek;else myfileinfo-spacecount-;
27、 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); fcntl(editstuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(editstu:edi
28、tstu 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(editstuseek,WRITE,mystuinfo,STUINFOSIZE);/ 添加新的学科的核心函数void addsub(psubinfo newsub)if(!newsub)se
29、terr(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 sub collision);if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFO
30、SIZE);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,SUBINFOSIZE); break;if(i=MAXSUBCOUNT)seterr(addsub:subject all in use);myfileinfo-subco
31、unt+;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(myfileinfo-subcountsub+subid-1; if(!subtemp-flag)seterr(delsub:flag invalid); subtemp
32、-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,mystuinfo,STUINFOSIZE);if(!mystuinfo-flag)i-;continue;marktemp=mystuinfo-stu_mark+subid-1;
33、if(marktemp-flag)memset(marktemp,0,SUBMARKSIZE); mystuinfo-stu_markcount-;else continue;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE); makeavemark(seek);/ 编辑一个已经存在的学科的核心函数void editsub(psubinfo newsub)if(!newsub) seterr(editsub:newsub null);if(!newsub-flag)seterr(editsub:newsub invalid); int subid=newsub-s
34、ub_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);int size=strlen(newsub-sub_name);if(size=20)newsub-sub_name19=0;if(!myfileinfo)myfileinfo=NEW(fileinfo);fc
35、ntl(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:database sub collision);newsub-flag=1;psubinfo subtemp=myfileinfo-sub+subid-1; memcpy(subtemp,newsub,SUBINFOS
36、IZE); 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);/ 编辑某学生某科目的核心函数void editmark(psubmark newmark,long stuseek)if(!newmark|!stuseek)seterr(addmark:parameter null);int su
37、bid=newmark-sub_id;if(subidMAXSUBCOUNT|!subid)seterr(editmark:subid invalid);double mark=newmark-sub_mark; if(mark100)seterr(editmark:submark invalid); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); fcntl(stuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(editmark
38、: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,SUBMARKSIZE); if(!flag1&flag2)mystuinfo-stu_markcount+; if(flag1&!flag2)mystuinfo-stu_markcount-; fcntl(stuseek,WRIT
39、E,mystuinfo,STUINFOSIZE); makeavemark(stuseek);/ 计算某学生的加权分数的核心函数 void makeavemark(long stuseek)if(!stuseek)seterr(makeavemark:parameter null); if(!mystuinfo)mystuinfo=NEW(stuinfo); memset(mystuinfo,0,STUINFOSIZE); fcntl(stuseek,READ,mystuinfo,STUINFOSIZE); if(!mystuinfo-flag)seterr(makeavemark:param
40、eter 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.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 助理广告师职业能力结构与市场需求的关系探讨试题及答案
- 检验员在质量风险控制中的作用试题及答案
- 月考试题大全及答案
- 环境与可持续性纺织设计师试题及答案
- 中级面点考试题及答案
- 农大附中数学试题及答案
- 广告设计师考试创意理念的实际运用试题及答案
- php上机面试题及答案
- 2024年纺织设计师实务操作需求试题及答案
- 成功备考的窍门2024国际商业美术设计师试题及答案
- 乙烯高压气相本体聚合制备低密度聚乙烯的合成工艺
- HAY-胜任素质模型构建与应用完整版
- 医院硬式内镜清洗消毒技术规范(2019年版)
- DB23T 3104-2022 油田含油污泥处置与利用污染控制要求
- 精选芭蕾舞男女演员之间的潜规则汇总
- fevr的治疗进展专题知识讲座
- 《中华传统文化》第11课戏曲-教学教案
- 机械基础章节练习题集题库带答案
- 塔式起重机大臂减臂使用的受力分析和计算
- 生物大分子晶体学基础(I)2016
- 申请增值电信业务经营许可证材料范本说明书
评论
0/150
提交评论