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

下载本文档

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

文档简介

1、郑重声明:本篇文档为从百度文库中下载的经过原文修改后的!目 录第一章 设计课题概述21.1 课程设计目的21.2设计内容及要求2第二章 总体设计32.1 总体设计思路32.2 各版块功能描述3第三章 详细设计53.1 程序功能设计53.2各模块程序详细流程53.3 源代码及注释8第四章 调试过程及结果324.1 显示所有成绩324.2 插入成绩324.3 查询学生成绩334.4 删除学生成绩344.5 修改学生成绩354.6输出数学成绩36第五章 总结37参考资料38第一章 设计课题概述1.1 课程设计目的当今社会是一个信息时代的社会,计算机的使用也是越来越普遍了,各行业在管理职员都采用了一些

2、管理软件,不管是银行、学校,大大小小的各种企业,都是使用的相应的 管理软件管理企业的各种信息,我选择的这个汇编语言课程设计题就是一个简单学生信息管理程序,虽然只能处理一些简单操作,但是其意义却是非凡,同过此课程设计,让我了解了一些简单的管理软件的基本原理,更深刻的理解了汇编语言的特点,对汇编语言有了一个跟深层次的理解。利用汇编程序编写一个小型学生成绩管理程序,实现学生信息成绩的插入、修改、显示所有学生的各科成绩,并且可根据输入学生姓名插询该生的各科成绩,可统计所有成绩个各分数段的人数。1.2设计内容及要求设计一个学生管理程序,主要实现以下功能(1)各科成绩的录入、修改、和删除。(2)按姓名查询

3、每个学生哥们成绩。(3)显示查询结果(4)统计各分数段的成绩的人数个分数段的人数。程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入 查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。第二章 总体设计2.1 总体设计思路(1)各科成绩的录入、修改、和删除。(2)按姓名查询每个学生各科成绩。(3)显示查询结果(4)统计各分数段的成绩的人数个分数段的人数。程序运行时,在出现的主菜单中,按l键,将浏览学生的各科

4、成绩;按i键后将执行插入功能,可以插入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入 查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。2.2 各版块功能描述main主程序模块用于对各种操作的调用,如插入、删除、显示所有学生的各科成绩等。Insert子程序插入模块用于实现对新增学生的插入,插入至学生文本中,使用时需要调用get_rec子程序实现从键盘输入一个学生的信息。get_rec子程序模块 主要被Insert子程序调用,用于从键盘输入一个学生的信息query子程序模块根据学生姓名查询学生的

5、各科成绩,学生姓名由键盘输入,再从文件中一次比较找出要查询学生的信息。modify子程序模块 首先从键盘输入要修改的学生信息,在从学生文件中寻找要修改的学生姓名,并将要修改后的信息写入文件。delete子程序模块由用户输入要修改学生的姓名,从学生文件中找出要删除的学生信息,将该学生的各项信息置为0,实现删除的操作。list子程序模块 用于显示学生文件中所有学生的各科成绩的信息,每次从文件读取一个学生的信息并显示。count子程序模块用于对学生各科成绩的各分数段的统计。第三章 详细设计3.1 程序功能设计程序运行时,在出现的主菜单中,按l键,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插

6、入新的学生成绩,按m键,键输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生姓名,将使其成绩全部变成0;按q键输入 查询的学生的姓名,将其各科成绩显示出来;按下c键将按数学成绩分段结果。 以上功能单独运行可以实现,(即在进入菜单后 选择其中一项功能运行可以成功运行,在关闭后选择另一项功能可以 成功运行),但是在整体运行时得不到想要的结果。所以如果输入有误,按退格键后将会出错,但是此程序没有处理错误的功能,因此再输入时要特别注意。注:此程序除了源程序外还需要一个学生文件,该程序命名为score.txt,该文件用于存放学生信息,在源程序中程序数据段中fname的值应与文件的存放位置

7、一致。3.2各模块程序详细流程显示错误信息显示记录文件读错?读一个记录打开文件NY返回关闭文件记录写入文件从终端接收用户输入记录置文件指针到文件末尾打开文件关闭文件返回 Query流程图Modify流程图Count流程图主程序流程图3.3 源代码及注释data segmentmess1 db student grade management system,0ah,0dh,$mess2 db this is main menu,0ah,0dh,$mess3 db insert (i) name :,0ah,0dh,$mess4 db modify (m) maths(a) :,0ah,0dh,$

8、mess5 db delete (d) English(b) :,0ah,0dh,$mess6 db query (q) computer(c) :,0ah,0dh,$mess7 db count (c) Chinese(d) :,0ah,0dh,$mess8 db exit (e),0ah,0dh,$mess9 db *$mess10 db *$mess11 db name Ma En Co Ch,0ah,0dh,$mess13 db list (l) please input:,0ah,0dh,$ mess12 db maths 60 70 80 90 100,0ah,0dh,$err1

9、db there is not this student$err2 db file close wrong$fname db e:masm5score.txtbuffer1 db 23 dup(?)buffeer db 0ah,0dh,$buffer2 db 30 dup(?)buffer3 db 8 dup(0)count db 5handle dw ?del db 8 dup(0)x db ?data endsshow macro addrs lea dx,addrs mov ah,9 int 21hendmset_p1 macro amov ah,2 mov dh,a mov dl,36

10、mov bh,0 int 10hendmset_p2 macro mov ah,2 mov dh,12 mov dl,2 mov bh,0 int 10hendmset_p3 macro mov ah,2 mov dh,1 mov dl,30 mov bh,0 int 10h endmclear macro mov al,0 mov cl,0 mov ch,0 mov dh,24 mov dl,79 mov bh,7 mov ah,6 int 10h endmclear1 macro mov al,0 mov bh,7 mov ch,4 mov cl,36 mov dh,10 mov dl,7

11、9 mov ah,6 int 10hendmclear2 macro mov al,0 mov bh,7 mov ch,12 mov cl,0 mov dh,24 mov dl,79 mov ah,7 int 10h; endm newline macro push ax push dx mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop dx pop axendm show_item macro addrs local iloop,w10 push bx push cx mov bx,0iloop: mov dl,addrs

12、bx mov ah,2 int 21h inc bx cmp bx,15 jl iloop mov cx,4w10: mov dl, mov ah,2 int 21h mov dl, mov ah,2 int 21h mov dl, mov ah,2 int 21h mov dl,addrsbx mov ah,2 int 21h inc bx mov dl,addrsbx mov ah,2 int 21h inc bx loop w10 newline pop cx pop bxendm getin macro addrs,count2 local zeroit,lp,input_end,ex

13、it push bx push ax mov bx,0zeroit: mov addrsbx, inc bx cmp bx,15 jl zeroit mov bx,0lp: mov ah,1 int 21h cmp al,0ah jz input_end cmp al,0dh jz input_end mov addrsbx,al inc bx cmp bx,count2 jl lpinput_end: cmp al,0dh jz exit cmp al,0ah jz exit mov ah,7 int 21h jmp input_endexit: pop ax pop bxendmcode

14、segmentmain proc far assume cs:code,ds:data,es:datastart: mov ax,data mov ds,ax mov ah,0 mov al,3 int 10h clear show mess1 show mess2newline show mess13 show mess3 show mess4 show mess5 show mess6 show mess7 show mess8 show mess9 show mess10 set_p3 w: mov ah,7 int 21h cmp al,i jnz n1 call insert jmp

15、 wn1: cmp al,m jnz n2 call modify jmp wn2: cmp al,d jnz n3 call delete jmp wn3: cmp al,q jnz n4 call query jmp wn4: cmp al,c jnz n6 call coun jmp wn6: cmp al,l jnz n7 call list jmp wn7: cmp al,e jz exitf jmp wexitf: mov ah,4ch int 21h ret main endpinsert proc near push ax push bx push cx push dx mov

16、 dx,offset fname mov al,2 mov ah,3dh int 21h mov bx,ax clear1 set_p1 4 call get_rec mov cx,0 mov dx,0 mov al,2 mov ah,42h int 21h mov cx,23 mov dx,offset buffer1 mov ah,40h int 21h mov ah,3eh int 21h set_p3 pop dx pop cx pop bx pop ax retinsert endpget_rec proc near push ax push bx getin buffer2,15

17、mov bx,0 mov cx,15continue: mov al,buffer2bx; mov buffer1bx,al ; inc bx ; loop continue set_p1 5 getin buffer2,2 mov al,buffer2 mov buffer1bx,al inc bx mov al,buffer2+1 mov buffer1bx,al inc bx set_p1 6 getin buffer2,2 mov al,buffer2 mov buffer1bx,al inc bx mov al,buffer2+1 mov buffer1bx,al inc bx se

18、t_p1 7 getin buffer2,2 mov al,buffer2 mov buffer1bx,al inc bx mov al,buffer2+1 mov buffer1bx,al inc bx set_p1 8 getin buffer2,2 mov al,buffer2 mov buffer1bx,al inc bx mov al,buffer2+1 mov buffer1bx,al inc bx pop bx pop ax retget_rec endpquery proc near push ax push bx push cx push dx clear1 clear2 m

19、ov dx,offset fname mov al,2 mov ah,3dh int 21h mov bx,ax set_p2 getin buffer1,15 b: mov ah,3fh mov cx,23 mov dx,offset buffer2 int 21h cmp ax,0 jz s1 lea si,buffer2 lea di,buffer1 mov cx,15 c: mov al,byte ptrsi cmp al,byte ptrdi jnz b inc si ;当前字符一致则继续比较下一个字符 inc di loop c mov buffer2+23,$ lea dx,me

20、ss11 mov ah,9 ;调用DOS的9号功能显示字符串 int 21h show_item buffer2 jmp s2 s1: set_p2 show err1 s2: mov ah,3eh int 21h set_p3 pop dx pop cx pop bx pop ax retquery endpmodify proc near push ax push bx push cx push dx clear1 set_p1 4 mov dx,offset fname mov al,2 mov ah,3dh int 21h mov bx,ax mov handle,ax call ge

21、t_rec read: mov dx,offset buffer2 mov cx,23 mov ah,3fh int 21h cmp ax,0 jz exit1 lea si,buffer2 lea di,buffer1 mov cx,15c5: mov dl,byte ptrsi cmp dl,byte ptrdi jnz read inc si inc di loop c5 mov bx,handle mov ah,42h mov al,1 mov cx,0ffffh mov dx,-23 int 21h mov cx,23 mov dx,offset buffer1 mov ah,40h

22、 int 21h jmp exit2exit1: clear2 set_p2 show err1 exit2:mov ah,3eh int 21h set_p3 pop dx pop cx pop bx pop ax retmodify endpdelete proc near push ax push bx push cx push dx clear1 set_p1 4 mov dx,offset fname mov al,2 mov ah,3dh int 21h mov bx,ax mov handle,ax getin buffer1,15 read5: mov dx,offset bu

23、ffer2 mov cx,23 mov ah,3fh int 21h cmp ax,0 jz exit5 lea si,buffer2 lea di,buffer1 mov cx,15 c6: mov dl,byte ptrsi cmp dl,byte ptrdi jnz read5 inc si inc di loop c6 mov bx,handle mov ah,42h mov al,1 mov cx,0ffffh mov dx,-8 int 21h mov cx,8 mov dx,offset del mov ah,40h int 21h jmp exit6exit5: clear2

24、set_p2 show err1 exit6: mov ah,3eh int 21h set_p3 pop dx pop cx pop bx pop ax retdelete endplist proc near push ax push bx push cx push dx clear1 clear2 set_p2 show mess11 mov dx,offset fname mov al,2 mov ah,3dh int 21h mov bx,axagain: mov dx,offset buffer1 mov cx,23 mov ah,3fh int 21h cmp ax,0 jz p

25、 show_item buffer1 jmp againp: mov ah,3eh int 21h set_p3 pop dx pop cx pop bx pop ax retlist endpcoun proc near push ax clear2 set_p2 show mess12 mov dx,offset fname mov ah,3dh int 21h mov bx,ax mov handle,ax mov si,15 mov buffer3+6,a c3:call number mov cx,0 mov dx,0 mov al,0 mov ah,42h int 21h add

26、si,2 cmp si,23 jl c3 mov bx,handle “ mov ah,3eh int 21h set_p3 pop ax retcoun endpnumber proc push bx push cx read0: mov dx,offset buffer2 mov cx,23 mov ah,3fh int 21h cmp ax,0 jz c1 mov dl,buffer2+si cmp dl,6 jl five cmp dl,7 jl six cmp dl,8 jl seven cmp dl,9 jl eight inc buffer3+4 jmp read0eight:

27、inc buffer3+3 jmp read0seven: inc buffer3+2 jmp read0six: inc buffer3+1 jmp read0five: inc buffer3 jmp read0 c1: mov cx,8 a: mov dl, mov ah,2 int 21h loop a mov dl,buffer3+6 mov ah,2 int 21h mov dl,: mov ah,2 int 21h mov bx,0 a0: mov dl,buffer3+bx mov ah,2 int 21h mov buffer3+bx,0 inc bx mov cx,4 c2: mov dl, mov ah,2 int 21h loop c2 cmp bx,5 jnz a0 newline pop cx pop bx ret number endpcode ends end start第四章 调试过程及结果4.1 显示所有成绩图 4-14.2 插入成绩图 4-2-1图 4-2-24.3 查询学生成绩图 4-34.4 删除学生成绩图 4-4-1图 4-4-24.5 修改学生成绩图 4-5-1图 4-5-24.6输出数学成绩图 4-6第五章 总结

温馨提示

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

评论

0/150

提交评论