北京理工大學匯編語言實驗六 學生成績管理系統設計實驗_第1頁
北京理工大學匯編語言實驗六 學生成績管理系統設計實驗_第2頁
北京理工大學匯編語言實驗六 學生成績管理系統設計實驗_第3頁
北京理工大學匯編語言實驗六 學生成績管理系統設計實驗_第4頁
北京理工大學匯編語言實驗六 學生成績管理系統設計實驗_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

實驗六學生成績管理系統設計實驗(綜合性實驗)

一、實驗要求和目的1.熟悉匯編語言程序結構;2.熟悉INT21H的文件操作功能調用;3.熟悉INT21H的1、9號功能和INT10H常用功能的使用方法;4.掌握多子程序復雜問題程序設計方法;5.了解多模塊程序設計方法(不作要求)。二、軟硬件環境1、硬件環境:計算機系統windows;2、軟件環境:裝有MASM、DEBUG、LINK、等應用程序。三、實驗涉及的主要知識單元對于一個復雜的程序,往往是分成若干個子程序設計的,然后用將它們組成一個完整的程序。子程序通過調用和返回,參數傳遞方法實現互相聯系。四、實驗內容與步驟1、實驗內容設計一個學生成績管理系統,要求完成文件建立、學生成績錄入、顯示指定學號的學生記錄、刪除一個學生的記錄、修改學生記錄、返回等工作。學生成績包括學號(XH)、姓名(XM)、數學(SX)、語文(YW)、外語(WY)字段。至少包括30名學生信息,每名學生學號字段為4個字符,姓名字段為15個字符(最大),每門成績字段為3個字符(最大)。2、實驗步驟(1)編寫主程序main.asm,實現如圖所示菜單;(2)編寫文件創建子程序create,實現在指定盤指定文件夾”d:\chengji\2009\’下建立一個指定名稱的文件2009doc.dat,界面如圖所示;(3)編寫成績錄入子程序append,實現在指定文件尾部插入一個學生的成績記錄,界面如圖所示;(4)編寫顯示子程序display,實現按指定學號顯示一個學生的記錄,,界面如圖所示;(5)編寫修改子程序modify,實現按指定學號修改一個學生的記錄字段(不需修改直接回車),界面如圖所示;(6)編寫刪除子程序,實現按指定學號、姓名刪除一個學生的記錄,界面如圖所示;(7)編譯、鏈接、調試,產生可執行文件main.exe。五、實驗要求與提示1、實驗要求(1)畫出各程序流程圖;(2)列出程序清單,加上適量注釋;(3)回答思考問題;(4)記錄實驗結果;(5)完成實驗報告(實驗材料上的內容簡寫,自己的工作要詳盡)。2、實驗提示考慮用INT10H的06H號實現清屏的功能,用02H號實現置光標位置的功能?六、思考與練習以及測評標準1.有興趣的同學可以考慮用多模塊程序設計方法實現;2.文件在使用之前為何要打開?使用后為何要關閉?怎樣計算文件的長度和移動文件的讀寫指針?打開獲得句柄,使用后用int21h七、程序流程圖

八、實驗結果九、程序代碼datasegmentformsdb101*64dup('$')filenamedb14,0,14dup(0)formsbdb14,'$$$$$$$$$$$$$$$',22,'$$$$$$$$$$$$$$$$$$$$$$$',6,'$$$$$$$',6,'$$$$$$$',6,'$$$$$$$'screen0db '1.Appendarecord',0dh,0ah, '2.Displayarecord',0dh,0ah, '3.Modifyarecord',0dh,0ah, '4.Deletearecord',0dh,0ah, '5.Openafile',0dh,0ah, '6.Saveintoafile',0dh,0ah, '7.ReturnDOS',0dh,0ah, 'Pleaseinput1-6:','$'f1str1 db 'PleaseinputXH:$'f1str2 db 'PleaseinputXM:$'f1str3 db 'PleaseinputSX:$'f1str4 db 'PleaseinputYW:$'f1str5 db 'PleaseinputWY:$'f2str1 db 'XueHao:$'f2str2 db 'XingMing:$'f2str3 db 'ShuXue:$'f2str4 db 'Yuwen:$'f2str5 db 'WaiYu:$'f3str1 db 'XueHaodoesnotexist.Nothinghasbeenchanged.$'f4str1 db 'PleaseinputXingMing:$'f4str2 db 'PleaseinputXueHao:$'f5str1 db 'Pleaseinputfilename:$'f5str2db 'Sorry!Filedoesnotexist.$'f5str3db 'Loading...$'f5str4db 'Completed.$'f5str5db 'Failed.$'f6str1db 'Savesucceed!$'f6str2db 'Savefailed.$'fstr1 db 'Finish!$'fstr2 db 'Pressanykeytoreturn!$'tempiodb0statedb'0'formenddw0XHtempdb0eh,'0','$$$$$$$$$$$$$$'XHtempbdb0eh,'0','$$$$$$$$$$$$$$'cxtemp1dw100cxtemp2dw14ditempdw0sitempdw0handledw0dataendsstacksegmentstacksdb64dup(0)stackends

codesegmentassumeds:data,ss:stack,cs:codestart: movax,data movds,ax moves,ax movax,stack movss,ax callinitialwin: callprts0 callinput moval,tempio movstate,al M1: cmpal,'1' jnzM2 jmpf1 jmpwinM2: cmpal,'2' jnzM3 jmpf2 jmpwinM3: cmpal,'3' jnzM4 jmpf3 jmpwinM4: cmpal,'4' jnzM5 jmpf4 jmpwinM5: cmpal,'5' jnzM6 jmpf5 jmpwinM6: cmpal,'6' jnzM7 jmpf6 jmpwinM7: cmpal,'7' jnzwin jmpquit ;;;;;;;;;;;;;;;;;;; quit: movah,4ch int21h;;;;;;;;;;;;;;;;;;;initial: leaax,forms movsi,ax movcx,101linit: moval,14 movds:[si],al moval,22 movds:[si+16],al moval,6 movds:[si+40],al moval,6 movds:[si+48],al moval,6 movds:[si+56],al addsi,64 looplinit retf1: callcscreen leadi,forms movcx,100Lf1: movdl,'$' cmpes:[di+1],dl jzskipf1 adddi,64 loopLf1skipf1: leaax,f1str1 movsi,ax callputs movax,di movsi,ax callgets leaax,f1str2 movsi,ax callputs movax,di addax,16 movsi,ax callgets leaax,f1str3 movsi,ax callputs movax,di addax,40 movsi,ax callgets leaax,f1str4 movsi,ax callputs movax,di addax,48 movsi,ax callgets leaax,f1str5 movsi,ax callputs movax,di addax,56 movsi,ax callgets leaax,fstr1 movsi,ax callputs callnewline leaax,fstr2 movsi,ax callputs callnewline callinput ret f2: callcscreen leaax,f1str1 movsi,ax callputs leaax,XHtemp movsi,ax callgets movcx,100 movcxtemp1,cx leadi,XHtemp leasi,formsLf21: leadi,XHtemp movcx,16 movsitemp,si repecmpsb jzf21start movsi,sitemp addsi,64 movcx,cxtemp1 deccx movcxtemp1,cx inccx loopLf21 leasi,f3str1 callputs callnewline jmpf2Qf21start: movsi,sitemp callcscreen leasi,f2str1 callputs movsi,sitemp addsi,2 callputs callnewline leasi,f2str2 callputs movsi,sitemp addsi,18 callputs callnewline leasi,f2str3 callputs movsi,sitemp addsi,42 callputs callnewline leasi,f2str4 callputs movsi,sitemp addsi,50 callputs callnewline leasi,f2str5 callputs movsi,sitemp addsi,58 callputs callnewlinef2Q: leasi,XHtempb leadi,XHtemp movcx,16 repmovsb leaax,fstr1 movsi,ax callputs callnewline leaax,fstr2 movsi,ax callputs callnewline callinput retf3: callcscreen leasi,f4str2 callputs leasi,XHtemp leadi,forms callgets movcx,100Lf3: movcxtemp1,cx leasi,XHtemp movcx,16 movsitemp,si movditemp,di repecmpsb jzf3start movsi,sitemp movdi,ditemp adddi,64 movcx,cxtemp1 loopLf3 ;cannotfind leasi,f3str1 callputs callnewline jmpf3Qf3start: ;f4,f2 movcx,64 movdi,ditemp leasi,formsb repmovsb callf1f3Q: retf4: callcscreen leasi,f4str2 callputs leasi,XHtemp leadi,forms callgets movcx,100Lf4: movcxtemp1,cx leasi,XHtemp movcx,16 movsitemp,si movditemp,di repecmpsb jzf4start movsi,sitemp movdi,ditemp adddi,64 movcx,cxtemp1 loopLf4 ;cannotfind leasi,f3str1 callputs callnewline jmpf4Qf4start: movcx,64 movdi,ditemp leasi,formsb repmovsbf4Q: leasi,XHtempb leadi,XHtemp movcx,16 repmovsb leasi,fstr1 callputs callnewline leasi,fstr2 callputs callnewline callinput ret f5: callcscreen ;copyfiletomemery leasi,f5str1 callputs leasi,filename callgets movbx,0 leasi,filename movbl,ds:[si+1] moval,0 movds:[si+bx+2],al movdx,si incdx incdx movah,3dh moval,0 int21h jncsucceed1 fail: leasi,f5str2 callputs callnewline jmpf5Qsucceed1: movhandle,ax leasi,f5str3 callputs leadx,forms movbx,handle movcx,6000 movah,3fh int21h jncsucceed2 leasi,f5str5 callputs callnewline movbx,handle movah,3eh int21h jmpf5Qsucceed2: leasi,f5str4 callputs callnewline movbx,handle movah,3eh int21h jmpf5Qf5Q: leasi,fstr2 callputs callnewline callinput retf6: callcscreen ;copymemerytofile leasi,f5str1 callputs leasi,filename callgets movbx,0 leasi,filename movbl,ds:[si+1] moval,0 movds:[si+bx+2],al leadx,filename incdx incdx movcx,0 movah,3ch int21h jncsuc leasi,f5str5 callputs callnewline jmpf6Qsuc: movhandle,ax leadx,forms movbx,ax movah,40h movcx,6400 int21h jncsuc2

溫馨提示

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

評論

0/150

提交評論