用dosbox,汇编语言写一个简易成绩分析系统。按优(>=90),良(80-89),中(70-79),及格(60-69),“40-59”, ”40以下”,几个分数段统计。屏幕提示输入每个分数段的人数,然后输出出每个分数段人数所占百分比。
时间: 2024-02-07 21:03:52 浏览: 43
好的,我会尽力回答你的问题,以下是我给出的答案:
首先,我们需要在dosbox中安装masm汇编环境。然后,我们可以使用下面的代码来实现这个简易成绩分析系统:
```
.model small
.stack 100h
.data
; 定义每个分数段的人数变量
num1 db 0
num2 db 0
num3 db 0
num4 db 0
num5 db 0
num6 db 0
; 定义总人数变量
total db 0
; 定义分数段占比变量
percent1 db 0
percent2 db 0
percent3 db 0
percent4 db 0
percent5 db 0
percent6 db 0
.code
main proc
; 初始化数据段变量
mov ax, @data
mov ds, ax
; 屏幕提示输入每个分数段的人数
mov ah, 09h
lea dx, prompt1
int 21h
; 输入每个分数段的人数
mov ah, 01h
int 21h
mov num1, al
mov ah, 01h
int 21h
mov num2, al
mov ah, 01h
int 21h
mov num3, al
mov ah, 01h
int 21h
mov num4, al
mov ah, 01h
int 21h
mov num5, al
mov ah, 01h
int 21h
mov num6, al
; 计算总人数
mov total, 0
add total, num1
add total, num2
add total, num3
add total, num4
add total, num5
add total, num6
; 计算每个分数段的占比
mov percent1, 0
mov percent2, 0
mov percent3, 0
mov percent4, 0
mov percent5, 0
mov percent6, 0
cmp total, 0
je output
mov ah, 00h
mov al, num1
mul 100
div total
mov percent1, al
mov ah, 00h
mov al, num2
mul 100
div total
mov percent2, al
mov ah, 00h
mov al, num3
mul 100
div total
mov percent3, al
mov ah, 00h
mov al, num4
mul 100
div total
mov percent4, al
mov ah, 00h
mov al, num5
mul 100
div total
mov percent5, al
mov ah, 00h
mov al, num6
mul 100
div total
mov percent6, al
output:
; 输出每个分数段的占比
mov ah, 09h
lea dx, prompt2
int 21h
mov ah, 02h
mov dl, percent1
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt3
int 21h
mov ah, 02h
mov dl, percent2
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt4
int 21h
mov ah, 02h
mov dl, percent3
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt5
int 21h
mov ah, 02h
mov dl, percent4
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt6
int 21h
mov ah, 02h
mov dl, percent5
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt7
int 21h
mov ah, 02h
mov dl, percent6
add dl, '0'
int 21h
mov ah, 02h
mov dl, '%'
int 21h
mov ah, 09h
lea dx, prompt8
int 21h
; 退出程序
mov ah, 4ch
int 21h
main endp
; 屏幕提示语句
prompt1 db '请输入每个分数段的人数:$'
prompt2 db '每个分数段的占比为:$'
prompt3 db '优(>=90):$'
prompt4 db '良(80-89):$'
prompt5 db '中(70-79):$'
prompt6 db '及格(60-69):$'
prompt7 db '40-59:$'
prompt8 db '40以下:$'
end main
```
这段代码会提示用户输入每个分数段的人数,然后计算每个分数段的占比并输出。注意,这里使用了除法运算,需要注意除数是否为0的情况。
希望我的回答对你有所帮助!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)