微機原理課程設計學生成績管理系統(tǒng)設計_第1頁
微機原理課程設計學生成績管理系統(tǒng)設計_第2頁
微機原理課程設計學生成績管理系統(tǒng)設計_第3頁
微機原理課程設計學生成績管理系統(tǒng)設計_第4頁
微機原理課程設計學生成績管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 設計任務及要求1.1問題描述學生成績信息管理系統(tǒng),顯示的信息包括:學生姓名(name)、數(shù)學(math)、英語(english)、計算機(computer)和中文(chinese)成績;實現(xiàn)的功能包括瀏覽、查詢和退出;此外,程序設有操作提示,包括提示輸入和輸出,以及在出現(xiàn)錯誤時界面出現(xiàn)提示,而界面上各功能用菜單式顯示。1.2設計說明學生成績管理是個類似數(shù)據(jù)庫形式的管理程序,因此程序應該包括用戶操作的主界面,用于存儲數(shù)據(jù)的庫以及能提供不同操作的選擇跳轉(zhuǎn)。考慮到用內(nèi)存作暫時的數(shù)據(jù)庫比較占用內(nèi)存資源和不適合做長期的管理,所以選用一個指定的記事本來存儲,用戶界面提示用戶進行選擇操作并可以瀏覽、查詢

2、以及退出操作界面。2 方案介紹2.1界面設計界面實現(xiàn)人機交互,菜單式的界面予以用戶提示信息,設置光標顯示,可以在光標處輸入字符并顯示,在信息輸出、輸入錯誤、以及退出時有顯示提示語句。為美觀界面,可在界面上作相應的圖案以輸出。界面的顯示調(diào)用清全屏(clear)、換行(newline)和顯示(show),要顯示的字符以行為單位分別定義在數(shù)據(jù)段,并調(diào)用set_p3顯示光標,以設置輸入位置,在輸入選擇功能成功后,被選擇的功能字符后會顯示相應的一個字符單位的,同時帶顏色的圖形,作為標記,此外,當調(diào)用另外的功能時,還要消去原標記是調(diào)用清右邊程序(clear1),以防同時顯示2個標記。而在實現(xiàn)不同的功能時,

3、除退出調(diào)用的清全屏外,瀏覽和查詢輸出信息時調(diào)用的是清下屏(clear2),此外,還要注意調(diào)用set_p2來設置輸出信息顯示時光標的位置。2.2程序設計顯示主菜單界面后,在光標位置接收用戶的操作字符,并判斷操作類別:瀏覽/查詢/退出,以調(diào)用相應的子程序。整個程序采用主程序調(diào)用子程序的方法。主程序完成菜單的顯示和功能的選擇,而子程序完成各獨立功能的實現(xiàn)。2.3功能設計分析設計瀏覽子程序時,先打開文件,然后讀一個記錄,并通過調(diào)用宏show_item將其顯示到屏幕上,若文件指針沒有到達文件尾,則繼續(xù)讀記錄并顯示,當文件指針到達文件尾時,則關閉文件返回主程序。設計查詢子程序時,首先保留現(xiàn)場,清除下面屏幕

4、,打開fname指定文件并保留句柄。將光標設置,用宏getin獲取最多15個字符的輸入到buff1。讀23個字節(jié)長的記錄到buff2,再將buff1和buff2比較是否相同,若不同,再繼續(xù)讀23個字節(jié)文件;若相同,則顯示所尋找的記錄,最后關閉文件,恢復現(xiàn)場。3 軟件設計說明3.1軟件思想設計學生成績管理系統(tǒng)的整個程序采用了主程序調(diào)用子程序的方法。主程序完成菜單的顯示,而子程序完成瀏覽、刪除及退出功能的方法實現(xiàn)。3.2程序說明mess1-mess9、bye、err1、err2為顯示時調(diào)用的字符串show:用來指定地址的顯示字符串,有一個地址參數(shù)。set_p2:將光標置于(10,0)處, 使用了b

5、ios中斷10h的2號功能。set_p3:將光標置于(7,54)處。clear:清除整個屏幕,用bios中斷10h的7號功能實現(xiàn),范圍是從坐標(0,0)到(24,79)將整個區(qū)域變?yōu)榭瞻?。clear1:清除右半部分屏幕,清除范圍是從坐標(4,36)到(6,50)。clear2:清楚下半部分屏幕,清除范圍是從坐標(10,0)到(24,79)。new_line:回車換行。show_item:顯示記錄內(nèi)容。執(zhí)行后先顯示名稱,然后依次顯示4項功課的成績,各項成績間空3個空格,最后換行。這個宏包含的語句較多如果每次都用語句實現(xiàn)非常冗長,使用宏后就很簡潔,充分體現(xiàn)了使用宏的優(yōu)點。getin:獲取學生信息。

6、這也是一個使用頻繁的宏,其中含有很多的指令,含addrs和count2兩個參數(shù),addrs是存放信息的數(shù)據(jù)段位置,count2是接收的字符數(shù)。list:作用是顯示文件中的記錄,先清除顯示區(qū)域和記錄的標題,打開文件,讀取輸入的一個記錄的內(nèi)容放在緩沖區(qū)buff1中,并判斷是否到了文件尾,如果不是,則顯示這條記錄,循環(huán)讀取直到文件結(jié)束,最后關閉程序,恢復現(xiàn)場。query:功能是查詢記錄。先清除屏幕,打開文件。用宏getin獲得15個字節(jié)的姓名字符,放在buff1中。讀取一條記錄,將其放在 buff2中,然后和buff1中的內(nèi)容進行比較,如果不同,再讀取下一個記錄,直至讀完關閉文件。如果姓名相同,則把

7、該記錄輸出。若查找不到,則輸出提示錯誤語句。3.3中斷說明bios中斷int 10h服務程序,與dos系統(tǒng)功能中斷 int 21h。使用中斷服務程序時,先指定 ah 寄存器的值,該值表示欲調(diào)用的功能。在本次設計中調(diào)用的功能,設定相關的入口參數(shù),得到功能調(diào)用后的出口參數(shù)可分別參考下表,表1、表2。表1:bios系統(tǒng)功能調(diào)int 10hah功 能調(diào)用參數(shù)返回參數(shù) / 注釋設置顯示模式 al=02h顯示模式:8025 16色文本2用文本坐標下設置光標位置 bh = 頁號 dh = 行 dl = 列 6初始化屏幕或向上滾屏al滾動行數(shù)(0清窗口)bh = 屬性 ch = 左上角行號 cl = 左上角列

8、號 dh = 右下角行號 dl = 右下角列號9在光標位置顯示字符及其屬性 bh = 顯示頁 al = 字符 bl = 屬性 cx = 字符重復次數(shù)表2:dos系統(tǒng)功能調(diào)int 21hah功能調(diào)用參數(shù)返回參數(shù)01鍵盤輸入并回顯al=輸入字符02顯示輸出dl=輸出字符07鍵盤輸入(無回顯)al=輸入字符09顯示字符串ds:dx=串地址$結(jié)束字符串3d打開文件ds:dx=asciiz串地址al=0 讀 =1 寫 =2 讀/寫成功:ax=文件代號錯誤:ax=錯誤碼3e關閉文件bx=文件代號失敗:ax=錯誤碼3f讀文件或設備ds:dx=數(shù)據(jù)緩沖區(qū)地址bx=文件代號cx=讀取的字節(jié)數(shù)讀成功: ax=實際

9、讀入的字節(jié)數(shù) ax=0 已到文件尾讀出錯:ax=錯誤碼4c帶返回碼結(jié)束al=返回碼 4程序與其流程圖4.1主程序段、主流程圖:圖4-1 主程序流程圖主程序段:1.首先設計頁面的顯示:mov ah,0 mov al,2 int 10h ;設置界面80*25,16色文本 clear newline newline show mess1 show mess2 show mess3 show mess4 show mess5 show mess6 show mess7 set_p3 ;調(diào)用設置界面光標位置2.從光標處讀取字符判斷,選擇相應的功能,此外,當輸入字符不符合菜單提示的字符時,輸出“輸入錯誤”

10、的提示,并等待下次輸入反應:w: mov ah,1 int 21h ;設置成輸入回顯 cmp al,l;判斷是否調(diào)用list功能 jnz n3 ;在list菜單后顯示指定標記 call list jmp wn3: cmp al,q;判斷是否調(diào)用query功能 jnz n7 ;在query菜單后顯示指定標記 call query jmp wn7: cmp al,e jz exitf set_p2 show err1 set_p3 jmp w3.菜單中功能被選中后的標記,以list功能選中為例: clear1 ;清右屛 mov dx,0472h ;設置顯示位置 mov ah,2 int 10h m

11、ov al,4 ;設置輸出圖形(如:方塊) mov bl,54h ;設置輸出顏色 mov cx,1 mov ah,9 int 10h4.2 瀏覽程序段與流程圖:清下屏輸出內(nèi)容標題讀取文件中的一個記錄ax=0?輸出記錄返回主程序開始調(diào)用list宏list程序段,首先,為以防有前操作在下屏幕顯示,所以要清下屏,設置光標位置后,輸出“請輸入”的提示語句,主要用下段程序?qū)崿F(xiàn)瀏覽功能。 mov dx,offset fname mov al,2 ;打開文件 mov ah,3dh int 21h mov bx,axagain: mov dx,offset buff1 mov cx,23 ;設定讀取字符數(shù) m

12、ov ah,3fh int 21h ;讀文件 cmp ax,0;判斷循環(huán)條件 jz p show_item buff1 jmp againp: mov ah,3eh int 21h ;關閉文件 set_p3 pop dx pop cx pop bx pop ax ret y 圖4-2 瀏覽程序流程圖4.3查詢程序段與流程圖:查詢功能實現(xiàn)是通過檢驗輸入字符是否為“q”,當輸入正確時要在利用宏set_p2設置的光標處顯示提示信息后,清下屏,以防有前操作占用界面空間。等待用戶輸入要查詢學生的姓名,只有在輸入正確后,才能顯示其成績,若輸入姓名與文件中各姓名不符,則輸出“錯誤”提示語句,不輸出成績。無論

13、是在查詢功能實現(xiàn)后,還是查詢失敗,光標返回到輸入處,則此時可重新選擇菜單中的功能。主要程序段與流程圖如下: mov dx,offset fname 打開文件,設置顯示內(nèi)容光標處,輸出提示 getin buff1,15 lea dx,mess8 ;標題 mov ah,9 int 21hb: mov ah,3fh mov cx,23 mov dx,offset buff2 int 21h ;讀文件cx=讀的字節(jié)數(shù) cmp ax,0 ;判斷是否查詢到文件結(jié)尾,即查詢失敗 jz exit1 ;查詢失敗則跳轉(zhuǎn)返回 lea si,buff2 lea di,buff1 mov cx,15loop1: mov

14、 al,byte ptrsi cmp al,byte ptrdi jnz b inc si inc di loop loop1 mov buff2+23, $ show_item buff2 exit: mov ah,3eh int 21h 關閉文件 set_p3 ;回輸入位置重新選擇 retexit1: clear2 ;查詢失敗,則清下屏 show err2 提示“輸入錯誤”語 jmp exit 句,調(diào)用exit返回開始調(diào)用query清下屏,打開文件設置光標位置并輸出提示“輸入”語句讀取輸入的信息(15byte)到buff1,輸出標題語句從文件中讀記錄(23byte)到buff2ax=0?提

15、示“輸入錯誤,查詢失敗”返回主程序,等待重新輸入,選擇功能將buff2與buff1中15byte比較是否相同?顯示記錄關閉文件并返回 y n n y圖4-3 查詢功能流程圖4.4退出程序段與流程圖:開始調(diào)用exitf屏幕全清輸出語句關閉應用程序當在顯示菜單中輸入“e”時,選擇退出程序功能,此時調(diào)用屏幕全清,宏clear,并輸出友好語句bye退出。其功能程序段與流程圖如下:exitf: clear newline newline show bye mov bx,0100fh;信息顯示延時e0: mov cx,0ffffhe1: loop e1 dec bx jnz e0 mov ah,4ch i

16、nt 21h ret 圖4-4 退出功能流程圖5 程序功能說明和結(jié)果分析5.1瀏覽功能當在顯示界面上輸入“l(fā)”時,菜單中l(wèi)ist(l)后有標記,且屏幕下端顯示文件內(nèi)容,如圖5-1。圖5-1 瀏覽功能實現(xiàn)界面5.2退出功能當在顯示界面上輸入“e”時,界面顯示bye語句,如圖5-2。圖5-2退出功能實現(xiàn)界面5.3查詢功能當在顯示界面上輸入“q”時,界面提示“請輸入”語句,輸入正確時,界面下端顯示查詢的成績?nèi)鐖D5-3,否則輸出“輸入錯誤”,即查詢失敗,如圖5-4。圖5-3查詢成功界面顯示成績圖5-4 輸入錯誤時,查詢失敗界面5.4功能選擇錯誤圖5-5 功能選擇錯誤界面當在顯示界面上輸入不是“l(fā)”/“

17、q”/“e”時,界面顯示err1語句,如圖5-5。6 收獲及心得體會在我印象中,課程設計在對經(jīng)一學期學習的理論課程的結(jié)合實際的學習,就此次課程設計的題目而言,通過對這一學生成績管理系統(tǒng)的程序設計,使我對匯編語言的基本知識更加了解,同時也讓我認識到匯編語言的知識范圍與實際應用值廣大。此外,在課程設計完成過程中通過和小組成員的交流,也增加了合作的技巧。同時,還認識到查閱相關的資料也是完成設計不可欠缺的一部分。課程設計讓自己學到了一些課本上沒有的東西,一定程度上拓寬了自己的知識面,培養(yǎng)了自己獨立思考和解決問題的習慣,還增加了學好匯編語言的信心。微機原理與接口技術課程設計是匯編語言與實踐相結(jié)合的綜合應

18、用。在設計中,參考資料,發(fā)現(xiàn)其源程序中調(diào)用了中斷程序,例如int 10h與int 21h,結(jié)合利用數(shù)據(jù)段,可以實現(xiàn)文件的打開、關閉、讀取,數(shù)據(jù)的顯示、輸出,光標的定位等等。在這次的課程設計中,我也遇到了不少的挫折,例如直到答辯時,我所設計的程序在查詢輸入錯誤時無法進行跳轉(zhuǎn),雖然這時有種書到用時方恨少的感覺,但是在答辯后調(diào)試時最終是解決了這項問題。雖然結(jié)合課本,會想出一些方法去實現(xiàn),但是經(jīng)過調(diào)試,發(fā)現(xiàn)這時想法是無法解決功能的欠缺。但是結(jié)合這次設計中頻繁使用的bios中斷,想到在讀取文件時,隱含的使文件號的值賦值給了數(shù)據(jù)段的ax,所以在文件讀取完時,ax=0,將這點作為查詢文件完畢的判斷依據(jù),即未

19、查詢到輸入記錄時,把文件讀取完畢了,則查詢失敗。匯編在實際軟件開發(fā)中的作用和地位是非常重要的,利用課程設計,我們可以很好的將理論與實際生活中的應用、設計相結(jié)合,聯(lián)想。增強了匯編的使用能力,是我們課程設計的目的,相信在未來的就業(yè)問題中遇到的設計問題也會與此有異曲同工之處的。在這次課程設計中,我真正體會到了理論學習和課外涉獵的重要性,希望以后在學習時認真弄懂,不要不求甚解。與此同時,增加課外涉獵,開闊思維,培養(yǎng)創(chuàng)新思維。參考文獻1 周佩玲,彭虎,傅忠謙.微機原理與接口技術(基于16位機).北京:電子工業(yè)出版社.20052 王爽著.匯編語言(第2版).北京:清華大學出版社.20083 艾德才等編著.

20、微型接口技術實用教程.北京:清華大學出版社.20024 王永山等編著.微型計算機原理與應用.西安:西安電子科技大學出版社.19995 溫冬蟬,沈美明.ibm pc匯編語言程序設計(第2版).北京:清華大學出版社.20026 姚燕南,薛均義主編.微型計算機原理與接口技術.北京:高等教育出版社. 2004附錄:源程序:data segment mess1 db * * * * * * * * * * * student grade management system * * * * * *,0ah,0dh, $ mess2 db / / this is main menu: *,0ah,0dh,

21、$ mess3 db (/ -/ /) list (l) *,0ah,0dh, $ mess4 db )6 6( query (q) *,0ah,0dh, $ mess5 db = y = exit (e) *,0ah,0dh, $ mess6 db / - please enter the word to choose(l/q/e): *,0ah,0dh, $ mess7 db .(_)-(_).* * * * * * * * * * * * * * * * * * * * * * * * * * *,0ah,0dh, $ mess8 db name math english compute

22、r chinese,0ah,0dh, $mess9 db enter the right name to query:,0ah,0dh, $bye db thanks for use our program!,0dh,0ah,0dh,0ah, bye bye$err1 db wrong word,please enter the right word ! $ err2 db there is no the student,return to menu!$fname db d:masmscore.txt buff1 db 22 dup(?)buff2 db 30 dup(?) data ends

23、 ;-定義數(shù)據(jù)段完畢-show macro addrs ;顯示 lea dx,addrs mov ah,9 int 21h endm set_p2 macro ;設置界面光標位置(10,0) mov ah,2 mov dh,10 mov dl,0 mov bh,0 int 10h endm set_p3 macro ;設置界面開始光標位置(7,54) mov ah,2 mov dh,7 mov dl,54 mov bh,0 int 10h endm clear macro ;清屏 push ax push bx push cx push dx mov al,0 mov cl,0 mov ch,

24、0 mov dh,24 mov dl,79 ;上滾窗口右上角(24,79) mov bh,14 ;顏色屬性 mov ah,6 ;入口參數(shù) int 10h pop dx pop cx pop bx pop ax endm clear1 macro ;清右屏 mov al,0 mov bh,0h mov ch,4 mov cl,34 mov dh,6 mov dl,50 mov ah,6 int 10h endm clear2 macro ;清下屏 mov al,0 mov bh,7 mov ch,10 mov cl,0 mov dh,24 mov dl,79 mov ah,6 int 10h e

25、ndm newline macro ;換行 push ax push dx mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop dx pop ax endm show_item macro addrs local iloop,w10 push bx push cx mov bx,0 iloop: mov dl,addrsbx ;顯示字符 mov ah,2 int 21h inc bx cmp bx,15 jl iloop mov cx,4 w10: mov dl, mov ah,2 int 21h mov dl, mov ah

26、,2 int 21h mov dl, mov ah,2 int 21h mov dl,addrsbx mov ah,2 int 21h inc bx mov dl,addrsbx mov ah,2 int 21h inc bx loop w10 newline pop cx pop bx endm getin macro addrs,count2 ;讀取數(shù)據(jù)local zeroit,lp,input_end,exit push bx push ax mov bx,0 zeroit: mov addrsbx, inc bx cmp bx,15 jl zeroit mov bx,0 lp: mov

27、 ah,1 int 21h cmp al,0ah jz input_end cmp al,0dh jz input_end mov addrsbx,al inc bx cmp bx,count2 jl lp input_end: cmp al,0dh jz exit cmp al,0ah jz exit mov ah,7 int 21h jmp input_end exit: pop ax pop bx endm ;-開始定義代碼段-code segment main proc far assume cs:code,ds:data,es:datastart: mov ax,data mov d

28、s,ax mov ah,0 mov al,2 int 10h ;設置界面 clear newline newline show mess1 show mess2 show mess3 show mess4 show mess5 show mess6 show mess7 set_p3 ;調(diào)用設置界面光標位置w: mov ah,1 ;設置成輸入回顯 int 21h cmp al,l ;判斷是否實現(xiàn)list功能 jnz n3 ;-選中菜單后顯示標記- clear1 mov dx,0372h ;設定顯示位置 mov ah,2 int 10h mov al,3 ;設定輸出圖形心形 mov bl,24h

29、 ;設定輸出圖形顏色 mov cx,1 mov ah,9 int 10h call list jmp wn3: cmp al,q ;判斷是否實現(xiàn)查詢功能 jnz n7;-功能選中后顯示標記- clear1 mov dx,0472h ;設定顯示位置 mov ah,2 int 10h mov al,4 ;設定輸出圖形方塊 mov bl,54h mov cx,1 mov ah,9 int 10h call query jmp w n7: cmp al,e ;判斷是否實現(xiàn)退出功能 jz exitf set_p2 clear2 show err1 set_p3 jmp wexitf: clear newline newline show bye;-顯示信息延時- mov bx,0100fh e0: mov cx,0ffffhe1: loop e1 dec bx jnz e0 mov ah,4ch int 21h retmain endp;-主程序結(jié)束-query

溫馨提示

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

評論

0/150

提交評論