汇编语言课程设计学生成绩管理程序.docx
- 文档编号:11602865
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:34
- 大小:264.25KB
汇编语言课程设计学生成绩管理程序.docx
《汇编语言课程设计学生成绩管理程序.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计学生成绩管理程序.docx(34页珍藏版)》请在冰点文库上搜索。
汇编语言课程设计学生成绩管理程序
郑重声明:
本篇文档为从XX文库中下载的经过原文修改后的!
第一章设计课题概述
课程设计目的
当今社会是一个信息时代的社会,计算机的使用也是越来越普遍了,各行业在管理职员都采用了一些管理软件,不管是银行、学校,大大小小的各种企业,都是使用的相应的管理软件管理企业的各种信息,我选择的这个汇编语言课程设计题就是一个简单学生信息管理程序,虽然只能处理一些简单操作,但是其意义却是非凡,同过此课程设计,让我了解了一些简单的管理软件的基本原理,更深刻的理解了汇编语言的特点,对汇编语言有了一个跟深层次的理解。
利用汇编程序编写一个小型学生成绩管理程序,实现学生信息成绩的插入、修改、显示所有学生的各科成绩,并且可根据输入学生姓名插询该生的各科成绩,可统计所有成绩个各分数段的人数。
设计内容及要求
设计一个学生管理程序,主要实现以下功能
(1)各科成绩的录入、修改、和删除。
(2)按姓名查询每个学生哥们成绩。
(3)显示查询结果
(4)统计各分数段的成绩的人数个分数段的人数。
程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。
第二章总体设计
总体设计思路
(1)各科成绩的录入、修改、和删除。
(2)按姓名查询每个学生各科成绩。
(3)显示查询结果
(4)统计各分数段的成绩的人数个分数段的人数。
程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。
各版块功能描述
main主程序模块
用于对各种操作的调用,如插入、删除、显示所有学生的各科成绩等。
Insert子程序插入模块
用于实现对新增学生的插入,插入至学生文本中,使用时需要调用get_rec子程序实现从键盘输入一个学生的信息。
get_rec子程序模块
主要被Insert子程序调用,用于从键盘输入一个学生的信息
query子程序模块
根据学生姓名查询学生的各科成绩,学生姓名由键盘输入,再从文件中一次比较找出要查询学生的信息。
modify子程序模块
首先从键盘输入要修改的学生信息,在从学生文件中寻找要修改的学生姓名,并将要修改后的信息写入文件。
delete子程序模块
由用户输入要修改学生的姓名,从学生文件中找出要删除的学生信息,将该学生的各项信息置为0,实现删除的操作。
list子程序模块
用于显示学生文件中所有学生的各科成绩的信息,每次从文件读取一个学生的信息并显示。
count子程序模块
用于对学生各科成绩的各分数段的统计。
第三章详细设计
程序功能设计
程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。
以上功能单独运行可以实现,(即在进入菜单后选择其中一项功能运行可以成功运行,在关闭后选择另一项功能可以成功运行),但是在整体运行时得不到想要的结果。
所以如果输入有误,按退格键后将会出错,但是此程序没有处理错误的功能,因此再输入时要特别注意。
注:
此程序除了源程序外还需要一个学生文件,该程序命名为,该文件用于存放学生信息,在源程序中程序数据段中fname的值应与文件的存放位置一致。
各模块程序详细流程
Query流程图
Modify流程图
Count流程图
主程序流程图
源代码及注释
datasegment
mess1db'studentgrademanagementsystem',0ah,0dh,'$'
mess2db'thisismainmenu',0ah,0dh,'$'
mess3db'insert(i)name:
',0ah,0dh,'$'
mess4db'modify(m)maths(a):
',0ah,0dh,'$'
mess5db'delete(d)English(b):
',0ah,0dh,'$'
mess6db'query(q)computer(c):
',0ah,0dh,'$'
mess7db'count(c)Chinese(d):
',0ah,0dh,'$’
mess8db'exit(e)’,0ah,0dh,'$'
mess9db'**********************************************************$'
mess10db'**********************************************************$'
mess11db'nameMaEnCoCh',0ah,0dh,'$'
mess13db'list(l)pleaseinput:
',0ah,0dh,'$'''
mess12db'maths<60<70<80<90<100',0ah,0dh,'$'
err1db'thereisnotthisstudent$'
err2db'fileclosewrong$'
fnamedb"e:
\masm5\"
buffer1db23dup()
buffeerdb0ah,0dh,'$'
buffer2db30dup()
buffer3db8dup('0')
countdb5
handledw
deldb8dup('0')
xdb
dataends
showmacroaddrs
leadx,addrs
movah,9
int21h
endm
set_p1macroa
movah,2
movdh,a
movdl,36
movbh,0
int10h
endm
set_p2macro
movah,2
movdh,12
movdl,2
movbh,0
int10h
endm
set_p3macro
movah,2
movdh,1
movdl,30
movbh,0
int10h
endm
clearmacro
moval,0
movcl,0
movch,0
movdh,24
movdl,79
movbh,7
movah,6
int10h
endm
clear1macro
moval,0
movbh,7
movch,4
movcl,36
movdh,10
movdl,79
movah,6
int10h
endm
clear2macro
moval,0
movbh,7
movch,12
movcl,0
movdh,24
movdl,79
movah,7
int10h;
endm
newlinemacro
pushax
pushdx
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
popdx
popax
endm
show_itemmacroaddrs
localiloop,w10
pushbx
pushcx
movbx,0
iloop:
movdl,addrs[bx]
movah,2
int21h
incbx
cmpbx,15
jliloop
movcx,4
w10:
movdl,''
movah,2
int21h
movdl,''
movah,2
int21h
movdl,''
movah,2
int21h
movdl,addrs[bx]
movah,2
int21h
incbx
movdl,addrs[bx]
movah,2
int21h
incbx
loopw10
newline
popcx
popbx
endm
getinmacroaddrs,count2
localzeroit,lp,input_end,exit
pushbx
pushax
movbx,0
zeroit:
movaddrs[bx],''
incbx
cmpbx,15
jlzeroit
movbx,0
lp:
movah,1
int21h
cmpal,0ah
jzinput_end
cmpal,0dh
jzinput_end
movaddrs[bx],al
incbx
cmpbx,count2
jllp
input_end:
cmpal,0dh
jzexit
cmpal,0ah
jzexit
movah,7
int21h
jmpinput_end
exit:
popax
popbx
endm
codesegment
mainprocfar
assumecs:
code,ds:
data,es:
data
start:
movax,data
movds,ax
movah,0
moval,3
int10h
clear
showmess1
showmess2
newline
showmess13
showmess3
showmess4
showmess5
showmess6
showmess7
showmess8
showmess9
showmess10
set_p3
w:
movah,7
int21h
cmpal,'i'
jnzn1
callinsert
jmpw
n1:
cmpal,'m'
jnzn2
callmodify
jmpw
n2:
cmpal,'d'
jnzn3
calldelete
jmpw
n3:
cmpal,'q'
jnzn4
callquery
jmpw
n4:
cmpal,'c'
jnzn6
callcoun
jmpw
n6:
cmpal,'l'
jnzn7
calllist
jmpw
n7:
cmpal,'e'
jzexitf
jmpw
exitf:
movah,4ch
int21h
ret
mainendp
insertprocnear
pushax
pushbx
pushcx
pushdx
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
clear1
set_p14
callget_rec
movcx,0
movdx,0
moval,2
movah,42h
int21h
movcx,23
movdx,offsetbuffer1
movah,40h
int21h
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
insertendp
get_recprocnear
pushax
pushbx
getinbuffer2,15
movbx,0
movcx,15
continue:
moval,buffer2[bx];
movbuffer1[bx],al;
incbx;
loopcontinue
set_p15
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p16
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p17
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p18
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
popbx
popax
ret
get_recendp
queryprocnear
pushax
pushbx
pushcx
pushdx
clear1
clear2
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
set_p2
getinbuffer1,15
b:
movah,3fh
movcx,23
movdx,offsetbuffer2
int21h
cmpax,0
jzs1
leasi,buffer2
leadi,buffer1
movcx,15
c:
moval,byteptr[si]
cmpal,byteptr[di]
jnzb
incsi;当前字符一致则继续比较下一个字符
incdi
loopc
mov[buffer2+23],'$'
leadx,mess11
movah,9;调用DOS的9号功能显示字符串
int21h
show_itembuffer2
jmps2
s1:
set_p2
showerr1
s2:
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
queryendp
modifyprocnear
pushax
pushbx
pushcx
pushdx
clear1
set_p14
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
movhandle,ax
callget_rec
read:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
cmpax,0
jzexit1
leasi,buffer2
leadi,buffer1
movcx,15
c5:
movdl,byteptr[si]
cmpdl,byteptr[di]
jnzread
incsi
incdi
loopc5
movbx,handle
movah,42h
moval,1
movcx,0ffffh
movdx,-23
int21h
movcx,23
movdx,offsetbuffer1
movah,40h
int21h
jmpexit2
exit1:
clear2
set_p2
showerr1
exit2:
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
modifyendp
deleteprocnear
pushax
pushbx
pushcx
pushdx
clear1
set_p14
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
movhandle,ax
getinbuffer1,15
read5:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
cmpax,0
jzexit5
leasi,buffer2
leadi,buffer1
movcx,15
c6:
movdl,byteptr[si]
cmpdl,byteptr[di]
jnzread5
incsi
incdi
loopc6
movbx,handle
movah,42h
moval,1
movcx,0ffffh
movdx,-8
int21h
movcx,8
movdx,offsetdel
movah,40h
int21h
jmpexit6
exit5:
clear2
set_p2
showerr1
exit6:
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
deleteendp
listprocnear
pushax
pushbx
pushcx
pushdx
clear1
clear2
set_p2
showmess11
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
again:
movdx,offsetbuffer1
movcx,23
movah,3fh
int21h
cmpax,0
jzp
show_itembuffer1
jmpagain
p:
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
listendp
counprocnear
pushax
clear2
set_p2
showmess12
movdx,offsetfname
movah,3dh
int21h
movbx,ax
movhandle,ax
movsi,15
mov[buffer3+6],’a’
c3:
callnumber
movcx,0
movdx,0
moval,0
movah,42h
int21h
addsi,2
cmpsi,23
jlc3
movbx,handle“
movah,3eh
int21h
set_p3
popax
ret
counendp
numberproc
pushbx
pushcx
read0:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
cmpax,0
jzc1
movdl,[buffer2+si]
cmpdl,'6'
jlfive
cmpdl,'7'
jlsix
cmpdl,'8'
jlseven
cmpdl,'9'
jleight
inc[buffer3+4]
jmpread0
eight:
inc[buffer3+3]
jmpread0
seven:
inc[buffer3+2]
jmpread0
six:
inc[buffer3+1]
jmpread0
five:
inc[buffer3]
jmpread0
c1:
movcx,8
a:
movdl,''
movah,2
int21h
loopa
movdl,[buffer3+6]
movah,2
int21h
movdl,’:
’
movah,2
int21h
movbx,0
a0:
movdl,[buffer3+bx]
movah,2
int21h
mov[buffer3+bx],'0'
incbx
movcx,4
c2:
movdl,''
movah,2
int21h
loopc2
cmpbx,5
jnza0
newline
popcx
popbx
ret
numberendp
codeends
endstart
第四章调试过程及结果
显示所有成绩
图4-1
插入成绩
图4-2-1
图4-2-2
查询学生成绩
图4-3
删除学生成绩
图4-4-1
图4-4-2
修改学生成绩
图4-5-1
图4-5-2
输出数学成绩
图4-6
第五章总结
通过对这学生成绩管理的的制作,使我对汇编语言的基本知识的使用更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课程设计 学生 成绩 管理程序