汇编试验报告-学生信息管理系统.doc

上传人:b****2 文档编号:1644711 上传时间:2022-10-23 格式:DOC 页数:18 大小:146.50KB
下载 相关 举报
汇编试验报告-学生信息管理系统.doc_第1页
第1页 / 共18页
汇编试验报告-学生信息管理系统.doc_第2页
第2页 / 共18页
汇编试验报告-学生信息管理系统.doc_第3页
第3页 / 共18页
汇编试验报告-学生信息管理系统.doc_第4页
第4页 / 共18页
汇编试验报告-学生信息管理系统.doc_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

汇编试验报告-学生信息管理系统.doc

《汇编试验报告-学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《汇编试验报告-学生信息管理系统.doc(18页珍藏版)》请在冰豆网上搜索。

汇编试验报告-学生信息管理系统.doc

学生信息管理系统

1.实验类别

使用汇编语言编程

2.实验内容和实验目的

学生的信息包括姓名、班级、学号和成绩,其中成绩精确到1位小数。

编写程序实现以下功能:

(1) 可以录入学生的信息,成绩以十进制形式录入,并显示;

(2) 可以按成绩进行排序显示;

(3) 可以统计平均成绩;

(4) 可以统计不及格、60~70、70~80、80~90、90~100各分数段的人数。

3.实验设备环境

Windows7操作系统的pc机,使用QASM270编译器环境下编写。

4.实验实现过程及方法

首先数据采用二维数组的形式进行存储,分为学生信息部分与成绩部分。

然后将输入学生数也保存在一个一维数组中。

然后再信息的存储过程中,对于字符串输入进行转换,以二进制的形式存储在数据段中。

然后采用冒泡排序,对于数据段中的人员信息进行排序。

以成绩为参数。

然后再对每个人员成绩进行遍历,统计各个数据层次中人员数,然后再成绩遍历的同时,将平均成绩也同时求出,在求平时成绩的时候,首先先将整数部分乘10然后再加上小数部分,以便于后续的输出。

将排序后的人员信息及成绩显示出来,然后将平均成绩也同时打印出来,还有各个分数层次中的人员数也都一并显示出来。

下面是一些主要代码来实现上述过程:

;数据部分

NUMBERDB3DUP(0);第一个存个/十位(ASCII码),第二个存个位(ASCII码),第三个存学生数(二进制)

;用20字节单元表示学生信息,0-19中:

0对应最大字符,1对应实际输入,2-18对应输入信息,19对应'$'

INFORMATIONDB99DUP(20DUP(0))

;用7字节单元来存分数,0-6中,0-4对应输入字符,5对应输入整数部分的二进制数,6对应于小数部分的二进制数

GRADEDB99DUP(7DUP(0))

AVERAGE_GRADE_BUFFERDB2DUP(0);第一个存整数部分(二进制形式),

STORE_STUDENT_NUM;存储学生总数,结果送cx中

STORE_STUDENT_INFORMATION;存储学生信息

STORE_STUDENT_GRADE;存储每个学生成绩

SORT;采用冒泡排序

_DISPLAY;显示结果

FIND_RESULT;显示平均成绩和分段人数

关键算法的流程图:

关于分段人数与总成绩的计算冒泡排序算法:

处理计算

计算总成绩

<60?

<70?

<80?

<90?

<=100

错误

返回

N

N

N

N

N

A++

B++

C++

D++

E++

Y

Y

Y

Y

Y

处理排序冒泡

i=0

交换

i++

Ki<=Ki+1

i=counter?

返回

Y

N

Y

N

5.效果图

输入三人信息,班级学好姓名,然后输入此人成绩。

可以看到三人的按成绩排序,然后将平均值输出,而且统计了各个分数区间的人数。

输入5人信息,并将其打印出来。

6.实验心得

通过编写学生管理系统的汇编实验,让我对汇编语言有了很深的了解,对于语言的熟悉度也提高了很多。

在编写的过程中遇到了很多的问题,由于汇编语言使用起来比较繁琐(个人感觉),很多内部运行的数据不能很好的呈现出来,所以对数据的保存,处理等方面出现了很大的错误,主要是在字符的输入与二进制的转换,还有就是在数据处理的时候会出现很多标志位,这些标准为对于处理后数据的保存有很大的影响,但是通过课本上的实验例子,对于这些问题基本上都能得到一定的解决。

还有就是在需要跳转的时候,由于跳转指令使用对标志位或者条件使用比较灵活,有很多种的跳转指令,这些指令在使用起来是很方便但是由于判断条件很多,可能不小心就出现了跳转出错。

还有就是,跳转不到想要跳转的地方。

这些问题需要在编写的过程中非常的小心,同时也能将这些指令得使用规则得到一个很好的理解与记忆。

总之,在此次的汇编实验的编写过程中,理解了很多在课堂上学习到的知识,也同时记忆了这些指令的使用规则与方法。

对于汇编语言有了一定程度的理解与掌握。

源程序:

DATASSEGMENT;此处输入数据段代码

;输入输出提示字符

STUDENT_NUMDB'Pleaseinputthenumberofstudents(1-99):

','$'

STUDENT_INFORMATIONDB0DH,0AH,'Pleaseinputthestudentinformation(classidname):

',0DH,0AH,'$'

STUDENT_GRADEDB0DH,0AH,'Pleaseinputthestudentgrade(0.0-100.0):

',0DH,0AH,'$'

AVERAGE_GRADEDB0DH,0AH,'Theaveragegradeis:

','$'

RESULT1DB0DH,0AH,'Thenumberofstudentin[>=90]is:

','$';各分数段人数

RESULT2DB0DH,0AH,'Thenumberofstudentin[80-90]is:

','$'

RESULT3DB0DH,0AH,'Thenumberofstudentin[70-80]is:

','$'

RESULT4DB0DH,0AH,'Thenumberofstudentin[60-70]is:

','$'

RESULT5DB0DH,0AH,'Thenumberofstudentin[<=60]is:

','$'

GRADE_RANKDB0DH,0AH,'Thegradelist(hightolow)is:

',0DH,0AH,'$';打印排名

BLANKDB'','$'

HUANHANGDB0DH,0AH,'$'

KAISHISHUCHUDB0DH,0AH,'***********************************',0DH,0AH,'$'

;数据

NUMBERDB3DUP(0);第一个存个/十位(ASCII码),第二个存个位(ASCII码),第三个存学生数(二进制)

;用20字节单元表示学生信息,0-19中:

0对应最大字符,1对应实际输入,2-18对应输入信息,19对应'$'

INFORMATIONDB99DUP(20DUP(0))

;用7字节单元来存分数,0-6中,0-4对应输入字符,5对应输入整数部分的二进制数,6对应于小数部分的二进制数

GRADEDB99DUP(7DUP(0))

AVERAGE_GRADE_BUFFERDB2DUP(0);第一个存整数部分(二进制形式),第二个存小数部分(二进制形式)

N0DB0;各分数段人数存储区(二进制形式)

N1DB0

N2DB0

N3DB0

N4DB0

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

;此处输入代码段代码

MOVAX,DATAS

MOVDS,AX

MOVSI,0;指向每个学生信息

MOVDI,0;指向每个学生成绩

MOVCX,100;初始化学生数

MOVDX,OFFSETSTUDENT_NUM;请求输入学生总数

MOVAH,09

INT21H

CALLSTORE_STUDENT_NUM;存储学生总数,结果送cx中

CMPCX,0;输入为0退出

JLEOUTTODOS

CMPCX,100;学生数超出本程序范围,退出

JGEOUTTODOS

INPUT:

MOVDX,OFFSETSTUDENT_INFORMATION;请求输入学生信息

MOVAH,09

INT21H

CALLSTORE_STUDENT_INFORMATION;存储学生信息

ADDSI,20;指向下一个学生信息

MOVDX,OFFSETSTUDENT_GRADE;请求输入学生成绩

MOVAH,09

INT21H

CALLSTORE_STUDENT_GRADE;存储每个学生成绩

ADDDI,7;指向下一个学生

LOOPINPUT;循环,直到输入所有学生成绩

CALLSORT;排序

CALL_DISPLAY;显示结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1