汇编软件实验学生成绩输入_第1页
汇编软件实验学生成绩输入_第2页
汇编软件实验学生成绩输入_第3页
汇编软件实验学生成绩输入_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.微机原理实验报告实验任务:一个学生的信息包括姓名、班级、学号(班内序号)、成绩。试编写程序实现以下功能:(1)能录入学生成绩(十进制形式);提示:输入形如:tom 205 16 95回车,每名学生用一行;选择一个特殊符表示输入结束(2)能按要求(如班内序号或成绩)进行排序显示;(3)能统计平均成绩;(4)能按分数段统计人数,不及格、6070、7080、8090、90100各分数段的人数。实验实现过程与方法:将输入的学生信息保存在一个一维数组中,在数据段中变现为:STUDENTDB256DUP( );存储学生信息在信息的存储过程中直接把输入的字符串存储至STUDENT中,姓名,班级,班内序号,

2、成绩各属性之间以空格分开,来标识不同的属性。每一个功能都用一个子程序来完成,在主程序中直接调用实现相应的功能。所以主程序为:CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,100HCALLINPUT_PRO ;调用输入子程序CRMOV DX,OFFSET MESSAGE MOV AH,09HINT 21HCALLDISPLAY_PRO ;显示学生输入信息CRCALLNUMBERSORT_PRO ;按学号升序排列CALLSUM_PRO ;求出成绩总和CALLGRAD

3、ESORT_PRO ;按成绩降序排列CALLAVERAGE_PRO ;调用平均成绩子程序,并以字符串显示出来CALLTHEGRADE_PRO ;各个成绩段的人数统计MOVAH,4CHINT21HCODEENDSENDSTART其中CR是一个宏,用来实现回车换行的功能,INPUT_PRO实现成绩等学生信息的输入并存储起来,DISPLAY_PRO用来在窗口显示学生的信息,NUMBERSORT_PRO是按学生班内序号由小到大排序,GRADESORT_PRO是按学生成绩由大到小排序,AVERAGE_PRO是求出学生的平均成绩并以字符串的形式显示出来,THEGRADE_PRO则是最后用来统计各个分数段的

4、学生的人数。下面来介绍各个子程序相应的算法及流程图:输入子程序:输入形如:tom 205 16 95回车,每名学生用一行;选择一个特殊符表示输入结束的INPUT_PRO,给每一个学生在STUDENT中划分14字节用来存储学生信息,STUDENT0-STUDENT2字节用来存学生姓名,STUDENT4-STUDENT6用来存学生的班级,STUDENT8-STUDENT9用来存班内序号,STUDENT11-STUDENT13用来存储学生成绩。剩余的存储空间存储的都是空格,以把各个属性分开来,用于后面把各要素显示出来。一个学生信息依顺序输入并存储,然后循环,用输入的字符判断是否继续循环。为了后面的判

5、断,所有信息输出完之后在STUDENT末尾加一个回车0DH 显示子程序:使用02H中断显示字符,把一个STUDENT中的信息显示出来,一个学生显示完之后判断后面学生的第一个字符是否是0DH,如果不是就继续显示,并且学生数加1,学生数的初值设为1,否则结束循环,退出该子程序。学生数加1学号排序子程序:由于学号是按字符的形式存入STUDENT中的,所以可以直接进行比较比较STUDENT8和STUDENT9,若学生只有一位即下一位的第一位是0DH,结束程序,否则先比较STUDENT8表示十位数,若相等再继续比较STUDENT9,即采用冒泡排序方法重新对STUDENT排序,排序结束后调用显示子程序显示

6、出排序结果流程图:成绩排序子程序:先调用求和子程序SUM_PRO把成绩字符转换为十进制数保存在SCORES中,把总和保存在SUM中,从开始比较SCORES中的数,若前一个比后一个小则交换,采用冒泡排序,比较完之后调用显示子程序显示排序结果流程图:求均值子程序:由求和子程序求出总和SUM,又已知学生的总数STUDENTNUMBER便可以直接求出平均值,再调用DEVDIV转换为字符显示出来。流程图:成绩统计子程序:扫描学生信息的成绩,如果该学生信息的第一位为0DH,退出程序,否则到成绩的第三位,若不为空格则90-100即A加1,若第一位小于6,则小于60即E加1,否则若第一位小于7,则60-70即

7、D加1,否则若第一位小于8,则70-80即C加1,否则若第一位小于9,则80-90即B加1,否则90-100加1流程图:实验结果:下面以一个例子来展示整个程序执行过程:姓名班级班内序号成绩jsd2431078n2230059cdfd2341898dsop2342691df2342983sa6750980oi3451473ieo2353069eod24505100输入的截图:输入后显示的截图按学号排序的截图:按成绩排序,平均成绩及成绩统计的截图:实验总结:本次实验加深了对数据段数据存储的理解,让人印象深刻的跳转语句跳转范围,如果超出这个范围则可以用一个中转来实现整个跳转,也就是跳转两次。实验过程中也碰到了很多麻烦,比如循环跳不出去,循环次数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论