您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 汇编语言课程设计-学生成绩管理系统
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;调用inputaddn,1retinsertendp(2).修改输入的成绩。子程序名:modify子程序描述:通过子程序修改学生的成绩代码:modifyprocnear;定义进程子程序:修改学生学号,成绩md1:outputmess1;输出mess1shuru;调用宏shuru:二位数据输入movbl,nmovbh,0moval,dlmovsi,0md:cmpal,xh[si];先查找输入的学生是否存在jeqq1_1;查到的话,就跳转到qq1_1输入修改的值,也就是重新输入。;结果相等则跳转到qq1_1addsi,1cmpsi,bxjbemd;小于等于则跳转到mdoutputmess;输出messjmpmd1;不相等继续输入学号qq1_1:;转入修改的值重新输入。movdi,sioutputmess2outputmess4movsi,0movcx,3qq3_1:shuruu;分别输入语文,英语,数学成绩,并将其放在缓冲区buf中cmpdx,78h;比较输入的成绩是否大于120,如果大于120的话,那么重新输入成绩jbeqq2_1;小于等于则转移到qq2_1outputts3;输出ts3jmpqq1_1;跳转到qq1_1qq2_1:movbuf[si],dloutputbg;输出空格addsi,1loopqq3_1moval,buf[0];将存入buf中的成绩,分别赋值给存放对应科目的成绩的数组movchi[di],almoval,buf[1]moveng[di],almoval,buf[2]movmat[di],alretmodifyendp(3).删除学生的成绩。子程序名:delete子程序描述:通过子程序删除学生的成绩代码:deprocnear;删除某个学生的记录sc1:outputmess1shuru;调用宏shuru,接受输入的学号movbl,nmovbh,0moval,dlmovsi,0sc:cmpal,xh[si];查询输入学号的学生信息是否存在,不存在的话,重新输入学号jesc2;相等则转移到sc2addsi,1cmpsi,bxjbesc;小于等于则转移到scoutputmess;输出messjmpsc1sc2:subbx,sicmpbx,0jesc3;相等则转移到sc3movcx,bxsc4:movdl,chi[si+1]movchi[si],dlmovdl,eng[si+1]moveng[si],dlmovdl,mat[si+1]movmat[si],dlmovdl,xh[si+1]movxh[si],dladdsi,1loopsc4;loop循环指令,执行操作(cx)--(cx)-1.若cx!=0,跳转到标号sc处循环执行;cx=0,则推出循环,执行loop的下一条指令subn,1sc3:retdeendp(3).查询学生的成绩。子程序名:find子程序描述:通过子程序查询学生的成绩代码:findprocnear;定义进程子程序:查找学生成绩callsum;求学生的总成绩callping;求学生的平均成绩bj1:outputmess1;输出mess1shuru;二位数数据输入movbl,nmovbh,0moval,dlmovsi,0bj:cmpal,xh[si];将输入的学号与输入的学号相比,jei;存在的话,将此学生的成绩输出。je表示结果相等则转移。addsi,1cmpsi,bxjbebj;小于等于则转移到bjoutputmessjmpbj1i:outputstrr2shuzixh[si];shuzi为二位数据输出outputbg;输出空格moval,chi[si]cbw;将字节变为字shuziiax;shuzii为三位数据输出。outputbg;输出空格moval,eng[si]cbw;将字节变为字shuziiax;shuzii为三位数据输出outputbgmoval,mat[si]cbwshuziiaxoutputbg;输出空格的字符串,用于与标题栏对齐moval,pj[si]cbwshuziiaxoutputbgmovax,simovbl,2mulblmovbx,axshuziizc[bx];shuzii为三位数据输出outputbg;输出空格的字符串,用于与标题栏对齐shuzimc[si];shuzi为二位数据输出retfindendp(4).显示学生的成绩排名。子程序名:show子程序描述:通过子程序显示学生的成绩排名代码:showprocnear;定义进程子程序:显示结果排名callsum;调用宏sumcallping;调用宏pingcallrank;调用宏rankcallshuchu;调用宏shuchuretshowendp3.2程序运行抓图:主菜单修改学生成绩删除学生成绩显示各个学科各分数段的人数4、程序总结通过两个星期的学习,努力,终于完成了报告。系统可以很好的运行。这两个多星期的时间,几乎每天不是在敲代码,就是在看代码,查书,上网。系统中用到了很多最近才学习的知识,比如宏,子程序。这些都使得代码的运行效率提高了,代码行数减少了。系统还用到了bios的清屏功能。这些功能如果不是做课程设计,我想我很难会接触到这些知识。由于自己对知识掌握的不是很牢固,其中也会碰到一些困难。每当遇到问题的时候,我会先上网去查找,看看有没有人提过这方面的问题。互联网是强大的,大部分的问题通过网络都可以解决。部分找不到的问题,我就去请教班里学得好的同学。他们对知识的掌握远超过我。这样下来,很多问题都迎刃而解了。课程设计是一个很好的掌握书本上知识的过程。平时上课之后,自己都不会想着去敲一些代码联系联系。通过做课程设计,将理论与实践结合了起来,对知识的理解更加深入了。
本文标题:汇编语言课程设计-学生成绩管理系统
链接地址:https://www.777doc.com/doc-4094476 .html