使用8086汇编,设计一个毕业生答辩成绩评分系统;通过输入评委的成绩然后统计出答辩学生的答辩成绩,最后显示毕业生的答辩成绩; 基本要求: 6名评委,每个评委给分范围为0~100,由键盘输入;6名评委给分中,平均分为毕业生答辩成绩(精确到小数点后两位,不考虑四舍五入);将最后得分在光标位置处显示出来;

时间: 2024-02-24 12:00:06 浏览: 28
好的,我可以为您提供一下思路和代码实现。 首先,我们需要定义一些变量和常量来存储数据和控制程序流程。 ``` ; 定义常量 MAX_SCORE EQU 100 ; 最大分数 NUM_JUDGES EQU 6 ; 评委的数量 ; 定义数据段 DATA SEGMENT SCORES DB NUM_JUDGES DUP(?) ; 定义一个NUM_JUDGES大小的数组用于存放评委的成绩 AVERAGE DW ? ; 存放毕业生的平均分数 DATA ENDS ``` 接下来,我们需要编写输入评委成绩的子程序,这个子程序将从键盘读取评委的成绩并将其存储在SCORES数组中。 ``` ; 从键盘读取一个字节 READ_BYTE PROC MOV AH, 01h ; 读取字符 INT 21h ; 调用DOS中断 RET READ_BYTE ENDP ; 输入评委成绩 INPUT_SCORES PROC MOV CX, NUM_JUDGES ; CX寄存器存放评委的数量 MOV SI, OFFSET SCORES ; SI寄存器存放SCORES数组的地址 ; 循环读取每个评委的成绩 L1: CALL READ_BYTE ; 读取一个字节 SUB AL, 30h ; 将ASCII码转换为数字 MOV [SI], AL ; 将成绩存入SCORES数组中 INC SI ; 移动指针到下一个位置 LOOP L1 ; 循环 RET INPUT_SCORES ENDP ``` 然后,我们需要编写一个子程序来计算毕业生的平均分数。 ``` ; 计算平均分数 CALC_AVERAGE PROC MOV CX, NUM_JUDGES ; CX寄存器存放评委的数量 MOV SI, OFFSET SCORES ; SI寄存器存放SCORES数组的地址 MOV BX, 0 ; BX寄存器存放累加的分数 ; 循环累加分数 L1: ADD BL, [SI] ; 将分数加入累加器 INC SI ; 移动指针到下一个位置 LOOP L1 ; 循环 ; 计算平均分数 MOV AX, BX ; 将累加的分数存入AX寄存器 MOV BX, NUM_JUDGES ; BX寄存器存放评委的数量 DIV BX ; AX除以BX,AX存放商,DX存放余数 MOV [AVERAGE], AX ; 将平均分数存入AVERAGE变量中 RET CALC_AVERAGE ENDP ``` 最后,我们需要编写一个子程序来显示毕业生的答辩成绩。 ``` ; 显示答辩成绩 DISPLAY_SCORE PROC MOV AH, 02h ; 设置光标位置 MOV BH, 0 ; 页码 MOV DH, 10 ; 行号 MOV DL, 0 ; 列号 INT 10h ; 调用DOS中断 ; 将平均分数转换为字符串 MOV AX, [AVERAGE] ; AX寄存器存放平均分数 MOV BX, 10 ; BX寄存器存放10 XOR CX, CX ; CX寄存器存放字符串长度,初始化为0 MOV DI, OFFSET SCORE_STR ; DI寄存器存放SCORE_STR数组的地址 ; 将平均分数转换为字符串 L1: XOR DX, DX ; DX寄存器存放余数,初始化为0 DIV BX ; AX除以BX,AX存放商,DX存放余数 ADD DL, '0' ; 将余数转换为ASCII码 MOV [DI], DL ; 将数字存入SCORE_STR数组中 INC DI ; 移动指针到下一个位置 ; 判断是否除尽 CMP AX, 0 JNZ L1 ; 计算字符串长度 SUB DI, OFFSET SCORE_STR ; DI寄存器存放SCORE_STR数组的地址 MOV CX, DI ; CX寄存器存放字符串长度 ; 循环输出字符串 MOV AH, 02h ; 设置光标位置 MOV BH, 0 ; 页码 MOV DH, 10 ; 行号 ADD DL, 5 ; 列号 INT 10h ; 调用DOS中断 ; 输出字符串 MOV DX, OFFSET SCORE_STR ; DX寄存器存放SCORE_STR数组的地址 MOV AH, 09h ; 输出字符串 INT 21h ; 调用DOS中断 RET DISPLAY_SCORE ENDP ``` 最后,我们需要编写主程序来调用以上编写的子程序。 ``` CODE SEGMENT ASSUME CS:CODE, DS:DATA MAIN PROC MOV AX, DATA ; 初始化数据段寄存器 MOV DS, AX CALL INPUT_SCORES ; 输入评委成绩 CALL CALC_AVERAGE ; 计算平均分数 CALL DISPLAY_SCORE ; 显示答辩成绩 MOV AH, 4Ch ; 退出程序 INT 21h MAIN ENDP CODE ENDS END MAIN ``` 以上就是8086汇编实现毕业生答辩成绩评分系统的代码。 需要注意的是,在计算平均分数时,我们使用了除法操作,这个操作可能会产生余数,但我们在本程序中没有考虑余数的处理。我们只需要保证评委给分范围为0~100,那么平均分数在计算时就不会产生余数。如果需要考虑余数的处理,可以在计算平均分数时使用乘法操作来进行计算。

相关推荐

最新推荐

recommend-type

用汇编语言实现学生成绩统计分析

用汇编语言实现学生成绩统计分析,实验内容:编制一个程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成...
recommend-type

课程设计----学生成绩档案管理系统设计

用汇编语言编写程序,设计一个学生成绩档案管理系统。要求该系统具有如下6个的基本功能:1输入;2 显示;3查找;4修改;5 排序;6退出。界面以菜单形式显示, 每个学生的信息包含:学号、姓名、成绩,排序按照成绩...
recommend-type

汇编语言 实验报告(斐波那契数列 统计学生成绩)

2 设计10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。试编制程序分别统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并存放到S5、S6、S7、S8、S9及S10单元中
recommend-type

汇编实验 源码 斐波那契函数FIB(N) 统计学生成绩

一、实验--斐波那契函数FIB(N) 3 1.实验目的和要求 3 ...二、实验--统计学生成绩 7 1.实验目的和要求 7 2.实验内容描述 7 3.程序流程图 8 4.程序源码 9 5.运行结果 10 三、心得体会 10 四、参考文献 11
recommend-type

汇编课程设计-学生成绩管理系统软件设计报告

程序是一个学生成绩管理系统,图形化界面,操作便捷,实现了学生成绩的录入、更新、检索、排序、存盘等基本功能,支持对多个不同班级的分开管理,本报告采用软件工程标准。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。