LC-3 成绩排序问题
利用提供的安装软件包和软件使用说明文档,完成16名学生成绩排序,及统计分析
成绩分类规则
A:全班排名前25%,且成绩在85分及以上
B:非A成绩,全班排名前50%,且成绩在75分及以上
C:非A、B成绩
要求
使用LC-3汇编语言,编写程序实现以上功能
输入
16名学生成绩,存储于x3200至x320F
每个成绩为0至100之间,由16比特无符号整数表示
输出
成绩降序排序,并存储于x4000至x400F内存位置,x4000位置成绩为最高成绩
得A、B成绩的学生总人数,分别存储于x4100,及x4101位置
三、实验步骤与过程
[if !supportLists]1. [endif]总体把握
首先,对于批量数据的排序首先要确定排序算法,考虑到中间循环的复杂性,应当逐步考虑分离相关内容为多个子函数,通过子函数调用实现排序、Callee 入栈模式。
排序使用快速排序法实现
[if !supportLists]2. [endif]实现迭代器(循环内逐个调度)函数
[if !supportLists]3. [endif]实现两个数字的比较函数
[if !supportLists]4. [endif]实现两个数字的交换函数
[if !supportLists]5. [endif]实现数组取值
[if !supportLists]6. [endif]实现数组写值
[if !supportLists]7. [endif]实现数组拷贝
[if !supportLists]8. [endif]实现快速排序函数(自定比较函数版、数组地址、数组长度、单个数值内存宽度)
[if !supportLists]9. [endif]实现统计函数(统计a,b,c)
[if !supportLists]10. [endif]编写测试样例、测试相关算法正确性