微机原理课程设计_学生成绩管理系统_汇编课程设计|精品课程网站设计|课程设计网报告总结心得
这是一个学生成绩管理系统,其中“I”表示插入,“L”表示浏览,“Q”表示查询,
“E”表示退出,“D”表示删除,“M”表示修改,"c"表示统计各分数段人数,"p"表示打印.
本程序实现了:
(1)单独运行以上各功能,即在进入主菜单以后,点一功能键后关闭,再进入主菜单
点别的功能键。如运行"cjgl"文件后,在出现的主界面中点“I”,可插入数据,插入完
以后,关闭;在出现的主界面中点“M”,可修改数据,修改完以后关闭,用同样的方法
可运行其它的功能。
(2)连续运行部分的功能。
应将文件"score.txt"放在相应的路径下.如在本程序中,需将该文件放在"c:\masm\score.txt"下.
注:该文件的路径可从汇编源文件的"fname db "c:\masm\score.txt"""中查找.
data segment
mess1 db ' student grade management system',0ah,0dh,'$'
mess2 db ' this is main menu',0ah,0dh,'$'
mess3 db ' insert (i) please input:',0ah,0dh,'$'
mess4 db ' modify (m) name :',0ah,0dh,'$'
mess5 db ' delete (d) maths :',0ah,0dh,'$'
mess6 db ' query (q) english :',0ah,0dh,'$'
mess7 db ' count (c) computer:',0ah,0dh,'$'
mess8 db ' print (p) chinese :',0ah,0dh,'$'
mess9 db ' exit (e)',0ah,0dh,'$'
mess10 db '**********************************************************$'
mess11 db 'name Ma En Co Ch',0ah,0dh,'$'
mess13 db ' list (l)',0ah,0dh,'$'
mess12 db 'maths <60 <70 <80 <90 <100',0ah,0dh,'$'
err1 db ' there is not this student$'
err2 db ' file close wrong$'
fname db "e:\hbyy\score.txt"
buffer1 db 23 dup(?)
buffeer db 0ah,0dh,'$'
buffer2 db 30 dup(?)
buffer3 db 8 dup('0')
count db 5
handle dw ?
del db 8 dup('0')
x db ?
data ends
score struc
names db 15 dup(' ')
maths db 0,0
english db 0,0
computer db 0,0
chinese db 0,0
score ends
show macro addrs
lea dx,addrs
mov ah,9
int 21h
endm
set_p1 macro a
mov ah,2
mov dh,a
mov dl,36
mov bh,0
int 10h
endm
set_p2 macro
mov ah,2
mov dh,12
mov dl,2
mov bh,0
int 10h
endm
set_p3 macro
mov ah,2
mov dh,1
mov dl,30
mov bh,0
int 10h
endm
clear macro ;all screen
mov al,0
mov cl,0
mov ch,0
mov dh,24
mov dl,79
mov bh,7
mov ah,6
int 21h
endm
clear1 macro ;lefe screen
mov al,0
mov bh,7
mov ch,4
mov cl,36
mov dh,10
mov dl,79
mov ah,6
int 10h
endm
clear2 macro ;down screen
mov al,0
mov bh,7
mov ch,12
mov cl,0
mov dh,24
mov dl,79
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 ax
endm
show_item macro addrs
local iloop,w10
push bx
push cx
mov bx,0
iloop: mov dl,addrs[bx] ;display char
mov ah,2
int 21h
inc bx
cmp bx,15
jl iloop
mov cx,4
w10: mov dl,' '
mov ah,2
int 21h
mov dl,' '
mov ah,2
int 21h
mov dl,' '
mov ah,2
int 21h
mov dl,addrs[bx]
mov ah,2
int 21h
inc bx
mov dl,addrs[bx]
mov ah,2
int 21h
inc bx
loop w10
newline
pop cx
pop bx
endm