学生成绩管理系统汇编语言

上传人:xgs****56 文档编号:8978247 上传时间:2020-04-02 格式:DOC 页数:49 大小:191.50KB
返回 下载 相关 举报
学生成绩管理系统汇编语言_第1页
第1页 / 共49页
学生成绩管理系统汇编语言_第2页
第2页 / 共49页
学生成绩管理系统汇编语言_第3页
第3页 / 共49页
点击查看更多>>
资源描述
摘 要 管理信息系统正在向着网络化 智能化和集成化等趋势发展 学生成绩管 理系统是为了更好的管理学生考试成绩而开发的数据管理软件 它对于一个学 校是不可缺少的重要部分 它的内容对于学校的决策者和管理者来说都至关重 要 学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段 实现学 生基本信息 成绩的录入 删除 查询 维护以及成绩的统计分析等几方面的 功能 是现实问题的迫切要求 本系统开发的总体任务是实现学生成绩管理的系统化 规范化 自动化 达到提高学生成绩管理效率的目的 与传统管理方法相比有明显的优点 查找 方便 可靠性高 保密性好 成本低 彻底改变了以前繁杂的管理模式 实现 全面的 相对集中的 职能化的信息综合管理 计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时 代 人们深刻的认识到了计算机功能的强大 对于复杂的信息管理 计算机充 分发挥着它的优越性 检索迅速 查找方便 可靠性高 存储量大 保密性好 寿命长 成本低 这些优点极大地减轻了学院教学人员的工作量 缩小开支 提高了学生档案管理的效率和准确性 能够合理的安排时间 学生能够尽快的 知道自己的考试成绩 同时 学生管理系统的应用也为今天的教育在未来市场 的竞争力有所提高 关键字 学生成绩管理 插入 查找 删除 退出 修改 目 录 1 系统分析 4 1 1系统开发背景 4 1 2初步调查与可行性分析 4 1 3系统目标 4 1 4系统流程图 5 2 系统总体设计 6 2 1总体结构图分析 6 2 2总体结构图 7 2 3总体数据结构 7 3 详细设计 8 3 1 程序功能设计 8 3 2 设计思路 8 4 系统测试 9 4 1测试方案 9 4 2测试用例及测试结果 9 4 3软件可靠性 11 5 软件使用说明书 12 6 设计总结 13 参考文献 14 致谢 15 附录 源代码 16 1 系统分析 1 1 系统开发背景 学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件 它对于一个学校是不可缺少的重要部分 它的内容对于学校的决策者和管理者 来说都至关重要 所以 学生成绩管理管理系统为用户提供充足的信息和快捷 的查询手段 实现学生基本信息 成绩的录入 删除 查询 修改 维护以及 成绩的统计分析等几方面的功能 是现实问题的迫切要求 1 2 初步调查与可行性分析 可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够解决 这步工作的主要是要进行一次大大压缩简化了的系统分析和设计的过程 也 就是 在较高层次上以比较抽象的方式进行系统分析和设计的过程 可行性研 究的最根 本任务是对以后的行动方针提出建议 从而节省人力 时间 按照一 个较好的解 决方案来完成设计 并且为工程制定一个初步的计划 1 技术可行性 本系统采用汇编 DOS 窗口进行数据的管理 操作和维护 进行数据的录入 删除 查询 浏览 修改 统计等功能 由其的数据存储功 能 方便快捷的验证功能 使用的灵活 良好的可扩展性 以及广泛实际应用 充分说明本系统在技术方面的可行性 2 操作可行性 本系统设计清晰 操作简洁 并达到操作过程中的直观 方便 实用 安全等要求 1 3 系统目标 设计一个学生管理程序 主要实现以下功能 1 各个学生的姓名 性别 ID 成绩的录入 修改 和删除 2 按 ID 查询每个学生的成绩和信息 3 显示查询结果 4 显示所有学生的个人信息和成绩 程序运行时 在出现的主菜单中 按 i 键后 将执行插入功能 可以插入新的 学生信息 按 d 键输入要删除的学生姓名 按 q 键输入 ID 查询的学生的信息 按下 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 女生输入 0 每项输入完成按回车输入 下一项 输入完成之后有提示 r c r 表示退出正在进行的操作回 到主界面 c 表示继续添加 此处可实现程序数据的存储 存储位 置 c score txt 2 删除 打开程序主界面之后 按 d 键实施删除功能 只需输入 ID 即可删除该生在系统中的所有信息 此处可实现程序数据的删除 3 查询 打开程序主界面之后 按 q 键实施查询功能 此时提示 输入信息同删除 此处可实现程序数据的查询 4 显示 打开程序主界面之后 按 l 键实施显示功能 即可显示 出所有的学生信息 此处可实现程序数据的显示 5 修改 打开程序主界面之后 按 m 键实施修改功能 即可显示 出所有的学生信息 此处可实现程序数据的显示 6 打印 在系统有打印功能的前提下 在主界面中输入 p 就可对 已有的成绩打印 7 退出 在使用完成之后 按 e 即可退出程序 也可以直接点关 闭按钮 2 2 总体结构图 图 2 2 1 总体结构图 2 3 总体数据结构 1 main 主程序模块 用于对各种操作的调用 如插入 删除 显示所有学生的成绩 信息等 2 Insert 子程序插入模块 用于实现对新增学生的插入 插入至学生文本中 3 query 子程序模块 根据学生 ID 查询学生的所有信息 学生 ID 由键盘输入 再从文件中一次 比较找出要查询学生的信息 4 delete 子程序模块 由用户输入要删除学生的 ID 从学生文件中找出要删除的学生信息 实现 删除的操作 5 list 子程序模块 用于显示学生文件中所有学生的成绩信息 每次从文件读取一个学生的信 息并显示 3 详细设计 3 1 程序功能设计 程序运行时 在出现的主菜单中 按 l 键 将浏览学生的各科成绩 按 i 键后 将执行插入功能 可以插入新的学生信息 按 d 键输入要删除的学生 姓名 按 q 键输入 ID 查询的学生的信息 按下 e 键将退出程序 途中会出现 r c 提示 r 表示退出正在进行的操作回到主界面 c 表示继续操作 程序中输 入性别 sex 须输入 0 或者 1 以上功能单独运行可以实现 即在进入菜单后 选择其中一项功能运行可 以成功运行 在关闭后选择另一项功能可以 成功运行 但是在整体运行时得 不到想要的结果 注 此程序除了源程序外还需要一个学生文件 该程序命名为 score txt 该文件用于存放学生信息 3 2 设计思路 1 数据定义 一个数据元素 一个学生的数据项 应该为一个结构类型 定义如下 ID LENGTH EQU 4 NAM LENGTH EQU 20 SEX LENGTH EQU 1 SCORE LENGTH EQU 5 配置信息 ID4 位数 名字 20 个字符 性别 1 位数 0 或者 1 分数 5 位 范围为 0 100 2 方法和步骤 这个程序主要分为插入 删除 查询 显示 修改 退出 定义如下 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 用空格初始化缓冲区子程序 定义出要在主界面所要显示的内容 显示 提示信息 打开文件 按提示进入操作 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 修改成绩 图 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 提示 r 表示退出正在进行的操作回到主界面 c 表示继续操作 程序中输入性 别 sex 须输入 0 或者 1 以上功能单独运行可以实现 即在进入菜单后 选择其中一项功能运行可 以成功运行 在关闭后选择另一项功能可以 成功运行 但是在整体运行时得 不到想要的结果 注 此程序除了源程序外还需要一个学生文件 该程序命名为 score txt 该文 件用于存放学生信息 6 设计总结 通过对这学生成绩管理的的制作 使我对汇编语言的基本知识的使用更加 熟练 同时也增加了我对汇编语言的一些认识 在作业完成过程中通过和同学 的交流 也增加了合作的技巧 通过查阅资料也学到了一些课本上没有的东西 拓宽了自己的知识面 增加了学好汇编语言的信心 这不是第一次用汇编语言 来设计一个小程序 平时做了很多实验 写了很多小程序 但这次是一个综合 的程序 平时的很多程序都用到了 历时两周终于完成 其间有不少感触 在本次的课程设计过程中 我最大的收获就是学到了不少新的知识 同时可以 自己学到的汇编语言的知识和以前学的程序设计的知识应用到实践中 熟悉了 开发环境 提高了自己的动手能力 并顺利地完成了此次的任务 课程设计让我从 中得到莫大的信心 鼓励 快乐和成就感 编程过程中 我遇到了一些困难 这我通过 上网查询和去图书馆查找资料解决问题 有效地利用网络资源和学校图书资源 同 时也了解了更多的知识获取的途径 扩大了自己的知识面 遇到问题时 多数情 况下我是自己独立解决的 这锻炼我独立思考问题和独立解决问题的能力 如果 自己通过查找资料无法解决 我就向老师和同学寻求帮助 不但学到了新的 更完 善解决问题的方法 还学会了与人沟通 与人交流 我认识到有时候 其他人的一 点提示 就会令自己茅塞顿开 得到灵感 因此 在作课程设计时 不要吝惜自己的 思路和想法 尽可能多的与大家的交流 许多时 我们都能从中得到进步 得到提 示 甚至得到更好的方案 同时我也发现了自己的一些问题 本次课程设计 对我 帮助很大 它提高了我的理论知识和和实践动手能力 提高了我独立思考问题和 解决问题的能力 同时 增强了我与人探讨问题 交流思路的意识 此外 它还让我 发现了自己在编程习惯上的许多不足 对以后的编写程序和设计解题思路有很大 的启发 在以后的学习和实践中 我会不断督促自己 不断提高 不断进步 参考文献 1 范立南 刘天慧 编著 SQL Server 2000 实用教程 清华大学出版社 2 丁宝康 编著 数据库实用教程 清华大学出版社 3 陈禹 方美琪 编著 软件开发工具 经济科学出版社 4 黄梯云 主编 管理信息系统 高等教育出版社 5 朱耀庭 汇编语言程序设计 清华大学出版社 致谢 在此次课程设计中 我们衷心感谢刘树群老师对我们的细心指导 刘老师 指引我们的课程设计的写作的方向和架构 并指正出其中误谬之处 使我们一 起努力完成 刘老师要指导很多同学的论文 加上本来就有的教学任务 工作 量之大可想而知 老师的用心良苦 在此 谨向刘老师衷心的感谢 谢谢刘老 师在我们的课程设计过程中给与我们的极大地帮助 同时 课程设计的顺利完成 离不开小组内部成员的互相努力 团结协作 在整个的课程设计写作中 大家互相支持 努力需找问题答案所在 最终顺利 完成了这个课程设计 在论文的写作过程中也学到了做任何事情所要有的态度 和心态 首先做学问要一丝不苟 对于发展过程中出现的任何问题和偏差都不 要轻视 要通过正确的途径去解决 在做事情的过程中要有耐心和毅力 不要 一遇到困难就达退堂鼓 只要坚持下去就可以找到思路去解决问题的 而且要 学会与人合作 这样做起事情来就可以事半功倍 附录 源代码 DATA SEGMENT TIPS0 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 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 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 mess10 DB mess13 DB list l 0ah 0dh mess14 DB please chose l i m d q c p e 0ah 0dh ID LENGTH EQU 4 配置信息 NAM LENGTH EQU 20 SEX LENGTH EQU 1 性别请勿更改位数 SCORE LENGTH EQU 5 STU 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 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 缓冲区 str DB DB 50 DUP STR0 DB 50 DUP 缓冲区 str0 ENTER 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 07212151210 Luo Chun DATA ENDS SET P1 MACRO 设定光标位置 A MOV AH 02H MOV DH 02 MOV DL 03 MOV BH 0 INT 10H ENDM SET P3 MACRO MOV AH 02H 设定光标的位置 B MOV DH 15 MOV DL 44 MOV BH 0 当前这页 INT 10H ENDM TAB MACRO 换行 MOV AH 2 MOV DL 0DH INT 21H MOV DL 0AH INT 21H ENDM CREATEF MACRO FILE ID FILE PATH 创建文件 传入 文件号 传入 文 件路径 MOV AH 3CH MOV CX 00H 普通文件 LEA DX FILE PATH INT 21H MOV FILE ID AX ENDM OPENF MACRO FILE ID FILE PATH 打开文件 传入 文件号 传入 文 件路径 MOV AL 2 读写文式打开 MOV AH 3DH LEA DX FILE PATH INT 21H MOV FILE ID AX ENDM CLOSEF MACRO FILE ID 关闭文件 传入 文件号 MOV BX FILE ID MOV AH 3EH INT 21H ENDM READF MACRO FILE ID TEMP NUM 读文件 传入 文件号 传入 缓冲 区 传入 字节数 MOV BX FILE ID LEA DX TEMP MOV AX NUM MOV CX AX MOV AH 3FH INT 21H ENDM WRITEF MACRO FILE ID TEMP NUM 写文件 传入 文件号 传入 缓冲 区 传入 字节数 MOV BX FILE ID MOV CX NUM LEA DX TEMP 2 MOV AH 40H INT 21H ENDM MOVEF MACRO FILE ID STYPE HIGEC LOWD 移动文件指针 传入 文件号 传入 移动方式 传入 偏移字节 高位 传入 偏移字节 低位 MOV BX FILE ID MOV AH 42H MOV AL STYPE 尾 偏移量方式 MOV CX HIGEC 偏移字节 高位 MOV DX LOWD 偏移字节 低位 INT 21H ENDM INPUT MACRO BUFFER LENGTH 输入字符串 传入 字符串名 返回 字 符串长度 MOV AH 10 LEA DX BUFFER INT 21H MOV LENGTH BUFFER 1 ENDM SHOW MACRO BUFFER 显示字符串 传入 字符串名 MOV AH 9 LEA DX BUFFER INT 21H ENDM STAK SEGMENT STACK DB 200 DUP STAK ENDS 代码段 CODE SEGMENT ASSUME CS CODE DS DATA SHOW EXIT PROC NEAR 提示按 r 退出 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS4 EXIT 1 MOV AH 7 INT 21H CMP AL r JNZ EXIT 1 POP DX POP CX POP BX POP AX RET SHOW EXIT ENDP SHOW EC PROC NEAR 询问退出还是继续 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW TIPS5 EXIT 2 MOV AH 7 INT 21H CMP AL r JZ EXIT 4 CMP AL c JNZ EXIT 2 CALL INSERT EXIT 4 POP DX POP CX POP BX POP AX RET SHOW EC ENDP SHOW ERR PROC NEAR 显示出错信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX TAB TAB SHOW ERR TAB TAB POP DX POP CX POP BX POP AX RET SHOW ERR ENDP RE TMP PROC NEAR 用空格初始化缓冲区子程序 PUSH AX PUSH BX PUSH CX PUSH DX MOV CX 50 MOV BX 1 RE INC BX MOV STR BX LOOP RE POP DX POP CX POP BX POP AX RET RE TMP ENDP CLEAR PROC NEAR 清屏 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL 0 上滚行数 MOV CL 0 上滚窗口左上角的列号为 0 MOV CH 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 RET CLEAR ENDP SHOW STU PROC NEAR 显示学生信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX SHOW ID ID MOV CX ID LENGTH MOV BX 1 SH ID INC BX MOV DL STR0 BX MOV AH 2 INT 21H LOOP SH ID SHOW ENTER SHOW NAM NAME MOV CX NAM LENGTH MOV BX ID LENGTH DEC BX SH NAME INC BX MOV DL STR0 BX MOV AH 2 INT 21H LOOP SH NAME SHOW ENTER SHOW SEX SEX MOV BX ID LENGTH ADD BX NAM LENGTH MOV DL STR0 BX CMP DL 1 1 显示 male 0 显示 female JNZ SEX F SHOW SEXM JMP NN SEX F SHOW SEXF NN SHOW ENTER SHOW SCORE SCORE MOV CX SCORE LENGTH MOV BX ID LENGTH ADD BX NAM LENGTH SH SCORE INC BX MOV DL STR0 BX MOV AH 2 INT 21H LOOP SH SCORE POP DX POP CX POP BX POP AX RET SHOW STU ENDP PRINT STU PROC NEAR 打印学生信息子程序 PUSH AX PUSH BX PUSH CX PUSH DX TAB SHOW ID ID MOV CX ID LENGTH MOV BX 1 P ID INC BX MOV DL STR0 BX MOV AH 5 INT 21H LOOP P ID SHOW ENTER SHOW NAM NAME MOV CX NAM LENGTH MOV BX ID LENGTH DEC BX P NAME INC BX MOV DL STR0 BX MOV AH 5 INT 21H LOOP P NAME SHOW ENTER SHOW SEX SEX MOV BX ID LENGTH ADD BX NAM LENGTH MOV DL STR0 BX MOV AH 5 INT 21H PNN SHOW ENTER SHOW SCORE SCORE MOV CX SCORE LENGTH MOV BX ID LENGTH ADD BX NAM LENGTH P SCORE INC BX MOV DL STR0 BX MOV AH 5 INT 21H LOOP P SCORE POP DX POP CX POP BX POP AX RET PRINT STU ENDP 以下插入 insert 子程序 INSERT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX TAB CALL CLEAR 清屏 SHOW TIPS0 显示提示信息 SHOW TIPS1 TAB TAB OPENF FID FPATH 打开文件 IN ID SHOW ID 学号 INPUT STR BL 向缓冲区输入 ID CMP BL ID LENGTH 看 ID 是否合法 JZ L1 JNZ ERR ID ERR SA 错误处理 TAB TAB SHOW ERR SAME TAB TAB JMP IN ID ERR ID TAB TAB CALL SHOW ERR TAB TAB JMP IN ID L1 ID 判断只能为数字 MOV CX ID LENGTH LEA SI STR 2 LN MOV AL BYTE PTR SI CMP AL 0 JB ERR ID CMP AL 9 JA ERR ID INC SI LOOP LN MOVEF FID 0 0 0 指针移到文件首 IA MOVEF FID 1 0 5 IB READF FID STR0 STU LENGTH 读取学生信息 CMP AX 0 文件是否结束 JNZ IL1 JMP IC 没有重复学号 可以插入 IL1 LEA SI STR0 LEA DI STR INC DI DEC SI MOV CX ID LENGTH IL2 INC SI INC DI MOV AL BYTE PTR DI CMP AL BYTE PTR SI JNZ IA 不符合条件读取下一个同学信息 LOOPZ IL2 JMP ERR SA 有重复学号 IC MOVEF FID 2 0 5 WRITEF FID STR ID LENGTH 数据合法则写入数据 TAB IN NAM SHOW NAM 姓名 CALL RE TMP 初始化缓冲区 INPUT STR BL ADD BL 2 去掉回车 MOV BH 0 MOV SI BX MOV STR SI SUB BL 2 CMP BL NAM LENGTH JNA L2 ERR NAM CALL SHOW ERR JMP IN NAM L2 CMP STR 2 姓名第一个字符不为空 JZ ERR NAM CMP STR 2 z JA ERR NAM CMP STR 2 A JB ERR NAM CMP STR 2 a JNB III CMP STR 2 Z JA ERR NAM CMP STR 2 A JB ERR NAM III MOV CX NAM LENGTH MOV BX 2 II0 INC BX DEC CX CMP STR BX z JA ERR NAM CMP STR BX JB ERR NAM CMP STR BX a JNB II0 CMP STR BX Z JA ERR NAM CMP STR BX A JNB II0 CMP STR BX JNZ ERR NAM CMP CX 0 JNZ II0 WRITEF FID STR NAM LENGTH TAB IN SEX SHOW SEX 性别 CALL RE TMP INPUT STR BL ADD BL 2 去掉回车 MOV BH 0 MOV SI BX MOV STR SI SUB BL 2 CMP BL SEX LENGTH JNZ ERR SEX MOV BL STR 2 CMP BL 1 JZ L4 CMP BL 0 JZ L4 ERR SEX CALL SHOW ERR JMP IN SEX L4 WRITEF FID STR SEX LENGTH TAB IN SCORE SHOW SCORE CALL RE TMP INPUT STR BL MOV SC BL BL 保护 ADD BL 2 去掉回车 MOV BH 0 MOV SI BX MOV STR SI SUB BL 2 CMP BL SCORE LENGTH 分数最多 4 位 JB L5 ERR SCORE CALL SHOW ERR JMP IN SCORE L5 MOV CX BX 分数只能是数字和 MOV BX 2 L6 CMP STR BX 0 JNB L7 0 CMP STR BX JNZ ERR SCORE JZ L8 L7 CMP STR BX 9 0 CMP STR BX JNZ MEC JZ M17 M16 CMP STR BX 9 9 JA MEC INC BX LOOP M15 JMP M17 M21 JMP MEC 中转 M17 MOV BL SC CMP BL 4 分数 0 100 支持一位小数 JNZ M18 CMP STR 4 JNZ M21 JMP MW M18 CMP BL 3 JNZ M19 CMP STR 3 JZ MW CMP STR 2 1 JNZ M21 CMP STR 3 0 JNZ M21 CMP STR 4 0 JNZ M21 JMP MW M19 CMP BL 2 JNZ M20 CMP STR 2 JZ M21 JMP MW M20 CMP STR 2 JZ M21 MW WRITEF FID STR SCORE LENGTH M 2 TAB TAB TAB TAB CLOSEF FID SHOW TIPS5 询问退出还是继续 MOV AH 7 INT 21H CMP AL r JZ M 4 CMP AL c JNZ M 2 CALL MODIFY M 4 POP DX POP CX POP BX POP AX RET MODIFY ENDP 以下是统计各分数段人数 count 子程序 COUNT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX CALL CLEAR TAB TAB TAB OPENF FID FPATH 打开文件 C 0 MOV BX FID MOV AH 42H MOV AL 1 当前 偏移量方式 MOV CX 0 偏移字节 高位 MOV DX 5 偏移字节 低位 INT 21H C 1 READF FID STR0 STU LENGTH 读取学生信息 CMP AX 0 JZ C 8 到文件尾则结束 MOV BX ID LENGTH ADD BX NAM LENGTH INC BX MOV AX BX MOV DL STR0 BX DL 里放分数第一位 CMP DL 1 如果是 100 分直接显示 A JZ C 2 C 2 INC BX MOV DL STR0 BX CMP DL 0 JZ C 3 C 3 INC BX MOV DL STR0 BX CMP DL 0 JZ C A MOV BX AX MOV DL STR0 BX MOV CL 9 CMP DL CL JGE C A MOV CL 8 CMP DL CL JGE C B MOV CL 7 CMP DL CL JGE C C MOV CL 6 CMP DL CL JGE C D CMP DL JZ C 0 INC AB JMP C 0 C A INC AB 4 JMP C 0 C B INC AB 3 JMP C 0 C C INC AB 2 JMP C 0 C D INC AB 1 JMP C 0 C 8 CLOSEF FID SHOW COUNT A 显示每个阶段分数的人数 MOV DL AB 4 CMP DL 9 JA LA1 MOV AH 02H INT 21H MOV AB 4 0 TAB JMP NEXT LA1 SUB DL 30H MOV AL DL MOV BL 10 MOV AH 0 DIV BL MOV DL AL MOV BL AH ADD DL 30H MOV AH 02H INT 21H ADD BL 30H MOV DL BL MOV AH 02H INT 21H MOV AB 4 0 TAB NEXT SHOW COUNT B MOV DL AB 3 CMP DL 9 JA LB1 MOV AH 02H INT 21H MOV AB 3 0 TAB JMP NEXT1 LB1 SUB DL 30H MOV AL DL MOV BL 10 MOV AH 0 DIV BL MOV DL AL MOV BL AH ADD DL 30H MOV AH 02H INT 21H ADD BL 30H MOV DL BL MOV AH 02H INT 21H MOV AB 3 0 TAB NEXT1 SHOW COUNT C MOV DL AB 2 CMP DL 9 JA LC1 MOV AH 02H INT 21H MOV AB 2 0 TAB JMP NEXT2 LC1 SUB DL 30H MOV AL DL MOV BL 10 MOV AH 0 DIV BL MOV DL AL MOV BL AH ADD DL 30H MOV AH 02H INT 21H ADD BL 30H MOV DL BL MOV AH 02H INT 21H MOV AB 2 0 TAB NEXT2 SHOW COUNT D MOV DL AB 1 CMP DL 9 JA LD1 MOV AH 02H INT 21H MOV AB 1 0 TAB JMP NEXT3 LD1 SUB DL 30H MOV AL DL MOV BL 10 MOV AH 0 DIV BL MOV DL AL MOV BL AH ADD DL 30H MOV AH 02H INT 21H ADD BL 30H MOV DL BL MOV AH 02H INT 21H MOV AB 1 0 TAB NEXT3 SHOW COUNT E MOV DL AB CMP DL 9 JA LE1 MOV AH 02H INT 21H MOV AB 0 TAB JMP NEXT4 LE1 SUB DL 30H MOV AL DL MOV BL 10 MOV AH 0 DIV BL MOV DL AL MOV BL AH ADD DL 30H MOV AH 02H INT 21H ADD BL 30H MOV DL BL MOV AH 02H INT 21H MOV AB 0 TAB TAB NEXT4 CALL SHOW EXIT POP DX POP CX POP BX POP AX RET COUNT ENDP 以下是打印 print 子程序 PRINT PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX CALL CLEAR OPENF FID FPATH 打开文件 TAB P1 MOVEF FID 1 0 5 P2 READF FID STR0 STU LENGTH 读取学生信息 CMP AX 0 JZ P3 到文件尾则结束 CALL PRINT STU TAB JMP P1 P3 TAB CLOSEF FID CALL SHOW EXIT POP DX POP CX POP BX POP AX RET PRINT ENDP 以下是退出 exit 子程序 EXIT PROC NEAR CALL CLEAR TAB TAB TAB SHOW BYE TAB TAB TAB TAB TAB TAB TAB SHOW BY0 TAB SHOW BY1 TAB SHOW BY2 TAB SHOW BY3 TAB SHOW BY4 TAB SHOW BY5 TAB TAB TAB TAB TAB MOV BX 0F00FH 信息显示 E0 MOV CX 0FFFFH E1 LOOP E1 DEC BX JNZ E0 CALL CLEAR MOV AH 4CH INT 21H EXIT ENDP 以下是主程序 MAIN MOV AX DATA MOV DS AX MOV AH 0 MOV AL 3 80 25 的文本方式 INT 10H MOV AL 0 MOV CL 0 MOV CH 0 MOV DH 24 MOV DL 79 MOV BH 0FH MOV AH 6 INT 10H TAB TAB TAB TAB SHOW MESS10 SHOW MESS1 SHOW MESS2 SHOW MESS13 SHOW MESS3 SHOW MESS4 SHOW MESS5 SHOW MESS6 SHOW MESS7 SHOW MESS8 SHOW MESS9 SHOW MESS14 SHOW MESS10 SET P3 MOV AX ID LENGTH ADD AX NAM LENGTH ADD AX SEX LENGTH ADD AX SCORE LENGTH MOV STU LENGTH AX 计算每个学生信息长度 INC AX NOT AX ADD AX 1 MOV STU LENGTH ADD1 AX 删除时指针参数 MOV AX NAM LENGTH ADD AX SEX LENGTH ADD AX SCORE LENGTH NOT AX ADD AX 1 MOV NAM SEX SCORE LENGTH AX 修改时指针参数 OPENF FID FPATH 是否新建文本 CMP AX 2 JZ NEWFILE CLOSEF FID JMP START NEWFILE CREATEF FID FPATH START MOV AH 7 输入选择命令 INT 21H CMP AL i 判断 JNZ ML CALL INSERT RETU JMP MAIN ML CMP AL l JNZ MQ CALL LIST JMP MAIN MQ CMP AL q JNZ ME CALL QUERY JMP MAIN ME CMP AL e JNZ MC CALL EXIT JMP MAIN MC CMP AL c JNE MM CALL COUNT JMP MAIN MM CMP AL m JNZ MP CALL MODIFY JMP MAIN MP CMP AL p JNZ MD CALL PRINT JMP MAIN MD CMP AL d JNZ MNEW CALL DELETE JMP MAIN MNEW CMP AL n 初始化文本数据库 JNZ RETU CALL CLEAR TAB TAB TAB SHOW NEWF MOV AH 7 INT 21H CMP AL y JNZ RETU CREATEF FID FPATH JMP MAIN CODE ENDS END MAIN
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


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

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


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