1、-摘 要管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的
2、信息综合管理。计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时代。人们深刻的认识到了计算机功能的强大,对于复杂的信息管理,计算机充分发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。关键字:学生成绩管理,插入,查找,删除,退出,修改;-目 录1. 系统分析 41.1系统开发背景 41.2初步调查与可行性分析 41.3系统目标 41.4系统流程
3、图 .52. 系统总体设计 62.1总体结构图分析 62.2总体结构图 .72.3总体数据结构 73、详细设计 83.1 程序功能设计 .83.2 设计思路 .84、系统测试 94.1测试方案 94.2测试用例及测试结果 94.3软件可靠性 .115、软件使用说明书 126、设计总结 13参考文献 .14致谢 15附录(源代码) .16-1. 系统分析1.1 系统开发背景学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。所以,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本
4、信息、成绩的录入,删除,查询,修改,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。1.2 初步调查与可行性分析可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这步工作的主要是要进行一次大大压缩简化了的系统分析和设计的过程, 也就是 在较高层次上以比较抽象的方式进行系统分析和设计的过程。 可行性研究的最根 本任务是对以后的行动方针提出建议,从而节省人力、时间,按照一个较好的解 决方案来完成设计,并且为工程制定一个初步的计划。(1)技术可行性 本系统采用汇编 DOS 窗口进行数据的管理、操作和维护,进行数据的录入、删除、查询、浏览、修改、统计等功能。由其的数据存储功
5、能、方便快捷的验证功能、使用的灵活、良好的可扩展性、以及广泛实际应用,充分说明本系统在技术方面的可行性。 (2)操作可行性 本系统设计清晰,操作简洁, 并达到操作过程中的直观、 方便、 实用、 安全等要求。1.3 系统目标设计一个学生管理程序,主要实现以下功能(1)各个学生的姓名、性别、ID、成绩的录入、修改、和删除;(2)按 ID 查询每个学生的成绩和信息;(3)显示查询结果;(4)显示所有学生的个人信息和成绩。程序运行时,在出现的主菜单中,按 i 键后,将执行插入功能,可以插入新的学生信息;按 d 键输入要删除的学生姓名;按 q 键输入 ID 查询的学生的信息;按下 e 键将退出程序;按
6、m 键,键输入需要修改的学生成绩;按下 c 键将按成绩分段结果;按下 p 键在电脑有打印的情况下打印程序,途中会出现 r/c 提示,r 表示退出正在进行的操作回到主界面,c 表示继续操作;程序中输入性别(sex) ,须输入 0 或者 1.-1.4 系统流程图图 1.4.1 主程序流程图-2. 系统总体设计2.1 总体结构图分析本系统有插入、删除、查询、修改、显示、统计退出五大模块,各模块的主要功能有:(1) 插入:使用者可在打开程序主界面之后,按“i”键实施插入功能,添加信息主要有 4 项:ID(要求输入四位数字) 、NAME(姓名) 、SEX(性别,男生输入 1,女生输入 0) ,每项输入完
7、成按回车输入下一项,输入完成之后有提示 r/c,r 表示退出正在进行的操作回到主界面,c 表示继续添加。此处可实现程序数据的存储,存储位置“c:/score.txt” ;(2) 删除:打开程序主界面之后,按“d”键实施删除功能,只需输入ID 即可删除该生在系统中的所有信息,此处可实现程序数据的删除;(3) 查询:打开程序主界面之后,按“q”键实施查询功能,此时提示输入信息同删除,此处可实现程序数据的查询;(4) 显示:打开程序主界面之后,按“l”键实施显示功能,即可显示出所有的学生信息,此处可实现程序数据的显示;(5) 修改:打开程序主界面之后,按“m”键实施修改功能,即可显示出所有的学生信息
8、,此处可实现程序数据的显示;(6) 打印:在系统有打印功能的前提下,在主界面中输入“p” ,就可对已有的成绩打印;(7) 退出:在使用完成之后,按“e”即可退出程序,也可以直接点关闭按钮。-2.2 总体结构图图 2.2.1 总体结构图2.3 总体数据结构(1)main 主程序模块用于对各种操作的调用,如插入、删除、显示所有学生的成绩、信息等;(2)Insert 子程序插入模块用于实现对新增学生的插入,插入至学生文本中;(3)query 子程序模块根据学生 ID 查询学生的所有信息,学生 ID 由键盘输入,再从文件中一次比较找出要查询学生的信息;(4)delete 子程序模块由用户输入要删除学生
9、的 ID,从学生文件中找出要删除的学生信息,实现删除的操作。(5)list 子程序模块用于显示学生文件中所有学生的成绩信息,每次从文件读取一个学生的信息并显示。-3、详细设计3.1 程序功能设计程序运行时,在出现的主菜单中,按 l 键,将浏览学生的各科成绩;按i 键后,将执行插入功能,可以插入新的学生信息;按 d 键输入要删除的学生姓名;按 q 键输入 ID 查询的学生的信息;按下 e 键将退出程序;途中会出现r/c 提示,r 表示退出正在进行的操作回到主界面,c 表示继续操作;程序中输入性别(sex) ,须输入 0 或者 1。以上功能单独运行可以实现, (即在进入菜单后 选择其中一项功能运行
10、可以成功运行,在关闭后选择另一项功能可以 成功运行) ,但是在整体运行时得不到想要的结果。注:此程序除了源程序外还需要一个学生文件,该程序命名为score.txt,该文件用于存放学生信息。3.2 设计思路(1)数据定义一个数据元素(一个学生的数据项)应该为一个结构类型,定义如下:ID_LENGTH EQU 4NAM_LENGTH EQU 20 SEX_LENGTH EQU 1 SCORE_LENGTH EQU 5 配置信息: ID4 位数;名字 20 个字符;性别,1 位数(0 或者 1) ;分数 5 位,范围为 0-100(2)方法和步骤这个程序主要分为插入、删除、查询、显示、修改、退出,定
11、义如下:mess3 DB * insert (i) *,0ah,0dh,$ mess4 DB * modify (m) *,0ah,0dh,$mess5 DB * delete (d) *,0ah,0dh,$mess6 DB * query (q) *,0ah,0dh,$mess7 DB * count (c) *,0ah,0dh,$mess8 DB * print (p) *,0ah,0dh,$mess9 DB * exit (e) -*,0ah,0dh,$ 1) 进去之后首先创建一个“.txt”数据库文本,用来储存输入信息,控制文件的打开、关闭、读写、移动等。2) 用空格初始化缓冲区子程序
12、,定义出要在主界面所要显示的内容,显示提示信息,打开文件,按提示进入操作。3) 插入:insert 子程序;删除:delete 子程序;查询:query 子程序;全部显示:list 子程序;修改:modify;打印:print;退出:exit 子程序。-4、系统测试4.1 测试方案(1).asm 的源程序文件建立.exe 的可在电脑上直接运行的文件;(2)打开.exe 文件,按照提示输入,分别测试插入、删除、查询、显示、修改、退出等功能。4.2 测试用例及测试结果(1)主程序截图图 4.2.1 主程序(2)显示所有成绩图 4.2.2 显示全部(3)插入成绩-图 4.2.3 插入成绩(4)修改成
13、绩图 4.2.4 修改成绩(5)删除成绩图 4.2.5 删除成绩-(6)查找成绩图 4.2.6 查找成绩(8) 统计成绩图 4.2.7 统计成绩4.3 软件可靠性(1)分析测试集中的所有测试用例,测试可以通过测试准则。(2)测试代码可以达到相应的测试覆盖率,每一个状态和路径都可以达到相应效果。(3)对测试结果进行分析,所有的安全性需求可得到了满足。-5、软件使用说明书程序运行时,在出现的主菜单中,按 l 键,将浏览学生的各科成绩;按 i键后,将执行插入功能,可以插入新的学生信息;按 d 键输入要删除的学生姓名;按 q 键输入 ID 查询的学生的信息;按下 e 键将退出程序;途中会出现 r/c提
14、示,r 表示退出正在进行的操作回到主界面,c 表示继续操作;程序中输入性别(sex) ,须输入 0 或者 1。以上功能单独运行可以实现, (即在进入菜单后 选择其中一项功能运行可以成功运行,在关闭后选择另一项功能可以 成功运行) ,但是在整体运行时得不到想要的结果。注:此程序除了源程序外还需要一个学生文件,该程序命名为 score.txt,该文件用于存放学生信息。-6、设计总结通过对这学生成绩管理的的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅资料也学到了一些课本上没有的东西,拓宽了自己的知识面
15、,增加了学好汇编语言的信心。 这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。但这次是一个综合的程序,平时的很多程序都用到了。历时两周终于完成,其间有不少感触。在本次的课程设计过程中,我最大的收获就是学到了不少新的知识,同时可以自己学到的汇编语言的知识和以前学的程序设计的知识应用到实践中, 熟悉了开发环境,提高了自己的动手能力, 并顺利地完成了此次的任务.课程设计让我从中得到莫大的信心,鼓励,快乐和成就感.编程过程中,我遇到了一些困难.这我通过上网查询和去图书馆查找资料解决问题,有效地利用网络资源和学校图书资源,同时也了解了更多的知识获取的途径,扩大了自己的知识面.
16、遇到问题时,多数情况下我是自己独立解决的,这锻炼我独立思考问题和独立解决问题的能力;如果自己通过查找资料无法解决,我就向老师和同学寻求帮助,不但学到了新的,更完善解决问题的方法,还学会了与人沟通,与人交流.我认识到有时候,其他人的一点提示,就会令自己茅塞顿开,得到灵感.因此,在作课程设计时,不要吝惜自己的思路和想法,尽可能多的与大家的交流.许多时,我们都能从中得到进步,得到提示,甚至得到更好的方案.同时我也发现了自己的一些问题.本次课程设计,对我帮助很大.它提高了我的理论知识和和实践动手能力;提高了我独立思考问题和解决问题的能力;同时,增强了我与人探讨问题,交流思路的意识;此外,它还让我发现了
17、自己在编程习惯上的许多不足,对以后的编写程序和设计解题思路有很大的启发. 在以后的学习和实践中,我会不断督促自己,不断提高,不断进步-参考文献1范立南,刘天慧 编著SQL Server 2000 实用教程 清华大学出版社2丁宝康 编著 数据库实用教程 清华大学出版社3陈禹,方美琪 编著 软件开发工具 经济科学出版社4黄梯云, 主编管理信息系统高等教育出版社5朱耀庭, 汇编语言程序设计清华大学出版社-致谢在此次课程设计中,我们衷心感谢刘树群老师对我们的细心指导。刘老师指引我们的课程设计的写作的方向和架构,并指正出其中误谬之处,使我们一起努力完成, 刘老师要指导很多同学的论文,加上本来就有的教学任
18、务,工作量之大可想而知,老师的用心良苦。在此,谨向刘老师衷心的感谢! 谢谢刘老师在我们的课程设计过程中给与我们的极大地帮助。同时,课程设计的顺利完成,离不开小组内部成员的互相努力,团结协作。在整个的课程设计写作中,大家互相支持,努力需找问题答案所在。最终顺利完成了这个课程设计。在论文的写作过程中也学到了做任何事情所要有的态度和心态,首先做学问要一丝不苟,对于发展过程中出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就达退堂鼓,只要坚持下去就可以找到思路去解决问题的。而且要学会与人合作,这样做起事情来就可以事半功倍。-附录(源代码)DATA
19、SEGMENTTIPS0 DB Tips:,0DH,0AH,$ ;插入提示信息TIPS1 DB SEX: 1:male 0:female,0DH,0AH,$TIPS3 DB Please input ID:$ ;查询提示信息TIPS4 DB Please enter “r“ to return$TIPS5 DB Please enter “r“ to return,“c“ to continue$ID DB ID: $NAM DB NAME: $SEX DB SEX: $SCORE DB SCORE: $FID DW ? ;文件号SEXM DB male $SEXF DB female $CO
20、UNT_A DB 9 0 100: $ ;统计提示信息COUNT_B DB 8 0 8 9: $COUNT_C DB 7 0 7 9: $COUNT_D DB 6 0 6 9: $COUNT_E DB 0 0 5 9: $AB DB 5 DUP(0) ;统计结果mess1 DB * The Student Grade Management System *,0ah,0dh,$mess2 DB * this is main menu *, 0ah,0dh,$mess3 DB * insert (i) *,0ah,0dh,$ mess4 DB * modify (m) *,0ah,0dh,$mes
21、s5 DB * delete (d) *,0ah,0dh,$mess6 DB * query (q) *,0ah,0dh,$mess7 DB * count (c) *,0ah,0dh,$mess8 DB * print (p) -*,0ah,0dh,$mess9 DB * exit (e) *,0ah,0dh,$ mess10 DB * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $mess13 DB * list (l) *,0ah,0dh,$mess14 DB * please chose(l/i/m/d
22、/q/c/p/e): *,0ah,0dh,$ID_LENGTH EQU 4 ;配置信息NAM_LENGTH EQU 20SEX_LENGTH EQU 1 ;性别请勿更改位数SCORE_LENGTH EQU 5STU_LENGTH DW ? ;每条学生信息总长度STU_LENGTH_ADD1 DW ?NAM_SEX_SCORE_LENGTH DW ?DEL DB 30 DUP ( ) ;清空信息用DEL_DONE DB Delete success !$ERR DB Data error,Please input again!$ ;错误提示信息NOSTU DB Sorry,there is no
23、 this studnet!$ERR_NO DB No student information!$ERR_SAME DB There is the same ID,please input again!$NEWF DB 0DH,0AH,0DH,0AH, Warning: this operation will empty all your data!,0DH,0AH,0DH,0AH, Will you continue? (y:empty,other key:return):$FPATH DB c:score.txt,0 ;数据库文本STR DB 50 ;缓冲区 strDB ?DB 50 DU
24、P (?)STR0 DB 50 DUP (?) ;缓冲区 str0ENTER DB $ ;空格TMP DW 0 ;是否为空标志信息SC DB 0 ;分数保护处用 -BYE DB Thanks for use our program!,0DH,0AH,0DH,0AH, Bye Bye$BY0 DB Writer:$BY1 DB 07212151206 (Gao Tian)$BY2 DB 07212151207 (Yu Chang Ming)$BY3 DB 07212151208 (Yi Bao Fa)$BY4 DB 07212151209 (Dong Jun Zai)$BY5 DB 072121
25、51210 (Luo Chun)$DATA ENDSSET_P1 MACRO ;设定光标位置 AMOV AH,02HMOV DH,02MOV DL,03MOV BH,0INT 10HENDMSET_P3 MACROMOV AH,02H ;设定光标的位置 B MOV DH,15 MOV DL,44MOV BH,0 ;当前这页INT 10HENDMTAB MACRO ;换行MOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21HENDMCREATEF MACRO FILE_ID,FILE_PATH ;创建文件(传入文件号、传入文件路径)MOV AH,3CHMOV CX,
26、00H ;普通文件LEA DX,FILE_PATHINT 21H-MOV FILE_ID,AXENDMOPENF MACRO FILE_ID,FILE_PATH ;打开文件(传入文件号、传入文件路径)MOV AL,2 ;读写文式打开MOV AH,3DHLEA DX,FILE_PATHINT 21HMOV FILE_ID,AXENDMCLOSEF MACRO FILE_ID ;关闭文件(传入文件号)MOV BX,FILE_IDMOV AH,3EHINT 21HENDMREADF MACRO FILE_ID,TEMP,NUM ;读文件(传入文件号、传入缓冲区、传入字节数)MOV BX,FILE_I
27、DLEA DX,TEMPMOV AX,NUMMOV CX,AXMOV AH,3FHINT 21HENDMWRITEF MACRO FILE_ID,TEMP,NUM ;写文件(传入文件号、传入缓冲区、传入字节数)MOV BX,FILE_IDMOV CX,NUMLEA DX,TEMP2MOV AH,40HINT 21HENDMMOVEF MACRO FILE_ID,STYPE,HIGEC,LOWD;移动文件指针(传入文件号、传入移动方式、传入偏移字节(高位)传入偏移字节(低位) )MOV BX,FILE_ID-MOV AH,42HMOV AL,STYPE ;尾+偏移量方式MOV CX,HIGEC
28、;偏移字节(高位)MOV DX,LOWD ;偏移字节(低位)INT 21HENDMINPUT MACRO BUFFER,LENGTH ;输入字符串(传入字符串名、返回字符串长度)MOV AH,10LEA DX,BUFFERINT 21HMOV LENGTH,BUFFER1ENDMSHOW MACRO BUFFER ;显示字符串(传入字符串名)MOV AH,9LEA DX,BUFFERINT 21HENDMSTAK SEGMENT STACKDB 200 DUP (?)STAK ENDS;=; 代码段;=CODE SEGMENTASSUME CS:CODE,DS:DATASHOW_EXIT PR
29、OC NEAR ;提示按 r 退出PUSH AXPUSH BXPUSH CXPUSH DXTAB-TABSHOW TIPS4EXIT_1: MOV AH,7INT 21HCMP AL,rJNZ EXIT_1POP DXPOP CXPOP BXPOP AXRETSHOW_EXIT ENDPSHOW_EC PROC NEAR ;询问退出还是继续PUSH AXPUSH BXPUSH CXPUSH DXTABTABSHOW TIPS5EXIT_2: MOV AH,7INT 21HCMP AL,rJZ EXIT_4CMP AL,cJNZ EXIT_2CALL INSERTEXIT_4: POP DXPO
30、P CXPOP BXPOP AXRETSHOW_EC ENDPSHOW_ERR PROC NEAR ;显示出错信息子程序PUSH AXPUSH BXPUSH CXPUSH DXTAB-TABSHOW ERRTABTABPOP DXPOP CXPOP BXPOP AXRETSHOW_ERR ENDPRE_TMP PROC NEAR ;用空格初始化缓冲区子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV CX,50MOV BX,1RE:INC BXMOV STRBX, LOOP REPOP DXPOP CXPOP BXPOP AXRETRE_TMP ENDPCLEAR PROC
31、NEAR ;清屏PUSH AXPUSH BXPUSH CXPUSH DX MOV AL,0 ;上滚行数MOV CL,0 ;上滚窗口左上角的列号为 0MOV CH,0 ;上滚窗口左上角的行号为 0MOV DH,24 ;上滚窗口右上角的行号为 24MOV DL,79 ;上滚窗口右上角的列号为 79MOV BH,14 ;空白行的属性MOV AH,6 ;入口参数INT 10H-SET_P1POP DXPOP CXPOP BXPOP AXRETCLEAR ENDP SHOW_STU PROC NEAR ;显示学生信息子程序PUSH AXPUSH BXPUSH CXPUSH DXSHOW ID ;IDMO
32、V CX,ID_LENGTHMOV BX,-1SH_ID: INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_IDSHOW ENTERSHOW NAM ;NAMEMOV CX,NAM_LENGTHMOV BX,ID_LENGTHDEC BXSH_NAME:INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_NAMESHOW ENTERSHOW SEX ;SEXMOV BX,ID_LENGTHADD BX,NAM_LENGTHMOV DL,STR0BXCMP DL,1 ; 1 显示 male, 0 显示 femaleJNZ SEX
33、_FSHOW SEXM-JMP NNSEX_F: SHOW SEXFNN:SHOW ENTERSHOW SCORE ;SCOREMOV CX,SCORE_LENGTHMOV BX,ID_LENGTHADD BX,NAM_LENGTHSH_SCORE:INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_SCOREPOP DXPOP CXPOP BXPOP AXRETSHOW_STU ENDPPRINT_STU PROC NEAR ;打印学生信息子程序PUSH AXPUSH BXPUSH CXPUSH DXTABSHOW ID ;IDMOV CX,ID_LENGTH
34、MOV BX,-1P_ID: INC BXMOV DL,STR0BXMOV AH,5INT 21HLOOP P_IDSHOW ENTERSHOW NAM ;NAMEMOV CX,NAM_LENGTHMOV BX,ID_LENGTHDEC BX-P_NAME: INC BXMOV DL,STR0BXMOV AH,5INT 21HLOOP P_NAMESHOW ENTERSHOW SEX ;SEXMOV BX,ID_LENGTHADD BX,NAM_LENGTHMOV DL,STR0BXMOV AH,5INT 21HPNN: SHOW ENTERSHOW SCORE ;SCOREMOV CX,SC
35、ORE_LENGTHMOV BX,ID_LENGTHADD BX,NAM_LENGTHP_SCORE:INC BXMOV DL,STR0BXMOV AH,5INT 21HLOOP P_SCOREPOP DXPOP CXPOP BXPOP AXRETPRINT_STU ENDP;=以下插入(insert)子程序=INSERT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXTABCALL CLEAR ;清屏SHOW TIPS0 ;显示提示信息SHOW TIPS1TAB-TABOPENF FID,FPATH ;打开文件IN_ID: SHOW ID ; 学号INPUT ST
36、R,BL ;向缓冲区输入 IDCMP BL,ID_LENGTH ;看 ID 是否合法JZ L1JNZ ERR_IDERR_SA: ;错误处理TABTABSHOW ERR_SAMETABTABJMP IN_IDERR_ID:TABTABCALL SHOW_ERRTABTABJMP IN_IDL1: ;ID 判断只能为数字MOV CX,ID_LENGTHLEA SI,STR+2LN:MOV AL,BYTE PTRSICMP AL,0JB ERR_IDCMP AL,9JA ERR_ID INC SILOOP LNMOVEF FID,0,0,0 ;指针移到文件首IA:MOVEF FID,1,0,5IB
37、:READF FID,STR0,STU_LENGTH ;读取学生信息CMP AX,0 ;文件是否结束JNZ IL1JMP IC ;没有重复学号,可以插入IL1: LEA SI,STR0-LEA DI,STRINC DIDEC SIMOV CX,ID_LENGTHIL2: INC SIINC DIMOV AL,BYTE PTR DICMP AL,BYTE PTR SIJNZ IA ;不符合条件读取下一个同学信息LOOPZ IL2JMP ERR_SA ;有重复学号IC:MOVEF FID,2,0,5WRITEF FID,STR,ID_LENGTH;数据合法则写入数据TABIN_NAM: SHOW
38、NAM ;姓名CALL RE_TMP ;初始化缓冲区INPUT STR,BLADD BL,2 ;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,NAM_LENGTHJNA L2ERR_NAM:CALL SHOW_ERRJMP IN_NAML2:CMP STR2, ;姓名第一个字符不为空JZ ERR_NAMCMP STR2,zJA ERR_NAMCMP STR2,AJB ERR_NAMCMP STR2,aJNB IIICMP STR2,ZJA ERR_NAM -CMP STR2,AJB ERR_NAMIII: MOV CX,NAM_LENGTHMOV
39、 BX,2II0: INC BXDEC CXCMP STRBX,zJA ERR_NAMCMP STRBX, JB ERR_NAMCMP STRBX,aJNB II0CMP STRBX,ZJA ERR_NAM CMP STRBX,AJNB II0CMP STRBX, JNZ ERR_NAMCMP CX,0JNZ II0WRITEF FID,STR,NAM_LENGTHTABIN_SEX: SHOW SEX ;性别CALL RE_TMPINPUT STR,BLADD BL,2 ;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,SEX_LENGTHJNZ
40、 ERR_SEXMOV BL,STR2CMP BL,1JZ L4CMP BL,0JZ L4-ERR_SEX:CALL SHOW_ERRJMP IN_SEXL4:WRITEF FID,STR,SEX_LENGTHTABIN_SCORE:SHOW SCORECALL RE_TMPINPUT STR,BLMOV SC,BL ;BL 保护ADD BL,2 ;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,SCORE_LENGTH ;分数最多 4 位JB L5ERR_SCORE:CALL SHOW_ERRJMP IN_SCOREL5:MOV CX,BX ;分
41、数只能是数字和.MOV BX,2L6:CMP STRBX,0JNB L7 ;=0CMP STRBX,.JNZ ERR_SCOREJZ L8L7:CMP STRBX,9 ;=9JA ERR_SCOREINC BXLOOP L6L8:MOV BL,SCCMP BL,4 ;分数(0100),支持一位小数JNZ L9CMP STR4,.JNZ ERR_SCOREJMP LWL9:CMP BL,3-JNZ L10CMP STR3,.JZ LWCMP STR2,1JNZ ERR_SCORECMP STR3,0JNZ ERR_SCORECMP STR4,0JNZ ERR_SCOREJMP LWL10: CM
42、P BL,2JNZ L11CMP STR2,.JZ ERR_SCOREJMP LWL11: CMP STR2,.JZ ERR_SCORELW:WRITEF FID,STR,SCORE_LENGTHTABCLOSEF FID ;关闭文件CALL SHOW_ECPOP DXPOP CXPOP BXPOP AXRETINSERT ENDP;=以下是查询(query)子程序=QUERY PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL CLEAROPENF FID,FPATH ;打开文件IN_ID1: SHOW TIPS3 ;显示提示信息INPUT STR,BL ;向缓冲区 STR 输入 IDCMP BL,ID_LENGTH ;看 ID 是否合法JZ QL1