軟件驗收報告_第1頁
軟件驗收報告_第2頁
軟件驗收報告_第3頁
軟件驗收報告_第4頁
免費預覽已結束,剩余26頁可下載查看

下載本文檔

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

文檔簡介

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

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

3、等。諸如這些情況, 令學校管理者對學生的信息管理帶來了很大困難, 嚴重影響了教育工作者的工作效率。隨著科學技術的不斷提高 , 計算機科學日漸成熟 , 使用日趨成熟的計算機技術來代替傳統的人工模式, 來實現學生信息的現代化管理, 其強大的功能已為人們深刻認識 , 它已進入人類社會的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分 , 使用計算機對學生信息進行管理 , 具有著手工管理所無法比擬的優點。這些優點能夠極提高學生信息管理的效率 , 也是學校的科學化、正規化管理的重要條件。 用計算機制作的學校信息管理系統還可以通過功能強大的互聯網及時的向學生的家長傳遞該生在校的最新成績, 有助于學

4、校與家長的信息互動,為更好地把握學校的教育方針一定的促進作用。因此, 開發這樣一套管理軟件成為很有必要的事情。第 3 頁學生管理系統驗收報告1.1 項目背景隨著信息技術在管理上越來越深入而廣泛的應用, 管理信息系統的實施在技術上已逐步成熟。 管理信息系統是一個不斷發展的新型學科, 任何一個單位要生存要發展,要高效率地把部活動有機地組織起來, 就必須建立與自身特點相適應的管理信息系統。目前信息處理技術的飛速發展 , 基于計算機網絡的信息處理已成為人們日常工作 , 學習和生活必備系統 ?在 Internet 飛速發展的今天 , 互聯網已成為人們快速獲取 , 發布和傳遞信息的重要渠道 , 它已成為社

5、會生活的一部分 ?學生信息處理的電腦化 ?網絡化 , 是實現學校管理現代化和信息化的重要容 , 也是方便用戶快捷查詢相關充足信息的重要工具 ?與傳統學生信息處理模式相比 , 基于網絡的學生管理系統具有無可比擬的優越性 ?因此開發一套有關學校的信息管理系統不僅能大大提高工作效率而且還能給師生的工作學習帶來極大的便利。1.2 相關文檔1學生管理系統軟件測試方案2學生管理系統軟件測試用例1.3 參考資料軟件測試從入門到精通軟測之魂:核心測試設計精解軟件測試與測試技術第 4 頁學生管理系統驗收報告1.4 部分系統截圖第 5 頁學生管理系統驗收報告1.5 系統結構圖學生管理系統學生相關分數相關學科相關密

6、碼相關退出系統添編搜顯編添編修加輯索示輯加輯改學學學分分科科密生生生數數目目碼學生部分添加姓名添加學號添加性別添加專業學科部分添加學科添加學時添加專業第 6 頁學生管理系統驗收報告第二章驗收定義2.1 驗收策略由開發方提供被驗收容、驗收文檔,由監理公司與用戶進行評審,在評審無誤的情況下,確認通過驗收。2.2 驗收依據軟件測試驗收準則2.3 驗收環境學生管理系統軟件實際運行的生產環境為驗收環境。硬件平臺計算機軟件平臺Window操作系統: window xp 、window7、window82.4 驗收標準項目驗收原則1、審查提供驗收的各類文檔的正確性、完整性和統一性,審查文檔是否齊全、合理;2

7、、審查項目功能是否達到了合同規定的要求;3、審查項目有關服務指標是否達到了合同的要求;4、審查項目投資以及實施進度的情況;對項目的技術水平做出評價,并得出項目的驗收結論。第 7 頁學生管理系統驗收報告驗收流程本項目的驗收采取項目驗收流程的方式進行驗收。具體流程如下圖所示。開發方與監理公司制定驗收流程驗收流程用戶確認用戶確認是否通過?開發方提供驗收內容列表、驗收文檔監理公司、客戶對驗收內容、驗收文檔進行確認驗收內容、驗收文檔能否通過?項目驗收、結束項目驗收流程系統功能標準嚴重程度描述A學生信息管理系統由于出現問題不能繼續運轉(崩潰)學生信息管理系統的數據出現錯誤。B某項業務無法進行。學生信息管理

8、系統產生數據錯誤。C學生信息管理系統中某一操作不能繼續運轉或錯誤,但不影響業務的進行。(有替代辦法)學生信息管理系統打印的憑證或流水不符合需求所提出的標準。D其他學生信息管理系統在某種狀態下產生的錯誤,不影響正常功能。第 8 頁學生管理系統驗收報告如果各模塊驗收測試結果如下表所述則視為驗收合格,否則將進行修改, 以進行再次驗收評審。嚴重程度關系發生個數A=0B =102.5 驗收圍用戶以及監理方進行驗收確認。驗收確認包括以下兩方面確認容:1 參照驗收標準確認合同所涉及的功能以及項目組的實施工作是否完成;2 抽取客戶端進行測試,確定系統能夠穩定運行。2.6 驗收人員單位人員職責 / 任務聯系方式

9、 /Email備注哈師大學生紫娜組長第三章項目驗收容3.1 實施工作驗收工作階段工作容工作是否完成需求調研系統開發系統安裝通過與用戶的溝通,根據項目實際情況編寫提交需求說明書 、概要設完成未完成計、詳細設計。根據概要設計容,完成詳細設計并根據詳細設計開發系統和完成未完成測試。每周提交項目進度及情況報告、測試報告。安裝產品,對系統進行部署。完成未完成第 9 頁學生管理系統驗收報告用戶培訓系統運行編寫用戶使用手冊,對用戶進行使用培訓。跟蹤監控系統運行。對使用中發現的問題進行記錄和評估,在不影響系統結構的情況下對發現的問題進行修正。完成未完成完成未完成3.2 軟件平臺驗收單驗收人:紫娜驗收時間:序軟

10、件類型軟件名稱驗收結果備注號1系統軟件學生管理系統完成3.3 功能模塊驗收單序功能模塊驗收容合同要求驗收結果號1登錄驗證能否正常登陸必須實現合格2密碼模塊能否修改密碼必須實現合格3學生模塊正常實現添加修改功可以有差錯合格能4課程模塊正常實現添加修改功必須實現合格能5成績模塊正常實現添加修改功必須實現合格能6退出模塊正常退出系統必須實現合格3.4 項目文檔驗收單序文檔名稱用 途驗收結果備注號1軟件需求分析分析軟件的需求,為后續的工作合格2軟件測試用例對以實現的軟件進行測試合格第10頁學生管理系統驗收報告3.5 運行結果驗收系統運行容是否符合要求a. 軟件登錄符合b. 軟件測試符合C軟件查詢符合d

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

12、0/系統將自動產生的學生個數#define RANDSUBCOUNT20/系統將自動產生的科目個數#define BUFSIZE20/字符緩沖區大小第11頁學生管理系統驗收報告#define SHOWMAX6/屏幕最大顯示的科目數#define TRUE1#define FALSE0#define READ0x81#define WRITE0x82#define SEARCH_SCHID0x83/通過學生的學號進行搜索#define SEARCH_NAME0x85/通過學生的進行搜索#define SEARCH_SUB0x86/通過學科的名稱進行搜索#define SHOW_PRIV0x87/

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

14、ER0x0ffffff/ 系統延遲采用的循環中的大數#define LONGSIZEsizeof(long)#define INTSIZEsizeof(int)#define LINKSIZEsizeof(link)#define STUINFOSIZEsizeof(stuinfo)#define SUBINFOSIZEsizeof(subinfo)#define TCHINFOSIZEsizeof(tchinfo)#define SUBMARKSIZEsizeof(submark)#define FILEINFOSIZEsizeof(fileinfo)#define MYSTUSIZEsiz

15、eof(mystu)#define DATASEEK(FILEINFOSIZE+LONGSIZE)第12頁學生管理系統驗收報告#define DATATRANS(STUINFOSIZE+LONGSIZE)#define SETERR(S)printf(S);return FALSE;/ 顯示出錯信息并返回#define NEW(I)(I*)malloc(sizeof(I)/ 開辟新的存空間typedef struct _submarkinfobool flag;/flag=0 表該塊無效int sub_id;/ 科目的 id 號double sub_mark;/ 該科目的成績submark,*

16、psubmark;/ 科目成績信息typedef struct _stucharstu_name20; / 學生charstu_schid20; / 學生學號intstu_sex;/ 學生性別0=man 1=womancharstu_major20; /學生專業和班級(電子 0606)mystu,*pmystu;/ 學生個人信息typedef struct _stuinfobool flag;/flag=0 表該生作廢int stu_sysid;/ 學生 id 號/系統將為每個學生產生唯一的ID 號mystustu_privacy;/ 學生個人信息longstu_seek;/ 在文件中的地址i

17、nt stu_markcount;/ 已有的成績數doublestu_avemark;/ 學生加權平均分submark stu_markMAXSUBCOUNT;/學生成績數組第13頁學生管理系統驗收報告stuinfo,*pstuinfo;/ 學生信息 (包括個人信息和系統信息 )typedef struct _subinfoboolflag;/flag=0 表該塊無效intsub_id;/ 科目的 id 號intsub_term;/ 科目開課的學期doublesub_rate;/ 科目所占的學分charsub_name20;/ 科目名稱subinfo,*psubinfo;/ 科目信息typed

18、ef struct _fileinfointstucount;/ 已注冊的學生人數intcountmax;/ 最大學生數 ,用于產生idintspacecount;/ 文件冗余塊數longseekMAXSPACECOUNT;/文件冗余塊在文件中的地址intsubcount;/ 已注冊的科目的個數subinfo subMAXSUBCOUNT;/科目信息數組fileinfo,*pfileinfo;/ 學生信息文件頭typedef struct _linkdouble mark;long stuseek;struct _link* next;link,*plink;第14頁學生管理系統驗收報告/ 該

19、結構體用于產生鏈表/ 鏈表用于對成績排序之用核心功能函數:/本函數設置系統錯誤,并終止程序void seterr(char*err)memset(void*)myerr,0,errnosize);int n=strlen(err);if(n>errnosize-1)n=errnosize;memcpy(myerr,err,n);printf("nn%snn",err);exit(0);/* 本函數用于清理所有全局變量包括文件指針和全局結構體指針*/void freeparam()if(fp)fclose(fp);fp=NULL;if(myfileinfo)free(m

20、yfileinfo);myfileinfo=NULL;if(mystuinfo)free(mystuinfo);mystuinfo=NULL;/本函數用于對文件進行操作,將常用的文件操作集于一身 void fcntl(long seek,inttlmode,void *pdata,int size)第15頁學生管理系統驗收報告if(!fp)fp=fopen(FILEPATH,"rb+");if(!fp)initfile();rewind(fp);fseek(fp,seek,SEEK_SET);if(!pdata)return;if(!size)seterr("fc

21、ntl: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;第16頁學生管理系統驗收報告for(;i<MAXSUBCOUNT;i+)myfileinfo->subi.sub_id=i+1;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/添加學生的核心函數void addstu(pmystu newstuinfo)if(!newstuinfo)seterr("addstu:newstuinfo null");if(search(newstuinfo->stu_schid,SE

23、ARCH_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;i

24、f(spacecount)myfileinfo->seekspacecount=0;myfileinfo->spacecount-;else myfileinfo->seekspacecount+=DATATRANS;if(!mystuinfo)mystuinfo=NEW(stuinfo);第17頁學生管理系統驗收報告memset(mystuinfo,0,STUINFOSIZE);memcpy(&(mystuinfo->stu_privacy),newstuinfo,MYSTUSIZE);mystuinfo->stu_seek=seek;mystuinfo

25、->flag=1;int i;mystuinfo->stu_sysid=myfileinfo->countmax+1;for(i=0;i<MAXSUBCOUNT;i+)mystuinfo->stu_marki.sub_id=i+1;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);myfileinfo->stucount+;myfileinfo->countmax+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);/刪除學生的核心函數void delstu(long delstuseek)if

26、(!delstuseek)seterr("delstu:parameter zero");if(!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

27、invalid");mystuinfo->flag=0;fcntl(delstuseek,WRITE,mystuinfo,STUINFOSIZE);第18頁學生管理系統驗收報告myfileinfo->stucount-;myfileinfo->spacecount+;int count=myfileinfo->spacecount;if(count<MAXSPACECOUNT)myfileinfo->seekcount=delstuseek;else myfileinfo->spacecount-;fcntl(0,WRITE,myfilein

28、fo,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:editstu i

29、nvalid");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

30、addsub(psubinfo newsub)第19頁學生管理系統驗收報告if(!newsub)seterr("addsub:parameter null");if(newsub->sub_term<1|newsub->sub_term>8)seterr("addsub:parameter invalid");if(newsub->sub_rate<0.5|newsub->sub_rate>6)seterr("addsub:parameter invalid");if(search(ne

31、wsub->sub_name,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;n

32、ewsub->flag=1;int i;for(i=0;i<MAXSUBCOUNT;i+,psubtemp+)if(!psubtemp->flag)newsub->sub_id=psubtemp->sub_id;memcpy(psubtemp,newsub,SUBINFOSIZE);break;if(i>=MAXSUBCOUNT)seterr("addsub:subject all in use");myfileinfo->subcount+;fcntl(0,WRITE,myfileinfo,FILEINFOSIZE);第20頁學生

33、管理系統驗收報告/刪除一個已經存在學科的核心函數void delsub(int subid)if(subid<1|subid>MAXSUBCOUNT)seterr("delsub:subid invalid");if(!myfileinfo)myfileinfo=NEW(fileinfo);fcntl(0,READ,myfileinfo,FILEINFOSIZE);if(myfileinfo->subcount<=0)seterr("delsub:subcount zero");psubinfo subtemp=myfileinf

34、o->sub+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;i<myfileinfo->stucount;i+,seek+=DATATR

35、ANS) 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-;第21頁學生管理系統驗收報告else continue;fcntl(seek,WRITE,mystuinfo,STUINFOSIZE);makeavemark(seek);/編輯一個已經存在的學科的核

36、心函數void editsub(psubinfo newsub)if(!newsub)seterr("editsub:newsub null");if(!newsub->flag)seterr("editsub:newsub invalid");int subid=newsub->sub_id;if(subid<1|subid>MAXSUBCOUNT)seterr("editsub:subid invalid");int term=newsub->sub_term;if(term<1|term>

37、;8)seterr("editsub:subterm invalid");double rate=newsub->sub_rate;if(rate<0.5|rate>6)seterr("editsub:subrate invalid");int size=strlen(newsub->sub_name);if(size>=20)newsub->sub_name19=0;if(!myfileinfo)myfileinfo=NEW(fileinfo);第22頁學生管理系統驗收報告fcntl(0,READ,myfileinf

38、o,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->s

39、ub+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;i<count;i+,seek+=DATATRANS)fcntl(seek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)i-;continue;makeave

40、mark(seek);/編輯某學生某科目的核心函數void editmark(psubmark newmark,long stuseek)if(!newmark|!stuseek)seterr("addmark:parameter null");int subid=newmark->sub_id;if(subid<-1|subid>MAXSUBCOUNT|!subid)seterr("editmark:subid invalid");double mark=newmark->sub_mark;第23頁學生管理系統驗收報告if(ma

41、rk<0|mark>100)seterr("editmark:submark invalid");if(!mystuinfo)mystuinfo=NEW(stuinfo);memset(mystuinfo,0,STUINFOSIZE);fcntl(stuseek,READ,mystuinfo,STUINFOSIZE);if(!mystuinfo->flag)seterr("editmark:student invalid");psubmark marktemp=mystuinfo->stu_mark+subid-1; int fl

42、ag1=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,WRITE,mystuinfo,STUINFO

43、SIZE);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:parameter

44、 invalid");if(!myfileinfo)第24頁學生管理系統驗收報告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;i<subcount;i+,subtemp+,marktemp+)if(!subtemp->flag)i-;continue;if(!marktemp->flag)continue;rate=subtemp->sub_rate;ratesum+=rate;marksum+=marktemp->sub_m

溫馨提示

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

評論

0/150

提交評論