汇编语言课程设计学生成绩管理系统.docx
- 文档编号:29499371
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:13
- 大小:193.49KB
汇编语言课程设计学生成绩管理系统.docx
《汇编语言课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计学生成绩管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
汇编语言课程设计学生成绩管理系统
1、课程设计的目的、任务
《汇编语言》课程设计对于巩固汇编语言理论知识,加强学生的实际动手能力和提高学生综合素质十分必要。
课程设计的目的主要是通过程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
2、软件需求分析和设计
2.1学生成绩管理系统是对学生成绩的管理,其中包括以下几个模块:
(1).插入一个数据(插入学生学号以及语数外三个成绩)。
(2)修改一个数据。
(3)删除学生成绩数据。
(4)查找学生成绩。
(5)查看学生成绩的排名
(6)查看学生成绩分布
(7)按esc键退出系统
2.2学生成绩管理系统应该包含以下信息:
学号,语文成绩,英语成绩,数学成绩。
因此,系统应该提供以下功能:
(1)输出显示菜单。
(2)输入学生的成绩
(3)修改学生成绩
(4)删除学生成绩
(5)查询学生成绩
(6)显示学生成绩排名
(7)显示成绩分布统计
(8)按esc键退出系统
2.3依据程序的功能需求,该系统的功能结构图如下
系统功能结构图
2.4程序流程图:
主程序流程图查找学生成绩
插入学生学号及成绩修改学生的成绩
显示各个学科各分数段的人数
3、程序实现说明
3.1学生管理系统中各子程序如下:
(1).输入全部学生学号以及语文,英语,数学三科的成绩。
子程序名:
insert
子程序描述:
该子程序为输入字程序。
系统在开始的时候是没有数据的,通过该子程序可以初始化系统,将学生的学号及成绩输入系统。
代码:
insertprocnear;定义进程子程序:
插入学生,学号及
成绩
callinput;调用input
addn,1
ret
insertendp
(2).修改输入的成绩。
子程序名:
modify
子程序描述:
通过子程序修改学生的成绩
代码:
modifyprocnear;定义进程子程序:
修改学生学号,成绩
md1:
outputmess1;输出mess1
shuru;调用宏shuru:
二位数据输入
movbl,n
movbh,0
moval,dl
movsi,0
md:
cmpal,xh[si];先查找输入的学生是否存在
jeqq1_1;查到的话,就跳转到qq1_1输入修改的值,
也就是重新输入。
;结果相等则跳转到qq1_1
addsi,1
cmpsi,bx
jbemd;小于等于则跳转到md
outputmess;输出mess
jmpmd1;不相等继续输入学号
qq1_1:
;转入修改的值重新输入。
movdi,si
outputmess2
outputmess4
movsi,0
movcx,3
qq3_1:
shuruu;分别输入语文,英语,数学成绩,并将其放
在缓冲区buf中
cmpdx,78h;比较输入的成绩是否大于120,如果大于120的
话,那么重新输入成绩
jbeqq2_1;小于等于则转移到qq2_1
outputts3;输出ts3
jmpqq1_1;跳转到qq1_1
qq2_1:
movbuf[si],dl
outputbg;输出空格
addsi,1
loopqq3_1
moval,buf[0];将存入buf中的成绩,分别赋值给存放对应科
目的成绩的数组
movchi[di],al
moval,buf[1]
moveng[di],al
moval,buf[2]
movmat[di],al
ret
modifyendp
(3).删除学生的成绩。
子程序名:
delete
子程序描述:
通过子程序删除学生的成绩
代码:
deprocnear;删除某个学生的记录
sc1:
outputmess1
shuru;调用宏shuru,接受输入的学号
movbl,n
movbh,0
moval,dl
movsi,0
sc:
cmpal,xh[si];查询输入学号的学生信息是否存在,不存在的
话,重新输入学号
jesc2;相等则转移到sc2
addsi,1
cmpsi,bx
jbesc;小于等于则转移到sc
outputmess;输出mess
jmpsc1
sc2:
subbx,si
cmpbx,0
jesc3;相等则转移到sc3
movcx,bx
sc4:
movdl,chi[si+1]
movchi[si],dl
movdl,eng[si+1]
moveng[si],dl
movdl,mat[si+1]
movmat[si],dl
movdl,xh[si+1]
movxh[si],dl
addsi,1
loopsc4;loop循环指令,执行操作(cx)<--(cx)-1.若
cx!
=0,跳转到标号sc处循环执行;cx=0,则推出
循环,执行loop的下一条指令
subn,1
sc3:
ret
deendp
(3).查询学生的成绩。
子程序名:
find
子程序描述:
通过子程序查询学生的成绩
代码:
findprocnear;定义进程子程序:
查找学生成绩
callsum;求学生的总成绩
callping;求学生的平均成绩
bj1:
outputmess1;输出mess1
shuru;二位数数据输入
movbl,n
movbh,0
moval,dl
movsi,0
bj:
cmpal,xh[si];将输入的学号与输入的学号相比,
jei;存在的话,将此学生的成绩输出。
je表示结果相
等则转移。
addsi,1
cmpsi,bx
jbebj;小于等于则转移到bj
outputmess
jmpbj1
i:
outputstrr2
shuzixh[si];shuzi为二位数据输出
outputbg;输出空格
moval,chi[si]
cbw;将字节变为字
shuziiax;shuzii为三位数据输出。
outputbg;输出空格
moval,eng[si]
cbw;将字节变为字
shuziiax;shuzii为三位数据输出
outputbg
moval,mat[si]
cbw
shuziiax
outputbg;输出空格的字符串,用于与标题栏对齐
moval,pj[si]
cbw
shuziiax
outputbg
movax,si
movbl,2
mulbl
movbx,ax
shuziizc[bx];shuzii为三位数据输出
outputbg;输出空格的字符串,用于与标题栏对齐
shuzimc[si];shuzi为二位数据输出
ret
findendp
(4).显示学生的成绩排名。
子程序名:
show
子程序描述:
通过子程序显示学生的成绩排名
代码:
showprocnear;定义进程子程序:
显示结果排名
callsum;调用宏sum
callping;调用宏ping
callrank;调用宏rank
callshuchu;调用宏shuchu
ret
showendp
3.2程序运行抓图:
主菜单修改学生成绩
删除学生成绩显示各个学科各分数段的人数
4、程序总结
通过两个星期的学习,努力,终于完成了报告。
系统可以很好的运行。
这两个多星期的时间,几乎每天不是在敲代码,就是在看代码,查书,上网。
系统中用到了很多最近才学习的知识,比如宏,子程序。
这些都使得代码的运行效率提高了,代码行数减少了。
系统还用到了bios的清屏功能。
这些功能如果不是做课程设计,我想我很难会接触到这些知识。
由于自己对知识掌握的不是很牢固,其中也会碰到一些困难。
每当遇到问题的时候,我会先上网去查找,看看有没有人提过这方面的问题。
互联网是强大的,大部分的问题通过网络都可以解决。
部分找不到的问题,我就去请教班里学得好的同学。
他们对知识的掌握远超过我。
这样下来,很多问题都迎刃而解了。
课程设计是一个很好的掌握书本上知识的过程。
平时上课之后,自己都不会想着去敲一些代码联系联系。
通过做课程设计,将理论与实践结合了起来,对知识的理解更加深入了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课程设计 学生 成绩管理系统