资源描述:
《学生成绩管理学生成绩管理学生成绩管理成绩管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、集美大学《汇编语言程序设计》课程设计题目:学生成绩管理专业:计算机科学与技术学号:2010810072姓名:罗忠霖2010-2011学年第二学期一.设计目的汇编语言课程设计是对所学课程内容全面、系统的总结、巩固利提高的一项课程实践活动。根据汇编语言的特点,选择相应的题目,在老师的指导下,由学牛独立完成。课程设计要求同学们熟悉汇编语言的编程,BIOS中断调用、系统功能调用、磁盘数据的查询、存取筹相关知识。通过课程设计,一方面提高运用汇编语言编程解决实际问题的能力,另一方面使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。二.设计内容学
2、生成绩管理功能描述:创建成绩管理档案文件(若已存在则直接使用该文件),它包含学号10位,英语3位、高数3位、体育3位,语文3位、物理3位、及它们的平均成绩3位等七项内容。试编写一管理程序,要求系统显示如下菜单,按键后执行相应的操作。(1)L命令:列出文件屮的所有人的记录,每人一行(2)I命令:在文件末尾插入一个人的记录,但不允许学号重复(3)D命令:根据学号删除指定的纪录。(4)0命令:根据某课程进行排序,并将查询结果(学号、成绩)显示在屏幕上(5)Q命令:退出管理系统三.程序设计原理本次课程设计主要是在对文件进行操作的基础上,开辟存储空I'可保存文件的数据,在程序
3、执行过程中,通过対缓存区进行添加、查询、删除、排序,并在最后将缓存区的数据保存到文件,从而实现对文件的间接管理。具体步骤如下:1•根据数据段存储的文件的ASCIZ申打开文件,未成功的话则新建文件;2.显示界面,根据用户键入确定偏移值,进而找到数据段内存放的跳转指令;2」编写LIST子程序:调用子程序RD_WJ读取文件数据,调用子程序DISP显示缓存区数据;2.2编写RD_WJ:通过移动文件指针,每次读取一组,再移动指针,重复至读収完,保存记录个数;2.3编写DISP:通过指针的移动,先显示学号,再计算成绩的ASC值而厉显示,通过记录个数控制循环显示的行数;2.4编写
4、INPUT:移动缓存区指针至空的一行,通过循环读取一组字符形成字符串,遇到空格时形成学号,此时通过与另一个指向缓存区开头的指针进行比较,若学号重复则返冋,不重复则同样通过循环读取一组字符,然后减去30H,保存为成绩,使用空格来分隔输入,遇到回车时结束输入;2.5编写DEL:通过记录的个数控制循环,匹配欲删除的学号串时,保存指针,并设另一个指针指向欲删除的记录的后一个,通过从后面往前传送记录,达到删除H标记录的效果,最后记录数减一;2.6编写ORD:读取用户键入的选项1〜6,将其作为偏移量,即用2个指针指向相邻的2条记录,用指针加偏移量来获取成绩并比较,交换时通过将一
5、•行的长度作为循环的次数,循环XCHG,并在外部设置2个循环实现冒泡排序;2.7编写WT_F:每次写入一行,将记录个数作为循环次数。四.程序流程图五.源程序.MODELSMALL.DATANEQUNUMEQULENEQUDATBUFDBCNTEQUFNAMEDBRECNUMDBRECSDWFCODEDWCRLFDBSTRODBDBSTR2DBSTR3DBSTR4DBSTR5DBSTR6DBSTR7DBDBSTR8DBDBSTR9DBDBSTR10DBSTRIIDBSTR12DBERRODBILLDBORDER_TABDWREGIDWREG2DWOUTPUTMACRO
6、LEAMOVINTENDM6;人数6;学号长度NUM+6;一行的长度NDUP(LENDUP(?));存储数据的缓存区$-DATBUF•c:stu.txf;文件的ASCIZ串15DUP(?);要删除的学号?;有效记录数?;文件代号0AH,0DH,$0AH,0DH:L:LISTI:INSERTD:DELETEO:ORDERQ:QUIT',10,131',10,13,'$'0AH,0DH,'-InputtheNumandScore:',10,13,$*-Thefileisempty!-;10,13:$'0AH,0DH,'-EntertheNum:',10,13,'$''
7、……NOTFOUND!——',10,13,'$''EnterNumandScore:',10,13,'$'•NUMENMASPCHPHAE',10,13;输出界面1',10,13,$•NUMENMASPCHPH;10,13;输入界面'’,10,13,'$'*1:EN2:MA3:SP4:CH5:PH6:AE',1(),13'Enteranumberbetween1and6:',10,13,'$'•====Finish!====',10,13;$*0AH,0DH,'Overflow!Tryagain:1,10,13;$r0AH,0DH;Numoverload!*,1