试验报告学生信息管理系统.docx

上传人:b****8 文档编号:9956050 上传时间:2023-05-22 格式:DOCX 页数:28 大小:83.25KB
下载 相关 举报
试验报告学生信息管理系统.docx_第1页
第1页 / 共28页
试验报告学生信息管理系统.docx_第2页
第2页 / 共28页
试验报告学生信息管理系统.docx_第3页
第3页 / 共28页
试验报告学生信息管理系统.docx_第4页
第4页 / 共28页
试验报告学生信息管理系统.docx_第5页
第5页 / 共28页
试验报告学生信息管理系统.docx_第6页
第6页 / 共28页
试验报告学生信息管理系统.docx_第7页
第7页 / 共28页
试验报告学生信息管理系统.docx_第8页
第8页 / 共28页
试验报告学生信息管理系统.docx_第9页
第9页 / 共28页
试验报告学生信息管理系统.docx_第10页
第10页 / 共28页
试验报告学生信息管理系统.docx_第11页
第11页 / 共28页
试验报告学生信息管理系统.docx_第12页
第12页 / 共28页
试验报告学生信息管理系统.docx_第13页
第13页 / 共28页
试验报告学生信息管理系统.docx_第14页
第14页 / 共28页
试验报告学生信息管理系统.docx_第15页
第15页 / 共28页
试验报告学生信息管理系统.docx_第16页
第16页 / 共28页
试验报告学生信息管理系统.docx_第17页
第17页 / 共28页
试验报告学生信息管理系统.docx_第18页
第18页 / 共28页
试验报告学生信息管理系统.docx_第19页
第19页 / 共28页
试验报告学生信息管理系统.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

试验报告学生信息管理系统.docx

《试验报告学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《试验报告学生信息管理系统.docx(28页珍藏版)》请在冰点文库上搜索。

试验报告学生信息管理系统.docx

试验报告学生信息管理系统

学生信息管理系统

1.实验类别

使用汇编语言编程

2.实验内容和实验目的

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

编写程序实现以下功能:

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

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

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

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

3.实验设备环境

7操作系统的机,使用270编译器环境下编写。

4.实验实现过程及方法

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

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

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

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

以成绩为参数。

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

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

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

;数据部分

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

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

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

99(20(0))

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

99(7(0))

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

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

;存储学生信息

;存储每个学生成绩

;采用冒泡排序

;显示结果

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

关键算法的流程图:

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

处理计算

计算总成绩

<60?

<70?

<80?

<90?

<=100

错误

返回

N

N

N

N

N

Y

Y

Y

Y

Y

处理排序冒泡

0

交换

<1

返回

Y

N

Y

N

5.效果图

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

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

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

6.实验心得

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

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

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

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

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

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

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

 

源程序:

;此处输入数据段代码

;输入输出提示字符

'(1-99):

','$'

0,0,'():

',0,0,'$'

0,0,'(0.0-100.0):

',0,0,'$'

0,0,':

','$'

10,0,'[>=90]:

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

20,0,'[80-90]:

','$'

30,0,'[70-80]:

','$'

40,0,'[60-70]:

','$'

50,0,'[<=60]:

','$'

0,0,'():

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

'','$'

0,0,'$'

0,0,'***********************************',0,0,'$'

;数据

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

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

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

99(20(0))

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

99(7(0))

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

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

N10

N20

N30

N40

:

;此处输入代码段代码

0;指向每个学生信息

0;指向每个学生成绩

100;初始化学生数

;请求输入学生总数

09

21H

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

0;输入为0退出

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

:

;请求输入学生信息

09

21H

;存储学生信息

20;指向下一个学生信息

;请求输入学生成绩

09

21H

;存储每个学生成绩

7;指向下一个学生

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

;排序

;显示结果

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

:

1;任意键结束

21H

4C00H;返回

21H

;******************存储学生数目的函数******************

;调用之后,中存储了学生数(二进制)

0

S1:

1

21H

0;是否为回车

S2

0;转换为非压缩的码

[]

S1

S2:

2

S5;大于2

S3;等于2

;小于2

S4

S3:

1

码转换为二进制数

S4:

2

0

2

S5:

;******************存储学生信息的函数******************

18

[]

[]

0

21H

[+1];实际输入的字符个数

''

[++2];将回车换成''

[19],'$';将每个存储单元的最后一个字节置为'$'以便输出

;******************存储学生成绩的函数******************

0

0

0:

1

21H

0;判断是否为回车

2;是回车

'.';是否为小数点

1;不是小数点

指向小数点处

;标记小数点字符出现在第几个位置

1:

[]

;记录输入字符的个数

0

2:

0

3;有小数点

;无小数点

3

;大于100

4;等于100

;小于100

2

5;输入数目为2位数

;个位数

6:

;处理个位数

[]

'0'

[+5]

5:

;处理2位数

[]

0

[+1]

0

[+5]

4:

;处理3位数

100

[+5]

3:

;处理带有小数部分的成绩

[+];将小数部分处理

'0'

[+6]

4

4;'.'出现在输入字符的第四位,则输入的整数部分为3位数

;整数部分大于3位数

3

5;'.'出现在输入字符的第三位,则输入的整数部分为2位数

6;否则为个位数

:

;******************排序学生成绩的函数******************

0

2

1:

;使用冒泡排序法

0

0

2:

;先比整数部分,再比小数部分

[+5]

[+12]

;大于,向下个移动

1;小于,交换成绩,名字

;等于,比较小数部分

[+6]

[+13]

;大于或等于,向下个移动

1;小于,交换成绩,名字

1:

11:

;交换学生信息

[+2]

[+22]

[+2]

'$'

11

0

2:

;交换学生成绩

[+]

[++7]

[+]

7

2

:

20

7

2

1

;******************显示最后结果的函数******************

0

0

2中保存学生人数

0

0

F1:

[+5]

100

;大于100

F90;等于100

;小于100

90

F90;大于等于90

;小于90

80

F80;大于等于80

;小于80

70

F70;大于等于70

;小于70

60

F60;大于等于60

;小于60

;处理<60

4

N4

:

;处理平均成绩处理方式:

整数部分*10+小数部分,结果先除以学生人数,再输出(输出整数时除以10)

[+5]

10

[+6]

0

F2

:

F90:

;处理>=90

0

N0

F80:

;处理大于等于80小于90

1

N1

F70:

;处理大于等于70小于80

2

N2

F60:

;处理大于等于60小于70

3

N3

F2:

7

F1;处理所有学生

;打印一段************

09

21H

;打印平均成绩

09

21H

0

0

2

10

;先打印平均成绩的整数部分

'.';打印'.'

2

21H

;再打印平均成绩的小数部分

1;输出大于等于90的人数

09

21H

0

2;输出大于等于80并小于90的人数

09

21H

1

3;输出大于等于70并小于80的人数

09

21H

2

4;输出大于等于60并小于70的人数

09

21H

3

5;输出小于60的人数

09

21H

4

;******************输出分数排序的函数******************

09

21H

0

2中保存学生人数

0

0

D1:

2

09

21H

;打印一段空白

09

21H

[+5]

[+5],'$';将保存成绩的单元中第6个字节置为'$',便于输出

;输出成绩

09

21H

[+5]

;打印换行

09

21H

20

7

D1;直至将所有成绩都输出

;******************将二进制数输出的函数******************

100

0

;将中的二进制数除以100

;保存

0

X1;如果商为0,则表示原数小于100

;否则将百位数打印出来

30H

2

21H

X1:

0

10

;将中的二进制数除以10

;保存

0

X2;如果商为0,则表示原数小于10

;否则将十位打印出来

30H

2

21H

X2:

;打印个位

30H

2

21H

;******************子程序结束******************

;******************代码段结束******************

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2