汇编课程设计学生成绩管理_第1页
汇编课程设计学生成绩管理_第2页
汇编课程设计学生成绩管理_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华北科技学院课程设计说明书课程名称: 汇编语言班级:计算机B08-1姓名:徐恒鹏_学号:200807014103设计题目:学生成绩管理设计时间:2010.06.21 至2010.07.02指导教师:李冬艳评语:一、课程设计目的进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计 的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构 和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、课程设计要求1 要求编写并调试通过一个小型软件,实现对软件或硬件的操作。2 遵循模块化、结构化的程序设计方法。3. 要求程序必须正确。4. 程序简明易懂,多运用输入

2、输出提示,出错信息及必要的注释。5. 要求程序结构合理,语句使用得当。6. 适当追求编程技巧和程序运行效率。三、课程设计题目:学生成绩管理四、课题分析学生成绩管理,顾名思义,就是管理学生的成绩,站在使用者的立场上来看,最 基本需求的便是将学生成绩输入,求和并进行排名,当然还有其它更为人性化的 需求,比如顺便得到学生的平均成绩,统计各科各个分数段的人数等等, 甚至为 了保存结果,可以将学生的所有成绩及排名保存在一个文件里面,以便以后调用。所以经过缜密思虑,确定学生成绩管理的一下几个功能:1,数据输入功能。这是必不缺少的功能,学号的输入,成绩的输入都离不了这 个功能,在输入成绩时,特地加了一个判断

3、功能,在输入不合理的成绩时, 程序将提示出错,并要求重新输入。在输入学生学号的时候,程序首先会判 断此学生的成绩是否存在,如果存在,则程序提示需重新输入。2,修改功能。考虑到会存在在输入成绩时,容易输入错误,或者发生个别学生 的试卷被误判需修改成绩等情况,所以加了此功能,在发生以上情况时可以 调用此功能,修改指定学生的成绩。3,删除学生信息的功能。如果输入的学生信息根本不存在,或者发生其它情况 需删除一个无意义的学生信息时,可以调用此功能。此功能将实现将指定学 号学生的信息删除。4,信息查找功能。当需要查询某个学生的成绩或者检查输入是否有误时,可以 调用此功能,此功能实现将指定学号学生的成绩显

4、示出来。实际上在调用此 功能的同时,程序会首先求的总成绩,平均成绩,然后产生排名结果,最后 将数据信息显示。5,显示排名信息功能。此功能会将学生成绩自动相加,得到每位学生的总成绩 及平均成绩,然后进行排名,得到每个学生的名词,最后按照输入顺序将所 有学生的学号,语文成绩,英语成绩,数学成绩,平均成绩,总成绩,名次 依次输出。6,课程成绩分析功能。此功能实现在屏幕上显示三门课程的各个分数段的学生 人数,以表格的形式在屏幕上显示。(分数段为:>=90;8089;7079;6069;<=59 )7,文件写入及退出功能。此功能实现将学生的信息保存在一个文件里。此程序默认将文件放在C盘下,名

5、称为:score,属性为txt格式的文本文档。写入 文件完毕后,关闭文件,并退出程序。(b)子程序Y(c)子程序del流程图(d)子程序find流程图将名次清零将计数数组清零(e)子程序show流程图(f)子程序showw流程图(g)子程序exit流程图六、程序源代码zhuanss macro j,t ;将三位数的数据转换成为三个对应的字符,并将其存入缓 冲区zs中push bxmovsi,tmovaxjmovbl,100div bladd al,30hmovzssi,aladd si,1moval,ahcbwmovbl,10div bladd al,30hadd ah,30hmovzssi,

6、aladd si,1movzssi,ahadd si,1pop bxendm clear MACRO ;清屏MOAH,2MOV)H,0MOV)L,0INT 10HMOAH,6MOAL,0MOV3H,7MOVCH,0MOVCL,0MODH,24MODL,79INT 10HENDMkong macro ;回车换行movah,2movdl,0ahint 21hmovah,2movdl,0dhint 21hendmoutput macro p ;字符串输出movdx, offset pmovah,9int 21hendmshuru macro;二位数数据输入movah,01int 21hsub al,

7、30hcbwmovbl,10mul blmovdl,almovah,01hint 21hsub al,30hadd dl,alendmzhuane macro e,b;将二位数转换成对应两个字符,并将其存入缓冲区zspush bx movsi,b moval,ecbwmovbl,10div bladd ah,30hadd al,30h movzssi,al add si,1 movzssi,ah add si,1 pop bx endmzhuans macro f,s ;将三位数成绩转换成为对应的三个字符,并存入缓冲区 zs中push bxmovsi,s moval,f cbwmovbl,10

8、0div bladd al,30hmovzssi,aladd si,1moval,ahcbwmovbl,10div bladd al,30hadd ah,30hmovzssi,aladd si,1movzssi,ahadd si,1pop bxendmshuzi macro r;二位数据输出moval,rcbwmovbl,10div bl movbl,ah movdl,al add dl, 30h movah,2 int 21h movdl,bl add dl,30h movah,2 int 21hendmshuruu macro;三位数数据输入shurumoval,dl movdl,10 m

9、ul dl movdx,ax movah,1 int 21h sub al,30h cbwadd dx,axendmshuzii macro u;三位数数据输出movax,u movbl,100 div bl movbl,ah mov dl,al add dl,30h movah,2int 21hshuzi blendmDATASSEGMENTm dw0;移动文件指针时,选择绝对移动方式,则仃代表指针偏移量,00h ;建立目录项;文件句柄;输入缓冲区;存放总成绩的数组;存放平均成绩数组 ;存放输入的学生信息的个数zs db 18 dup ( ?);缓冲区用来存放单个学生信息的字符pathnam

10、 db 'C:score.txt'handle dw ?buf db 3 dup(?)zc dw100 dup( ?)pj db 100 dup( ?) n db 0continue!' ,13,10, db 13,10, db 13,10, ,13,10, '$' db 13,10, ,13,10, '$' dbts1ts3agia n!'ts4aga in!'cai'$''You are wrong , Try again!',13,10, '$''The sco

11、re you in put is bigger tha n 127,i nput'The school nu mber you in put is exist,please try* In sert a,13,10, '$'Modify a,13,10, '$'Delete a,13,10, '$' Fi nd a,13,10, '$'*Show the,13,10, '$'*Show the,13,10, '$'Exit with the keyboard ofdata*<i>

12、'cai1db '*data*<m>'cai2db '*data*<d>'cai3db 、*data*vf>'cai4db '*ran k*<s>'cai6db、*coun t*<c>'cai5db'*ESC*<ESC>;13,10, '$'ts2db卩lease choose theFunction',13,10, '$'mess db 13,10, 'The data you in put is n

13、ot exist,i nput again' ,13,10, '$'mess1 db 13,10, 'Please in put the school nu mber',13,10, '$'gs0 db 5 dup (0);记录所查询科目分数段的gs1db 5 dup(0)gs2db 5 dup(0)mcdb 100 dup (1);存放学生的名次的数组chidb 100 dup ( ?);存放学生成绩的数组engdb 100 dup ( ?)matdb 100 dup ( ?)xhdb 100 dup ( ?);存放学生学好的数组cou

14、r0db 'chinese','$'cour1db 'english','$'cour2db 'maths ','$'tsdb 13,10, 'You are successful,press anykey tomess2 db 13,10, 'Please in put three scores(0-120)',13,10, '$'mess4 db 'chinese english maths ',13,10, '$'mess

15、3 db 'Aothor by Xu Heng peng' ,13,10, '$'strr1 DB '*score andrank=:13,10, '$'strr2 DB13,10, 'number chi eng math average sum rank',13,10, '$'strr3 db 13,10, 'course >=90>=80>=70 >=60 <60',13,10, '$'bg db '','$'

16、;DATAS ENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODES5EGMENTASSUMCS:CODES,DS:DATAS,SS:STACKSSTARTMOAX,DATASMODS,AXmoves,axmovah,3ch;请求创建文件movcx,00;默认属性lea dx,pathnam;装入 pathnam的地址int 21hmovhandle,ax ;保存文件句柄main:;主菜单显示output caioutput cai1output cai2output cai3output cai4output cai6output cai5output ts2m

17、ovah,1;输入字符,选择功能键int 21hcmpal, 'i'jne n1call insert;调用insert子程序,输入学生学号,成绩jmp rkn1: cmpal, 'm'jne n2call modifyjmp rkn2: cmpal, 'd'jne n3call dejmp rkn3: cmpal, fjne n4call findjmp rkn4: cmpal, 's'成绩及名次jne n5call showjmp rkn5:cmpal, 'c'jne n6call showwjmp rkn6:

18、 cmpal,1bh程序jne n7call exitn7: clearoutput ts1jmp mai nrk:output tsmovah,1int 21hclearjmp mai n *;调用modify子程序,修改指定学生的成绩;调用de子程序,删除制定学生的成绩;调用find子程序,显示指定学生的成绩及名次;调用show子程序,显示所有学生的各科成绩,平均成绩,总;调用showwF程序,显示各科各分数段的学生数量;调用exit子程序,将数据保存到score.txt文件中,并退出exit proc near;退出movcl, n cbwmovbx,0 movdi,0 zh: push

19、 dipush bxpush cxmovsi,0zhua ne xhbx,si;写入文件的次数;保存di,cx,bx中的内容;调用宏zhuane将两位数的学号转换为对应的二个字符,并存放到ZS缓冲区中zhua ns chibx,si;调用宏Zhuans将二位数的语文成绩转换为对应的二个字符,并存放到ZS缓冲区中Zhua ns en gbx,si;调用宏Zhuans将二位数的央语成绩转换为对应的二个字符,并存放到ZS缓冲区中Zhua ns matbx,si;调用宏Zhuans将二位数的数学成绩转换为对应的二个字符,并存放到ZS缓冲区中Zhua ns pjbx,si;调用宏Zhuans将二位数的平

20、均成绩转换为对应的二个字符,并存放到ZS缓冲区中Zhua nss zcdi,si;调用宏Zhuanss将二位数的总成绩成绩转换为对应的二个字符,并存放到ZS缓冲区中Zhua ne mcbx,si;调用宏Zhuane,将两位数的名词,转换为对应的一个字符,并存放到ZS缓冲区中movah,42h moval,00 movbx,ha ndle movcx,00 movdx,m;移动读写指针;移动方式为绝对移动方式int 21hadd m,20 movah,40h movbx,ha ndle movcx,19 lea dx,zs int 21hpop cxpop bxpop di;调用40h功能,请求

21、写文件;获取文件句柄;写入长度为19个字节;将缓冲区zs中的内容写入文件score.txtadd di,2add bx,1sub cx,1cmpcx,0 jg zhmovbx,ha ndle movah,3eh;判断写入是否完毕;写入完毕,关闭文件int 21hclearoutput mess3 M0AH,4CHINT 21Hret;退出程序exit endp.*sum proc near;求学生的总成绩movcl, nmovch,0movsi,0movbx,0sss: moval,chisi;将三科成绩相加,将总成绩传给数组movah,0movdl,matsimovdh,0add ax,dx

22、movdl,e ngsimovdh,0add ax,dxmovzcbx,axadd bx,2add si,1loop sssretsum endp.*Jping proc near;求学生的平均成绩movcl, ncbwmovsi,0movbx,0p_p:movax,zcbx ;将总成绩除以三,获取的数据传送给数组movdl,3div dlmovpjsi,aladd si,1add bx,2loop p_pretping endp.*Jmodify proc near;修改学生学号,成绩md1:output mess1zcpjshurumovbl, n movbh,0 moval,dl mov

23、si,0md: cmpal,xhsi je qq1_1;先查找输入的学生是否存在;查到的话,就跳转到qq1_1输入修改的值,也就是重新输add si,1cmpsi,bx jbe md output mess jmp md1;不相等继续输入学号qq1_1:movdi,sioutput mess2output mess4movsi,0movcx,3qq3_1:shuruu;分别输入语文,英语,数学成绩,并将其放在缓冲区buf中cmpdx,78h ;比较输入的成绩是否大于120,如果大于120的话,那么重新输 入成绩jbe qq2_1output ts3jmp qq1_1qq2_1: movbufs

24、i,dloutput bgadd si,1 loop qq3_1moval,buf0;将存入buf中的成绩,分别赋值给存放对应科目的成绩的数movchidi,al moval,buf1 move ngdi,al moval,buf2 movmatdi,al ret modify endp.*;统计各科各个分数段学生的个数countt proc n ear movcx,5 movsi,0zl: movgs0si,0add si,1loop zl movcl, n movch,0 movsi,0c11: moval,chisi cmpal,90jl cc1add gs00,1jmp cc8 cc1

25、: cmpal,80jl cc2add gs01,1jmp cc8 cc2: cmpal,70jl cc3 add gs02,1jmp cc8 cc3: cmpal,60jl cc4add gs03,1jmp cc8 cc4: add gs04,1 cc8: add si,1loop c11 lea si,gs0 lea di,gs1 movcx,5cldrep movsb movcx,5 movsi,0cc9: movgs0si,0 add si,1loop cc9 movcl, n movch,0 movsi,0 movcl, n movch,0 movsi,0 c111: moval,e

26、ngsi cmpal,90jl cc15add gsOO,1 jmp cc88 cc15: cmpal,80 jl cc22add gsO1,1 jmp cc88 cc22: cmpal,70jl cc33add gs02,1 jmp cc88 cc33: cmpal,60jl cc44add gs03,1 jmp cc88 cc44: add gs04,1 cc88: add si,1 loop c111lea si,gs0 lea di,gs2 movcx,5 cld rep movsb movcx,5 movsi,0 ct: movgs0si,0add si,1 loop ctmovcl

27、, n movch,0 movsi,0c13: moval,matsi cmpal,90jl cc1_2add gs00,1 jmp cc8_2 cc1_2: cmpal,80jl cc2_2add gs01,1 jmp cc8_2 cc2_2: cmpal,70jl cc3_2add gs02,1 jmp cc8_2 cc3_2: cmpal,60jl cc4_2add gs03,1jmp cc8_2 cc4_2: add gs04,1 cc8_2:add si,1loop c13retcountt endp.*;将输入的学号与输入的学号相比,;存在的话,将此学生的成绩输出find proc

28、 n earcall sumcall ping bj1:output mess1 shuru movbl, n movbh,0 moval,dl movsi,0 bj: cmpal,xhsi je i add si,1 cmpsi,bx jbe bj output mess jmp bj1 i: output strr2 shuzi xhsi output bg moval,chisi cbwshuzii ax output bg moval,e ngsi cbw;查找学生成绩shuzii axoutput bgmoval,matsicbwshuzii axoutput bg;输出空格的字符串

29、,用于与标题栏对齐moval,pjsicbwshuzii axoutput bgmovax,si movbl,2 mul bl movbx,ax shuzii zcbx output bg shuzi mcsi ret find endp *Jinsert proc near;插入学生,学号及成绩call in putadd n,1retin sert endp *Jshow proc near;显示结果排名call sumcall pingcall rankcall shuchuretshow endp *Jshoww proc near ;显示各个学科各分数段的人数call countto

30、utput strr3output cour0output bgshuzi gs10output bgshuzi gs11output bgshuzi gs12output bgshuzi gs13output bgshuzi gs14kongoutput cour1output bgshuzi gs20output bg shuzi gs21 output bg shuzi gs22 output bg shuzi gs23 output bg shuzi gs24 kong output cour2 output bg shuzi gs00 output bg shuzi gs01 out

31、put bg shuzi gs02 output bg shuzi gs03 output bg shuzi gs04 ret showw endp.*;删除某个学生的记录;调用宏shuru,接受输入的学号;查询输入学号的学生信息是否存在,不存在de proc n ear sc1:output mess1 shuru movbl, n movbh,0 moval,dl movsi,0 sc: cmpal,xhsi 的话,重新输入学号 je sc2 add si,1 cmpsi,bx jbe sc output mess jmp sc1 sc2:sub bx,si cmpbx,0 je sc3

32、movcx,bxsc4: movdl,chisi+1movchisi,dlmovdl,e ngsi+1move ngsi,dlmovdl,matsi+1movmatsi,dlmovdl,xhsi+1movxhsi,dladd si,1loop sc4sub n,1sc3: retde endp *Jin put proc near;输入学生学号,成绩e6: output mess1shurumovbl, nmovbh,0movxhbx,dlcmpbx,0;判断是不是第一次输入,如果是,则跳过比较程序je qq1;继续输入成绩movcl,n;如果不是第一次输入则要将输入的学号与以前输入的比较cb

33、wmovsi,0moval,xhbxe7: cmpal,xhsije e5add si,1loop e7jmp qq1e5: output ts4jmp e6qq1:output mess2output mess4movsi,0movcx,3qq3:shuruucmpdx,78h ;比较输入的成绩是否大于120,如果大于120的话,那么重新输 入成绩jbe qq2output ts3jmp qq1qq2: movbufsi,dloutput bg add si,1 loop qq3 movbl, n cbwmoval,buf0 movchibx,al moval,buf1 move ngbx,

34、al moval,buf2 movmatbx,al retin put endp.*Jrank proc near;排名movcl, n movch,0 movsi,0rrc: movmcsi,1 add si,1 loop rrc moval, n movbl,2 mul bl movcl, n movch,0 movsi,0 movbx,0 movdi,0 rrb: movdx,zcdi rra: cmpdx,zcbx jge con ti nue add mcsi,1 con ti nue:add bx,2 loop rra movcl, n cbwadd si,1 add di,2 m

35、ovbx,0 cmpsi,ax jbe rrbretrank endp.*Jshuchu proc near;输出所有学生的学号,成绩,排名output strrloutput strr2movcl, nmovch,0 movsi,0 hh: shuzi xhsi output bg moval,chisi cbw shuzii ax output bg moval,e ngsi cbw shuzii ax output bg moval,matsi cbw shuzii axoutput bg;输出空格的字符串,用于与标题栏对齐moval,pjsicbwshuzii axoutput bgm

36、ovax,simovbl,2mul blmovbx,axshuzii zcbxoutput bgshuzi mcsi;输出名次kong;换行add si,1sub cx,1cmpcx,0jne hhretshuchu endpCODESENDSENDSTART七、结果显示 输入时的显示JIHMWHXItJtME臧員畀恆 I nSEPt axxflotjlif y aNHKEMMKMHKxii w hwDe lete a wxxEwxwxxjEXMw m “FindKUKHHMlffiMlCJEX f Jf£|)C)WWJfKMf 耳 KlCltiOfM;豪 WExil:Please卡

37、Please61PleaseChinese englih naths 丄四You are ouccessfLil,press anvev to cantinue!data 興 xwitKXHKittot舅kw jtxnf i > data 義m >data WJCKKXKHWitKKKMJiKWJtXHtd> da tDKWJtxwwxEjfxjtjCMwxMJCKxtF 犷盘 fi k 春5 C 0 UR tM M MQ右he the with the keyboard of esc*<ESO chouse 右lie Fmnttioninput the school

38、numberinnut three scopes<01205100100KME XK)tK;M:JCM;3(MK)I J( ”容巳严片 吉u <J HU _ _ WJ <J <_> <_1P U U <J 5-1 上 IT1 nrB ,I U I fr1 I fr* n|r4修改时的运行界面Please in put 09The dAtd youjr i-r a-r '- r i-r r _if rj -bj i_r a_r xj lw-r I r_ j_3J' | | | II - _ JHi.貝 貝貝見興貝.且 貝_M.貝貝貝 訂p

39、 J I |_J |ij查找时的运行界面>houtllB tlie(Jat:玄耳><賈鼻1(><豪11哄:蔦崔貝薑豪3<!1(鼻 I (耳七®拮刃KX XX KX 弭X>E X:K*rf PI(1 曰11 gtEH 篁算 3<*<>EHiMa<>E 耳(|(J已t已耳弭KiKJtHMi XiKi<>t料貝耗耗耳耗X芹宅f F呂LU k " X JCKKIt, KKK, KXM:沖箕耳卡成£: COlint XJCKJIltKJtKJtltjCHJCJtJtKHKUG辻 with t

40、he PehoArd of ESC*<EGC> Please choose the Functionthe school nunbepinput is not exist,input aAinthfr school nunbepPlease in putglPlease in putchinese encflisli naths 0?6069078Vou are succesfuli.press anykey to continu.e?tlirec scores<0-120>xKKifK xKxifWH初侏董 i n;电中 t_aKxjt 宵 xmwxh 葺芮kxk|1

41、 od ify 呂nM-MHH KMMKMHMR MK-p in aHbmfNMNWKWNMMK MKKMKMNKMMHHMKhOM 沌xkxnxhwxw疑忸xxExit uith the kejboapd of ESC*<ESC> clioose tlie Functiona tlie thedata* *»*-* 廿熬t a K H JI KEKHX嵐萬腌虻義梵J(:MKm > datad >data hxk KHxxxHHHtcxKXKXHHt F > Fnk* hw xewhkhmxhkw xwj(Fii<s > 住DUH t KKI

42、OIltHKXWXMlKWIIKiCFlfCt; >iPLeaseIPlHAsePlnLimberl?oa ai*e successful,press nkep to continue!input the school nunbevchi098eng酣9mftth0?8uerage sum 081245rank01显示成绩列表dat KXKKJI KKKKKKKHHKKi>成绩分析iMitxxjaKKJcitKiMMixwMzIf ns a rt a m RJ 5 i«J RJ 5 RJ U RJF U 7 <JT "Mr 二 £" Li._i !QFlj*i 1 jr _r_nw 宜丘« 空=« Miuy wan srTT 4 m Jl厚1% _ 直 adg; "I - >5!LPI- Fl IJ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论