[畢業(yè)設(shè)計精品]《匯編語言》課程設(shè)計案例 菜單管理系統(tǒng)_第1頁
[畢業(yè)設(shè)計精品]《匯編語言》課程設(shè)計案例 菜單管理系統(tǒng)_第2頁
[畢業(yè)設(shè)計精品]《匯編語言》課程設(shè)計案例 菜單管理系統(tǒng)_第3頁
[畢業(yè)設(shè)計精品]《匯編語言》課程設(shè)計案例 菜單管理系統(tǒng)_第4頁
[畢業(yè)設(shè)計精品]《匯編語言》課程設(shè)計案例 菜單管理系統(tǒng)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計說明書專 業(yè): _ 計算機(jī)科學(xué)與技術(shù)_課程名稱: _匯編課程設(shè)計_ 班級: _計科 _姓 名:_ _學(xué)號: 設(shè)計題目:_菜單管理系統(tǒng)_設(shè)計時間:_2011-6-20_至_2011-7-1_評 語:_評閱成績: 評閱教師: 課程設(shè)計報告的要求1、需求分析描述問題。簡述課題要解決的問題是什么,有什么要求和限制條件。2、總體設(shè)計(程序設(shè)計組成框圖、流程圖)3、詳細(xì)設(shè)計(模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,過程調(diào)用關(guān)系描述等)4、調(diào)試與測試:調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施5、測試結(jié)果,用幾組測試數(shù)據(jù)進(jìn)行測試算法設(shè)計的正確性。6、附錄。源程序清

2、單和結(jié)果:源程序要加注釋。結(jié)果要包括測試數(shù)據(jù)和運行結(jié)果。匯編語言課程設(shè)計案例 一.問題陳述及其需求分析要求:利用匯編語言編寫應(yīng)用程序菜單的基本方法。內(nèi)容:編寫程序,在文本方式下顯示一個英文菜單。要求分別顯示“file”,“edit”,“tool”,“quit”,并對每項菜單的輸入有所響應(yīng)。 菜單管理系統(tǒng)其中包括以下幾個模塊:(1)文件子菜單。(2)編輯子菜單。(3)工具子菜單。(4)退出子菜單 菜單管理系統(tǒng)菜單包括:文件,編輯,工具,退出。使之提供以下功能:1、系統(tǒng)以菜單方式工作2、創(chuàng)建文件3、編輯文件4、打開文件5、復(fù)制文件6、粘貼到指定文件7、版權(quán)說明8、幫助說明9、退出。二.總體設(shè)計功能

3、結(jié)構(gòu)圖設(shè)計依據(jù)程序的功能需求,描述該系統(tǒng)功能的結(jié)構(gòu)圖如下:菜單管理系統(tǒng)found建立open打開copy復(fù)制paste粘貼tel電話help版權(quán)ends退出fileedittoolquit 圖1 系統(tǒng)功能結(jié)構(gòu)圖模塊簡介依據(jù)程序的功能模塊的劃分,各模塊定義如下: (1)建立文件并編輯文件模塊名:found模塊描述:通過此模塊可以在c盤創(chuàng)建文件并可以用鍵盤輸入所要編輯的內(nèi)容。同時輸入的內(nèi)容信息寫入創(chuàng)建的文件。輸入名字有誤即為空時則彈出相應(yīng)信息提示。(2)打開文件模塊名:open模塊描述:通過此模塊可以打開在c盤的特定格式文件并在屏幕上顯示文件內(nèi)容。輸入名字有誤即為空時則彈出相應(yīng)信息提示。輸入文件名

4、和以存在文件不匹配時則提示文件不存在。(3)復(fù)制文件模塊名:copy模塊描述:根據(jù)文字提示,輸入已存在的文件名顯示顯示該文件全部信息并復(fù)制其內(nèi)容至緩沖區(qū),輸入名錯誤則提示。文件不存在則提示。(4)粘貼模塊名:paste模塊描述:通過此模塊可以在c盤創(chuàng)建新文件或者打開已有文件并將復(fù)制緩沖區(qū)的內(nèi)容粘貼到該文件。輸入名字有誤即為空時則彈出相應(yīng)信息提示。(5)電話聯(lián)系模塊名:tel模塊描述:提示如有問題可致電。(6)版權(quán)說明模塊名:help模塊描述:顯示軟件系統(tǒng)版權(quán)。(7)退出模塊名:quit 模塊描述:退出菜單管理系統(tǒng)。三詳細(xì)設(shè)計算法說明1、主過程的算法設(shè)計: 清屏、顯示菜單及運用選擇操作,調(diào)用各個

5、菜單功能,最后選擇quit退出程序,也可按快捷鍵esc退出程序。2、子過程的算法設(shè)計 (1)found該過程的程序流程圖如圖所示。結(jié)束輸入錯誤提示創(chuàng)建文件用戶選擇是否編輯ny名字是否為空輸入文件名數(shù)據(jù)區(qū)清零開始(2) open該過程的程序流程圖如圖1所示。 (3)copy該過程的程序流程圖如圖2所示。 (4)paste該過程的程序流程圖如圖3所示。輸入錯誤提示y名字是否為空輸入文件名數(shù)據(jù)區(qū)清零開始n文件是否存在ny文件不存在提示打開文件顯示內(nèi)容結(jié)束 流程圖1結(jié)束ny名字是否為空輸入文件名數(shù)據(jù)區(qū)清零開始n輸入錯誤提示文件不存在提示文件是否存在y打開文件顯示內(nèi)容并復(fù)制 流程圖2開始數(shù)據(jù)區(qū)清零是否創(chuàng)

6、建新文件yn輸入文件名輸入文件名名字是否為空y名字是否為空ynn文件是否存在n創(chuàng)建文件并粘貼y輸入錯誤提示文件不存在提示打開文件并粘貼結(jié)束 流程圖3(5) tel幫助信息(6) help版權(quán)說明(7) ends退出四編碼和測試1、 程序運行結(jié)果主界面如圖所示。 主界面2、在主菜單下選項file項,則出現(xiàn)如圖所示模塊界面。測試實例如圖。 模塊file界面選擇found完成文件名輸入后創(chuàng)建成功,程序顯示編輯區(qū)。后按enter鍵結(jié)束編輯,選擇左右鍵程序選擇主菜單。按enter鍵顯示子菜單選擇上下選擇子功能。選擇open則輸入文件名,打開文件。3. 在主菜單edit。顯示如圖。 選擇edit完成文件名

7、輸入后創(chuàng)建成功,程序顯示文件內(nèi)容。后按enter鍵結(jié)束復(fù)制,選擇左右鍵程序選擇主菜單。按enter鍵顯示子菜單選擇上下選擇子功能。選擇paste則輸入文件名,打開文件或創(chuàng)建文件并粘貼。4. 在主菜單tool。顯示如圖。 主程序圖 子菜單下選擇tel功能: 子菜單下選擇help功能: 5.錯誤提示 6.主菜單下選擇quit,如圖所示。 5 主要代碼;* ; 回車空格宏;* hckg macromov dl,13mov ah,2int 21hmov dl,10int 21hendm;* ; 字符串輸出宏;* outchar macro a0lea dx,a0mov ah,9int 21hendm;

8、* ; 指定屏幕初始化宏;* showscreen macro color,leftline,leftrow,rightline,rightrow pushamov ah,06h mov al,0 mov bh,color mov ch,leftline mov cl,leftrow mov dh,rightline mov dl,rightrow int 10h popaendm ;* ; 菜單動態(tài)改變宏;* changemenu macro line,row,width,color local m pusha;入棧保護(hù) mov dl,row m: setpos line,dl mov bh

9、,0 mov ah,08h;讀取菜單字符 int 10h mov bl,color mov cx,1 mov ah,09h顯示菜單字符 int 10h add dl,1 mov al,row add al,width cmp dl,al jne m setpos line,row;鼠標(biāo)定位 popa;出棧 endm;* ; 光標(biāo)置位宏;* setpos macro line,row mov bh,0 mov dh,line mov dl,row mov ah,2 int 10h endm;* ; windows邊框繪制;* windowdraw macro leftline,rightline

10、,leftrow,rightrow,colors pusha mov ah,06h mov al,0 mov bh,colors mov ch,leftline mov cl,leftrow mov dh,rightline mov dl,rightrow int 10h popa endm;* ; 建立子菜單宏;* submennu macro firstrow,menu1,menu2 mov al,firstrow mov buffer,al add byte ptr buffer,4 showscreen 0a9h, 1,firstrow,2,buffer setpos 1,firstr

11、ow outchar menu1 setpos 2,firstrow outchar menu2 setpos 1,firstrow endm;*submennu1 macro firstrow,menu1;quit 菜單子菜單單獨設(shè)置宏 mov al,firstrow mov buffer,al add byte ptr buffer,4 showscreen 0a9h, 1,firstrow,2,buffer setpos 1,firstrow outchar menu1 setpos 0,firstrow endm;* ; 子菜單隱屏;*subcls macro showscreen 0

12、7h,1,0,23,79 endm ;* ; 數(shù)據(jù)定義區(qū)開始;* datas segment a1 db file db 5 dup( ), edit db 5 dup( ), tool db 5 dup( ),quit$ a2 db 10 dup(?),you can press esc to quit!$ ;*file menu menu11 db found,$ menu12 db open ,$ ;*edit menu menu21 db copy ,$ menu22 db paste,$ ;*tool menu menu31 db tel ,$ menu32 db help ,$ ;

13、*quit menu menu41 db ends ,$ buffer db 0 buffer11 db 0 buffer12 db 1 number dw ? a3 db number 1$ a4 db number 2$ error1 db input file name is error!$ inputname db please input file name(length10):$ yy db *you operation is success!you can select fuction or quit!*$ noin db you input file is not exit!$

14、 xx db paste in new found file?(y/n):$;*file fname db c:,15 dup(?) fname1 db c:,15 dup(?) data1 db 100h dup(0) data2 db 100h dup(0) ;*helphelp1 db welcome to use this system!$help2 db copyright 2012 made in lucks!$phone db if you have any question please call 12345678$;*editchocie db ?data3 db 100h

15、dup(0) fname3 db c:,15 dup(?)handle dw ?datas ends;* ; 數(shù)據(jù)定義區(qū)結(jié)束;* codes segment assume cs:codes,ds:datas;*; 主代碼段;*start: mov ax,datas mov ds,ax;* ; 繪制邊框屏幕;* showscreen 07h,1,0,24,79;顯示區(qū)屏顯設(shè)置 windowdraw 24,1,0,79,0a8h;顯示邊框設(shè)置 setpos 24,0 outchar a2;提示符輸出顯示 setpos 0,0;* ; 繪制工具條;* showscreen 74h,0,0,0,79

16、outchar a1;* ; 總選擇調(diào)制段;* changemenu 0,0,4,14h m1:setpos 0,0 k: mov buffer12,1 mov ah,0 int 16h cmp ah,01h jz over cmp ah,1ch;是否為回車 jz m5 jmp m6;* ; 子菜單按條件顯示段;* m5:mov al,buffer11 cmp al,27;是否為quit jz d4 cmp al,18;是否為tool jz d3 cmp al,9;是否為edit jz d2 d1:submennu buffer11,menu11,menu12;顯示file子菜單 call s

17、elect call function jmp k d2:submennu buffer11,menu21,menu22;顯示edit子菜單 call select call function jmp k d3:submennu buffer11,menu31,menu32;顯示tool子菜單 call select call function jmp k d4:submennu1 buffer11,menu41;顯示quit子菜單 setpos 1,buffer11 changemenu 1,buffer11,5,8fh f2:mov ah,0;輸入單個字符 int 16h cmp ah,0

18、1h;是否為esc jz over cmp ah,4dh;是否為選擇鍵 jz m7 cmp ah,4bh;是否為選擇鍵 jz m4 cmp ah,1ch;是否為回車鍵 jz over1 jmp f2 ;* ; 左右選擇段;* m6:cmp ah,4dh jz m7 cmp ah,4bh jz m4 jmp m1;*; 向右選擇調(diào)制();* m7:subcls;清屏 mov buffer12,1 mov bl,buffer11 cmp bl,27;是否為quit項 jz m3 changemenu 0,buffer11,4,74h;恢復(fù)前一項 add byte ptr buffer11,9 ch

19、angemenu 0,buffer11,4,14h;選中當(dāng)前項 jmp k m3: changemenu 0,buffer11,4,74h;恢復(fù)前一項 mov buffer11,0 changemenu 0,buffer11,4,14h;選中當(dāng)前項 jmp k;*; 向右選擇調(diào)制();* m4:subcls mov buffer12,1 mov bl,buffer11;列 cmp bl,0 jz m2 changemenu 0,buffer11,4,74h;恢復(fù)前一項 sub byte ptr buffer11,9 changemenu 0,buffer11,4,14h;選中當(dāng)前項 jmp k

20、 m2:changemenu 0,buffer11,4,74h;恢復(fù)前一項 mov buffer11,27 changemenu 0,buffer11,4,14h;選中當(dāng)前項 jmp k ;* ; 上鍵調(diào)制選擇();* m8:mov al,buffer12;行 cmp al,1 jz p1 changemenu buffer12,buffer11,5,0a9h;恢復(fù)前一項 sub byte ptr buffer12,1 changemenu buffer12,buffer11,5,8fh;選中當(dāng)前項 jmp f p1:changemenu buffer12,buffer11,5,0a9h;恢復(fù)

21、前一項 mov buffer12,2 changemenu buffer12,buffer11,5,8fh ;選中當(dāng)前項 jmp f ;* ; 下鍵調(diào)制選擇();* m9:mov al,buffer12 cmp al,2 jz p2 changemenu buffer12,buffer11,5,0a9h;恢復(fù)前一項 add byte ptr buffer12,1 changemenu buffer12,buffer11,5,8fh;選中當(dāng)前項 jmp f p2:changemenu buffer12,buffer11,5,0a9h;恢復(fù)前一項 mov buffer12,1 changemenu

22、 buffer12,buffer11,5,8fh ;選中當(dāng)前項 jmp fover1:subcls;清屏over:mov ah,4ch int 21h;* ; 上下左右功能選定;* select proc setpos 1,buffer11 changemenu 1,buffer11,5,8fh f: mov ah,0;輸入單個字符 int 16h cmp ah,01h;是否為esc jz over cmp ah,4dh;是否為選擇鍵 jz m7 cmp ah,4bh是否為選擇鍵 jz m4 cmp ah,50h是否為選擇鍵 jz m9 cmp ah,48h是否為選擇鍵 jz m8 cmp a

23、h,1ch是否為enter選擇鍵 jz p3 jmp f p3: ret select endp ;* ; 子菜單選定功能實現(xiàn);* function proc subcls mov bl,buffer12 mov al,buffer11 cmp al,18 jz b3 cmp al,9 jz b2 cmp bl,2 jz b11 call found jmp y b11:call open jmp y b2:cmp bl,2 jz b21 call copy jmp y b21:call paste jmp y b3:cmp bl,2 jz b31 call tel jmp y b31:cal

24、l help jmp y y: ret function endp;* ; 建立文件并編輯子程序(默認(rèn)c盤);* found proc mov bx,0;數(shù)據(jù)區(qū)清零 mov cx,100h ee2:mov data1bx, inc bx loop ee2 subcls;清屏 setpos 1,0 outchar inputname;輸入文件名 mov si,3 mov cx,10 w1: mov ah,1 int 21h cmp al,13 jz w2 mov fnamesi,al inc si loop w1 w2:cmp si,3 jz end3 mov fnamesi,. ;添加文件后綴

25、名 inc si mov fnamesi,t inc si mov fnamesi,x inc si mov fnamesi,t inc si mov fnamesi,0 lea dx,fname;取文件文件路徑,名首地址 mov cx,0 mov ah,3ch;創(chuàng)建文件 int 21h mov si,ax;保存文件句柄 subcls setpos 1,0 mov bx,0 mov cx,100hera:mov ah,1;輸入數(shù)據(jù)到緩沖區(qū) int 21h cmp al,13 jz end1 mov data1bx,al inc bx loop era end1:cmp cx,100h;循環(huán)次數(shù)

26、,即可輸入字符數(shù)目 jz end4 lea dx,data1 mov cx,100h mov bx,si mov ah,40h;文件寫入文件 int 21h mov bx,si mov ah,3eh;關(guān)閉文件 int 21h setpos 23,4 outchar yy;操作成功提示 setpos 3,0 jmp end4end3:subcls;清屏 setpos 4,10 outchar error1;錯誤提示 end4: ret found endp;* ; 打開文件子程序(默認(rèn)c盤);* open proc mov bx,0 mov cx,100h ee1:mov data2bx, in

27、c bx loop ee1 subcls setpos 1,0 outchar inputname mov si,3 mov cx,10ww1: mov ah,1 int 21h cmp al,13 jz ww2 mov fname1si,al inc si loop ww1ww2:cmp si,3 jz pend2 mov fname1si,. inc si mov fname1si,t inc si mov fname1si,x inc si mov fname1si,t inc si mov fname1si,0 lea dx,fname1 mov ah,3dh;打開文件 int 21h

28、 mov si,ax;保存文件句柄 jc pend4 subcls setpos 1,0 mov bx,si mov cx,100h lea dx,data2 mov ah,3fh;讀取文件 int 21h mov bx,0 mov cx,100hepa:mov dl,data2bx;在屏幕顯示數(shù)據(jù) mov ah,2 int 21h inc bx loop epa mov bx,si mov ah,3eh;關(guān)閉文件 int 21h setpos 23,4 outchar yy setpos 3,0 jmp pend3pend4:subcls setpos 4,10 outchar noin;文

29、件不存在提示 jmp pend3pend2:subcls setpos 4,10 outchar error1 pend3: ret open endp;* ; 版權(quán)說明子程序;* tel proc subcls setpos 2,10 outchar phone;幫助說明 ret tel endp help proc subcls setpos 2,10 outchar help1;版權(quán)說明 setpos 3,10 outchar help2 ret help endp;* ; 復(fù)制子程序;* copy proc mov bx,0 mov cx,100h ee:mov data2bx, inc bx loop ee call open mov cx,100h lea si,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論