版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上學生信息管理系統(tǒng)1. 實驗類別使用匯編語言編程2. 實驗內容和實驗目的學生的信息包括姓名、班級、學號和成績,其中成績精確到1位小數(shù)。編寫程序實現(xiàn)以下功能:(1)可以錄入學生的信息,成績以十進制形式錄入,并顯示;(2)可以按成績進行排序顯示;(3)可以統(tǒng)計平均成績;(4)可以統(tǒng)計不及格、6070、7080、8090、90100各分數(shù)段的人數(shù)。3. 實驗設備環(huán)境Windows 7 操作系統(tǒng)的pc機 ,使用QASM270編譯器環(huán)境下編寫。4. 實驗實現(xiàn)過程及方法首先數(shù)據(jù)采用二維數(shù)組的形式進行存儲,分為學生信息部分與成績部分。然后將輸入學生數(shù)也保存在一個一維數(shù)組中。然后再信息
2、的存儲過程中,對于字符串輸入進行轉換,以二進制的形式存儲在數(shù)據(jù)段中。然后采用冒泡排序,對于數(shù)據(jù)段中的人員信息進行排序。以成績?yōu)閰?shù)。然后再對每個人員成績進行遍歷,統(tǒng)計各個數(shù)據(jù)層次中人員數(shù),然后再成績遍歷的同時,將平均成績也同時求出,在求平時成績的時候,首先先將整數(shù)部分乘10 然后再加上小數(shù)部分,以便于后續(xù)的輸出。將排序后的人員信息及成績顯示出來,然后將平均成績也同時打印出來,還有各個分數(shù)層次中的人員數(shù)也都一并顯示出來。下面是一些主要代碼來實現(xiàn)上述過程:;數(shù)據(jù)部分 NUMBER DB 3 DUP(0) ;第一個存?zhèn)€/十位(ASCII碼),第二個存?zhèn)€位(ASCII碼),第三個存學生數(shù)(二進制) ;
3、用20字節(jié)單元表示學生信息,0-19中:0對應最大字符,1對應實際輸入,2-18對應輸入信息,19對應$ INFORMATION DB 99 DUP(20 DUP(0) ;用7字節(jié)單元來存分數(shù),0-6中,0-4對應輸入字符,5對應輸入整數(shù)部分的二進制數(shù),6對應于小數(shù)部分的二進制數(shù) GRADE DB 99 DUP(7 DUP(0) AVERAGE_GRADE_BUFFER DB 2 DUP(0) ;第一個存整數(shù)部分(二進制形式),STORE_STUDENT_NUM ;存儲學生總數(shù),結果送cx中STORE_STUDENT_INFORMATION ;存儲學生信息STORE_STUDENT_GRADE
4、 ;存儲每個學生成績SORT ;采用冒泡排序_DISPLAY ;顯示結果FIND_RESULT ;顯示平均成績和分段人數(shù)關鍵算法的流程圖:關于分段人數(shù)與總成績的計算 冒泡排序算法:處理計算計算總成績60?70?80?90?=100錯誤返回NNNNNA+B+C+D+E+YYYYY處理排序冒泡i=0 交換i+Ki =90 is:,$ ;各分數(shù)段人數(shù) RESULT2 DB 0DH,0AH,The number of student in 80-90 is:,$ RESULT3 DB 0DH,0AH,The number of student in 70-80 is:,$ RESULT4 DB 0DH
5、,0AH,The number of student in 60-70 is:,$ RESULT5 DB 0DH,0AH,The number of student in =60 is:,$ GRADE_RANK DB 0DH,0AH,The grade list(high to low)is:,0DH,0AH,$ ;打印排名 BLANK DB ,$ HUANHANG DB 0DH,0AH,$KAISHISHUCHU DB 0DH,0AH,*,0DH,0AH,$ ;數(shù)據(jù) NUMBER DB 3 DUP(0) ;第一個存?zhèn)€/十位(ASCII碼),第二個存?zhèn)€位(ASCII碼),第三個存學生數(shù)(二進
6、制) ;用20字節(jié)單元表示學生信息,0-19中:0對應最大字符,1對應實際輸入,2-18對應輸入信息,19對應$ INFORMATION DB 99 DUP(20 DUP(0) ;用7字節(jié)單元來存分數(shù),0-6中,0-4對應輸入字符,5對應輸入整數(shù)部分的二進制數(shù),6對應于小數(shù)部分的二進制數(shù) GRADE DB 99 DUP(7 DUP(0) AVERAGE_GRADE_BUFFER DB 2 DUP(0) ;第一個存整數(shù)部分(二進制形式),第二個存小數(shù)部分(二進制形式) N0 DB 0 ;各分數(shù)段人數(shù)存儲區(qū)(二進制形式) N1 DB 0 N2 DB 0 N3 DB 0 N4 DB 0 DATAS
7、ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: ;此處輸入代碼段代碼 MOV AX,DATAS MOV DS,AX MOV SI,0 ;指向每個學生信息 MOV DI,0 ;指向每個學生成績 MOV CX,100 ;初始化學生數(shù) MOV DX, OFFSET STUDENT_NUM ;請求輸入學生總數(shù) MOV AH,09 INT 21H CALL STORE_STUDENT_NUM ;存儲學生總數(shù),結果送cx中 CMP CX,0 ;輸入為0退出 JLE OUTTODOS CMP CX,100 ;學生數(shù)超出本程序范圍,退出 JGE OUTTO
8、DOS INPUT: MOV DX, OFFSET STUDENT_INFORMATION ;請求輸入學生信息 MOV AH,09 INT 21H CALL STORE_STUDENT_INFORMATION ;存儲學生信息 ADD SI,20 ;指向下一個學生信息 MOV DX, OFFSET STUDENT_GRADE ;請求輸入學生成績 MOV AH,09 INT 21H CALL STORE_STUDENT_GRADE ;存儲每個學生成績 ADD DI,7 ;指向下一個學生 LOOP INPUT ;循環(huán),直到輸入所有學生成績 CALL SORT ;排序 CALL _DISPLAY ;顯
9、示結果 CALL FIND_RESULT ;顯示平均成績和分段人數(shù) OUTTODOS: MOV AH,1 ;任意鍵結束 INT 21H MOV AX,4C00H ;返回DOS INT 21H;*存儲學生數(shù)目的函數(shù)* STORE_STUDENT_NUM PROC ;調用之后,cx中存儲了學生數(shù)(二進制) PUSH AX PUSH BX MOV BX,0 S1: MOV AH,1 INT 21H CMP AL,0DH ;是否為回車 JE S2 AND AL,0FH ;轉換為非壓縮的BCD碼 MOV NUMBERBX,AL INC BX JMP S1 S2: CMP BX,2 JG S5 ;大于2
10、JZ S3 ;等于2 ;小于2 MOV AL,NUMBER JMP S4 S3: MOV AH,NUMBER MOV AL,NUMBER+1 AAD ;BCD碼轉換為二進制數(shù) S4: MOV NUMBER+2,AL MOV CX,0 MOV CL,NUMBER+2 S5: POP BX POP AX RET STORE_STUDENT_NUM ENDP;*存儲學生信息的函數(shù)* STORE_STUDENT_INFORMATION PROC PUSH AX PUSH BX PUSH DX MOV AL,18 MOV INFORMATIONSI,AL LEA DX,INFORMATIONSI MOV
11、 AH,0AH INT 21H MOV BL,INFORMATIONSI + 1 ;實際輸入的字符個數(shù) MOV AL, MOV INFORMATIONSI + BX + 2,AL ;將回車換成 MOV INFORMATIONSI+19,$ ;將每個存儲單元的最后一個字節(jié)置為$以便輸出 POP DX POP BX POP AX RET STORE_STUDENT_INFORMATION ENDP;*存儲學生成績的函數(shù)* STORE_STUDENT_GRADE PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV BX,0 MOV CX,0 MOV DX,DI DEAL
12、0: MOV AH,1 INT 21H CMP AL,0DH ;判斷是否為回車 JZ DEAL2 ;是回車 CMP AL,. ;是否為小數(shù)點 JNZ DEAL1 ;不是小數(shù)點 MOV BX,CX ;bx指向小數(shù)點處 INC BX ;標記小數(shù)點字符出現(xiàn)在第幾個位置 DEAL1: PUSH BX MOV BX,DX MOV GRADEBX,AL POP BX INC CX ;記錄輸入字符的個數(shù) INC DX JMP DEAL0 DEAL2: CMP BX,0 JNZ DEAL3 ;有小數(shù)點 ;無小數(shù)點 CMP CX,3 JG GOUT ;大于100 JZ DEAL4 ;等于100 ;小于100 C
13、MP CX,2 JZ DEAL5 ;輸入數(shù)目為2位數(shù) ;個位數(shù) DEAL6: ;處理個位數(shù) MOV AL,GRADEDI SUB AL,0 MOV GRADEDI + 5,AL JMP GOUT DEAL5: ;處理2位數(shù) MOV AH,GRADEDI AND AH,0FH MOV AL,GRADEDI + 1 AND AL,0FH AAD MOV GRADEDI + 5,AL JMP GOUT DEAL4: ;處理3位數(shù) MOV AL,100 MOV GRADEDI + 5,AL JMP GOUT DEAL3: ;處理帶有小數(shù)部分的成績 MOV AL,GRADEDI + BX ;將小數(shù)部分處
14、理 SUB AL,0 MOV GRADEDI + 6,AL CMP BX,4 JZ DEAL4 ;.出現(xiàn)在輸入字符的第四位,則輸入的整數(shù)部分為3位數(shù) JG GOUT ;整數(shù)部分大于3位數(shù) CMP BX,3 JZ DEAL5 ;.出現(xiàn)在輸入字符的第三位,則輸入的整數(shù)部分為2位數(shù) JMP DEAL6 ;否則為個位數(shù) GOUT: POP DX POP CX POP BX POP AX RET STORE_STUDENT_GRADE ENDP;*排序學生成績的函數(shù)* SORT PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV DX,0 M
15、OV DL,NUMBER+2 LOOP1: ;使用冒泡排序法 MOV CX,DX MOV DI,0 MOV SI,0 LOOP2: ;先比整數(shù)部分,再比小數(shù)部分 MOV AL,GRADEDI + 5 CMP AL,GRADEDI + 12 JG NEXT ;大于,向下個移動 JL SWAP1 ;小于,交換成績,名字 ;等于,比較小數(shù)部分 MOV AL,GRADEDI + 6 CMP AL,GRADEDI + 13 JGE NEXT ;大于或等于,向下個移動 JL SWAP1 ;小于,交換成績,名字 SWAP1: MOV BX,SI SWAP11: ;交換學生信息 MOV AL,INFORMAT
16、IONBX + 2 XCHG AL,INFORMATIONBX + 22 MOV INFORMATIONBX + 2,AL INC BX CMP AL,$ JNZ SWAP11 PUSH BX MOV BX,0 SWAP2: ;交換學生成績 MOV AL,GRADEDI + BX XCHG AL,GRADEDI + BX + 7 MOV GRADEDI + BX,AL INC BX CMP BX,7 JNZ SWAP2 POP BX NEXT: ADD SI,20 ADD DI,7 DEC CX JNZ LOOP2 DEC DX JNZ LOOP1 POP DI POP SI POP DX P
17、OP CX POP BX POP AX RET SORT ENDP;*顯示最后結果的函數(shù)* FIND_RESULT PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV BX,0 MOV CX,0 MOV CL,NUMBER+2 ;cl中保存學生人數(shù) MOV DI,0 MOV SI,0 F1: MOV AL,GRADEDI + 5 CMP AL,100 JG FOUT ;大于100 JZ F90 ;等于100 ;小于100 CMP AL,90 JGE F90 ;大于等于90 ;小于90 CMP AL,80 JGE F80 ;大于等于8
18、0 ;小于80 CMP AL,70 JGE F70 ;大于等于70 ;小于70 CMP AL,60 JGE F60 ;大于等于60 ;小于60 ;處理=90 MOV DL,N0 INC DL MOV N0,DL JMP FNEXT F80: ;處理大于等于80小于90 MOV DL,N1 INC DL MOV N1,DL JMP FNEXT F70: ;處理大于等于70小于80 MOV DL,N2 INC DL MOV N2,DL JMP FNEXT F60: ;處理大于等于60小于70 MOV DL,N3 INC DL MOV N3,DL JMP FNEXT F2: ADD DI,7 DEC
19、 CX JNZ F1 ;處理所有學生 MOV DX,OFFSET KAISHISHUCHU ;打印一段* MOV AH,09 INT 21H MOV DX,OFFSET AVERAGE_GRADE ;打印平均成績 MOV AH,09 INT 21H MOV AX,BX MOV DX,0 MOV CX,0 MOV CL,NUMBER+2 DIV CX MOV CL,10 DIV CL CALL SHOW ;先打印平均成績的整數(shù)部分 PUSH AX MOV DL,. ;打印. MOV AH,2 INT 21H POP AX MOV AL,AH CALL SHOW ;再打印平均成績的小數(shù)部分 MOV
20、 DX,OFFSET RESULT1 ;輸出大于等于90的人數(shù) MOV AH,09 INT 21H MOV AL,N0 CALL SHOW MOV DX,OFFSET RESULT2 ;輸出大于等于80并小于90的人數(shù) MOV AH,09 INT 21H MOV AL,N1 CALL SHOW MOV DX,OFFSET RESULT3 ;輸出大于等于70并小于80的人數(shù) MOV AH,09 INT 21H MOV AL,N2 CALL SHOW MOV DX,OFFSET RESULT4 ;輸出大于等于60并小于70的人數(shù) MOV AH,09 INT 21H MOV AL,N3 CALL S
21、HOW MOV DX,OFFSET RESULT5 ;輸出小于60的人數(shù) MOV AH,09 INT 21H MOV AL,N4 CALL SHOW RET FIND_RESULT ENDP;*輸出分數(shù)排序的函數(shù)* _DISPLAY PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV DX, OFFSET GRADE_RANK MOV AH,09 INT 21H MOV CX,0 MOV CL,NUMBER+2 ;cl中保存學生人數(shù) MOV DI,0 MOV SI,0 D1: MOV DX, OFFSET INFORMATION ADD DX,SI ADD DX,2 MOV AH,09 INT 21H MOV DX, OFFSET BLANK ;打印一段空白 MOV AH,09 INT 21H mov Al,GRADEDI + 5 push ax MOV GRADEDI + 5,$ ;將保存成績的單元中第6個字節(jié)置為$,便于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西藏昌都市邊壩縣招聘社區(qū)工作者4人備考題庫及參考答案詳解一套
- 2026年旅游安全突發(fā)事件處置演練
- 2026遼寧沈陽中鐵建發(fā)展有限公司校園招聘備考題庫及一套參考答案詳解
- 航空航天項目管理與流程手冊
- 2026浙江寧波市象山縣汽車輪渡有限公司招聘7人備考題庫參考答案詳解
- 2026湖北武漢市中心城區(qū)重點中學招聘道法教師2人備考題庫及完整答案詳解一套
- 2026海南儋州市市場監(jiān)督管理局招聘公益性崗位人員1人備考題庫完整參考答案詳解
- 2025 小學一年級道德與法治上冊習慣評選小獎狀課件
- 礦山做工資年終總結(3篇)
- 職業(yè)健康防護責任險的理賠要點
- 中藥外洗治療化療導致外周神經(jīng)毒課件
- 江蘇省淮安市2025-2026學年高三上學期期中考試歷史試題(解析版)
- 2025-2026學年人教版(新教材)小學數(shù)學三年級下冊(全冊)教學設計(附目錄P208)
- 2025版中國慢性乙型肝炎防治指南
- 湖南省衡陽市衡南縣2024-2025學年高一上學期期末考試數(shù)學試題(A卷)(含答案)
- 2026年及未來5年市場數(shù)據(jù)中國草酸行業(yè)發(fā)展前景預測及投資戰(zhàn)略數(shù)據(jù)分析研究報告
- 感染科結核病防治培訓指南
- 2025年湖南生物機電職業(yè)技術學院單招職業(yè)適應性考試模擬測試卷附答案
- 期末測試卷(含答案)2025-2026學年語文三年級上冊統(tǒng)編版
- 金屬水幕施工方案(3篇)
- 2025美國心臟協(xié)會心肺復蘇(CPR)與心血管急救(ECC)指南解讀
評論
0/150
提交評論