# 基于汇编语言的学生成绩管理系统
# 一 需求分析
用汇编语言编写一个学生成绩管理系统,实现基本的学生成绩管理,功能包括成绩的录入,总分和平均分的计算,数据存档,从文件中读入数据等。要求程序界面友好,有输入界输出提示,有菜单等。
# 二 程序设计
## 2.1 程序总流程设计
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/125809c4f1702f2341472196de081d48.writebug)
## 2.2 添加记录流程设计
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/16c1564ea10c7b218a9f627844553e28.writebug)
## 2.3 打印记录流程设计
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/1f5ea28b71ff5fb7fa3ab613f074dcad.writebug)
# 三 程序实现
## 3.1 开发工具
该程序使用基于DOS操作系统的16位实模式汇编语言编写,使用的编译器为微软的MASM 5.0,调试工具为DOS下的debug.exe程序。
## 3.2 基本原理
本程序使用了DOS系统功能调用(INT 21H),程序中用到的系统功能调用如下:
| AH | 功能 | 调用参数 | 返回参数 |
| ---- | ------ | ---------------------------------------- | ------------------------------------- |
| 02 | 显示输出 | DL=输出字符 | |
| 09 | 显示字符串 | DS:DX=串地址 字符串以‘$’符结束 | |
| 3C | 建立文件 | DS: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=错误代码 |
## 3.3 数据结构
程序采用静态链表的方式来存储学生成绩信息,链表结点描述如下:
```c
struct Node
{
byte name[20]; // 学生姓名
word maths; // 数学成绩
word english; // 英语成绩
word computer; // 计算机成绩
word total; // 总成绩
word avg; // 平均成绩
word next; // 指向下一个结点的指针
}
```
说明:结点大小为32字节,其中name占20字节,剩下的六个字段,每一个都是一个字,占两个字节。
## 3.4 模块说明
该程序一共分为三大模块:分别完成数据的录入,存档以及从文件读取数据。各模块分别介绍如下:
### 3.4.1 数据录入
数据的录入项目包括学生的姓名,各科成绩。数据录入后,程序自动计算出每位学生的平均成绩和总成绩。
**姓名的输入方式**
首先利用09号系统调用,将字符串输入到内存缓冲区,然后用字符串传送指令将缓冲区中的字符串传送到记录结点。程序自动在输入的字符串后加上美元符号“$”,目的是方便使用系统调用将其输出。
**成绩的输入方式**
为了方便输入,首先利用09号系统调用,让用户以10进制的形式输入成绩到内存缓冲区,然后调用子程序将字符串转换成二进制数值,并保存到记录中相应的字段里。
### 3.4.2 数据存档
文件格式采用二进制格式,即直接将内存中的数据复制到文件中而不经过任何转换。文件开头的两个字节表示文件中记录的总数,之后的每32个字节存储一条记录。文件的结构如下表所示:
| 记录总数:2个字节 |
| :-------: |
| 记录1:20个字节 |
| 记录2:20个字节 |
| …… |
| 记录n:20个字节 |
### 3.4.3 从文件中读取数据
由于该程序生成的文件为二进制格式,因此读取过程十分简单,是写入过程的逆过程:首先读取文件开头的两个字节,便知道了文件中记录的总数,然后循环读取之后的每一条记录。
# 四 运行测试
程序共一个可执行文件,可以在DOS系统或者直接在Windows下运行,程序运行后在屏幕上显示主菜单,如下图所示:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/cebf189eb70c2c272df7e4bf93c441a4.writebug)
选择相应的菜单项可使用对应的功能,以下为各个功能模块的详细说明。
## 4.1 数据的录入
在主菜单下选择“1”,进入记录输入模块,按照提示输入各字段的值,如下图所示:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/1f79e9c1d5ac6206545c203c2a0d8b63.writebug)
## 4.2 数据和显示
在主菜单下选择“2”,进入记录输出模块。下图为添加了5条记录后打印的效果:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/af0573f6f57a287c051497c4f562ff39.writebug)
## 4.3 数据存档
在主菜单下选择“3”,将当前在内中的全部记录保存到文件中(c:\student.txt),如下图所示:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/2e21496828545f502e8ac3b4ed1b2e36.writebug)
## 4.4 从文件中读取
在主菜单下选择“4”,将当前在内中的全部记录保存到文件中(c:\student.txt),如下图所示:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/f148288c83c7d0d7e4fe9393ba3b21ef.writebug)
没有合适的资源?快使用搜索试试~ 我知道了~
精选_毕业设计_基于汇编语言的学生成绩管理系统_完整源码
共4个文件
license:1个
md:1个
doc:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 9 浏览量
2022-03-05
17:43:37
上传
评论
收藏 112KB ZIP 举报
温馨提示
基于汇编语言的学生成绩管理系统
资源推荐
资源详情
资源评论
收起资源包目录
3168878069612291.zip (4个子文件)
achievement-management
src
00610.asm 13KB
00610.doc 229KB
LICENSE 1KB
README.md 6KB
共 4 条
- 1
资源评论
工具盒子
- 粉丝: 58
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功