版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p> 1.設(shè)計(jì)內(nèi)容:通過本周的課程設(shè)計(jì),學(xué)生能夠鞏固所學(xué)的基礎(chǔ)知識,并能夠使學(xué)生更加熟練運(yùn)用匯編程序設(shè)計(jì)語言來掌握綜合匯編程序設(shè)計(jì)的方法和過程,以及為設(shè)計(jì)其它應(yīng)用軟件提供幫助,進(jìn)而提高學(xué)生的軟件設(shè)計(jì)能力。</p><p> 1、編制一計(jì)算比賽成績的程序,要求完成以下功能:</p><p> ?。?) 9名
2、評委,每個(gè)評委給分范圍為0~10(整數(shù));</p><p> ?。?) 9名評委給分中,去掉一個(gè)最高分和一個(gè)最低分,剩余7名評委的平均分即為參賽者的得分(精確到小數(shù)點(diǎn)二位);</p><p> ?。?) 將得分在光標(biāo)位置處顯示出來。</p><p> 2、編制一程序,要求接收從鍵盤輸入的一個(gè)班的學(xué)生成績,并存放于30字的grade數(shù)組中,各數(shù)據(jù)的格式為:</
3、p><p> 學(xué)號,成績1,成績2,…,成績5</p><p> 然后根據(jù)grade中的學(xué)生成績,把學(xué)生名次填入rank數(shù)據(jù)組中,并顯示出來,格式為:</p><p><b> 學(xué)號,名次</b></p><p> 3、利用INT 1CH(大約每秒中斷18.2次)編寫一個(gè)中斷駐留程序,要求在屏幕的右上角顯示計(jì)算機(jī)中當(dāng)
4、前系統(tǒng)時(shí)間,顯示格式為</p><p> 時(shí):分:秒:1/100秒</p><p> 4、輸入一個(gè)菱形的兩條對角線長,在屏幕上用‘*’號畫出一個(gè)彩色的菱形。</p><p> 5、設(shè)置圖形方式并顯示彩條,要求:</p><p> 選擇背景色為藍(lán)色,調(diào)色板為0,然后每行顯示一種顏色,每四行重復(fù)一次,一直到整個(gè)屏幕都顯示出彩條</p
5、><p><b> 2.設(shè)計(jì)要求:</b></p><p> 掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗(yàn)。</p><p> 設(shè)計(jì)正確,方案合理。</p><p> 界面友好,使用方便。</p><p> 程序精
6、煉,結(jié)構(gòu)清晰。</p><p> 設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說明,用戶使用說明,源程序清單及程序框圖。</p><p><b> 上機(jī)演示。</b></p><p> 按學(xué)號順序選課題號,并在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的匯編源程序編寫、調(diào)整和運(yùn)行。源程序及編譯生成各文件均保存在軟盤中;</p><p>
7、 按本任務(wù)書的要求,按附錄的要求編寫《課程設(shè)計(jì)報(bào)告》(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂; </p><p><b> 二、進(jìn)度安排</b></p><p><b> 第 1 周: </b></p><p> 星期1 </p><p> 星期2
8、 </p><p> 星期3 </p><p> 星期4 </p><p><b> 附:</b></p><p> 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 </p><p&g
9、t; 正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p> 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?lt;/p><p> 正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼
10、)。</p><p><b> 目錄</b></p><p><b> 一、題目1</b></p><p> 二、程序總體設(shè)計(jì)方案、思路1</p><p> 1.1.總體設(shè)計(jì)方案1</p><p> 1.2.設(shè)計(jì)思路1</p><
11、p> 三、程序設(shè)計(jì)框圖2</p><p> 四、源程序清單3</p><p> 五、程序調(diào)試結(jié)果7</p><p><b> 六、設(shè)計(jì)總結(jié)7</b></p><p><b> 題目</b></p><p> 編制一計(jì)算比賽成績的程序,要求完成
12、以下功能:</p><p> (1) 9名評委,每個(gè)評委給分范圍為0~10(整數(shù));</p><p> ?。?) 9名評委給分中,去掉一個(gè)最高分和一個(gè)最低分,剩余7名評委的平均分即為參賽者的得分(精確到小數(shù)點(diǎn)二位);</p><p> ?。?) 將得分在光標(biāo)位置處顯示出來。</p><p> 程序總體設(shè)計(jì)方案、思路</p>
13、<p><b> 總體設(shè)計(jì)方案</b></p><p> 通過讀取依次從鍵盤輸入的9個(gè)兩位的十進(jìn)制數(shù)得分,將得分保存在字符串中,然后用冒泡法將9個(gè)數(shù)的位置按大小重新排列并輸出,再將中間的7個(gè)數(shù)累加起來除以7,即得到去掉最高分和最低分之后的平均分,最后設(shè)置光標(biāo)位置到平均分處。</p><p><b> 設(shè)計(jì)思路</b></p&
14、gt;<p> 通過記錄鍵盤,將ASCII碼轉(zhuǎn)化為二進(jìn)制數(shù)寸入長度為9的字符串中,此部分使用用循環(huán)結(jié)構(gòu)。若輸入的兩位數(shù)的首位,即十位,非0或非1,則提示錯(cuò)誤并要求重復(fù)輸入,若輸入的個(gè)位數(shù)非0~9中的數(shù),則提示錯(cuò)誤并要求重復(fù)輸入。</p><p> 用冒泡法重排9個(gè)數(shù),使得第1和第9個(gè)數(shù)分別為最大數(shù)和最小數(shù),并在屏幕中依次顯示出來。然后用循環(huán)語句求出9個(gè)數(shù)中中間的7個(gè)數(shù)的和,即總得分,若總得分為7
15、0分,則直接輸出平均分:10.00分。若小于70分則將總得分除以7,得到的商作為平均分的個(gè)位數(shù),輸出一個(gè)小數(shù)點(diǎn),將余數(shù)乘以10再除以7,如此循環(huán)3次,后兩次不輸出小數(shù)點(diǎn),得到精確到小數(shù)點(diǎn)后兩位的平均的分?jǐn)?shù),再將平均分輸出。最后改變光標(biāo)位置為平均得分處。</p><p><b> 程序設(shè)計(jì)框圖</b></p><p><b> YES</b>&
16、lt;/p><p><b> NO</b></p><p><b> 源程序清單</b></p><p> DATA SEGMENT</p><p> BUF DB 10 DUP(0)</p><p> STRING1 DB 'Please enter the
17、 score '</p><p> NUMBER DB 31H,': ','$'</p><p> STRING2 DB 0AH,'The ranged scores are:','$'</p><p> STRING3 DB 'After removing the highest
18、 and lowest score, the average score is: ','$'</p><p> ERROR DB 'ERROR',0AH,0DH,'$'</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p>
19、;<p> ASSUME CS:CODE,DS:DATA</p><p> START: MOV AX,DATA</p><p><b> MOV DS,AX</b></p><p> XOR SI,SI;SI置0</p><p> MOV CX,9;9個(gè)數(shù)</p><p>
20、;<b> INPUT:</b></p><p> LEA DX,STRING1</p><p> MOV AH,9 </p><p><b> INT 21H</b></p><p><b> MOV AH,1</b></p><p&
21、gt; INT 21H;輸入得分的十位到AL</p><p> CMP AL,'0'</p><p> JB ER ;AL<0小于則跳到ER</p><p> CMP AL,'1'</p><p> JA ER ;AL>1則跳到ER</p><p> SU
22、B AL,30H</p><p><b> MOV DL,10</b></p><p> MUL DL;十位乘以10</p><p> MOV DX,AX;DX存十位數(shù)</p><p><b> MOV AH,1</b></p><p> INT 21H;輸入得分的
23、個(gè)位到AL</p><p> CMP AL,'0'</p><p> JB ER ;AL<0小于則跳到ER</p><p> CMP AL,'9'</p><p> JA ER ;AL>10則跳到ER</p><p> SUB AL,30H</p>&
24、lt;p> ADD AL,DL;個(gè)位十位相加到AL</p><p> MOV BUF[SI],AL</p><p><b> INC SI</b></p><p> INC NUMBER</p><p> MOV DL,0AH;換行</p><p><b> MOV A
25、H,2</b></p><p><b> INT 21H</b></p><p> MOV DL,0DH;回車</p><p><b> INT 21H</b></p><p> LOOP INPUT;循環(huán)輸入9次</p><p> JMP RANGE_
26、0;轉(zhuǎn)入排序</p><p><b> ER:</b></p><p> ;輸入錯(cuò)誤后返回重新輸入</p><p> LEA DX,ERROR</p><p><b> MOV AH,9</b></p><p><b> INT 21H</b>
27、</p><p><b> JMP INPUT</b></p><p> RANGE_0: </p><p><b> MOV BX,1</b></p><p><b> MOV CX,9</b></p><p><b> XO
28、R DI,DI</b></p><p> RANGE: MOV AL,BUF[DI]</p><p> CMP AL,BUF[DI+1]</p><p> JAE NEXT_1</p><p> XCHG BUF[DI+1],AL</p><p> MOV BUF[DI],AL</p>
29、;<p><b> MOV BX,0</b></p><p> NEXT_1: INC DI</p><p> LOOP RANGE</p><p><b> CMP BX,0</b></p><p> JE RANGE_0</p><p><
30、;b> ;冒泡法排列得分</b></p><p> LEA DX,STRING2</p><p><b> MOV AH,9</b></p><p><b> INT 21H</b></p><p><b> MOV CX,9</b></p&g
31、t;<p> XOR SI,SI;SI清零</p><p><b> MOV AH,2</b></p><p> RANGE_OUTPUT:</p><p> ; 輸出排序后的得分 </p><p> MOV DL,BUF[SI]</p><p> A
32、DD DL,30H</p><p> CMP DL,39H;判斷是否是10分</p><p><b> JA TENS_1</b></p><p> JBE TENS_0</p><p><b> TENS_1: </b></p><p> ;十位數(shù)為1,則輸出
33、39;10'</p><p><b> MOV BX,1</b></p><p> MOV DL,'1'</p><p><b> INT 21H</b></p><p> MOV DL,'0'</p><p><b>
34、; INT 21H</b></p><p><b> INC SI</b></p><p> MOV DL,','</p><p><b> INT 21H</b></p><p> JMP NEXT_2</p><p><b>
35、; TENS_0:</b></p><p> ;十位數(shù)為0,則按原得分輸出</p><p><b> INT 21H</b></p><p><b> INC SI</b></p><p> MOV DL,','</p><p><
36、b> INT 21H</b></p><p><b> NEXT_2:</b></p><p> LOOP RANGE_OUTPUT</p><p><b> MOV AH,2</b></p><p> MOV DL,0AH;換行</p><p>
37、<b> INT 21H</b></p><p> MOV DL,0AH;換行</p><p><b> INT 21H</b></p><p> MOV DL,0DH;回車</p><p><b> INT 21H</b></p><p>
38、 LEA DX,STRING3</p><p><b> MOV AH,9H</b></p><p><b> INT 21H</b></p><p> MOV CX,7;累加中間7個(gè)數(shù)字</p><p><b> XOR AX,AX</b></p>&l
39、t;p><b> DEC SI</b></p><p><b> SUM:</b></p><p><b> ;求7個(gè)分?jǐn)?shù)的和</b></p><p><b> DEC SI</b></p><p> ADD AL,BUF[SI]</
40、p><p><b> LOOP SUM</b></p><p> CMP AL,46H</p><p> JAE FULL_MARK</p><p> JMP N_FULL_MARK</p><p> FULL_MARK:</p><p><b> ;滿分
41、時(shí)</b></p><p><b> MOV AH,2H</b></p><p> MOV DL,'1'</p><p><b> INT 21H</b></p><p> MOV DL,'0'</p><p><b
42、> INT 21H</b></p><p> MOV DL,'.'</p><p><b> INT 21H</b></p><p> MOV DL,'0'</p><p><b> INT 21H</b></p><p
43、> MOV DL,'0'</p><p><b> INT 21H</b></p><p> JMP ENDING</p><p> N_FULL_MARK:</p><p><b> ;非滿分時(shí)</b></p><p><b>
44、MOV CX,2</b></p><p> MOV BH,1;小數(shù)點(diǎn)只出現(xiàn)1次</p><p><b> DIVISION:</b></p><p><b> MOV BL,7</b></p><p> DIV BL;除以7</p><p><b&g
45、t; PUSH AX</b></p><p> ADD AL,30H</p><p> MOV DL,AL </p><p><b> MOV AH,2</b></p><p><b> INT 21H</b></p><p><b> CM
46、P BH,0</b></p><p><b> JE DOT</b></p><p> MOV DL,'.'</p><p><b> MOV BX,0</b></p><p> DOT: INT 21H</p><p><b&
47、gt; POP AX</b></p><p> MOV AL,AH;余數(shù)存入AL</p><p><b> MOV DL,10</b></p><p> MUL DL;余數(shù)乘以10,結(jié)果存入AX</p><p> LOOP DIVISION</p><p><b>
48、 ENDING:</b></p><p><b> MOV AH,02</b></p><p><b> MOV BH,0</b></p><p> MOV DX,0C46H</p><p> INT 10H;設(shè)置光標(biāo)位置</p><p><b&g
49、t; MOV AH,1</b></p><p><b> INT 21H</b></p><p> CODE ENDS</p><p><b> END START</b></p><p><b> 程序調(diào)試結(jié)果</b></p><
50、;p><b> 設(shè)計(jì)總結(jié)</b></p><p> 通過課程幾天的課程設(shè)計(jì),學(xué)到了諸多上課學(xué)不到的知識,特別是體會(huì)到了匯編語言與高級程序語言編程的不同,起初非常不適宜匯編語言的編程,高級程序語言中的基本功能,入多重循環(huán)和套嵌,在匯編語言看來缺是相當(dāng)復(fù)雜的,還有數(shù)字的輸入和輸出都要經(jīng)過ASCII碼與二進(jìn)制的轉(zhuǎn)換,數(shù)據(jù)的定義少得可憐,這些特性都讓起初的我感到寸步難行。但是進(jìn)過進(jìn)一步的上
51、機(jī)操作和學(xué)習(xí),匯編語言開始變得明朗起來。</p><p> 此次程序設(shè)計(jì)雖然收獲不小,也留有許多遺憾,如程序沒有能夠?qū)斎氲梅执笥?0分的錯(cuò)誤操作做出提示,結(jié)果的平均分的百分位在某些時(shí)候存在誤差,有可能是因?yàn)槌绦蛑袛?shù)據(jù)是以字節(jié)形式存儲(chǔ)的,字符長度太短導(dǎo)致誤差,也有可能是因?yàn)榍笮?shù)的方法導(dǎo)致的。</p><p> 總的來說這次課程設(shè)計(jì)雖然遇到了一些比較麻煩的問題,但還算比較順利,經(jīng)過一些
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語言課程設(shè)計(jì)-- 計(jì)算比賽成績系統(tǒng)
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告a
- 匯編語言課程設(shè)計(jì)---學(xué)生成績管理
- 匯編語言課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)報(bào)告---打字游戲
- 匯編語言課程設(shè)計(jì)安排
- 匯編語言課程設(shè)計(jì)--簡單計(jì)算器設(shè)計(jì)
- 《匯編語言》課程設(shè)計(jì)報(bào)告--判斷閏年程序
- 匯編語言課程設(shè)計(jì)報(bào)告---顯示系統(tǒng)時(shí)間
- 匯編語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)的設(shè)計(jì)
- 《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間
- 匯編語言推箱子課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)----電子鬧鐘
- 打字游戲-匯編語言課程設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)-課程設(shè)計(jì)
- c語言課程設(shè)計(jì)報(bào)告書--學(xué)生成績管理
評論
0/150
提交評論