学生成绩管理系统

上传人:bei****lei 文档编号:149505806 上传时间:2022-09-07 格式:DOC 页数:43 大小:302.21KB
收藏 版权申诉 举报 下载
学生成绩管理系统_第1页
第1页 / 共43页
学生成绩管理系统_第2页
第2页 / 共43页
学生成绩管理系统_第3页
第3页 / 共43页
资源描述:

《学生成绩管理系统》由会员分享,可在线阅读,更多相关《学生成绩管理系统(43页珍藏版)》请在装配图网上搜索。

1、武汉理工大学微机原理与接口技术课程设计说明书学 号: 课 程 设 计题 目学生成绩管理系统设计学 院自动化学院专 业电气工程及其自动化班 级姓 名指导教师2014年1月9日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 学生成绩管理系统设计 初始条件:掌握8086汇编语言程序设计方法,设计一个学生成绩管理系统,程序运行后通过键盘控制实现各种功能。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1. 程序运行后,键盘输入不同进行不同处理:(1)E表示退出,L表示浏览;(2)I表示插入,Q表示查询,D表示删除,M表示修改,C表示

2、统计各分数段人数。2. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。时间安排:12月26日- 12月28日 查阅资料及方案设计12月29日- 1 月2日 编程 1月 3 日- 1 月7日 调试程序 1月 8 日- 1 月9日 撰写课程设计报告指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘 要11 需求说明22 设计说明22.1 开发平台与开发工具22.2 基本原理22.3 模块说明32.3.1

3、 浏览模块32.3.2 插入模块42.3.3 查询模块42.3.4 修改模块42.3.5 删除模块42.3.6 分数段统计模块42.3.7 退出模块43 算法设计54 程序编译与运行65 收获、体会与总结8附录 完整程序10本科生课程设计成绩评定表40摘 要 学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对学校的决策者和管理者来说都是至关重要的。学生管理系统由于具有查询迅速、方便、存储量大、保密性好的功能,因此被广泛采用。此次学生成绩管理系统通过汇编语言进行编写,利用一些基本的语句和过程化的定义语言完成主程序对子程序的调用,从而实现管理系统的浏览、退出、查询、插入、修改、删除、退出等7

4、个基本功能,并利用emu8086完成系统的仿真设计。关键词:学生成绩管理系统 汇编 功能 仿真 学生成绩管理系统设计1 需求说明 为了方便查找学生成绩信息,突破传统的手工处理方式,跟上现代化教学的要求,所以特开发一套对学生成绩进行管理的系统,做到信息的即时化,准确化。 本次课设以此为基础,利用课堂所学微机原理知识,用汇编语言编写一个学生成绩管理系统,实现基本的学生成绩管理。功能主要包括建立成绩档案,添加学生成绩记录(包括学号、姓名、性别、成绩)。本成绩管理系统应该具有最基本的退出和浏览功能,并在此基础上能按学号进行插入、查询、删除和修改等部分功能。同时本系统运行的所有信息最终用文件保存。本系统

5、在完成上述功能的基础上,对管理系统的输入和输出界面进行友好型设计,界面尽量美观,同时进行一些必要的提示。2 设计说明2.1 开发平台与开发工具该程序使用基于DOS、BIOS操作系统的16位实模式汇编语言编写,使用的编译器为emu8086,调试工具为DOS下的debug.exe程序。2.2 基本原理本系统的设计是按照主程序调用子程序的方法来实现的。其中主程序完成菜单的实现,子程序完成一个独立功能的实现。本程序使用了DOS系统功能调用(INT 21H),程序中用到的系统功能调用如下。AH功能调用参数返回参数02显示输出DL=输出字符09显示字符串DS:DX=串地址字符串以$符结束3C建立文件DS:

6、DX=ASCIZ串地址CX=文件属性成功:AX=文件代号失败:AX=错误代码3D打开文件DS:DX=ASCIZ串地址AL=访问文件和共享方式0=读,1=写,2=读/写成功:AX=文件代号失败:AX=错误代码3E关闭文件BX=文件代号失败:AX=错误代码3F读文件或设备DS:DX=缓冲区首地址BX=文件代号CX=读取的字节数成功:AX=实际读取的字节数AX=0已到文件尾失败:AX=错误代码40写文件或设备DS:DX=缓冲区首地址BX=文件代号CX=写入的字节数成功:AX=实际写入的字节数失败:AX=错误代码表1-1 系统的功能调用2.3 模块说明该程序按照要实现的功能一共分为七大模块:分别完成学

7、生成绩的浏览、学生成绩的插入、学生成绩的查询、学生成绩的修改、学生成绩的删除、学生成绩各分数段的人数统计以及管理系统的退出。2.3.1 浏览模块设计List(浏览)子程序时,先打开文件,然后读一个记录,并通过过程化语言调用SHOW_STU将其显示到屏幕上,若文件指针没有到达文件尾,则继续读记录并显示,当文件指针到达文件尾时,若没有学生信息,在屏幕上进行提示并关闭文件返回主程序。2.3.2 插入模块设计Insert(插入)子程序时,先打开文件SCORE.TXT,并置文件指针到文件尾,然后过程化语言调用子程序接受用户的输入,再把学生的输入写入文件,最后关闭文件返回主程序。2.3.3 查询模块子程序

8、时,先打开文件,通过过程化调用,先判断学号是否合法,合法后再查找学生的学号,然后读文件记录,并同要查找的学生学号比较,若相同则输出,若不同则继续读文件记录,最后显示查询结果,关闭文件返回程序。2.3.4 修改模块设计Modify(修改)子程序时,先打开文件SCORE.TXT,通过过程化定义语言调用子程序得到要修改的记录,然后读文件中的记录,并与用户输入的记录作比较(只比较记录中的名字部分),若不同则读下一个记录,若相同则将文件指针后退20个字符(一个记录为20个字符的长度),然后把用户输入的记录写入文件,最后关闭文件返回主程序。2.3.5 删除模块 设计Delete(删除)子程序时,先打开文件

9、,再过程化定义语言得到要删除的学生的学号,然后读文件中的记录,直到其记录的学号与所输入的学号相同为止,把文件指针后退5个字符,关闭文件返回主程序。2.3.6 分数段统计模块设计Count(统计)子程序,先打开文件,然后读记录,比较记录的第16个字符(数学成绩的高位)并统计,直到文件指针到达文件尾,最后关闭文件调用宏SHOW_EXIT显示统计结果,返回主程序。2.3.7 退出模块设计Exit(退出)子程序,先清屏,然后通过过程化定义语言调出初始源代码段中编写的人性化退出界面,借助DOS操作系统系统下的退出功能关闭成绩管系统。3 算法设计输入一个字符开始显示菜单是i退出是l是q是c是m是d是e调用

10、insert程序调用list子程序调用query子程序调用count子程序调用modify子程序调用delete子程序主程序运行时的汇编程序:START:MOV AH,7INT 21HCMP AL,iJNZ MLCALL INSERTRETU:JMP MAINYML:CMP AL,lJNZ MQNCALL LISTYJMP MAINMQ:CMP AL,qNJNZ MEYCALL QUERYJMP MAINNMC:CMP AL,cYJNZ MMCALL COUNTNJMP MAINYMM:CMP AL,mJNE MDNCALL MODIFYJMP MAINYMD:CMP AL,dNJNZ MEC

11、ALL DELETENJMP MAINME:CMP AL,eCALL EXITJMP MAIN4 程序编译与运行程序共一个可执行文件,通过emu8086编译运行后在屏幕上显示主菜单,输入不同按键程序执行的结果如下图所示。图4.1 系统主菜单图4.2 系统浏览功能图4.3 系统分数统计功能图4.4 系统插入功能图4.5系统修改功能图4.6 系统删除功能图4.7 系统退出功能5 收获、体会与总结通过这段时间的编程,我增加了对汇编知识的了解,能更加熟练得编写汇编程序了。通过查阅资料和与同学的交流,更加深了我对汇编知识的兴趣,尤其是美化界面那部分编程,让人不自觉的就产生一种自己是伟大的系统开发者,我做

12、的是一个很伟大的任务,尽管我知道自己编出的程序在那些“大牛”看来不值一提,但当数据如我所愿的在屏幕上显示出来时,那种喜悦之情很难用言语表达。 如果有时间的话这个程序还可以增加很多功能,比如记录学生更多科目的分数并将平均分显示出来,单科成绩的查询和排序,复制粘贴功能,加入网格及声音等,虽然基本功能都实现了但还有许多值得改进地方。在这次的课程设计中,除了使我对所学知识的了解更加巩固和深入外,我收获更多的是对我思维的考验和动手能力的锻炼。像这种实践性比较强的设计过程都比较复杂,需要时刻保持清晰的思路,否则出错了还得从头找起。与此同时,也是对我动手编程能力的一大考验和提高,我不再停留在死记硬背的阶段,

13、开始通过编写编译程序发现问题来进一步掌握汇编语言,通过debug来了解汇编语言与高级语言的联系、寄存器与操作数的联系等问题。这次设计我受益匪浅,它让我从传统的被动授学转变为主动求学,使我在与同学老师的交流中、书本网络资源的学习中渐渐积累了终身受益的不菲的收获。参考文献1 彭虎,周佩玲.微机原理与接口技术.北京:电子工业出版社,20082 周明德.微机原理与接口技术.北京:人民邮电出版社,20073 杨立.微机原理与接口技术. 天津:天津大学出版社,20104 张坤.汇编语言实验教程.北京:清华大学出版社,20085 佘朝坤.IBM-PC汇编语言程序设计.北京:机械工业出版社,20086 陈慈发

14、.微型计算机技术.北京:科学出版社,20107 孙德文.微型计算机技术.北京:高等教育出版社,2010附录 完整程序DATA 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

15、DB SCORE: $FID DW ? ;文件号SEXM DB male $SEXF DB female $ COUNT_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 * in

16、sert (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 * exit (e) *,0ah,0dh,$ mess9 DB * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $mess10 DB * list (l) *,0ah,0dh,$mess11 DB

17、 * please chose(l/i/m/d/q/c/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 D

18、B Sorry,there is no 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 50DU

19、P (?) ;缓冲区strSTR0 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 38 (li Fei Xing)$BY2 DB 31 (Cheng kang)$BY3 DB 15 (Chen Chu Ming)$DATA ENDSSET_P1 MACRO ;设定光标位置A MOV AH,02H MOV DH,02 MOV DL,03 MO

20、V BH,0 INT 10H ENDMSET_P3 MACRO MOV AH,02H ;设定光标的位置B MOV DH,14 MOV DL,43 MOV BH,0 ;当前这页 INT 10H ENDMTAB MACRO ;换行MOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21HENDMCREATEF MACRO FILE_ID,FILE_PATH;创建文件(传入文件号、传入文件路径)MOV AH,3CHMOV CX,00H ;普通文件LEA DX,FILE_PATHINT 21HMOV FILE_ID,AXENDMOPENF MACRO FILE_ID,FILE

21、_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_IDLEA DX,TEMPMOV AX,NUMMOV CX,AXMOV AH,3FHINT 21HENDMWRITEF MACRO FILE_ID,TEMP

22、,NUM;写文件(传入文件号、传入缓冲区、传入字节数)MOV BX,FILE_IDMOV CX,NUMLEA DX,TEMP2MOV AH,40HINT 21HENDMMOVEF MACRO FILE_ID,STYPE,HIGEC,LOWD;移动文件指针(传入文件号、传入移动方式、传入偏移字节(高位)传入偏移字节(低位)MOV BX,FILE_IDMOV AH,42HMOV AL,STYPE;尾+偏移量方式MOV CX,HIGEC;偏移字节(高位)MOV DX,LOWD;偏移字节(低位)INT 21HENDMINPUT MACRO BUFFER,LENGTH;输入字符串(传入字符串名、返回字符

23、串长度)MOV AH,10LEA DX,BUFFERINT 21H MOV al,BUFFER1MOV LENGTH,alENDMSHOW 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,7IN

24、T 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 DXPOP CXPOP BXPOP AXRETSHOW_EC ENDPSHOW_ERR PROC NEAR;显示出错信息子程序PUSH AXPUSH BXPUSH CXPUS

25、H 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 AX PUSH BX PUSH CX PUSH DX MOV AL,0 ;上滚行数 MOV CL,0 ;上滚窗口左上角的列号为0 MOV CH,

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

27、OW 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_FSHOW SEXMJMP NNSEX_F:SHOW SEXFNN:SHOW ENTERSHOW SCORE;SCOREMOV CX,SCORE_LENGTHMO

28、V BX,ID_LENGTHADD BX,NAM_LENGTHSH_SCORE:INC BXMOV DL,STR0BXMOV AH,2INT 21HLOOP SH_SCOREPOP DXPOP CXPOP BXPOP AXRETSHOW_STU ENDP;=以下插入(insert)子程序=INSERT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXTAB CALL CLEAR ;清屏SHOW TIPS0 ;显示提示信息SHOW TIPS1TABTABOPENF FID,FPATH ;打开文件IN_ID:SHOW ID ; 学号INPUT STR,bl ;向缓冲区输入

29、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 PTRSI CMP AL,0 JB ERR_ID CMP AL,9 JA ERR_ID INC SI LOOP LNMOVEF FID,0,0,0 ;指针移到文件首IA:MOVEF FID,1,0,5IB:READF FID,

30、STR0,STU_LENGTH;读取学生信息CMP 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_LENGTH ;数据合法则写入数据TABIN_NAM:SHOW NAM ;姓名CALL RE_

31、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 BX,2II0:INC BXDE

32、C 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 ERR_SEXMOV BL,STR2C

33、MP BL,1JZ L4 CMP BL,0JZ 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 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 S

34、TRBX,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,3JNZ L10CMP STR3,.JZ LWCMP STR2,1JNZ ERR_SCORECMP STR3,0JNZ ERR_SCORECMP STR4,0JNZ ERR_SCOREJMP LWL10:CMP BL,2JNZ L11CMP STR2,.JZ

35、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 DX CALL CLEAROPENF FID,FPATH ;打开文件IN_ID1:SHOW TIPS3 ;显示提示信息INPUT STR,BL ;向缓冲区STR输入IDCMP BL,ID_LENGTH

36、;看ID是否合法JZ QL1QERR_ID: ;错误处理CALL 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 QL2T

37、ABTAB ;符合条件显示CALL SHOW_STUJMP CC:CLOSEF FIDTABTABSHOW TIPS5 ;询问退出还是继续Q_2:MOV AH,7INT 21HCMP AL,rJZ Q_4CMP AL,cJNZ 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 FID

38、,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_STUINC TMP ;有信息为空标志自加TABJMP DF:CLOSEF FIDCALL SHOW_EXITPOP DXPOP CXPOP BXPOP AXRETLIST ENDP;=以下是删除(delet

39、e)子程序=DELETE PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL CLEAROPENF FID,FPATH ;打开文件D0:SHOW TIPS3 ;显示提示信息INPUT STR,BL ;向缓冲区STR输入IDCMP BL,ID_LENGTH ;看ID是否合法JZ D2CALL SHOW_ERRJMP D0D2:MOVEF FID,1,0,5READF FID,STR0,STU_LENGTH ;读取学生信息CMP AX,0 ;文件是否结束JNZ D5TABTABSHOW NOSTU ;文件结束,没有该学生信息JMP D15D5:LEA SI,STR0

40、LEA DI,STRINC DIDEC SIMOV CX,ID_LENGTHD6:INC SIINC DIMOV AL,BYTE PTR DICMP AL,BYTE PTR SIJNZ D2 ;不符合条件读取下一个同学信息LOOPZ D6TAB ;显示修改前信息TABCALL SHOW_STUTABTABTABSHOW DEL_DONEMOVEF FID,1,0FFFFH,STU_LENGTH_ADD1WRITEF FID,DEL,STU_LENGTHTABD15:TABTABTABCLOSEF FIDSHOW TIPS5 ;询问退出还是继续D_2:MOV AH,7INT 21HCMP AL,

41、rJZ D_4CMP AL,cJNZ D_2CALL DELETED_4:POP DXPOP CXPOP BXPOP AXRETDELETE ENDP;=以下是修改(modify)子程序=MODIFY PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL CLEAROPENF FID,FPATH ;打开文件M0:SHOW TIPS3 ;显示提示信息INPUT STR,BL ;向缓冲区STR输入IDCMP BL,ID_LENGTH ;看ID是否合法JZ M2CALL SHOW_ERRJMP M0M2:MOVEF FID,1,0,5READF FID,STR0,STU

42、_LENGTH ;读取学生信息CMP AX,0 ;文件是否结束JNZ M5TABTABSHOW NOSTU ;文件结束,没有该学生信息JMP M_2M5:LEA SI,STR0LEA DI,STRINC DIDEC SIMOV CX,ID_LENGTHM6:INC SIINC DIMOV AL,BYTE PTR DICMP AL,BYTE PTR SIJNZ M2 ;不符合条件读取下一个同学信息LOOPZ M6TAB ;显示修改前信息TABCALL SHOW_STUTABTABM7:SHOW NAM ;开始修改信息CALL RE_TMP ;初始化缓冲区INPUT STR,BLADD BL,2

43、;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,NAM_LENGTHJNA ML2 ;开始修改信息ERR_N0:CALL SHOW_ERR ;溢出提示JMP M7ML2:CMP STR2, ;姓名第一个字符不为空JZ ERR_N0CMP STR2,zJA ERR_N0CMP STR2,AJB ERR_N0CMP STR2,aJNB MM0CMP STR2,ZJA ERR_N0 CMP STR2,AJB ERR_N0MM0:MOV CX,NAM_LENGTH;名字只能是字母或空格MOV BX,2MM1:INC BXDEC CXCMP STRBX,z

44、JA ERR_N0CMP STRBX, JB ERR_N0CMP STRBX,aJNB MM1CMP STRBX,ZJA ERR_N0 CMP STRBX,AJNB MM1CMP STRBX, JNZ ERR_N0CMP CX,0JNZ MM1MOVEF FID,1,0FFFFH,NAM_SEX_SCORE_LENGTH;指针移到姓名处WRITEF FID,STR,NAM_LENGTHTABM10:SHOW SEXCALL RE_TMPINPUT STR,BLADD BL,2 ;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,SEX_LENGTHJNZ M11MOV BL,STR2CMP BL,1JZ M12 CMP BL,0JZ M12M11:CALL SHOW_ERR ;错误提示JMP M10M12:WRITEF FID,STR,SEX_LENGTHTABM13:SHOW SCORECALL RE_TMPINPUT STR,BLMOV SC,BLADD BL,2 ;去掉回车MOV BH,0MOV SI,BXMOV STRSI, SUB BL,2CMP BL,SCORE_LENGTH ;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!