二工大學(xué)籍管理系統(tǒng)設(shè)計說明書_第1頁
二工大學(xué)籍管理系統(tǒng)設(shè)計說明書_第2頁
二工大學(xué)籍管理系統(tǒng)設(shè)計說明書_第3頁
二工大學(xué)籍管理系統(tǒng)設(shè)計說明書_第4頁
二工大學(xué)籍管理系統(tǒng)設(shè)計說明書_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、學(xué)籍管理系統(tǒng)設(shè)計說明書學(xué)院計算機與信息學(xué)院專業(yè)軟件工程目錄一、需求分析 1. 目標用戶03 2. 主要功能03 3. 問題描述03 4. 問題分析03二、概要設(shè)計 1. 方案確定03 2. 軟件結(jié)構(gòu)03 3. 模塊功能說明03三、詳細結(jié)構(gòu)設(shè)計 1. 數(shù)據(jù)設(shè)計04 2. 流程圖04四、T-SOL源程序 1. 存儲過程09 2. 觸發(fā)器09五、調(diào)試分析和測試結(jié)果調(diào)試分析和測試結(jié)果11六個人體會利用詳細程序設(shè)計書一、需求分析1 目標用戶管理人員班級輔導(dǎo)員(或班主任) 教師學(xué)生等2 主要功能序號功能名稱功能說明1學(xué)生管理登記學(xué)生的基本信息(性別,姓名,班級等),并提供查詢功能2課程管理登記課程基本情況

2、(課程名稱,開課學(xué)期,課程類型,學(xué)分等),提供查詢功能3教師管理登記教師基本情況(姓名,年齡,性別,學(xué)歷等),提供統(tǒng)計查詢4成績管理登記學(xué)生各門課程的考試成績,提供查詢 統(tǒng)計功能5授課管理登記教師講授課程,授課地點和授課學(xué)期,提供查詢功能6編碼維護維護系統(tǒng)中使用的編碼(如職稱編碼等)3 問題描述管理人員需要建立學(xué)生的學(xué)籍,匯總每學(xué)期沒有拿到規(guī)定學(xué)分的學(xué)生以及這些學(xué)生的詳細情況;學(xué)生完成一門課程的學(xué)習(xí)以后,教師需要錄入學(xué)生的考試成績,計算平均成績,匯總各個分數(shù)段的人數(shù);學(xué)生需要查詢已結(jié)業(yè)的各門課的成績;班主任需要查詢本班學(xué)習(xí)情況,包括各門課程的平均成績和每個學(xué)生的開始通過情況。為此,設(shè)計一套實用

3、的學(xué)籍管理系統(tǒng)可以大大簡化管理人員,班主任和任課教師的工作,方便學(xué)生查詢自己的學(xué)習(xí)情況。4 問題分析1 確定系統(tǒng)的源點和匯點2 確定系統(tǒng)所需的存儲文3 確定頂層加工4 確定數(shù)據(jù)流二、概要設(shè)計1) 根據(jù)系統(tǒng)的初步需求,分析設(shè)計頂層數(shù)據(jù)流圖2)根據(jù)頂層數(shù)據(jù)流圖,細化出一層數(shù)據(jù)流圖3)繼續(xù)細化數(shù)據(jù)流圖4)制定整理數(shù)據(jù)字典三、詳細設(shè)計1頂層數(shù)據(jù)流圖2第一層數(shù)據(jù)流圖3 第二層數(shù)據(jù)流圖4 細化后的成績錄入3層數(shù)據(jù)流圖四、部分T-SQL源程序1 存儲過程-Creditconvert(功能:學(xué)分轉(zhuǎn)換)CREATE FUNCTION CreditConvert( 成績 NUMERIC(3,1),學(xué)分 NUMER

4、IC(3,1)-成績:考試成績-學(xué)分:課程規(guī)定學(xué)分RETURNS NUMERIC(5,2)-應(yīng)得學(xué)分ASBEGIN RETURN CASE SIGN(成績-60) WHEN 1 THEN 學(xué)分 WHEN 0 THEN 學(xué)分 WHEN -1 THEN 0 ENDEND-termConvert(功能:學(xué)期轉(zhuǎn)換)CREATE FUNCTION termConvert(term CHAR(11),CLno CHAR(6)-term 學(xué)年,格式如:2006-2007/2-CLno 班級編號,格式如:020001,前2位代表入學(xué)年份RETURNS INT -在校第幾學(xué)期ASBEGINRETURN(CONV

5、ERT(NUMERIC,SUBSTRING(term,1,4)-CONVERT(NUMERIC,'20'+SUBSTRING(CLno,1,2)*2+CONVERT(NUMERIC ,SUBSTRING(TERM,11,1)END統(tǒng)計不同分數(shù)段人數(shù)存儲過程設(shè)計-按照課程編號統(tǒng)計最高分、最低分,不同分數(shù)段的人數(shù),平均成績CREATE PROCEDURE p_SatSorecno CHAR(5) ,-人口參數(shù):班級編號clno CHAR(6) -人口參數(shù):課程編號ASBEGIN DECLARE socre1 INT -待統(tǒng)計分數(shù)段上限 DECLARE socre2 INT -待統(tǒng)計

6、分數(shù)段下限 DECLARE num INT -待統(tǒng)計分數(shù)段人數(shù) DECLARE CLName VARCHAR(30) -班級名稱 DECLARE CName VARCHAR(50) -課程名稱-查詢課程名稱和班級名稱SET CLName=(SELECT CLName FROM class WHERE CLno=clno)SET CName=(SELECT 課程名稱 FROM course WHERE 課程編號=cno)PRINT CLName+' <'+CName+'>'+'考試成績按照分數(shù)段統(tǒng)計情況'-設(shè)置被統(tǒng)計分數(shù)段的初值SET

7、socre1=100SET socre2=90WHILE (socre1>=60)BEGIN SET num=(SELECT count(*) FROM 選課 a,classb,classmate c WHERE b.CLno=c.CLno AND a.no=c.no AND b.CLno=clno AND a.no=cno AND 成績 BETWEEN socre2 AND socre1) PRINT STR(socre2)+'至'+STR(socre1)+'分人數(shù)為'+STR(num)-調(diào)整統(tǒng)計分數(shù)段SET socre1=socre2IF socre1

8、>60 SET socre2=socre2-10ELSE SET socre2=0 ENDEND匯總平均成績存儲過程設(shè)計CREATE Procedure p_AverageScore term VARCHAR(11)-人口參數(shù):學(xué)期-學(xué)期的格式為:*-*/*-前9位表示學(xué)年,最后一位表示本學(xué)年的第幾期。例如,2005-2006/2表示2005-2006學(xué)年的第二學(xué)期。asBEGIN DECLARE 課程編號 VARCHAR(5) -變量:課程編號 DECLARE CLname VARCHAR(30) -變量:班級名稱 DECLARE CLno VARCHAR(6) -變量:班級編號 DE

9、CLARE avgscore NUMERIC(10,2) -變量:平均成績 DECLARE Cterm INT -變量:學(xué)期-定義班級游標 DECLARE class_cursor CURSOR FOR SELECT CLname,CLno,dbo.termConvert(term,CLno)FROM class WHERE dbo.termConvert(term,CLno)<=8 -過濾掉已經(jīng)畢業(yè)的班級 OPEN class_cursor FETCH NEXT FROM class_cursor INTO CLname,CLno,Cterm WHILE FETCH_STATUS=0

10、BEGIN SET avgscore=(SELECT ISNULL(avg(成績),0) FROM 選課a,classmateb,classc,course d WHERE a.no=b.no AND b.CLno=c.CLno AND b.CLno=CLno AND a.課程編號=d.課程編號 AND d.學(xué)期=Cterm)-根據(jù)班級平均成績判斷該班的成績是否登記,如果平均成績>0,則計算每名學(xué)生的平均成績IF avgscore>0 BEGIN PRINT term+'學(xué)期 '+CLname+'各門課總平均成績?yōu)?#39;+STR(avgscore,5,1

11、) -每個學(xué)生的平均成績和獲得的學(xué)分 PRINT ' 該班每個學(xué)生的平均成績?nèi)缦拢?#39; SELECT e.SName,d.avgscore,totalCredit FROM (SELECT a.no,AVG(成績) avgscore,SUM(dbo.CreditConvert(score,學(xué)分)totalCredit FROM Student a,選課b,course c WHERE a.no=b.no AND b.課程編號=c.課程編號 AND c.學(xué)期=Cterm GROUP BY a.SNo) d,classmatee,class f WHERE e.no=d.no AND

12、 e.CLno=f.CLno AND f.CLno=CLno END ELSE PRINT term+'學(xué)期'+ CLname+CLno+'班'+' 成績沒有登記' FETCH NEXT FROM class_cursor INTO CLname,CLno,Cterm END CLOSE class_cursor DEALLOCATE class_cursorEND2 觸發(fā)器修改學(xué)分觸發(fā)器CREATE TRIGGER t_tcredits ON 選課 FOR INSERT,UPDATE,DELETEAS DECLARE tcredits NUME

13、RIC(4,0) -總學(xué)分 DECLARE no CHAR(5) -學(xué)號 DECLARE insert_cursor CURSOR FOR SELECT no FROM INSERTED DECLARE delete_cursor CURSOR FOR SELECT no FROM DELETEDBEGIN-處理刪除的記錄OPEN delete_cursorFETCH NEXT FROM delete_cursor INTO noWHILE FETCH_STATUS=0BEGINSET tcredits=(SELECT SUM(學(xué)分) FROM ourse a,選課 b WHERE a.課程編

14、號=b.課程編號 ANDb.成績>60 AND b.no=no)UPDATE Student SET SCredits=tcredits WHERE no=noFETCH NEXT FROM delete_cursor INTO noENDCLOSE delete_cursorDEALLOCATE delete_cursor-處理修改和增加的記錄IF UPDATE (成績)BEGIN OPEN insert_coursor FETCH NEXT FROM insert_cursor INTO noWHILE FETCH_STATUS=0 BEGIN SET tcredits=(SELECT SUM(學(xué)分) FROM course a, 選課 b WHERE a.課程編號=b.課程編號 AND b.成績>60 AND b.no=no) PRINT STR(tcredits)+

溫馨提示

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

評論

0/150

提交評論