軟件驗收報告資料_第1頁
軟件驗收報告資料_第2頁
軟件驗收報告資料_第3頁
軟件驗收報告資料_第4頁
軟件驗收報告資料_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學生管理系統(tǒng)軟件 驗收報告目錄第一章項目概述31.1項目背景41.2相關文檔41.3參考資料41.4部分系統(tǒng)截圖51.5系統(tǒng)結構圖6第二章驗收定義72.1驗收策略72.2驗收依據72.3驗收環(huán)境72.4驗收標準72.4.1項目驗收原則72.4.2驗收流程82.4.3系統(tǒng)功能標準82.5驗收范圍92.6驗收人員9第三章項目驗收內容93.1實施工作驗收93.2軟件平臺驗收單103.3功能模塊驗收單103.4項目文檔驗收單103.5運行結果驗收11第四章驗收結論11第五章交付物清單11文檔提交清單11源碼提交清單11附件:28程序流程圖28第一章 項目概述學生信息管理系統(tǒng)(Student Infor

2、mation Management System),以下簡稱SIMS,是針對學校人事處的大量業(yè)務處理工作而開發(fā)的管理軟件,是典型的管理信息系統(tǒng)(Management Information System)。它是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,它能夠為用戶提供充足的信息和快捷的查詢手段。能有效的幫助學校和老師掌握學生的情況,為學生提供成績跟課程方面的查詢。在傳統(tǒng)模式下利用人工進行學生信息管理,存在著較多的缺點,如:效率底,保密性差,時間一長將產生大量的文件和數據,更不便于查找,更新,維護等。諸如這些情況,令學校管理者對學生的信息管理帶來了很大困難,嚴重

3、影響了教育工作者的工作效率。隨著科學技術的不斷提高,計算機科學日漸成熟, 使用日趨成熟的計算機技術來代替?zhèn)鹘y(tǒng)的人工模式,來實現(xiàn)學生信息的現(xiàn)代化管理,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對學生信息進行管理,具有著手工管理所無法比擬的優(yōu)點。這些優(yōu)點能夠極大地提高學生信息管理的效率,也是學校的科學化、正規(guī)化管理的重要條件。用計算機制作的學校信息管理系統(tǒng)還可以通過功能強大的互聯(lián)網及時的向學生的家長傳遞該生在校的最新成績,有助于學校與家長的信息互動,為更好地把握學校的教育方針一定的促進作用。因此,開發(fā)這樣一套管理軟件成為很有

4、必要的事情。1.1項目背景隨著信息技術在管理上越來越深入而廣泛的應用,管理信息系統(tǒng)的實施在技術上已逐步成熟。管理信息系統(tǒng)是一個不斷發(fā)展的新型學科,任何一個單位要生存要發(fā)展,要高效率地把內部活動有機地組織起來,就必須建立與自身特點相適應的管理信息系統(tǒng)。目前信息處理技術的飛速發(fā)展,基于計算機網絡的信息處理已成為人們日常工作,學習和生活必備系統(tǒng)?在Internet飛速發(fā)展的今天,互聯(lián)網已成為人們快速獲取,發(fā)布和傳遞信息的重要渠道,它已成為社會生活的一部分?學生信息處理的電腦化?網絡化,是實現(xiàn)學校管理現(xiàn)代化和信息化的重要內容,也是方便用戶快捷查詢相關充足信息的重要工具?與傳統(tǒng)學生信息處理模式相比,基于

5、網絡的學生管理系統(tǒng)具有無可比擬的優(yōu)越性?因此開發(fā)一套有關學校的信息管理系統(tǒng)不僅能大大提高工作效率而且還能給師生的工作學習帶來極大的便利。1.2相關文檔1學生管理系統(tǒng)軟件測試方案2學生管理系統(tǒng)軟件測試用例1.3參考資料軟件測試從入門到精通軟測之魂:核心測試設計精解軟件測試與測試技術1.4部分系統(tǒng)截圖1.5系統(tǒng)結構圖學生管理系統(tǒng)退出系統(tǒng)密碼相關學科相關分數相關學生相關修改密碼編輯科目添加科目編輯分數顯示分數搜索學生編輯學生添加學生學生部分添加姓名添加專業(yè)添加性別添加學號添加學科添加專業(yè)添加學時學科部分第二章 驗收定義2.1驗收策略由開發(fā)方提供被驗收內容、驗收文檔,由監(jiān)理公司與用戶進行評審,在評審無

6、誤的情況下,確認通過驗收。2.2驗收依據軟件測試驗收準則2.3驗收環(huán)境學生管理系統(tǒng)軟件實際運行的生產環(huán)境為驗收環(huán)境。n 硬件平臺 計算機n 軟件平臺Window操作系統(tǒng):window xp、window7、window82.4驗收標準2.4.1項目驗收原則1、 審查提供驗收的各類文檔的正確性、完整性和統(tǒng)一性,審查文檔是否齊全、合理;2、 審查項目功能是否達到了合同規(guī)定的要求;3、 審查項目有關服務指標是否達到了合同的要求;4、 審查項目投資以及實施進度的情況;對項目的技術水平做出評價,并得出項目的驗收結論。2.4.2驗收流程本項目的驗收采取項目驗收流程的方式進行驗收。具體流程如下圖所示。 2.

7、4.3系統(tǒng)功能標準嚴重程度 描 述A學生信息管理系統(tǒng)由于出現(xiàn)問題不能繼續(xù)運轉(崩潰)學生信息管理系統(tǒng)的數據出現(xiàn)錯誤。B某項業(yè)務無法進行。學生信息管理系統(tǒng)產生數據錯誤。C學生信息管理系統(tǒng)中某一操作不能繼續(xù)運轉或錯誤,但不影響業(yè)務的進行。(有替代辦法)學生信息管理系統(tǒng)打印的憑證或流水不符合需求所提出的標準。D其他學生信息管理系統(tǒng)在某種狀態(tài)下產生的錯誤,不影響正常功能。如果各模塊驗收測試結果如下表所述則視為驗收合格,否則將進行修改,以進行再次驗收評審。嚴重程度關系發(fā)生個數A=0B =102.5驗收范圍用戶以及監(jiān)理方進行驗收確認。驗收確認包括以下兩方面確認內容:1參照驗收標準確認合同所涉及的功能以及項

8、目組的實施工作是否完成;2抽取客戶端進行測試,確定系統(tǒng)能夠穩(wěn)定運行。2.6驗收人員單位人員職責/任務聯(lián)系方式/Email備注哈師大學生張紫娜組長第三章 項目驗收內容3.1實施工作驗收工作階段工作內容工作是否完成需求調研通過與用戶的溝通,根據項目實際情況編寫提交需求說明書、概要設計、詳細設計。完成 未完成系統(tǒng)開發(fā)根據概要設計內容,完成詳細設計并根據詳細設計開發(fā)系統(tǒng)和測試。每周提交項目進度及情況報告、測試報告。完成 未完成系統(tǒng)安裝安裝產品,對系統(tǒng)進行部署。完成 未完成用戶培訓編寫用戶使用手冊,對用戶進行使用培訓。完成 未完成系統(tǒng)運行跟蹤監(jiān)控系統(tǒng)運行。對使用中發(fā)現(xiàn)的問題進行記錄和評估,在不影響系統(tǒng)結

9、構的情況下對發(fā)現(xiàn)的問題進行修正。完成 未完成3.2軟件平臺驗收單驗收人:張紫娜驗收時間:序號軟件類型軟件名稱驗收結果備注1系統(tǒng)軟件學生管理系統(tǒng)完成3.3功能模塊驗收單序號功能模塊驗收內容合同要求驗收結果1登錄驗證能否正常登陸必須實現(xiàn)合格2密碼模塊能否修改密碼必須實現(xiàn)合格3學生模塊正常實現(xiàn)添加修改功能可以有差錯合格4課程模塊正常實現(xiàn)添加修改功能必須實現(xiàn)合格5成績模塊正常實現(xiàn)添加修改功能必須實現(xiàn)合格6退出模塊正常退出系統(tǒng)必須實現(xiàn)合格3.4項目文檔驗收單序號文檔名稱用 途驗收結果備注1軟件需求分析分析軟件的需求,為后續(xù)的工作合格2軟件測試用例對以實現(xiàn)的軟件進行測試合格3.5運行結果驗收系統(tǒng)運行內容是

10、否符合要求a.軟件登錄符合b.軟件測試符合C軟件查詢符合d.軟件修改符合e.軟件退出符合第四章 驗收結論經過嚴格的測試本軟件達到要求標準,符合驗收要求。第五章 交付物清單文檔提交清單1學生管理系統(tǒng)軟件測試方案2學生管理系統(tǒng)軟件測試用例源碼提交清單源程序清單(僅給出核心代碼部分)typedef char bool;#define FILEPATHc:stuinfo.dat#define INFOPATHc:test.txt#define MAXSPACECOUNT10/系統(tǒng)所記錄的最大冗余塊數#define MAXSUBCOUNT 20/系統(tǒng)所允許存儲的最多科目數#define RANDSTUC

11、OUNT100/系統(tǒng)將自動產生的學生個數#define RANDSUBCOUNT20/系統(tǒng)將自動產生的科目個數#define BUFSIZE20/字符緩沖區(qū)大小#define SHOWMAX6/屏幕最大顯示的科目數#define TRUE1#define FALSE0#define READ0x81#define WRITE0x82#define SEARCH_SCHID0x83/通過學生的學號進行搜索#define SEARCH_NAME0x85/通過學生的姓名進行搜索#define SEARCH_SUB0x86/通過學科的名稱進行搜索#define SHOW_PRIV0x87/顯示單個學生

12、的個人信息#define SHOW_PERMARK0x89/顯示單個學生的個人成績#define SHOW_ALLMARK0x90/顯示所有學生的某科成績#define SORT_DECLINE0x92/以降序排列#define SORT_INCLINE0x93/以升序排列#define ALPHAWORD0x94/以字母構成的字符串(用于隨機產生學生的姓名#define NUMBERWORD0x95/以數字構成的字符串(用于隨機產生學號#define ADDSUB0x96/科目編輯模式為添加#define EDITSUB0x97/科目編輯模式為修改#define BIGNUMBER0x0ff

13、ffff/系統(tǒng)延遲采用的循環(huán)中的大數#define LONGSIZEsizeof(long)#define INTSIZEsizeof(int)#define LINKSIZEsizeof(link)#define STUINFOSIZE sizeof(stuinfo)#define SUBINFOSIZE sizeof(subinfo)#define TCHINFOSIZEsizeof(tchinfo)#define SUBMARKSIZE sizeof(submark)#define FILEINFOSIZE sizeof(fileinfo)#define MYSTUSIZEsizeof(

14、mystu)#define DATASEEK(FILEINFOSIZE+LONGSIZE)#define DATATRANS(STUINFOSIZE+LONGSIZE)#define SETERR(S)printf(S);return FALSE;/顯示出錯信息并返回#define NEW(I)(I*)malloc(sizeof(I)/開辟新的內存空間typedef struct _submarkinfoboolflag;/flag=0表該塊無效int sub_id;/科目的id號double sub_mark;/該科目的成績submark,*psubmark;/科目成績信息typedef s

15、truct _stuchar stu_name20;/學生姓名char stu_schid20;/學生學號int stu_sex;/學生性別 0=man 1=womanchar stu_major20;/學生專業(yè)和班級(電子0606)mystu,*pmystu;/學生個人信息typedef struct _stuinfoboolflag;/flag=0表該生作廢int stu_sysid;/學生id號/系統(tǒng)將為每個學生產生唯一的ID號mystustu_privacy;/學生個人信息long stu_seek;/在文件中的地址int stu_markcount;/已有的成績數doublestu_

16、avemark;/學生加權平均分submark stu_markMAXSUBCOUNT;/學生成績數組stuinfo,*pstuinfo;/學生信息(包括個人信息和系統(tǒng)信息)typedef 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;/最

17、大學生數,用于產生idint spacecount;/文件冗余塊數long seekMAXSPACECOUNT;/文件冗余塊在文件中的地址int subcount;/已注冊的科目的個數subinfo subMAXSUBCOUNT;/科目信息數組fileinfo,*pfileinfo;/學生信息文件頭typedef struct _linkdouble mark;long stuseek;struct _link* next;link,*plink;/該結構體用于產生鏈表/鏈表用于對成績排序之用核心功能函數:/本函數設置系統(tǒng)錯誤,并終止程序void seterr(char*err)memset(

18、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(myfileinfo)free(myfileinfo);myfileinfo=NULL;if(mystuinfo)free(mystuinfo);mystuinfo=NULL;/本函數用于對文件進行操作,將常用的文

19、件操作集于一身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(!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);bre

20、ak;default:seterr(fcntl:cntlmode invalid);/初始化數據庫void initfile()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 newstuin

21、fo)if(!newstuinfo)seterr(addstu:newstuinfo null);if(search(newstuinfo-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

22、invalid);long seek=myfileinfo-seekspacecount;if(spacecount)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;m

23、ystuinfo-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-stucount+;myfileinfo-countmax+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/刪除學生的核心函數void delstu(long delstuseek)if(!delstuseek)seterr(delstu:parameter zero);if

24、(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,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,STUINFOS

25、IZE);myfileinfo-stucount-;myfileinfo-spacecount+;int 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)mystui

26、nfo=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);if(linkhead&linkhead-data-editstuseek)seterr(editstu:database schid collision);memcpy(&mystuinfo-stu

27、_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_ratesub_rate6)seterr(addsub:parameter invalid);if(search(newsub-sub_n

28、ame,SEARCH_SUB)seterr(addsub:database sub 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=psu

29、btemp-sub_id;memcpy(psubtemp,newsub,SUBINFOSIZE);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

30、,READ,myfileinfo,FILEINFOSIZE);if(myfileinfo-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+=DAT

31、ATRANS)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_markcount-;else continue;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);makeavemark(seek);/編輯一個已經存在的學科的核心函數void editsub(psubinfo new

32、sub)if(!newsub)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

33、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:datab

34、ase 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);/編輯某學生某科目的核心函數voi

35、d 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;if(mark100)seterr(editmark:submark invalid);if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuin

36、fo,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,SUBMARKSIZE);if(!flag1&fl

37、ag2)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(mystuinfo,0,STUINFOSIZE);fcnt

38、l(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;for(i=0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論