北京理工大學(xué)匯編語言實(shí)驗(yàn)六 學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)_第1頁
北京理工大學(xué)匯編語言實(shí)驗(yàn)六 學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)_第2頁
北京理工大學(xué)匯編語言實(shí)驗(yàn)六 學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)_第3頁
北京理工大學(xué)匯編語言實(shí)驗(yàn)六 學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)_第4頁
北京理工大學(xué)匯編語言實(shí)驗(yàn)六 學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)六學(xué)生成績管理系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)(綜合性實(shí)驗(yàn))

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

八、實(shí)驗(yàn)結(jié)果九、程序代碼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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論