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

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

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

《学生成绩管理系统设计实验.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计实验.docx(37页珍藏版)》请在冰点文库上搜索。

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

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

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

一、实验目的

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

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

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

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

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

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

二、实验原理

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

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

三、实验内容

1、实验要求

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

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

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

程序设计步骤如下:

1、编写主程序main.asm;

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

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

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

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

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

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

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

2、程序流程图

2/16

3、程序代码

程序代码如下:

DATASSEGMENT

MSG1DB'1.Appendarecord$'MSG2DB2Displayarecord$'MSG3DB'3.Modifyarecord$'MSG4DB4Deletearecord$'MSG5DB'5.Createfile$'MSG6DB'6.ReturnDOS$'MSGCDB'Pleaseinput1--6:

$'MSGEDB'Error!

$'

MSGC1DB'Pleaseinput:

$'

MAXLEN

DB25

ACTLEN

DB?

STRING

DB25DUP(?

MAXLEN1

DB25

ACTLEN1

DB?

STRING1DB25DUP⑺

PATHNM

DB

'D:

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

PATH

DB

'D:

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

MSGA1

DB'PleaseinputXH:

$'

MSGA2

DB'PleaseinputXM:

$'

MSGA3

DB'PleaseinputSX:

$'

MSGA4

DB'PleaseinputYW:

$'

MSGA5

DB'PleaseinputWY:

$'

HANDLE

DW?

MSGXH

DB'Xuehao:

$'

MSGXM

DB'Xingming:

$'

MSGSX

DB'Shuxue:

$'

MSGYW

DB'Yuwen:

$'

MSGWY

DB'Waiyu:

$'

BUFFER

DB2048DUP('')

MSGRT

DB'Pressanykeyto

return!

$'

DELSTR

DB33DUP('')

DATASENDS

STACKSSEGMENTSTACK

DB256DUP(?

STACKSENDS

CODESSEGMENT

ASSUME

CS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATAS

MOVDS,AX

.********************************

J

;主程序

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

.********************************

J

;CREATE程序

CREATEPROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHSI

PUSHDI;清屏

CALLCLS

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,MSGA1INT21H

;从键盘读入字符串

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

;提示输入文件名

MOVAH,2

MOVDH,12

MOVDL,20INT10H

MOVAH,9

LEADX,MSGC1INT21H

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

MOVAH,0AH

LEADX,MAXLENINT21H

;将文件名字符串加到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

・********************************

J

;APPEND程序

APPENDPROCNEAR

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

・********************************

J

DISPLAYPROCNEAR

PUSHAX

PUSHDX;清屏

CALLCLS;提示输入学号

MOVAH,02H

MOVDH,10

MOVDL,28

INT10H

MOVAH,9LEADX,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

.********************************

J

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,28INT10H

MOVAH,9

LEADX,MSGXM

INT21H

MOVAH,0AH

LEADX,MAXLENINT21H

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],ODH

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

・********************************

J

********************************

**************

DELETEPROCNEAR

PUSHAX

PUSHDX;清屏

CALLCLS;提示输入姓名

MOVAH,02H

MOVDH,11

MOVDL,28

INT10H

MOVAH,9

LEADX,MSGA2

INT21H;读入姓名字符串

MOVAH,0AH

LEADX,MAXLEN1

INT21H;提示输入学号

MOVAH,02H

MOVDH,12

MOVDL,28INT10H

MOVAH,9

LEADX,MSGA1

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

JNZDELEND

;比较该记录对应姓名是否与输入的相同

PUSHSI

ADDSI,5

LEADI,STRING1

MOVCX,0

MOVCL,ACTLEN1

MOVDX,0

LCHECK:

MOVAL,[SI]

MOVAH,[DI]

CMPAL,AH

JZLCONTI

MOVDX,1

JMPDELERR

LCONTI:

INCSI

INCDI

LOOPL

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

当前位置:首页 > 法律文书 > 调解书

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

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