学生成绩管理程序.docx
《学生成绩管理程序.docx》由会员分享,可在线阅读,更多相关《学生成绩管理程序.docx(31页珍藏版)》请在冰豆网上搜索。
学生成绩管理程序
软件学院
微机原理课程设计说明书
学生成绩管理程序
作者:
苟鹏
学号:
******
专业:
软件技术
班级:
软件(3)班
指导教师:
***
答辩时间:
2012年7月2日
学生成绩管理程序
学号:
*****410
姓名:
苟鹏
摘要
本系统主要完成对学生成绩的管理,包括添加、修改、删除,等三个方面。
系统可以完成对各类信息的浏览添加、删除、修改等功能。
系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成添加或删除操作时系统会自动地完成学生成绩的修改。
查询功能也是系统的核心之一,在系统中主要根据学生姓名和学号进行查询,其目的都是为了方便用户使用。
前言
随着计算机科学技术的进步和发展,微型计算机的应用已经渗透到各个领域。
微型计算机原理是学习和使用微型计算机的必备基础,是设计和开发各类微机应用系统的关键。
信息在社会和经济的发展中所起的作用越来越为人们所重视。
信息资源的开发和利用,已成为衡量一个国家综合国力的重要标志之一。
在计算机的三大主要领域(科学计算、数据处理与过程控制)中,数据处理的比重约占70%左右。
在计算机高速发展的今天,它已经应用到了各个行业,当然,学校也不例外。
以前学校对学生的成绩是用人管理,而作为计算机应用的一部分,使用计算机对学生成绩进行信息管理,有着手工管理所无法比拟的优点,如:
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校对学生成绩管理的效率。
因此,开发一套学生成绩管理程序是有必要的。
一、微型计算机原理及应用课程设计内容
汇编语言是微型计算机原理及应用的基础,微机主机和接口所要实现的功能都要通过汇编语言来实现。
尽管汇编语言程序设计编程效率低,但其运行效率高、速度快。
因此掌握汇编语言是学好微机原理和接口设计的第一步。
设计一个学生成绩管理程序,实现以下功能:
1)各科成绩的录入、修改和删除;
2)按姓名查询每个学生各门课的成绩;
3)显示查询结果;
4)统计各分数段的人数;
5)打印学生成绩。
二、微型计算机原理及应用课程设计目的
1、学习用汇编实现数据的录入、修改和删除操作;
三、微型计算机原理及应用课程设计的要求
1、学习如何利用汇编语言进行数据处理;
2、查阅文献资料,一般在5篇以上;
3、完成算法设计和程序设计、调试;
4、撰写课程设计说明书;
5、做好答辩工作。
四、微型计算机原理及应用课程设计思路
整个程序采用主程序调用子程序的方法。
主程序完成菜单的显示,子程序完成一个独立功能的方法实现。
五、微型计算机原理及应用课程设计说明
5.1、操作说明
1、该程序除了源程序外,还需要有另外一个文件(在此程序中,该文件的文件名为score.txt),文件内容是通过编译一个专用生成文件的程序得到的。
程序运行与该文件的存放位置有关,即程序数据段中fname的值(“fnamedb”E:
\score.txt”””)应与文件score.txt的存放位置相一致。
如在本程序中,需将该文件放在E:
\下,或者是根据score.txt的存放位置改变程序数据段中fname的值。
2、程序运行是,在出现的主菜单中,按1键后,将浏览学生的各科成绩;按i键后,将执行插入功能,可以插入新的学生成绩;按m键后,将输入需要修改的学生成绩,也包括不修改的科目;按d键输入要删除的学生的名字,将使其成绩全部变为0;按q键输入要查询的学生的姓名,将显示其各科成绩;按c键将显示按数学成绩分段的结果。
5.2、设计流程图
(a)List流程图
(b)Inser流程图
(C)Query流程图
(d)Modify流程图
(e)Count流程图
(f)主程序流程图
六、程序运行调试与结果
完整界面截图:
图1
图2
图3
图4
图5
七、设计体会与小结
通过这次的《微机原理与接口技术》课程设计,使我又学习了很多知识,而且是课堂上不容易学到的知识。
俗话说,“实践出真知”,课堂上学习到的理论知识,如果不转化为实践的话,始终都将是一纸空文,没什么大的价值。
而这次的课设,则给了我把理论转化为实践的机会,使我获益匪浅。
汇编语言与硬件联系比较紧密,通过对汇编程序设计的深刻理解,也在某种程度上帮助我对硬件的驱动与设计有了不少的认识,而且也渐渐能把软件与硬件的结合起来。
《微机原理与接口技术》是一门实用性很高,它不仅涉及到计算机的底层高效语言设计,还跟硬件有着紧密的联系。
而且微型计算机从诞生至今已有30余年,其应用已涉及各个领域。
与此同时,微机原理与接口技术也得到了飞速发展。
掌握微机原理与接口技术是对计算机及自动控制等专业人才的基本要求。
在以后的学习与工作中,我都将不断完善我在这方面的能力。
八、参考文献
[1]宋杰,汪志宏,江敏,微机原理与接口技术课程设计,机械工业出版社,2005.4
[2]周明德,微型计算机系统原理及应用习题集、习题解答与实验指导,清华大学出版社,2005.7
[3]张开成,微型计算机原理,西南师范大学出版社,2006.8
[4]沈美明,温冬婵,IBM-PC汇编语言程序设计第2版,清华大学出版社,2006.5
[5]戴梅萼,史嘉权,微型机原理与技术-习题、实验和综合训练题集,清华大学出版社,2009.4
致谢
感谢指导老师对我们的帮助和引导,指导老师对我们在程序调试过程中出现的问题提出来许多宝贵的更改方案和意见,给我们的编程带来了许多有益的帮助,并且从中我们学到了许多的知识,指导老师带给我们的帮助是我们的程序能够顺利的运行也使我们的程序更人性化、实用化、可靠化。
感谢学校提供良好的环境让我们编程。
感谢同学们的帮助和支持。
源代码
datasegment
mess1db'studentgrademanagementsystem',0ah,0dh,'$'
mess2db'thisismainmenu',0ah,0dh,'$'
mess3db'insert(i)pleaseinput:
',0ah,0dh,'$'
mess4db'modify(m)name:
',0ah,0dh,'$'
mess5db'delete(d)maths:
',0ah,0dh,'$'
mess6db'query(q)english:
',0ah,0dh,'$'
mess7db'count(c)chinese:
',0ah,0dh,'$'
mess8db'exit(e)',0ah,0dh,'$'
mess9db'**********************************************************$'
mess10db'nameMaEnCoCh',0ah,0dh,'$'
mess12db'list(l)',0ah,0dh,'$'
mess11db'maths<60<70<80<90<100',0ah,0dh,'$'
err1db'thereisnotthisstudent$'
err2db'fileclosewrong$'
fnamedb"e:
\score.txt"
buffer1db23dup(?
)
buffeerdb0ah,0dh,'$'
buffer2db30dup(?
)
buffer3db8dup('0')
countdb5
handledw?
deldb8dup('0')
xdb?
dataends
scorestruc
namesdb15dup('')
mathsdb0,0
englishdb0,0
computerdb0,0
chinesedb0,0
scoreends
showmacroaddrs
leadx,addrs
movah,9
int21h
endm
set_p1macroa
movah,2
movdh,a
movdl,36
movbh,0
int10h
endm
set_p2macro
movah,2
movdh,12
movdl,2
movbh,0
int10h
endm
set_p3macro
movah,2
movdh,1
movdl,30
movbh,0
int10h
endm
clearmacro;allscreen
moval,0
movcl,0
movch,0
movdh,24
movdl,79
movbh,7
movah,6
int21h
endm
clear1macro;lefescreen
moval,0
movbh,7
movch,4
movcl,36
movdh,10
movdl,79
movah,6
int10h
endm
clear2macro;downscreen
moval,0
movbh,7
movch,12
movcl,0
movdh,24
movdl,79
int10h
endm
newlinemacro
pushax
pushdx
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
popdx
popax
endm
show_itemmacroaddrs
localiloop,w10
pushbx
pushcx
movbx,0
iloop:
movdl,addrs[bx];displaychar
movah,2
int21h
incbx
cmpbx,15
jliloop
movcx,4
w10:
movdl,''
movah,2
int21h
movdl,''
movah,2
int21h
movdl,''
movah,2
int21h
movdl,addrs[bx]
movah,2
int21h
incbx
movdl,addrs[bx]
movah,2
int21h
incbx
loopw10
newline
popcx
popbx
endm
getinmacroaddrs,count2
localzeroit,lp,input_end,exit
pushbx
pushax
movbx,0
zeroit:
movaddrs[bx],''
incbx
cmpbx,15
jlzeroit
movbx,0
lp:
movah,1
int21h
cmpal,0ah
jzinput_end
cmpal,0dh
jzinput_end
movaddrs[bx],al
incbx
cmpbx,count2
jllp
input_end:
cmpal,0dh
jzexit
cmpal,0ah
jzexit
movah,7
int21h
jmpinput_end
exit:
popax
popbx
endm
codesegment
mainprocfar
assumecs:
code,ds:
data,es:
data
start:
movax,data
movds,ax
movah,0
moval,3
int10h
clear
showmess1
showmess2
showmess12
showmess3
showmess4
showmess5
showmess6
showmess7
showmess8
newline
showmess9
set_p3
w:
movah,7
int21h
cmpal,'i'
jnzn1
callinsert
jmpw
n1:
cmpal,'m'
jnzn2
callmodify
jmpw
n2:
cmpal,'d'
jnzn3
calldelete
jmpw
n3:
cmpal,'q'
jnzn4
callquery
jmpw
n4:
cmpal,'c'
jnzn5
callcot
jmpw
n5:
cmpal,'p'
jnzn6
callprint
jmpw
n6:
cmpal,'l'
jnzn7
calllist
jmpw
n7:
cmpal,'e'
jzexitf
jmpw
exitf:
movah,4ch
int21h
ret
mainendp
insertprocnear
pushax
pushbx
pushcx
pushdx
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
clear1
set_p14
callget_rec
movcx,0;movefilepointertoend
movdx,0
moval,2
movah,42h
int21h
movcx,23;writefile
movdx,offsetbuffer1
movah,40h
int21h
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
insertendp
get_recprocnear
pushax
pushbx
getinbuffer2,15
movbx,0
movcx,15
continue:
moval,buffer2[bx]
movbuffer1[bx],al
incbx
loopcontinue
set_p15
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p16
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p17
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
set_p18
getinbuffer2,2
moval,buffer2
movbuffer1[bx],al
incbx
moval,buffer2+1
movbuffer1[bx],al
incbx
popbx
popax
ret
get_recendp
openfprocnear
movdx,offsetfname
moval,02
movah,3dh
int21h
movhandle,ax
ret
openfendp
queryprocnear
pushax
pushbx
pushcx
pushdx
clear1
clear2
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
set_p2
getinbuffer1,15
leadx,mess10
movah,9
int21h
b:
movah,3fh
movcx,23
movdx,offsetbuffer2
int21h
leasi,buffer2
leadi,buffer1
movcx,15
c:
moval,byteptr[si]
cmpal,byteptr[di]
jnzb
incsi
incdi
loopc
mov[buffer2+23],'$'
show_itembuffer2
movah,3eh
int21h
popdx
popcx
popbx
popax
ret
queryendp
modifyprocnear
pushax
pushbx
pushcx
pushdx
clear1
set_p14
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
movhandle,ax
callget_rec;contactisinbuffer1
read:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
leasi,buffer2
leadi,buffer1
movcx,15
c5:
movdl,byteptr[si]
cmpdl,byteptr[di]
jnzread
incsi
incdi
loopc5
movbx,handle
movah,42h
moval,1
movcx,0ffffh
movdx,-23
int21h
movcx,23
movdx,offsetbuffer1
movah,40h
int21h
movah,3eh
int21h
jmpexit2
exit1:
set_p2
showerr1
exit2:
set_p3
popdx
popcx
popbx
popax
ret
modifyendp
deleteprocnear
pushax
pushbx
pushcx
pushdx
clear1
set_p14
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
movhandle,ax
getinbuffer1,15;contactisinbuffer1
read5:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
leasi,buffer2
leadi,buffer1
movcx,15
c6:
movdl,byteptr[si]
cmpdl,byteptr[di]
jnzread5
incsi
incdi
loopc6
movbx,handle
movah,42h
moval,1
movcx,0ffffh
movdx,-8
int21h
movcx,8
movdx,offsetdel
movah,40h
int21h
movah,3eh
int21h
jmpexit6
exit5:
set_p2
showerr1
exit6:
set_p3
popdx
popcx
popbx
popax
ret
deleteendp
listprocnear
pushax
pushbx
pushcx
pushdx
clear1
clear2
set_p2
showmess10
movdx,offsetfname
moval,2
movah,3dh
int21h
movbx,ax
again:
movdx,offsetbuffer1
movcx,23
movah,3fh
int21h
cmpax,0
jzp
show_itembuffer1
jmpagain
p:
movah,3eh
int21h
set_p3
popdx
popcx
popbx
popax
ret
listendp
printprocnear
pushax
callopenf
movcl,count
movch,0
read2:
movdx,offsetbuffer1
movcx,typescore
movah,3fh
int21h
movcx,23h
movbx,0
next:
movah,5
movdl,byteptrbuffer1[bx]
int21h
incbx
loopnext
movah,5
movdl,0dh
int21h
decx
cmpx,0
jnzread2
movbx,handle
movah,3eh
int21h
popax
ret
printendp
cotproc
pushax
clear2
set_p2
showmess11
movdx,offsetfname
movah,3dh
int21h
movbx,ax
movhandle,ax
read0:
movdx,offsetbuffer2
movcx,23
movah,3fh
int21h
movdl,[buffer2+15]
cmpdl,'6'
jlfive
cmpdl,'7'
jlsix
cmpdl,'8'
jlseven
cmpdl,'9'
jleight
inc[buffer3+4]
jmpquit
eight:
inc[buffer3+3]
jmpquit
seven:
inc[buf