版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
./摘要管理信息系統(tǒng)正在向著網(wǎng)絡化、智能化和集成化等趨勢發(fā)展。學生成績管理系統(tǒng)是為了更好的管理學生考試成績而開發(fā)的數(shù)據(jù)管理軟件。它對于一個學校是不可缺少的重要部分,它的內容對于學校的決策者和管理者來說都至關重要。學生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實現(xiàn)學生基本信息、成績的錄入,刪除,查詢,維護以及成績的統(tǒng)計分析等幾方面的功能,是現(xiàn)實問題的迫切要求。本系統(tǒng)開發(fā)的總體任務是實現(xiàn)學生成績管理的系統(tǒng)化、規(guī)范化、自動化。達到提高學生成績管理效率的目的。與傳統(tǒng)管理方法相比有明顯的優(yōu)點:查找方便,可靠性高,保密性好,成本低。徹底改變了以前繁雜的管理模式,實現(xiàn)全面的、相對集中的、職能化的信息綜合管理。計算機被用到信息管理系統(tǒng)的環(huán)境正是適應了當今時代飛速發(fā)展的信息時代。人們深刻的認識到了計算機功能的強大,對于復雜的信息管理,計算機充分發(fā)揮著它的優(yōu)越性。檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低,這些優(yōu)點極大地減輕了學院教學人員的工作量,縮小開支,提高了學生檔案管理的效率和準確性,能夠合理的安排時間,學生能夠盡快的知道自己的考試成績。同時,學生管理系統(tǒng)的應用也為今天的教育在未來市場的競爭力有所提高。關鍵字:學生成績管理,插入,查找,刪除,退出,修改;目錄TOC\o"1-2"\h\z\u1.系統(tǒng)分析41.1系統(tǒng)開發(fā)背景41.2初步調查與可行性分析41.3系統(tǒng)目標41.4系統(tǒng)流程圖52.系統(tǒng)總體設計62.1總體結構圖分析62.2總體結構圖72.3總體數(shù)據(jù)結構73、詳細設計83.1程序功能設計83.2設計思路84、系統(tǒng)測試94.1測試方案94.2測試用例及測試結果94.3軟件可靠性115、軟件使用說明書126、設計總結13參考文獻14致謝15附錄〔源代碼161.系統(tǒng)分析1.1系統(tǒng)開發(fā)背景學生成績管理系統(tǒng)是為了更好的管理學生考試成績而開發(fā)的數(shù)據(jù)管理軟件。它對于一個學校是不可缺少的重要部分,它的內容對于學校的決策者和管理者來說都至關重要。所以,學生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實現(xiàn)學生基本信息、成績的錄入,刪除,查詢,修改,維護以及成績的統(tǒng)計分析等幾方面的功能,是現(xiàn)實問題的迫切要求。1.2初步調查與可行性分析可行性分析就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。這步工作的主要是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以比較抽象的方式進行系統(tǒng)分析和設計的過程??尚行匝芯康淖罡救蝿帐菍σ院蟮男袆臃结樚岢鼋ㄗh,從而節(jié)省人力、時間,按照一個較好的解決方案來完成設計,并且為工程制定一個初步的計劃?!?技術可行性本系統(tǒng)采用匯編DOS窗口進行數(shù)據(jù)的管理、操作和維護,進行數(shù)據(jù)的錄入、刪除、查詢、瀏覽、修改、統(tǒng)計等功能。由其的數(shù)據(jù)存儲功能、方便快捷的驗證功能、使用的靈活、良好的可擴展性、以及廣泛實際應用,充分說明本系統(tǒng)在技術方面的可行性?!?操作可行性本系統(tǒng)設計清晰,操作簡潔,并達到操作過程中的直觀、方便、實用、安全等要求。1.3系統(tǒng)目標設計一個學生管理程序,主要實現(xiàn)以下功能〔1各個學生的姓名、性別、ID、成績的錄入、修改、和刪除;〔2按ID查詢每個學生的成績和信息;〔3顯示查詢結果;〔4顯示所有學生的個人信息和成績。程序運行時,在出現(xiàn)的主菜單中,按i鍵后,將執(zhí)行插入功能,可以插入新的學生信息;按d鍵輸入要刪除的學生姓名;按q鍵輸入ID查詢的學生的信息;按下e鍵將退出程序;按m鍵,鍵輸入需要修改的學生成績;按下c鍵將按成績分段結果;按下p鍵在電腦有打印的情況下打印程序,途中會出現(xiàn)r/c提示,r表示退出正在進行的操作回到主界面,c表示繼續(xù)操作;程序中輸入性別〔sex,須輸入0或者1.1.4系統(tǒng)流程圖圖1.4.1主程序流程圖2.系統(tǒng)總體設計2.1總體結構圖分析本系統(tǒng)有插入、刪除、查詢、修改、顯示、統(tǒng)計退出五大模塊,各模塊的主要功能有:插入:使用者可在打開程序主界面之后,按"i"鍵實施插入功能,添加信息主要有4項:ID〔要求輸入四位數(shù)字、NAME〔姓名、SEX〔性別,男生輸入1,女生輸入0,每項輸入完成按回車輸入下一項,輸入完成之后有提示r/c,r表示退出正在進行的操作回到主界面,c表示繼續(xù)添加。此處可實現(xiàn)程序數(shù)據(jù)的存儲,存儲位置"c:/score.txt";刪除:打開程序主界面之后,按"d"鍵實施刪除功能,只需輸入ID即可刪除該生在系統(tǒng)中的所有信息,此處可實現(xiàn)程序數(shù)據(jù)的刪除;查詢:打開程序主界面之后,按"q"鍵實施查詢功能,此時提示輸入信息同刪除,此處可實現(xiàn)程序數(shù)據(jù)的查詢;顯示:打開程序主界面之后,按"l"鍵實施顯示功能,即可顯示出所有的學生信息,此處可實現(xiàn)程序數(shù)據(jù)的顯示;修改:打開程序主界面之后,按"m"鍵實施修改功能,即可顯示出所有的學生信息,此處可實現(xiàn)程序數(shù)據(jù)的顯示;打印:在系統(tǒng)有打印功能的前提下,在主界面中輸入"p",就可對已有的成績打??;退出:在使用完成之后,按"e"即可退出程序,也可以直接點關閉按鈕。2.2總體結構圖圖2.2.1總體結構圖2.3總體數(shù)據(jù)結構〔1main主程序模塊用于對各種操作的調用,如插入、刪除、顯示所有學生的成績、信息等;〔2Insert子程序插入模塊用于實現(xiàn)對新增學生的插入,插入至學生文本中;〔3query子程序模塊根據(jù)學生ID查詢學生的所有信息,學生ID由鍵盤輸入,再從文件中一次比較找出要查詢學生的信息;〔4delete子程序模塊由用戶輸入要刪除學生的ID,從學生文件中找出要刪除的學生信息,實現(xiàn)刪除的操作?!?list子程序模塊用于顯示學生文件中所有學生的成績信息,每次從文件讀取一個學生的信息并顯示。3、詳細設計3.1程序功能設計程序運行時,在出現(xiàn)的主菜單中,按l鍵,將瀏覽學生的各科成績;按i鍵后,將執(zhí)行插入功能,可以插入新的學生信息;按d鍵輸入要刪除的學生姓名;按q鍵輸入ID查詢的學生的信息;按下e鍵將退出程序;途中會出現(xiàn)r/c提示,r表示退出正在進行的操作回到主界面,c表示繼續(xù)操作;程序中輸入性別〔sex,須輸入0或者1。以上功能單獨運行可以實現(xiàn),〔即在進入菜單后選擇其中一項功能運行可以成功運行,在關閉后選擇另一項功能可以成功運行,但是在整體運行時得不到想要的結果。注:此程序除了源程序外還需要一個學生文件,該程序命名為score.txt,該文件用于存放學生信息。3.2設計思路〔1數(shù)據(jù)定義一個數(shù)據(jù)元素〔一個學生的數(shù)據(jù)項應該為一個結構類型,定義如下:ID_LENGTHEQU4 NAM_LENGTHEQU20SEX_LENGTHEQU1SCORE_LENGTHEQU5 配置信息:ID4位數(shù);名字20個字符;性別,1位數(shù)〔0或者1;分數(shù)5位,范圍為0-100〔2方法和步驟這個程序主要分為插入、刪除、查詢、顯示、修改、退出,定義如下:mess3DB'*insert<i>*',0ah,0dh,'$'mess4DB'*modify<m>*',0ah,0dh,'$'mess5DB'*delete<d>*',0ah,0dh,'$'mess6DB'*query<q>*',0ah,0dh,'$'mess7DB'*count<c>*',0ah,0dh,'$'mess8DB'*print<p>*',0ah,0dh,'$'mess9DB'*exit<e>*',0ah,0dh,'$'進去之后首先創(chuàng)建一個".txt"數(shù)據(jù)庫文本,用來儲存輸入信息,控制文件的打開、關閉、讀寫、移動等。用空格初始化緩沖區(qū)子程序,定義出要在主界面所要顯示的內容,顯示提示信息,打開文件,按提示進入操作。插入:insert子程序;刪除:delete子程序;查詢:query子程序;全部顯示:list子程序;修改:modify;打?。簆rint;退出:exit子程序。4、系統(tǒng)測試4.1測試方案〔1.asm的源程序文件建立.exe的可在電腦上直接運行的文件;〔2打開.exe文件,按照提示輸入,分別測試插入、刪除、查詢、顯示、修改、退出等功能。4.2測試用例及測試結果〔1主程序截圖主程序〔2顯示所有成績顯示全部〔3插入成績插入成績〔4修改成績修改成績〔5刪除成績刪除成績〔6查找成績查找成績統(tǒng)計成績圖統(tǒng)計成績4.3軟件可靠性〔1分析測試集中的所有測試用例,測試可以通過測試準則。
〔2測試代碼可以達到相應的測試覆蓋率,每一個狀態(tài)和路徑都可以達到相應效果。
〔3對測試結果進行分析,所有的安全性需求可得到了滿足。
5、軟件使用說明書程序運行時,在出現(xiàn)的主菜單中,按l鍵,將瀏覽學生的各科成績;按i鍵后,將執(zhí)行插入功能,可以插入新的學生信息;按d鍵輸入要刪除的學生姓名;按q鍵輸入ID查詢的學生的信息;按下e鍵將退出程序;途中會出現(xiàn)r/c提示,r表示退出正在進行的操作回到主界面,c表示繼續(xù)操作;程序中輸入性別〔sex,須輸入0或者1。以上功能單獨運行可以實現(xiàn),〔即在進入菜單后選擇其中一項功能運行可以成功運行,在關閉后選擇另一項功能可以成功運行,但是在整體運行時得不到想要的結果。注:此程序除了源程序外還需要一個學生文件,該程序命名為score.txt,該文件用于存放學生信息。6、設計總結通過對這學生成績管理的的制作,使我對匯編語言的基本知識的使用更加熟練,同時也增加了我對匯編語言的一些認識,在作業(yè)完成過程中通過和同學的交流,也增加了合作的技巧。通過查閱資料也學到了一些課本上沒有的東西,拓寬了自己的知識面,增加了學好匯編語言的信心。這不是第一次用匯編語言來設計一個小程序,平時做了很多實驗,寫了很多小程序。但這次是一個綜合的程序,平時的很多程序都用到了。歷時兩周終于完成,其間有不少感觸。在本次的課程設計過程中,我最大的收獲就是學到了不少新的知識,同時可以自己學到的匯編語言的知識和以前學的程序設計的知識應用到實踐中,熟悉了開發(fā)環(huán)境,提高了自己的動手能力,并順利地完成了此次的任務.課程設計讓我從中得到莫大的信心,鼓勵,快樂和成就感.編程過程中,我遇到了一些困難.這我通過上網(wǎng)查詢和去圖書館查找資料解決問題,有效地利用網(wǎng)絡資源和學校圖書資源,同時也了解了更多的知識獲取的途徑,擴大了自己的知識面.遇到問題時,多數(shù)情況下我是自己獨立解決的,這鍛煉我獨立思考問題和獨立解決問題的能力;如果自己通過查找資料無法解決,我就向老師和同學尋求幫助,不但學到了新的,更完善解決問題的方法,還學會了與人溝通,與人交流.我認識到有時候,其他人的一點提示,就會令自己茅塞頓開,得到靈感.因此,在作課程設計時,不要吝惜自己的思路和想法,盡可能多的與大家的交流.許多時,我們都能從中得到進步,得到提示,甚至得到更好的方案.同時我也發(fā)現(xiàn)了自己的一些問題.本次課程設計,對我?guī)椭艽?它提高了我的理論知識和和實踐動手能力;提高了我獨立思考問題和解決問題的能力;同時,增強了我與人探討問題,交流思路的意識;此外,它還讓我發(fā)現(xiàn)了自己在編程習慣上的許多不足,對以后的編寫程序和設計解題思路有很大的啟發(fā).在以后的學習和實踐中,我會不斷督促自己,不斷提高,不斷進步參考文獻[1]范立南,劉天慧編著《SQLServer2000實用教程》清華大學出版社[2]丁寶康編著《數(shù)據(jù)庫實用教程》清華大學出版社[3]陳禹,方美琪編著《軟件開發(fā)工具》經(jīng)濟科學出版社[4]黃梯云,主編《管理信息系統(tǒng)》高等教育出版社[5]朱耀庭,《匯編語言程序設計》清華大學出版社致謝在此次課程設計中,我們衷心感謝劉樹群老師對我們的細心指導。劉老師指引我們的課程設計的寫作的方向和架構,并指正出其中誤謬之處,使我們一起努力完成,劉老師要指導很多同學的論文,加上本來就有的教學任務,工作量之大可想而知,老師的用心良苦。在此,謹向劉老師衷心的感謝!謝謝劉老師在我們的課程設計過程中給與我們的極大地幫助。同時,課程設計的順利完成,離不開小組內部成員的互相努力,團結協(xié)作。在整個的課程設計寫作中,大家互相支持,努力需找問題答案所在。最終順利完成了這個課程設計。在論文的寫作過程中也學到了做任何事情所要有的態(tài)度和心態(tài),首先做學問要一絲不茍,對于發(fā)展過程中出現(xiàn)的任何問題和偏差都不要輕視,要通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,不要一遇到困難就達退堂鼓,只要堅持下去就可以找到思路去解決問題的。而且要學會與人合作,這樣做起事情來就可以事半功倍。附錄〔源代碼DATASEGMENTTIPS0DB'Tips:',0DH,0AH,'$' ;插入提示信息TIPS1DB'SEX:1:male0:female',0DH,0AH,'$'TIPS3DB'PleaseinputID:$' ;查詢提示信息TIPS4DB'Pleaseenter"r"toreturn$'TIPS5DB'Pleaseenter"r"toreturn,"c"tocontinue$'IDDB'ID:$'NAMDB'NAME:$'SEXDB'SEX:$'SCOREDB'SCORE:$'FIDDW? ;文件號SEXMDB'male$'SEXFDB'female$'COUNT_ADB'90~100:$' ;統(tǒng)計提示信息COUNT_BDB'80~89:$'COUNT_CDB'70~79:$'COUNT_DDB'60~69:$'COUNT_EDB'00~59:$'ABDB5DUP<'0'> ;統(tǒng)計結果mess1DB'*TheStudentGradeManagementSystem*',0ah,0dh,'$'mess2DB'*thisismainmenu*',0ah,0dh,'$'mess3DB'*insert<i>*',0ah,0dh,'$'mess4DB'*modify<m>*',0ah,0dh,'$'mess5DB'*delete<d>*',0ah,0dh,'$'mess6DB'*query<q>*',0ah,0dh,'$'mess7DB'*count<c>*',0ah,0dh,'$'mess8DB'*print<p>*',0ah,0dh,'$'mess9DB'*exit<e>*',0ah,0dh,'$'mess10DB'*********************************$'mess13DB'*list<l>*',0ah,0dh,'$'mess14DB'*pleasechose<l/i/m/d/q/c/p/e>:*',0ah,0dh,'$'ID_LENGTHEQU4 ;配置信息NAM_LENGTHEQU20SEX_LENGTHEQU1 ;性別請勿更改位數(shù)SCORE_LENGTHEQU5STU_LENGTHDW? ;每條學生信息總長度STU_LENGTH_ADD1DW?NAM_SEX_SCORE_LENGTHDW?DELDB30DUP<''> ;清空信息用DEL_DONEDB'Deletesuccess!$'ERRDB'Dataerror,Pleaseinputagain!$' ;錯誤提示信息NOSTUDB'Sorry,thereisnothisstudnet!$'ERR_NODB'Nostudentinformation!$'ERR_SAMEDB'ThereisthesameID,pleaseinputagain!$'NEWFDB0DH,0AH,0DH,0AH,'Warning:thisoperationwillemptyallyourdata!',0DH,0AH,0DH,0AH,'Willyoucontinue?<y:empty,otherkey:return>:$'FPATHDB'c:\score.txt',0 ;數(shù)據(jù)庫文本STRDB50 ;緩沖區(qū)strDB?DB50DUP<?>STR0DB50DUP<?> ;緩沖區(qū)str0ENTERDB'$' ;空格TMPDW0 ;是否為空標志信息SCDB0 ;分數(shù)保護處用BYEDB'Thanksforuseourprogram!',0DH,0AH,0DH,0AH,'Bye~Bye~$'BY0DB'Writer:$'BY1DB'07212151206<GaoTian>$'BY2DB'07212151207<YuChangMing>$'BY3DB'07212151208<YiBaoFa>$'BY4DB'07212151209<DongJunZai>$'BY5DB'07212151210<LuoChun>$'DATAENDSSET_P1MACRO ;設定光標位置AMOVAH,02HMOVDH,02MOVDL,03MOVBH,0INT10HENDMSET_P3MACROMOVAH,02H ;設定光標的位置BMOVDH,15 MOVDL,44MOVBH,0;當前這頁INT10HENDMTABMACRO ;換行 MOVAH,2 MOVDL,0DH INT21H MOVDL,0AH INT21HENDMCREATEFMACROFILE_ID,FILE_PATH ;創(chuàng)建文件〔[傳入]文件號、[傳入]文件路徑 MOVAH,3CH MOVCX,00H ;普通文件 LEADX,FILE_PATH INT21H MOVFILE_ID,AXENDMOPENFMACROFILE_ID,FILE_PATH ;打開文件〔[傳入]文件號、[傳入]文件路徑 MOVAL,2 ;讀寫文式打開 MOVAH,3DH LEADX,FILE_PATH INT21H MOVFILE_ID,AXENDMCLOSEFMACROFILE_ID ;關閉文件〔[傳入]文件號 MOVBX,FILE_ID MOVAH,3EH INT21H ENDMREADFMACROFILE_ID,TEMP,NUM ;讀文件〔[傳入]文件號、[傳入]緩沖區(qū)、[傳入]字節(jié)數(shù) MOVBX,FILE_ID LEADX,TEMP MOVAX,NUM MOVCX,AX MOVAH,3FH INT21HENDMWRITEFMACROFILE_ID,TEMP,NUM ;寫文件〔[傳入]文件號、[傳入]緩沖區(qū)、[傳入]字節(jié)數(shù) MOVBX,FILE_ID MOVCX,NUM LEADX,TEMP[2] MOVAH,40H INT21HENDMMOVEFMACROFILE_ID,STYPE,HIGEC,LOWD ;移動文件指針〔[傳入]文件號、[傳入]移動方式、[傳入]偏移字節(jié)〔高位[傳入]偏移字節(jié)〔低位 MOVBX,FILE_ID MOVAH,42H MOVAL,STYPE ;尾+偏移量方式 MOVCX,HIGEC ;偏移字節(jié)〔高位 MOVDX,LOWD ;偏移字節(jié)〔低位 INT21HENDMINPUTMACROBUFFER,LENGTH ;輸入字符串〔[傳入]字符串名、[返回]字符串長度 MOVAH,10 LEADX,BUFFER INT21H MOVLENGTH,BUFFER[1]ENDMSHOWMACROBUFFER ;顯示字符串〔[傳入]字符串名 MOVAH,9 LEADX,BUFFER INT21HENDMSTAKSEGMENTSTACKDB200DUP<?>STAKENDS;=========================================;代碼段;=========================================CODESEGMENTASSUMECS:CODE,DS:DATASHOW_EXITPROCNEAR ;提示按r退出 PUSHAX PUSHBX PUSHCX PUSHDX TAB TAB SHOWTIPS4EXIT_1: MOVAH,7 INT21H CMPAL,'r' JNZEXIT_1 POPDX POPCX POPBX POPAX RETSHOW_EXITENDPSHOW_ECPROCNEAR ;詢問退出還是繼續(xù) PUSHAX PUSHBX PUSHCX PUSHDX TAB TAB SHOWTIPS5EXIT_2: MOVAH,7 INT21H CMPAL,'r' JZEXIT_4 CMPAL,'c' JNZEXIT_2 CALLINSERTEXIT_4: POPDX POPCX POPBX POPAX RETSHOW_ECENDPSHOW_ERRPROCNEAR ;顯示出錯信息子程序 PUSHAX PUSHBX PUSHCX PUSHDX TAB TAB SHOWERR TAB TAB POPDX POPCX POPBX POPAX RETSHOW_ERRENDPRE_TMPPROCNEAR ;用空格初始化緩沖區(qū)子程序 PUSHAX PUSHBX PUSHCX PUSHDX MOVCX,50 MOVBX,1RE: INCBX MOVSTR[BX],'' LOOPRE POPDX POPCX POPBX POPAX RETRE_TMPENDPCLEARPROCNEAR ;清屏PUSHAXPUSHBXPUSHCXPUSHDXMOVAL,0;上滾行數(shù)MOVCL,0;上滾窗口左上角的列號為0MOVCH,0;上滾窗口左上角的行號為0MOVDH,24;上滾窗口右上角的行號為24MOVDL,79;上滾窗口右上角的列號為79MOVBH,14;空白行的屬性MOVAH,6;入口參數(shù)INT10HSET_P1POPDXPOPCXPOPBXPOPAXRETCLEARENDPSHOW_STUPROCNEAR ;顯示學生信息子程序 PUSHAX PUSHBX PUSHCX PUSHDX SHOWID ;ID MOVCX,ID_LENGTH MOVBX,-1SH_ID: INCBX MOVDL,STR0[BX] MOVAH,2 INT21H LOOPSH_ID SHOWENTER SHOWNAM ;NAME MOVCX,NAM_LENGTH MOVBX,ID_LENGTH DECBXSH_NAME:INCBX MOVDL,STR0[BX] MOVAH,2 INT21H LOOPSH_NAME SHOWENTER SHOWSEX ;SEX MOVBX,ID_LENGTH ADDBX,NAM_LENGTH MOVDL,STR0[BX] CMPDL,'1' ;1顯示male,0顯示female JNZSEX_F SHOWSEXM JMPNNSEX_F: SHOWSEXFNN: SHOWENTER SHOWSCORE ;SCORE MOVCX,SCORE_LENGTH MOVBX,ID_LENGTH ADDBX,NAM_LENGTHSH_SCORE:INCBX MOVDL,STR0[BX] MOVAH,2 INT21H LOOPSH_SCORE POPDX POPCX POPBX POPAX RETSHOW_STUENDPPRINT_STUPROCNEAR ;打印學生信息子程序 PUSHAX PUSHBX PUSHCX PUSHDX TAB SHOWID ;ID MOVCX,ID_LENGTH MOVBX,-1P_ID: INCBX MOVDL,STR0[BX] MOVAH,5 INT21H LOOPP_ID SHOWENTER SHOWNAM ;NAME MOVCX,NAM_LENGTH MOVBX,ID_LENGTH DECBXP_NAME: INCBX MOVDL,STR0[BX] MOVAH,5 INT21H LOOPP_NAME SHOWENTER SHOWSEX ;SEX MOVBX,ID_LENGTH ADDBX,NAM_LENGTH MOVDL,STR0[BX] MOVAH,5 INT21HPNN: SHOWENTER SHOWSCORE ;SCORE MOVCX,SCORE_LENGTH MOVBX,ID_LENGTH ADDBX,NAM_LENGTHP_SCORE:INCBX MOVDL,STR0[BX] MOVAH,5 INT21H LOOPP_SCORE POPDX POPCX POPBX POPAX RETPRINT_STUENDP;====================以下插入<insert>子程序================INSERTPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX TABCALLCLEAR;清屏 SHOWTIPS0 ;顯示提示信息 SHOWTIPS1 TAB TAB OPENFFID,FPATH ;打開文件IN_ID: SHOWID ;學號 INPUTSTR,BL ;向緩沖區(qū)輸入ID CMPBL,ID_LENGTH ;看ID是否合法 JZL1 JNZERR_IDERR_SA: ;錯誤處理 TAB TAB SHOWERR_SAME TAB TAB JMPIN_IDERR_ID: TAB TAB CALLSHOW_ERR TAB TAB JMPIN_IDL1: ;ID判斷只能為數(shù)字 MOVCX,ID_LENGTH LEASI,STR+2LN: MOVAL,BYTEPTR[SI] CMPAL,'0' JBERR_ID CMPAL,'9' JAERR_ID INCSI LOOPLN MOVEFFID,0,0,0 ;指針移到文件首IA: MOVEFFID,1,0,5 IB: READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 ;文件是否結束 JNZIL1 JMPIC ;沒有重復學號,可以插入IL1: LEASI,STR0 LEADI,STR INCDI DECSI MOVCX,ID_LENGTH IL2: INCSI INCDI MOVAL,BYTEPTR[DI] CMPAL,BYTEPTR[SI] JNZIA ;不符合條件讀取下一個同學信息 LOOPZIL2 JMPERR_SA ;有重復學號IC: MOVEFFID,2,0,5 WRITEFFID,STR,ID_LENGTH;數(shù)據(jù)合法則寫入數(shù)據(jù) TABIN_NAM: SHOWNAM ;姓名 CALLRE_TMP ;初始化緩沖區(qū) INPUTSTR,BL ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,NAM_LENGTH JNAL2ERR_NAM: CALLSHOW_ERR JMPIN_NAML2: CMPSTR[2],'' ;姓名第一個字符不為空 JZERR_NAM CMPSTR[2],'z' JAERR_NAM CMPSTR[2],'A' JBERR_NAM CMPSTR[2],'a' JNBIII CMPSTR[2],'Z' JAERR_NAM CMPSTR[2],'A' JBERR_NAMIII: MOVCX,NAM_LENGTH MOVBX,2 II0: INCBX DECCX CMPSTR[BX],'z' JAERR_NAM CMPSTR[BX],'' JBERR_NAM CMPSTR[BX],'a' JNBII0 CMPSTR[BX],'Z' JAERR_NAM CMPSTR[BX],'A' JNBII0 CMPSTR[BX],'' JNZERR_NAM CMPCX,0 JNZII0 WRITEFFID,STR,NAM_LENGTH TABIN_SEX: SHOWSEX ;性別 CALLRE_TMP INPUTSTR,BL ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,SEX_LENGTH JNZERR_SEX MOVBL,STR[2] CMPBL,'1' JZL4CMPBL,'0' JZL4ERR_SEX: CALLSHOW_ERR JMPIN_SEXL4: WRITEFFID,STR,SEX_LENGTH TABIN_SCORE: SHOWSCORE CALLRE_TMP INPUTSTR,BL MOVSC,BL ;BL保護 ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,SCORE_LENGTH ;分數(shù)最多4位 JBL5ERR_SCORE: CALLSHOW_ERR JMPIN_SCOREL5: MOVCX,BX ;分數(shù)只能是數(shù)字和. MOVBX,2L6: CMPSTR[BX],'0' JNBL7 ;>=0 CMPSTR[BX],'.' JNZERR_SCORE JZL8L7: CMPSTR[BX],'9' ;<=9 JAERR_SCORE INCBX LOOPL6L8: MOVBL,SC CMPBL,4 ;分數(shù)<0~100>,支持一位小數(shù) JNZL9 CMPSTR[4],'.' JNZERR_SCORE JMPLWL9: CMPBL,3 JNZL10 CMPSTR[3],'.' JZLW CMPSTR[2],'1' JNZERR_SCORE CMPSTR[3],'0' JNZERR_SCORE CMPSTR[4],'0' JNZERR_SCORE JMPLWL10: CMPBL,2 JNZL11 CMPSTR[2],'.' JZERR_SCORE JMPLWL11: CMPSTR[2],'.' JZERR_SCORELW: WRITEFFID,STR,SCORE_LENGTH TAB CLOSEFFID ;關閉文件 CALLSHOW_EC POPDX POPCX POPBX POPAX RETINSERTENDP;================以下是查詢<query>子程序================QUERYPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDXCALLCLEAR OPENFFID,FPATH ;打開文件IN_ID1: SHOWTIPS3 ;顯示提示信息 INPUTSTR,BL ;向緩沖區(qū)STR輸入ID CMPBL,ID_LENGTH ;看ID是否合法 JZQL1QERR_ID: ;錯誤處理 CALLSHOW_ERR JMPIN_ID1A: MOVEFFID,1,0,5B: READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 ;文件是否結束 JNZQL1 QL3: TAB TAB ;文件結束,沒有該學生信息 SHOWNOSTU JMPCQL1: LEASI,STR0 LEADI,STR INCDI DECSI MOVCX,ID_LENGTH QL2: INCSI INCDI MOVAL,BYTEPTR[DI] CMPAL,BYTEPTR[SI] JNZA ;不符合條件讀取下一個同學信息 LOOPZQL2 TAB TAB ;符合條件顯示 CALLSHOW_STU JMPCC: CLOSEFFID TAB TAB SHOWTIPS5 ;詢問退出還是繼續(xù)Q_2: MOVAH,7 INT21H CMPAL,'r' JZQ_4 CMPAL,'c' JNZQ_2 CALLQUERYQ_4: POPDX POPCX POPBX POPAX RETQUERYENDP;==============以下是瀏覽<list>子程序==================LISTPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX CALLCLEAR MOVAX,0 MOVTMP,AX ;是否為空標志清0 OPENFFID,FPATH ;打開文件 TABD: MOVEFFID,1,0,5E: READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 ;是否到文件尾 JNZG CMPTMP,0 ;判斷有沒有信息 JNZF TAB TAB TAB SHOWERR_NO JMPFG: MOVCX,ID_LENGTH ;ID為空不顯示 MOVBX,0 DECBXNULL: INCBX CMPSTR0[BX],'' JZD LOOPNULL CALLSHOW_STU INCTMP ;有信息為空標志自加 TAB JMPDF: CLOSEFFID CALLSHOW_EXIT POPDX POPCX POPBX POPAX RETLISTENDP ;===============以下是刪除<delete>子程序=====================DELETEPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX CALLCLEAR OPENFFID,FPATH ;打開文件D0: SHOWTIPS3 ;顯示提示信息 INPUTSTR,BL ;向緩沖區(qū)STR輸入ID CMPBL,ID_LENGTH ;看ID是否合法 JZD2 CALLSHOW_ERR JMPD0D2: MOVEFFID,1,0,5 READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 ;文件是否結束 JNZD5 TAB TAB SHOWNOSTU ;文件結束,沒有該學生信息 JMPD15D5: LEASI,STR0 LEADI,STR INCDI DECSI MOVCX,ID_LENGTH D6: INCSI INCDI MOVAL,BYTEPTR[DI] CMPAL,BYTEPTR[SI] JNZD2 ;不符合條件讀取下一個同學信息 LOOPZD6 TAB ;顯示修改前信息 TAB CALLSHOW_STU TAB TAB TAB SHOWDEL_DONE MOVEFFID,1,0FFFFH,STU_LENGTH_ADD1 WRITEFFID,DEL,STU_LENGTH TABD15: TAB TAB TAB CLOSEFFID SHOWTIPS5 ;詢問退出還是繼續(xù)D_2: MOVAH,7 INT21H CMPAL,'r' JZD_4 CMPAL,'c' JNZD_2 CALLDELETED_4: POPDX POPCX POPBX POPAX RETDELETEENDP;===============以下是修改<modify>子程序=====================MODIFYPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX CALLCLEAR OPENFFID,FPATH ;打開文件M0: SHOWTIPS3 ;顯示提示信息 INPUTSTR,BL ;向緩沖區(qū)STR輸入ID CMPBL,ID_LENGTH ;看ID是否合法 JZM2 CALLSHOW_ERR JMPM0M2: MOVEFFID,1,0,5 READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 ;文件是否結束 JNZM5 TAB TAB SHOWNOSTU ;文件結束,沒有該學生信息 JMPM_2M5: LEASI,STR0 LEADI,STR INCDI DECSI MOVCX,ID_LENGTH M6: INCSI INCDI MOVAL,BYTEPTR[DI] CMPAL,BYTEPTR[SI] JNZM2 ;不符合條件讀取下一個同學信息 LOOPZM6 TAB ;顯示修改前信息 TAB CALLSHOW_STU TAB TABM7: SHOWNAM ;開始修改信息 CALLRE_TMP ;初始化緩沖區(qū) INPUTSTR,BL ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,NAM_LENGTH JNAML2 ;開始修改信息ERR_N0: CALLSHOW_ERR ;溢出提示 JMPM7ML2: CMPSTR[2],'' ;姓名第一個字符不為空 JZERR_N0 CMPSTR[2],'z' JAERR_N0 CMPSTR[2],'A' JBERR_N0 CMPSTR[2],'a' JNBMM0 CMPSTR[2],'Z' JAERR_N0 CMPSTR[2],'A' JBERR_N0MM0: MOVCX,NAM_LENGTH ;名字只能是字母或空格 MOVBX,2 MM1: INCBX DECCX CMPSTR[BX],'z' JAERR_N0 CMPSTR[BX],'' JBERR_N0 CMPSTR[BX],'a' JNBMM1 CMPSTR[BX],'Z' JAERR_N0 CMPSTR[BX],'A' JNBMM1 CMPSTR[BX],'' JNZERR_N0 CMPCX,0 JNZMM1 MOVEFFID,1,0FFFFH,NAM_SEX_SCORE_LENGTH ;指針移到姓名處 WRITEFFID,STR,NAM_LENGTH TABM10: SHOWSEX CALLRE_TMP INPUTSTR,BL ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,SEX_LENGTH JNZM11 MOVBL,STR[2] CMPBL,'1' JZM12CMPBL,'0' JZM12M11: CALLSHOW_ERR ;錯誤提示 JMPM10M12: WRITEFFID,STR,SEX_LENGTH TABM13: SHOWSCORE CALLRE_TMP INPUTSTR,BL MOVSC,BL ADDBL,2 ;去掉回車 MOVBH,0 MOVSI,BX MOVSTR[SI],'' SUBBL,2 CMPBL,SCORE_LENGTH ;分數(shù)錯誤判斷 JBM14MEC: CALLSHOW_ERR JMPM13M14: MOVBL,SC MOVBH,0 MOVCX,BX ;分數(shù)只能是數(shù)字和. MOVBX,2M15: CMPSTR[BX],'0' JNBM16 ;>=0 CMPSTR[BX],'.' JNZMEC JZM17M16: CMPSTR[BX],'9' ;<=9 JAMEC INCBX LOOPM15 JMPM17M21: JMPMEC ;中轉M17: MOVBL,SC CMPBL,4 ;分數(shù)<0~100>,支持一位小數(shù) JNZM18 CMPSTR[4],'.' JNZM21 JMPMWM18: CMPBL,3 JNZM19 CMPSTR[3],'.' JZMW CMPSTR[2],'1' JNZM21 CMPSTR[3],'0' JNZM21 CMPSTR[4],'0' JNZM21 JMPMWM19: CMPBL,2 JNZM20 CMPSTR[2],'.' JZM21 JMPMWM20: CMPSTR[2],'.' JZM21MW: WRITEFFID,STR,SCORE_LENGTHM_2: TAB TAB TAB TAB CLOSEFFID SHOWTIPS5 ;詢問退出還是繼續(xù) MOVAH,7 INT21H CMPAL,'r' JZM_4 CMPAL,'c' JNZM_2 CALLMODIFYM_4: POPDX POPCX POPBX POPAX RETMODIFYENDP;===========以下是統(tǒng)計各分數(shù)段人數(shù)<count>子程序==============COUNTPROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX CALLCLEAR TAB TAB TAB OPENFFID,FPATH ;打開文件C_0: MOVBX,FID MOVAH,42H MOVAL,1 ;當前+偏移量方式 MOVCX,0 ;偏移字節(jié)〔高位 MOVDX,5 ;偏移字節(jié)〔低位 INT21HC_1: READFFID,STR0,STU_LENGTH ;讀取學生信息 CMPAX,0 JZC_8 ;到文件尾則結束 MOVBX,ID_LENGTH ADDBX,NAM_LENGTH INCBX MOVAX,BX MOVDL,STR0[BX] ;DL里放分數(shù)第一位 CMPDL,'1' ;如果是100分直接顯示A JZC_2C_2: INCBX MOVDL,STR0[BX] CMPDL,'0' JZC_3C_3: INCBX MOVDL,STR0[BX] CMPDL,'0' JZC_A MOVBX,AX MOVDL,STR0[BX] MOVCL,'9' CMPDL,CL JGEC_A MOVCL,'8' CMPDL,CL JGEC_B MOVCL,'7' CMPDL,CL JGEC_C MOVCL,'6' CMPDL,CL JGEC_D CMPDL,'' JZC_0 INC[AB] JMPC_0C_A: INC[AB+4] JMPC_0C_B: INC[AB+3] JMPC_0C_C: INC[AB+2] JMPC_0C_D: INC[AB+1] JMPC_0C_8: CLOSEFFID SHOWCOUNT_A;顯示每個階段分數(shù)的人數(shù)MOVDL,[AB+4]CMPDL,'9'JALA1MOVAH,02HINT21HMOV[AB+4],'0'TABJMPNEXTLA1:SUBDL,30HMOVAL,DLMOVBL,10MOVAH,0DIVBLMOVDL,ALMOVBL,AHADDDL,30HMOVAH,02HINT21HADDBL,30HMOVDL,BLMOVAH,02HINT21HMOV[AB+4],'0'TABNEXT:SHOWCOUNT_BMOVDL,[AB+3]CMPDL,'9'JALB1MOVAH,02HINT21HMOV[AB+3],'0'TABJMPNEXT1LB1:SUBDL,30HMOVAL,DLMOVBL,10MOVAH,0DIVBLMOVDL,ALMOVBL,AHADDDL,30HMOVAH,02HINT21HADDBL,30HMOVDL,BLMOVAH,02HINT21HMOV[AB+3],'0'TABNEXT1:SHOWCOUNT_CMOVDL,[AB+2]CMPDL,'9'JALC1MOVAH,02HINT21HMOV[AB+2],'0'TABJMPNEXT2LC1:SUBDL,30HMOVAL,DLMOVBL,10MOVAH,0DIVBLMOVDL,ALMOVBL,AHADDDL,30HMOVAH,02HINT21HADDBL,30HMOVDL,BLMOVAH,02HINT21HMOV[AB+2],'0'TABNEXT2:SHOWCOUNT_DMOVDL,[AB+1]CMPDL,'9'JALD1MOVAH,02HINT21HMOV[AB+1],'0'TABJMPNEXT3LD1:SUBDL,30HMOVAL,DLMOVBL,10MOVAH,0DIVBLMOVDL,ALMOVBL,AHADDDL,30HMOVAH,02HINT21HADDBL,30HMOVDL,BLMOVAH,02HINT21HMOV[AB+1],'0'TABNEXT3:SHOWCOUNT_EMOVDL,[AB]CMPDL,'9'JALE1MOVAH,02HINT21HMOV[AB],'0'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024秋三年級語文上冊 第一單元 第2課 花的學校說課稿 新人教版
- 2024年春九年級歷史上冊 第22課 科學和思想的力量說課稿 新人教版
- 6梯形的面積 說課稿-2024-2025學年人教版數(shù)學五年級上冊
- 2024-2025學年高中化學 第一章 物質結構元素周期律 第一節(jié) 元素周期表第1課時說課稿1 新人教版必修2
- 2024年秋八年級語文上冊 第五單元 名著導讀《昆蟲記》說課稿 新人教版001
- 2024年春七年級地理下冊 第6章 第2節(jié) 自然環(huán)境說課稿2 (新版)新人教版
- 9 烏鴉喝水(說課稿)2024-2025學年統(tǒng)編版語文一年級上冊001
- 1《植物》科學閱讀《我們離不開植物》(說課稿)2023-2024學年一年級上冊科學教科版001
- 2025個人購房合同樣本(合同版本)
- Unit2 Bridging Cultures Learning About Language Structures 說課稿-2024-2025學年高中英語人教版(2019)選擇性必修第二冊
- 物業(yè)公司服務質量檢查流程
- 2022小學音樂新課程標準測試題庫及答案
- 中國心胸外科的歷史和現(xiàn)狀
- 人教版9年級全一冊英語單詞表
- 三門峽水利工程案例分析工程倫理
- 中國旅游地理區(qū)劃-京津冀旅游區(qū)
- “1+X”證書制度試點職業(yè)技能等級證書全名錄
- 生姜高產(chǎn)種植技術專題培訓課件
- 《社會主義市場經(jīng)濟理論(第三版)》第八章社會主義市場經(jīng)濟調控論
- 交流伺服系統(tǒng)常見故障及處理分解課件
- 水土保持單元工程質量評定表
評論
0/150
提交評論