学生成绩管理系统设计实验汇编语言.docx

上传人:b****5 文档编号:6345012 上传时间:2023-01-05 格式:DOCX 页数:35 大小:225.67KB
下载 相关 举报
学生成绩管理系统设计实验汇编语言.docx_第1页
第1页 / 共35页
学生成绩管理系统设计实验汇编语言.docx_第2页
第2页 / 共35页
学生成绩管理系统设计实验汇编语言.docx_第3页
第3页 / 共35页
学生成绩管理系统设计实验汇编语言.docx_第4页
第4页 / 共35页
学生成绩管理系统设计实验汇编语言.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统设计实验汇编语言.docx

《学生成绩管理系统设计实验汇编语言.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计实验汇编语言.docx(35页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统设计实验汇编语言.docx

学生成绩管理系统设计实验汇编语言

实验六学生成绩管理系统设计实验

一、实验目的

1、熟悉汇编语言程序结构;

2、熟悉INT21H的文件操作功能调用;

3、熟悉INT21H的1、9号功能和INT10H常用功能的使用方法;

4、掌握多子程序复杂问题程序设计方法;

5、掌握利用汇编语言实现字符串的输入输出程序设计方法;

6、了解多模块程序设计方法。

二、实验原理

我们把可以多次调用、具有通用性、能完成特定功能的程序段编写成的独立程序模块称为子程序。

子程序是把一个程序划分成若干模块所用的主要手段,它便于独立设计、测试程序和编制程序文件。

3、实验内容

1、实验要求

设计一个学生成绩管理系统,要求完成文件建立、学生成绩录入、显示指定学号的学生记录、删除一个学生的记录、修改学生记录、返回等工作。

学生成绩包括学号(XH)、姓名(XM)、数学(SX)、语文(YW)、外语(WY)字段。

至少包括30名学生信息,每名学生学号字段为4个字符,姓名字段为15个字符(最大),每门成绩字段为3个字符(最大)。

程序设计步骤如下:

1、编写主程序main.asm;

2、编写文件创建子程序create,实现在指定盘指定文件夹“d:

\chengji\2009\”下建立一个指定名称的文件2009doc.dat;

3、编写成绩录入子程序append,实现在指定文件尾部插入一个学生的成绩记录;

4、编写显示子程序display,实现按指定学号显示一个学生的记录;

5、编写修改子程序modify,实现按指定学号修改一个学生的记录字段(不需修改直接回车);

6、编写删除子程序,实现按指定学号、姓名删除一个学生的记录;

7、编译、链接、调试,产生可执行文件main.exe。

2、程序流程图

 

3、程序代码

程序代码如下:

DATASSEGMENT

MSG1DB'1.Appendarecord$'

MSG2DB'2.Displayarecord$'

MSG3DB'3.Modifyarecord$'

MSG4DB'4.Deletearecord$'

MSG5DB'5.Createfile$'

MSG6DB'6.ReturnDOS$'

MSGCDB'Pleaseinput1--6:

$'

MSGEDB'Error!

$'

MSGC1DB'Pleaseinputfilename:

$'

MAXLENDB25

ACTLENDB?

STRINGDB25DUP(?

MAXLEN1DB25

ACTLEN1DB?

STRING1DB25DUP(?

PATHNMDB'D:

\chengji\2009\\',23DUP(?

PATHDB'D:

\chengji\2009\2009doc.dat',00

MSGA1DB'PleaseinputXH:

$'

MSGA2DB'PleaseinputXM:

$'

MSGA3DB'PleaseinputSX:

$'

MSGA4DB'PleaseinputYW:

$'

MSGA5DB'PleaseinputWY:

$'

HANDLEDW?

MSGXHDB'Xuehao:

$'

MSGXMDB'Xingming:

$'

MSGSXDB'Shuxue:

$'

MSGYWDB'Yuwen:

$'

MSGWYDB'Waiyu:

$'

BUFFERDB2048DUP('')

MSGRTDB'Pressanykeytoreturn!

$'

DELSTRDB33DUP('')

DATASENDS

STACKSSEGMENTSTACK

DB256DUP(?

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

;********************************

;主程序

MAINPROCFAR

S:

;清屏

CALLCLS;逐行输出提示信息

MOVAH,02H

MOVDH,9

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG1

INT21H

MOVAH,02H

MOVDH,10

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG2

INT21H

MOVAH,02H

MOVDH,11

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG3

INT21H

MOVAH,02H

MOVDH,12

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG4

INT21H

MOVAH,02H

MOVDH,13

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG5

INT21H

MOVAH,02H

MOVDH,14

MOVDL,30

INT10H

MOVAH,9

LEADX,MSG6

INT21H;提示输入

MOVAH,02H

MOVDH,15

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGC

INT21H;从键盘读入一个数字

MOVAH,02H

MOVDH,15

MOVDL,48

INT10H

MOVAH,1

INT21H;按数字对应子程序

CMPAL,31H

JZCAPPEND

CMPAL,32H

JZCDISPLAY

CMPAL,33H

JZCMODIFY

CMPAL,34H

JZCDELETE

CMPAL,35H

JZCCREATE

CMPAL,36H

JZE

;若输入不是1-6数字,则提示错误

MOVAH,02H

MOVDH,16

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGE

INT21H

CCREATE:

CALLCREATE

JMPS

CDELETE:

CALLDELETE

JMPS

CMODIFY:

CALLMODIFY

JMPS

CDISPLAY:

CALLDISPLAY

JMPS

CAPPEND:

CALLAPPEND

JMPS

E:

MOVAH,4CH

INT21H

MAINENDP

;********************************

;CREATE程序

CREATEPROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHSI

PUSHDI;清屏

CALLCLS

;提示输入文件名

MOVAH,2

MOVDH,12

MOVDL,20

INT10H

MOVAH,9

LEADX,MSGC1

INT21H

;从键盘读入文件名字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H

;将文件名字符串加到ASCIZ字符串末尾

MOVCX,0

MOVCL,ACTLEN

LEASI,STRING

LEADI,PATHNM

ADDDI,16

LCREATE:

MOVAL,BYTEPTR[SI]

MOV[DI],AL

INCDI

INCSI

LOOPLCREATE

;在ASCIZ字符串末尾加00

MOVBYTEPTR[DI],0

;按ASCIZ字符串创建文件

MOVAH,3CH

LEADX,PATHNM

MOVCX,0

INT21H

POPDI

POPSI

POPDX

POPCX

POPAX

RET

CREATEENDP

;********************************

;APPEND程序

APPENDPROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHSI

PUSHDI;清屏

CALLCLS

;打开文件(只写)

MOVAH,3DH

MOVAL,01H

LEADX,PATH

INT21H

MOVHANDLE,AX

;提示输入学号

MOVAH,02H

MOVDH,10

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGA1

INT21H

;从键盘读入字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H

;在字符串末尾补足空格

MOVDX,4

CALLFILL

;将文件指针定位至文件末尾

MOVAH,42H

MOVAL,2

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;写入文件

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;提示输入姓名

MOVAH,02H

MOVDH,11

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGA2

INT21H;从键盘读入字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;在字符串末尾补足空格

MOVDX,15

CALLFILL

;将文件指针定位至文件末尾

MOVAH,42H

MOVAL,2

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;写入文件

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;提示输入语文成绩

MOVAH,02H

MOVDH,12

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGA3

INT21H;从键盘读入字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;在字符串末尾补足空格

MOVDX,3

CALLFILL

;将文件指针定位至文件末尾

MOVAH,42H

MOVAL,2

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;写入文件

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;提示输入数学成绩

MOVAH,02H

MOVDH,13

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGA4

INT21H;从键盘读入字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;在字符串末尾补足空格

MOVDX,3

CALLFILL

;将文件指针定位至文件末尾

MOVAH,42H

MOVAL,2

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;写入文件

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;提示输入外语成绩

MOVAH,02H

MOVDH,14

MOVDL,30

INT10H

MOVAH,9

LEADX,MSGA5

INT21H;从键盘读入字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;在字符串末尾补足空格

MOVDX,3

CALLFILL

;在字符串末尾加回车、换行

INCSI

MOVBYTEPTR[BX+SI],0DH

INCSI

MOVBYTEPTR[BX+SI],0AH

ADDACTLEN,2

;将文件指针定位至文件末尾

MOVAH,42H

MOVAL,2

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;写入文件

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;关闭文件

MOVAH,3EH

MOVBX,HANDLE

INT21H

POPDI

POPSI

POPDX

POPCX

POPBX

POPAX

RET

APPENDENDP

;********************************

DISPLAYPROCNEAR

PUSHAX

PUSHDX;清屏

CALLCLS;提示输入学号

MOVAH,02H

MOVDH,10

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGXH

INT21H;从键盘读入学号字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;打开文件(只读)

MOVAH,3DH

MOVAL,00H

LEADX,PATH

INT21H

MOVHANDLE,AX

;将文件指针定位至文件开头

MOVAH,42H

MOVAL,0

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;将文件载入缓存

MOVAH,3FH

MOVBX,HANDLE

MOVCX,2048

LEADX,BUFFER

INT21H;在缓存中找到对应记录

LEASI,BUFFER

LEADI,STRING

MOVCX,AX

CALLSEARCH

CMPDX,0

JZOUTPUT

;若未找到,则提示错误

MOVAH,9

LEADX,MSGE

INT21H

JMPDEND;显示对应信息

OUTPUT:

MOVAH,02H

MOVDH,11

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGXM

INT21H

ADDSI,5

MOVAH,9

MOVDX,SI

INT21H

MOVAH,02H

MOVDH,12

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGYW

INT21H

ADDSI,16

MOVAH,9

MOVDX,SI

INT21H

MOVAH,02H

MOVDH,13

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGSX

INT21H

ADDSI,4

MOVAH,9

MOVDX,SI

INT21H

MOVAH,02H

MOVDH,14

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGWY

INT21H

ADDSI,4

MOVAH,9

MOVDX,SI

INT21H

MOVAH,2

MOVDH,15

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGRT

INT21H

MOVAH,1

INT21H

DEND:

;关闭文件

MOVAH,3EH

MOVBX,HANDLE

INT21H

POPDX

POPAX

RET

DISPLAYENDP

;********************************

MODIFYPROCNEAR

PUSHAX

PUSHDX;清屏

CALLCLS;提示输入学号

MOVAH,02H

MOVDH,10

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGXH

INT21H;从键盘读入学号字符串

MOVAH,0AH

LEADX,MAXLEN

INT21H;打开文件(读写)

MOVAH,3DH

MOVAL,10

LEADX,PATH

INT21H

MOVHANDLE,AX

;将文件指针定位至文件开头

MOVAH,42H

MOVAL,0

MOVBX,HANDLE

MOVCX,0

MOVDX,0

INT21H;将文件载入缓存

MOVAH,3FH

MOVBX,HANDLE

MOVCX,2048

LEADX,BUFFER

INT21H;在缓存中找到对应记录

LEASI,BUFFER

LEADI,STRING

MOVCX,AX

CALLSEARCH

CMPDX,0

JZREVISEXM

;若未找到,则提示错误

MOVAH,9

LEADX,MSGE

INT21H

JMPMEND;修改姓名

REVISEXM:

MOVAH,02H

MOVDH,11

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGXM

INT21H

MOVAH,0AH

LEADX,MAXLEN

INT21H

CMPBYTEPTR[STRING],0DH;若为回车,则将指针指向下一字段

JNZXMCONT

ADDSI,5

JMPREVISEYW

XMCONT:

PUSHSI

MOVDX,15

CALLFILL

POPSI

ADDSI,5

LEABX,BUFFER

MOVDX,SI

SUBDX,BX

MOVAH,42H

MOVAL,00

MOVBX,HANDLE

MOVCX,00

INT21H

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;修改语文成绩

REVISEYW:

MOVAH,02H

MOVDH,12

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGYW

INT21H

MOVAH,0AH

LEADX,MAXLEN

INT21H

CMPBYTEPTR[STRING],0DH

JNZYWCONT

ADDSI,16

JMPREVISESX

YWCONT:

PUSHSI

MOVDX,3

CALLFILL

POPSI

ADDSI,16

LEABX,BUFFER

MOVDX,SI

SUBDX,BX

MOVAH,42H

MOVAL,00

MOVBX,HANDLE

MOVCX,00

INT21H

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;修改数学成绩

REVISESX:

MOVAH,02H

MOVDH,13

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGSX

INT21H

MOVAH,0AH

LEADX,MAXLEN

INT21H

CMPBYTEPTR[STRING],0DH

JNZSXCONT

ADDSI,4

JMPREVISEWY

SXCONT:

PUSHSI

MOVDX,3

CALLFILL

POPSI

ADDSI,4

LEABX,BUFFER

MOVDX,SI

SUBDX,BX

MOVAH,42H

MOVAL,00

MOVBX,HANDLE

MOVCX,00

INT21H

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H;修改外语成绩

REVISEWY:

MOVAH,02H

MOVDH,14

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGWY

INT21H

MOVAH,0AH

LEADX,MAXLEN

INT21H

CMPBYTEPTR[STRING],0DH

JZMEND

PUSHSI

MOVDX,3

CALLFILL

POPSI

ADDSI,4

LEABX,BUFFER

MOVDX,SI

SUBDX,BX

MOVAH,42H

MOVAL,00

MOVBX,HANDLE

MOVCX,00

INT21H

MOVAH,40H

MOVBX,HANDLE

MOVCX,0

MOVCL,ACTLEN

LEADX,STRING

INT21H

MEND:

;关闭文件

MOVAH,3EH

MOVBX,HANDLE

INT21H

POPDX

POPAX

RET

MODIFYENDP

;******************************************************************************

DELETEPROCNEAR

P

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

当前位置:首页 > 法律文书 > 辩护词

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

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