学生成绩管理系统汇编语言_第1页
学生成绩管理系统汇编语言_第2页
学生成绩管理系统汇编语言_第3页
学生成绩管理系统汇编语言_第4页
学生成绩管理系统汇编语言_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理 系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现 实问题的迫切要求。本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达 到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便, 可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、 相对集中的、职

2、能化的信息综合管理。计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时 代。人们深刻的认识到了计算机功能的强大, 对于复杂的信息管理,计算机充分 发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿 命长、成本低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高 了学生档案管理的效率和准确性, 能够合理的安排时间,学生能够尽快的知道自 己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力 有所提高。关键字:学生成绩管理,插入,查找,删除,退出,修改;1. 系统分析 31.1 系统开发背景 31.2 初步调查与可行性分析 31.3 系统目

3、标 31.4 系统流程图 42. 系统总体设计 52.1 总体结构图分析 52.2 总体结构图 62.3 总体数据结构 63、详细设计 73.1 程序功能设计 73.2 设计思路 74、系统测试 94.1 测试方案 94.2 测试用例及测试结果 94.3 软件可靠性115、软件使用说明书 126、设计总结13参考文献 14致谢 15附录(源代码) 161. 系统分析1.1 系统开发背景学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分, 它的内容对于学校的决策者和管理者来说都至关重要。 所以, 学生成绩管理管理系统为用户提供充足的信息和快捷的查

4、询手段,实现学生基本信息、成绩的录入,删除,查询,修改,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。1.2 初步调查与可行性分析可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这步工作的主要是要进行一次大大压缩简化了的系统分析和设计的过程, 也就是 在较高层次上以比较抽象的方式进行系统分析和设计的过程。 可行性研究的最根 本任务是对以后的行动方针提出建议,从而节省人力、时间,按照一个较好的解 决方案来完成设计,并且为工程制定一个初步的计划。( 1)技术可行性本系统采用汇编 DOS 窗口进行数据的管理、操作和维护,进行数据的录入、 删除、 查询、 浏览、 修改、

5、 统计等功能。 由其的数据存储功能、方便快捷的验证功能、使用的灵活、良好的可扩展性、以及广泛实际应用,充分说明本系统在技术方面的可行性。( 2) 操作可行性本系统设计清晰, 操作简洁, 并达到操作过程中的直观、 方便、 实用、 安全等要求。1.3 系统目标设计一个学生管理程序,主要实现以下功能( 1)各个学生的姓名、性别、 ID 、成绩的录入、修改、和删除;( 2)按ID 查询每个学生的成绩和信息;( 3)显示查询结果;( 4)显示所有学生的个人信息和成绩。程序运行时,在出现的主菜单中,按i 键后,将执行插入功能,可以插入新的学生信息;按d 键输入要删除的学生姓名;按q 键输入 ID 查询的学

6、生的信息;按下e键将退出程序;按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,

7、女生输入0) ,每项输入完成按回车输入下一项,输入完成之后有提示r/c , r 表示退出正在进行的操作回到主界面, c 表示继续添加。此处可实现程序数据的存储,存储位置“c:/score.txt ” ;( 2) 删除:打开程序主界面之后,按“ d”键实施删除功能,只需输入ID即可删除该生在系统中的所有信息,此处可实现程序数据的删除;( 3) 查询:打开程序主界面之后,按“q ”键实施查询功能,此时提示输入信息同删除,此处可实现程序数据的查询;( 4) 显示:打开程序主界面之后,按“l ”键实施显示功能,即可显示出所有的学生信息,此处可实现程序数据的显示;( 5) 修改:打开程序主界面之后,按“

8、 m键实施修改功能,即可显示出所有的学生信息,此处可实现程序数据的显示;( 6) 打印:在系统有打印功能的前提下,在主界面中输入“ p” ,就可对 已有的成绩打印;( 7) 退出:在使用完成之后,按“ e”即可退出程序,也可以直接点关闭按钮。图2.2.1总体结构图2.3总体数据结构(1) main主程序模块用于对各种操作的调用,如插入、删除、显示所有学生的成绩、信息等;(2) Insert子程序插入模块用于实现对新增学生的插入,插入至学生文本中;(3) query子程序模块根据学生ID查询学生的所有信息,学生ID由键盘输入,再从文件中一次比 较找出要查询学生的信息;(4) delete子程序模

9、块由用户输入要删除学生的ID,从学生文件中找出要删除的学生信息, 实现删 除的操作。(5) list子程序模块用于显示学生文件中所有学生的成绩信息,每次从文件读取一个学生的信息 并显小03、详细设计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 20SEX_LENGTH EQU 1SCORE_LENGTH EQU 5配置信息: ID4 位数;名字20个字符;性别 ,1 位数( 0或者 1) ;分数 5位,范围为 0-100( 2)方法和步骤这个程序主

11、要分为插入、删除、查询、显示、修改、退出,定义如下:mess3DB '*insert(i)*',0ah,0dh,'$'mess4DB '*modify(m)*',0ah,0dh,'$'mess5DB '*delete(d)*',0ah,0dh,'$'mess6DB '*query(q)*',0ah,0dh,'$'mess7DB '*count(c)*',0ah,0dh,'$'mess8DB '*print(p)*',0a

12、h,0dh,'$'mess9DB '*exit(e)*',0ah,0dh,'$'1) 进去之后首先创建一个“.txt 数据库文本,用来储存输入信息,控制文件”的打开、关闭、读写、移动等。2) 用空格初始化缓冲区子程序,定义出要在主界面所要显示的内容,显示提示信息,打开文件,按提示进入操作。3)插入:insert子程序;删除:delete子程序;查询:query子程序;全部显 示:list子程序;修改:modify;打印:print;退出:exit子程序。4、系统测试4.1 测试方案(1) .asm的源程序文件建立.exe的可在电脑上直接运行的文件

13、;(2)打开.exe文件,按照提示输入,分别测试插入、删除、查询、显示、修 改、退出等功能。4.2 测试用例及测试结果(1)主程序截图AOsersAD MlN-1Deiktop3 3 SDOS.exe XXKXK亶置XKXKthis is 1 15t1 ns e rt modify deletequery count pri nt exit please * *The Student Grade main menu (1) (i) (m) (d) (q) (c) < p > (e)cho5e( 1 / i /nri/d /q/c/p /e)X X X X XManagementXX

14、XSystemi图4.2.2显示全部图4.2.1主程序(2)显示所有成绩D:D:D:D:D:D:D:D:D:D: mln limn3744159645359314861125921476331411136611EEEEEEEEEE AAAAAAAAAA NN N NNNNNNMx1acmingxxmiaehenggou1i rong111qmeloieU>q rwqeirquJ! rq 皿 ewqevyq vnihaozaljlannl nXXXXXXXXXX EE-EEEEEEEE SSSSSSSSSSmale f einale femialef ennale male maleSCO

15、RE SCORE SCORE SCORE SCORE SCORE SCORE SCORE SCORE SCORE(3)插入成绩1:malg 0:femaleDEXE IMER Aso N cAl>sersAD MlN-1D«ktop3 3 JDOS.exe广" to return p ,hc" to co nt Inue图4.2.3插入成绩(4)修改成绩5C AUsersXADMINI-1 Deslrtop3 3 JDOS.e«ePlease 1nput ID:1111ID: 1111NAME: 111SEX: maleSCORE: 89NAME:

16、 liming SEX: 0SCORE: 99Pleas a enter "r" to return, ,bc'd t o cent 1 nue_图4.2.4修改成绩(5)删除成绩9C AsersAD MINI-1 Desktop3 3 DOS.exePlease 1nput ID:1111ID: 1111NAME: 1iwingSEX: femaleSCORE: 99图4.2.5删除成绩Pleaie tnter ""to return, ,bc" to continue(6)查找成绩55CiUsersADMlNl-1 Desktop3

17、 3 DOSeMePlease 1nput ID:1234ID: 1234 NAME: UrcnsSEX: naUSCORE: 78Please enter "r'F to return, "c1' to conf 1 nue_图4.2.6查找成绩(8)统计成绩16300 0-t09991910 0 r 18765 «二二 i r e00000 t _n98760 e图4.2.7统计成绩4.3软件可靠性(1)分析测试集中的所有测试用例,测试可以通过测试准则。(2)测试代码可以达到相应的测试覆盖率,每一个状态和路径都可以达到相 应效果。(3)对测试结

18、果进行分析,所有的安全性需求可得到了满足。5、软件使用说明书程序运行时,在出现的主菜单中,按l 键,将浏览学生的各科成绩;按i 键后,将执行插入功能,可以插入新的学生信息;按d 键输入要删除的学生姓名;按 q 键输入 ID 查询的学生的信息; 按下 e 键将退出程序; 途中会出现r/c 提示,r 表示退出正在进行的操作回到主界面, c 表示继续操作; 程序中输入性别 ( sex ) , 须输入 0 或者 1。以上功能单独运行可以实现, (即在进入菜单后 选择其中一项功能运行可以成功运行, 在关闭后选择另一项功能可以 成功运行) , 但是在整体运行时得不到 想要的结果。注 : 此程序除了源程序外

19、还需要一个学生文件,该程序命名为 score.txt ,该文件用于存放学生信息。6、设计总结通过对这学生成绩管理的的制作, 使我对汇编语言的基本知识的使用更加熟练, 同时也增加了我对汇编语言的一些认识, 在作业完成过程中通过和同学的交流,也增加了合作的技巧。 通过查阅资料也学到了一些课本上没有的东西, 拓宽了自己的知识面,增加了学好汇编语言的信心。 这不是第一次用汇编语言来设计一个小程序, 平时做了很多实验, 写了很多小程序。 但这次是一个综合的程序,平时的很多程序都用到了。历时两周终于完成,其间有不少感触。在本次的课程设计过程中,我最大的收获就是学到了不少新的知识,同时可以自 己学到的汇编语

20、言的知识和以前学的程序设计的知识应用到实践中 , 熟悉了开发环境 ,提高了自己的动手能力 , 并顺利地完成了此次的任务.课程设计让我从中得到莫大的信心,鼓励 ,快乐和成就感.编程过程中,我遇到了一些困难.这我通过上网查询和去图书馆查找资料解决问题,有效地利用网络资源和学校图书资源,同时也了解了更多的知识获取的途径, 扩大了自己的知识面. 遇到问题时, 多数情况下我是自己独立解决的 , 这锻炼我独立思考问题和独立解决问题的能力 ; 如果自己通过查找资料无法解决, 我就向老师和同学寻求帮助 , 不但学到了新的 , 更完善解决问题的方法, 还学会了与人沟通, 与人交流 . 我认识到有时候 , 其他人

21、的一点提示 , 就会令自己茅塞顿开, 得到灵感 . 因此 , 在作课程设计时, 不要吝惜自己的思路和想法, 尽可能多的与大家的交流. 许多时 , 我们都能从中得到进步, 得到提示,甚至得到更好的方案. 同时我也发现了自己的一些问题 .本次课程设计, 对我帮助很大 . 它提高了我的理论知识和和实践动手能力 ; 提高了我独立思考问题和解决问题的能力 ; 同时 , 增强了我与人探讨问题 , 交流思路的意识 ; 此外 , 它还让我发现了自己在编程习惯上的许多不足 , 对以后的编写程序和设计解题思路有很大的启发 . 在以后的学习和实践中 , 我会不断督促自己 , 不断提高 , 不断进步参考文献1 范立南

22、,刘天慧 编著 SQL Server 2000 实用教程 清华大学出版社2 丁宝康 编著 数据库实用教程 清华大学出版社3 陈禹,方美琪编著 软件开发工具 经济科学出版社4 黄梯云, 主编管理信息系统高等教育出版社5 朱耀庭, 汇编语言程序设计清华大学出版社致谢在此次课程设计中,我们衷心感谢刘树群老师对我们的细心指导。 刘老师指 引我们的课程设计的写作的方向和架构, 并指正出其中误谬之处,使我们一起努 力完成,刘老师要指导很多同学的论文,加上本来就有的教学任务,工作量之 大可想而知,老师的用心良苦。在此,谨向刘老师衷心的感谢!谢谢刘老师在我们的课程设计过程中给与我们的极大地帮助。同时,课程设计

23、的顺利完成,离不开小组内部成员的互相努力,团结协作。在整个的课程设计写作中,大家互相支持, 努力需找问题答案所在。最终顺利完 成了这个课程设计。在论文的写作过程中也学到了做任何事情所要有的态度和心 态,首先做学问要一丝不苟,对于发展过程中出现的任何问题和偏差都不要轻视, 要通过正确的途径去解决,在做事情的过程中要有耐心和毅力, 不要一遇到困难 就达退堂鼓,只要坚持下去就可以找到思路去解决问题的。 而且要学会与人合作, 这样做起事情来就可以事半功倍。附录(源代码)DATA SEGMENTTIPS0 DB 'Tips:',0DH,0AH,'$' 插入提示信息TIPS

24、1 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 ' SE

25、X: $'SCORE DB 'SCORE: $'FID DW ?; 文件号SEXM DB 'male $' 统计提示信息SEXF DB 'female $'AB DB 5 DUP('0'); 统计结果mess1 DB '*TheStudent Grade ManagementSystem*',0ah,0dh,'$'mess2DB '*this is mainmenu*', 0ah,0dh,'$' mess3 *',0ah,0dh,'$'

26、DB '*insert(i)mess4DB '*modify(m)*',0ah,0dh,'$' mess5*',0ah,0dh,'$'DB '*delete(d)mess6DB '*query(q)*',0ah,0dh,'$' mess7DB '*count(c)*',0ah,0dh,'$' mess8DB '*print(p)9 0 100: $'8 0 8 9: $'7 0 7 9: $'6 0 6 9: $'0 0

27、 5 9: $'COUNT_A DB ' COUNT_B DB ' COUNT_C DB ' COUNT_D DB ' COUNTE DB '*',0ah,0dh,'$'mess9 DBexit(e)*',0ah,0dh,'$' mess10 DB* * * * * * * * $'mess13 DB '*list(l)*',0ah,0dh,'$'mess14 DB '*please chose(l/i/m/d/q/c/p/e):*',0ah,

28、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!$' 错误提示信息NO

29、STU DB ' Sorry,there is no this studnet!$'ERR_NO DB ' No student information!$'ERR_SAME DB ' There is the same ID,please input again!$'NEWFDB0DH,0AH,0DH,0AH,' Warning: this operation will empty all your data!',0DH,0AH,0DH,0AH,'Will you continue? (y:empty,otherkey:

30、return):$'FPATH DB 'c:score.txt',0 ; 数据库文本STR DB 50; 缓冲区 strDB ?DB 50 DUP (?)STR0 DB 50 DUP (?); 缓冲区 str0ENTER DB ' $' 空格TMP DW 0;是否为空标志信息SC DB 0; 分数保护处用BYE DB 'Thanks forprogram!',0DH,0AH,0DH,0AH,'Bye Bye$'BY0 DB 'Writer:$'BY1 DB '07212151206 (Gao Tia

31、n)$'BY2 DB '07212151207 (Yu Chang Ming)$'BY3 DB '07212151208 (Yi Bao Fa)$'BY4 DB '07212151209 (Dong Jun Zai)$'BY5 DB '07212151210 (Luo Chun)$'DATA ENDSuse ourSET_P1 MACRO MOV AH,02H MOV DH,02 MOV DL,03MOV BH,0 INT 10H ENDMSET_P3 MACRO MOV AH,02H MOV DH,15 MOV DL,4

32、4MOV BH,0 INT 10H ENDM; 设定光标位置A; 设定光标的位置B; 当前这页TAB MACROMOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21HENDM; 换行CREATEF MACRO FILE_ID,FILE_PATH ; 创建文件 ( 传入 文件号、 路径)MOV AH,3CHMOV CX,00H ; 普通文件LEA DX,FILE_PATHINT 21H 传入 文件MOV FILE_ID,AX ENDMOPENF MACRO FILE_ID,FILE_PATH ; 打开文件 ( 传入 文件号、 传入 文件 路径)MOV AL,2; 读

33、写文式打开MOV AH,3DHLEA DX,FILE_PATHINT 21HMOV FILE_ID,AX ENDMCLOSEF MACRO FILE_ID; 关闭文件( 传入 文件号)MOV BX,FILE_IDMOV AH,3EHINT 21HENDMREADF MACRO FILE_ID,TEMP,NUM ; 读文件 (传入 文件号、 传入 缓冲区、 传入 字节数)MOV BX,FILE_IDLEA DX,TEMPMOV AX,NUMMOV CX,AXMOV AH,3FHINT 21HENDMWRITEF MACRO FILE_ID,TEMP,NUM ; 写文件 (传入 文件号、 传入 缓

34、冲区、 传入 字节数)MOV BX,FILE_IDMOV CX,NUMLEA DX,TEMP2MOV AH,40HINT 21HENDMMOVEF MACRO FILE_ID,STYPE,HIGEC,LO;WJ文件指针(传入文件号、传 入 移动方式、 传入 偏移字节(高位) 传入 偏移字节(低位) )MOV BX,FILE_IDMOV AH,42HMOV AL,STYPE MOV CX,HIGEC MOV DX,LOWD INT 21H;尾+偏移量方式;偏移字节(高位);偏移字节(低位)ENDMINPUT MACRO BUFFERLENGTH ;输入字符串(传入字符串名、返回字 符串长度)MO

35、V 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 PROC NEAR ;提示按 r 退出PUSH AXPUSH BXPUSH CXPUSH DXTABTABSHOW TIPS4EXIT_1:MOV AH,7INT 21HCMP AL,'r&#

36、39;JNZ EXIT_1POP DXPOP CXPOP BXPOP AXRETSHOW_EXIT ENDPSHOW_EC PROC NEAR; 询问退出还是继续PUSH AXPUSH BXPUSH CXPUSH DXTABTABSHOW TIPS5EXIT_2:MOV AH,7INT 21HCMP AL,'r'JZ EXIT_4CMP AL,'c'JNZ EXIT_2CALL INSERTEXIT_4:POP DXPOP CXPOP BXPOP AXRETSHOW_EC ENDPSHOW_ERR PROC NEAR ; 显示出错信息子程序PUSH AXPUSH

37、 BXPUSH CXPUSH DXTABTABSHOW 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 NEAR ; 清屏PUSH AXPUSH BXPUSH CXPUSH DXMOV AL,0;MOV CL,0;MOV C

38、H,0MOV DH,24MOV DL,79MOV BH,14MOV AH,6;INT 10H上滚行数上滚窗口左上角的列号为0上滚窗口左上角的行号为0上滚窗口右上角的行号为24上滚窗口右上角的列号为79空白行的属性入口参数SET_P1 POP DX POP CX POP BX POP AX RETCLEAR ENDPSHOW_STU PROC NEAR ; 显示学生信息子程序PUSH AXPUSH BXPUSH CXPUSH DXSHOW ID;IDMOV CX,ID_LENGTHMOV BX,-1SH_ID: INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_

39、IDSHOW ENTERSHOW NAM ;NAME MOV CX,NAM_LENGTH MOV BX,ID_LENGTH DEC BXSH_NAME:INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_NAMESHOW ENTERSHOW SEX ;SEX MOV BX,ID_LENGTH ADD BX,NAM_LENGTH MOV DL,STR0BXCMP DL,'1' 1 显示 male, 0 显示 femaleJNZ SEX_FSHOW SEXMJMP NNSEX_F: SHOW SEXFNN: SHOW ENTERSHOW SCORE

40、;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_LENGTHMOV BX,-1P_ID: INC BXMOV DL,STR0BXMOV AH,5INT 21HLOOP P_ID

41、SHOW ENTERSHOW NAM ;NAMEMOV CX,NAM_LENGTHMOV BX,ID_LENGTHDEC BXP_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,SCORE_LENGTHMOV BX,ID_LENGTHADD BX,NAM_LENGTHP_SCORE:INC BXMO

42、V 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 TIPS1TABTABOPENF FID,FPATH; 打开文件IN_ID: SHOW ID; 学号INPUT STR,BL ; 向缓冲区输入IDCMP BL,ID_LENGTH; 看 ID 是否合法JZ L1JNZ ERR_ID

43、ERR_SA:; 错误处理TABTABSHOW ERR_SAMETABTABJMP IN_IDERR_ID:TABTABCALL SHOW_ERRTABTABJMP IN_IDII: ;ID 判断只能为数字MOV CX,ID_LENGTHLEA SI,STR+2LN: MOV AL,BYTE PTRSICMP AL,'0'JB ERR_IDCMP AL,'9'JA ERR_IDINC SILOOP LNMOVEF FID,0,0,0; 指针移到文件首IA:MOVEF FID,1,0,5IB: READF FID,STR0,STU_LENGTH; 读取学生信息CM

44、P AX,0; 文件是否结束JNZ IL1JMP IC; 没有重复学号,可以插入IL1:LEA SI,STR0LEA 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_LENGT瞰据合法贝U写入数据TABIN_NAM: SHOW NAM ;姓名CALL RE_TMP ;初始化缓冲区INPUT STR,BL

45、ADD 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,'z'JA ERR_NAMCMP STR2,'A'JB ERR_NAMCMP STR2,'a'JNB IIICMP STR2,'Z'JA ERR_NAMCMP STR2,'A'JB ERR

46、NAMIII: MOV CX,NAM_LENGTHMOV BX,2II0:INC BXDEC CXCMP STRBX,'z'JA ERR_NAMCMP STRBX,' 'JB ERR_NAMCMP STRBX,'a'JNB II0CMP STRBX,'Z'JA ERR_NAMCMP STRBX,'A'JNB II0CMP STRBX,' 'JNZ ERR_NAMCMP CX,0JNZ II0WRITEF FID,STR,NAM_LENGTHTABIN_SEX:SHOW SEX ; 性别CALL RE

47、_TMPINPUT STR,BLADD BL,2 ; 去掉回车MOV BH,0MOV SI,BXMOV STRSI,' 'SUB BL,2CMP BL,SEX_LENGTHJNZ ERR_SEXMOV BL,STR2CMP BL,'1'JZ L4CMP BL,'0'JZ L4ERR_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

48、BH,0MOV SI,BXMOV STRSI,' 'SUB BL,2CMP BL,SCORE_LENGTH ; 分数最多 4 位JB L5ERR_SCORE:CALL SHOW_ERRJMP IN_SCOREL5: MOV CX,BX; 分数只能是数字和 .MOV BX,2L6: CMP STRBX,'0'JNB L7;>=0CMP STRBX,'.'JNZ ERR_SCOREJZ L8L7: CMP STRBX,'9'<=9JA ERR_SCOREINC BXLOOP L6L8: MOV BL,SCCMP BL,4

49、; 分数 (0100), 支持一位小数JNZ L9CMP STR4,'.'JNZ ERR_SCOREJMP LWL9: CMP BL,3JNZ L10CMP STR3,'.'JZ LWCMP STR2,'1'JNZ ERR_SCORECMP STR3,'0'JNZ ERR_SCORECMP STR4,'0'JNZ ERR_SCOREJMP LWL10:CMP BL,2JNZ L11CMP STR2,'.'JZ ERR_SCOREJMP LWL11:CMP STR2,'.'JZ ERR

50、_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,FPATHIN_ID1:SHOW TIPS3INPUT STR,BLCMP BL,ID_LENGTHJZ QL1; 打开文件; 显示提示信息;向缓冲区STR输入ID; 看 ID 是否合法QERR_ID:; 错误处理CALL

51、 SHOW_ERRJMP IN_ID1A: MOVEF FID,1,0,5B: READF FID,STR0,STU_LENGTH; 读取学生信息CMP AX,0; 文件是否结束JNZ QL1QL3: TABTAB ; 文件结束,没有该学生信息SHOW NOSTUJMP CQL1: LEA SI,STR0LEA DI,STRINC DIDEC SIMOV CX,ID_LENGTHQL2: INC SIINC DIMOV AL,BYTE PTR DICMP AL,BYTE PTR SIJNZ A; 不符合条件读取下一个同学信息LOOPZ QL2TABTAB ; 符合条件显示CALL SHOW_S

52、TUJMP CC: CLOSEF FIDTABTABSHOW TIPS5 ; 询问退出还是继续Q_2: MOV AH,7INT 21HCMP AL,'r'JZ Q_4CMP AL,'c'JNZ Q_2CALL QUERYQ_4: POP DXPOP CXPOP BXPOP AXRETQUERY ENDP;=以下是浏览(list) 子程序 =LIST PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL CLEARMOV AX,0MOV TMP,AX ; 是否为空标志清0OPENF FID,FPATH; 打开文件TABD: MOVEF

53、 FID,1,0,5E: READF FID,STR0,STU_LENGTH; 读取学生信息CMP AX,0; 是否到文件尾JNZ GCMP TMP,0; 判断有没有信息JNZ FTABTABTABSHOW ERR_NOJMP FG: MOV CX,ID_LENGTH ;ID 为空不显示MOV BX,0DEC BXNULL: INC BXCMP STR0BX,' 'JZ DLOOP NULLCALL SHOW_STU; 有信息为空标志自加INC TMPTABJMP DF: CLOSEF FIDCALL SHOW_EXITPOP DXPOP CXPOP BXPOP AXRETLIST ENDP=以下是删除(delete) 子程序 =DELETE PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL CLEAR; 打开文件显示提示信息;向缓冲区STR输入ID; 看 ID 是否合法OPENF FID,FPATHD0: SHOW TIPS3 ;INPUT STR,BLCMP BL,ID_LENGTHJZ D2CALL SHOW_ERRJMP D0D2:

温馨提示

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

评论

0/150

提交评论