一、主界面
--------------------------------------------------------------- ****************************************** Students' information management system 1,Print all 2,Insert 3,Delete 4,Find
5,Count V1.00 2010-04-28
6,Sort Meng nuolin ****************************************** ---------------------------------------------------------------
二、数据库表 项目 实例 字节数 ID 15 Name 15 Sex 5 5 Age 20 5 Math 110 5 English 110 5 2008310203694 mengnuolin 三、功能实现
1. Print all功能 1) 思想:
读取数据库中的信息条数
然后将库中的内容读入buf数组中 再显示出来 2) 遇到的问题:
由于这个功能是最后写的,所以比较顺利
2. Insert功能 1) 思想:
每次先用09号功能输入信息,再将缓冲区的信息放入buf中,没有达到最大
字节数的空位用空格代替
打开文件,将光标置于文件末尾,先写入回车换行,再将buf中的内容写到
文件中
2) 遇到的问题:
进行文件操作时,要对每个字节都了解清楚,要进行精确的操作,不然总会
遇到各种问题
3. Delete功能 1) 思想:
接受要删除信息的ID号的输入 在文件中查找该ID号的所在行数
将所有信息都读到buf中,删除原文件
新建一个一样的文件,将除去删除行的其他信息写入文件中 将总行数信息减一 2) 遇到的问题:
直接在原文件中进行删除操作不好实现,虽然也可以达到删除目的,但是不
好回收空间,所以采用了删除原文件,再新建一个的做法,目的是为了让文本文件打开后更加美观
4. Find功能 1) 思想:
接受输入要查找的ID号(ID号位数13位,只能输入数字) 读取到数据库中信息条数
逐条查找,并将需跳过的字节数保存在dx里 2) 遇到的问题:
很多int 21h的功能调用后都会改变某些寄存器的值
如:光标的移动,会改变dx的值。
mov bx,ax ;将文件句柄传到bx中 push bx mov cx,0 mov dx,0 mov ax,4200h
int 21h
栈要合理利用,入栈和出栈要对应好,不能混乱
四、程序实现
1. 开始界面
2. 新建文件
3. 插入
4. 查找
5. 删除
删除前:
删除后:
五、实验总结
本次实验要求将汇编语言的各种小知识点联系起来,非常能锻炼自己的编程能力,对于学生信息管理系统的编写,首先要规划好系统所要实现的各项功能、要求。先要搭好系统的框架,然后根据各项功能的要求逐一实现,最好不要一次把所有代码都写完再来调试,对于初学者来说,很难保证一次就成功,所以一次写完就意味着很难找到错误,不好调试。我觉得应该边写边调试,既可以边写边学习,又能保证准确性。
因篇幅问题不能全部显示,请点此查看更多更全内容