学生通讯录汇编课程设计报告Word下载.docx
- 文档编号:21575904
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:24
- 大小:32.42KB
学生通讯录汇编课程设计报告Word下载.docx
《学生通讯录汇编课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《学生通讯录汇编课程设计报告Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
Abstract………………………………………………………Ⅰ
一、背景分析及意义……………………………………………1
二、总体设计思想………………………………………………1
三、主要功能……………………………………………………5
四、软硬件环境要求……………………………………………6
五、程序流程图…………………………………………………6
六、程序使用说明……………………………………………7
设计总结………………………………………………………7
参考文献………………………………………………………9
附录……………………………………………………………10
一、背景分析及意义
设计一个学生通讯录系统,包括功能如下:
1,学生信息添加功能
2,学生信息删除功能
3,学生信息查询功能
4,学生信息自动排序
5,包括学生信息如下:
1)学号(关键字)2)姓名 3)通讯地址......
要求:
信息用文件形势保存
二、总体设计思想
方案一:
(程序代码未成功)
简单的,在显示列表时以顺序形式显示而在文件中不是顺序的。
方案一实现过程设计思路:
将第一和第二个学生的信息分别读入BUF1和BUF2,进行比较
如果BUF1>BUF2,REP Movs BUF1 ,BUF2再将第三个学生信息读入BUF2。
如果BUF1<
BUF2,将第三个学生信息读入BUF2,则显示BUF1的信息。
依次直到读入BUF2的信息为空。
再将第二个学生的信息读入BUF1,依次直到读入BUF1的信息为空。
依次显示BUF1的信息到窗口。
方案二:
(未尝试编写代码)
运用链状数据结构在文件中排序
方案二实现过程设计思路:
1)数据定义
Studentstruc
Linkdw0 ;
链指针
Num db2dup(?
)
Namedb15dup(?
Addressdb50dup(?
Studentends
2)读入数据
3)拉链(建立链结构数据)
4)扫描链(显示信息)
方案三:
(成功)
在插入的同时进行排序
方案三实现过程设计思路:
1)光标位置变化:
用42H移到文件尾,AX减一个学生信息字节数并记录AX,再将光标从文件头移到AX的位置
2)将最后一个学生信息读入BUF2,BUF1和BUF2学号进行比较
moval,buf2[si]
cmpbuf1[si],al
ja 写入BUF1中读入的信息
jb在BUF2中学生的信息向后移
3)循环
算法:
代码段(datasegment)
变量的定义和预置:
datasegment
〈学生通讯录界面信息变量〉
〈出错信息变量〉
〈变量
结构体定义(studentstruc)
studentstruc
num db0,0
name db15dup(?
address db50dup(?
studentends
宏定义(名字 macro
.......
endm)
showmacroaddress ;
界面显示
light_m1macro a ;
光标位置
light_m2macro
light_m3macro
clear macro ;
当前显示页面上滚
clear1 macro
clear2 macro
again_1 macro ;
空格
newlinemacro ;
换行
show_itemmacroaddress ;
显示信息
localnext1,next2
getin macroaddress,count ;
读入信息
local lp1,lp2,input_end,exit
数据段定义
code segment
mainprocfar
assume cs:
code,ds:
data,es:
data
start
start:
movax,data
movds,ax
movah,0
moval,3
int10h
通讯录界面(show)
选择操作:
添加(i)
删除(d)
查询(q)
列表(排序)(l)
退出(e)
具体操作:
insertprocnear ;
插入
query procnear ;
查询
deleteprocnear ;
删除
list proc near ;
游览列表
end
code ends ;
程序结束
endstart
三、主要功能
这是一个学生通讯录系统,其中“I”表示以顺序插入,“L”表示浏览,“Q”表示查询,“E”表示退出,“D”表示删除。
本程序实现了:
(1)单独运行以上各功能,即在进入主菜单以后,点一功能键后关闭,再进入主菜单点别的功能键。
如运行"
address"
文件后,在出现的主界面中点“I”,可插入数据,插入完
以后,关闭;
用同样的方法可运行其它的功能。
注意:
完成一次功能后要关闭重新再进入界面看上次操作的结果。
(2)连续运行部分的功能。
应将文件"
address.txt"
放在相应的路径下。
如在本程序中,需将该文件放在"
e:
\address\address.txt"
下。
四、软硬件环境要求
软件:
MASM5.0逻辑,WINDOW或DOS操作系统,EDITplus或其他编辑程序;
硬件:
8086及以上机型;
五、程序流程图
学生通讯录系统流程图,如图所示:
六、程序使用说明
1:
本程序可在windows98,windows2000,windowsxp上运行。
2:
使用方法:
直接双击“address.exe”图标即可运行。
进入程序后,按照提示信息输入即可。
设计总结
1,开始
第一次真正的感觉到自己是学计算机专业的,第一次真正自己完成一个大型的程序,刚开始拿到汇编程序设计题的时候确实有点儿兴奋,心想着一定要独立快速而又高质量的完成这个程序。
可是,几天后我发现我对这个学生通讯录系统一点头绪都没有,随后就是一个劲的看书上没学过的内容。
可是书上的东西好像并没有帮到我什么忙,使我更感到无从下手。
就这样一直拖到了不能再拖的时候了,刚开始的豪言壮语也都没有了。
2,看程序
几天的慌乱后,终于定下心来了----找到了一个类似通讯录系统的程序,学生成绩管理系统,这也使得我今天的程序有点成绩管理系统的感觉。
刚开始看到学生成绩管理系统的时候一下子就被六百多行的代码给吓着了,当时真想放弃,最后还是硬着头皮看了下去。
开始真是有点看不懂,很多都是以前没有看到过的,好在前几天看过书,对BIOS功能调用INT10H和DOS功能调用还有一点的印象,查过书后都能搞清楚。
对我来说是新东西的还有宏定义和结构体定义,最后通过查找书本大概的把成绩管理系统看懂了。
3,写程序
看了几遍成绩管理系统的源程序后对如何写这一方面的程序有了一定的了解,于是就尝试着自己开始写起了通讯录的源程序。
毕竟是第一次写这么大的程序,所以虽然看懂了类似的成绩管理系统程序可是到自己写的时候还是觉得不能上手,一直是要翻书看和借鉴成绩管理系统里的内容。
最后,还是模仿着成绩管理系统完成了我的第一次课程设计(排序到写心得时仍在修改之中),虽然不知道有多少内容是自己的,可我还是花了时间和精力去认真完成的。
4,发现和解决问题
当然,在看程序和写程序也遇到了很多的问题:
1)BIOS功能调用INT10H
在BIOS功能调用INT10H中,AH=02H(置光标位置)和AH=06H(当前显示页上滚)也许是我的程序中用得最多的两个功能号了。
在进入了通讯录界面后怎样使光标到达指定的位置来完成操作呢?
功能号AH=02H很好的解决了这个问题。
DH=光标所在行,DL=光标所在列,BH=光标所在页,三个入口参数控制了光标的位置。
功能号AH=06H有什么作用呢?
AL=滚动的行数,CH=左上角行数,CL=左上角列数,DH=右下角行数,DL=右下角列数,BH=上滚时添补的空行的属性,07H为正常,70H为反显,这五个入口参数控制形成了一个矩形的信息窗口。
2)DOS功能调用
文件知识是以前没有接触过的,通讯录系统中的信息是存放在文件中的,怎样调用文件中的内容和向文件中添加内容呢?
又怎样关闭文件呢?
通讯录文件是事先存在的,所以只要用到3DH打开已存在的通讯录文件,其中AH=3DH,AL=存取方式代码,DS:
DX指向文件路径名的ASCLL码串。
3EH则用以关闭用打开的文件,对文件添加学生信息则使用3FH,CX=所要读入字节数,DX为存放读入信息的内存地址。
同样的40H对文件或设备进行写操作。
3)宏定义和过程调用
在通讯录系统源程序中我都使用了宏定义和过程使整个程序分成了若干个模块。
为什么要使用宏定义和过程调用呢?
使用宏定义和过程调用会使繁杂的程序容易读懂和理解,也使写程序的思路清晰。
参考文献
[1]《IBM-PC汇编语言程序设计》沈美明等清华大学出版社
[2]《8086/8088宏汇编语言程序设计教程》第二版王正智/编电子工业出版社
[3]《80X86汇编语言程序设计教程》杨季文/等编清华大学出版社
[4]《宏汇编语言MASM6实用大全》,东阳生等编著,科学出版社,1993
[5]《80386/80486编程指南》田学峰,周豫滨译电子工业出版社,1994
[6]《新编深入dos编程》,求伯君主编,学院出版社,1994
[7]《汇编语言程序设计学习指导》宋彩莉著,西安交通大学出版社
[8]《Intel汇编语言程序设计》(第五版)温玉杰梅广宇等译电子工业出版社
附录
源程序代码:
DATA SEGMENT
BOOK0 DB'
*****************************************************$'
BOOK1 DB'
* STUDENTADDRESSBOOKSYSTEM *'
0AH,0DH,'
$'
BOOK11 DB'
BOOK2 DB'
*PLEASECHOICETHEOPERITION'
BOOK3 DB'
*INSERT(I) * PLEASEINPUT:
'
BOOK4 DB'
*UERY (Q) * NUM :
BOOK5 DB'
*ELETE (D) * NAME :
BOOK6 DB'
*LIST (L) * ADDRESS:
BOOK7 DB'
*EXIT (E)'
*$'
BOOK8 DB'
BOOK9 DB'
NUM NAME ADDRESS'
BOOK10 DB'
************$'
WRONG DB'
YOUPUTTHEWRONGNUMORTHEREISNOTTHISSTUDENT$'
FNAME DB"
E:
\ADDRESS\ADDRESS.TXT"
BUF1 DB67DUP(?
BUF DB0AH,0DH,'
BUF2 DB65DUP(?
ZERO DW?
DELET DB65DUP('
0'
DATA ENDS ;
数据定义结束
------------------------------------
STUDENTSTRUC ;
结构体定义
NUM DB0,0
NAME DB15DUP(?
ADDRESS DB50DUP(?
STUDENTENDS
SHOWMACROADDRESS ;
显示通讯录界面
LEADX,ADDRESS
MOVAH,9
INT21H
ENDM
LIGHT_M1MACRO A ;
MOVAH,2
MOVDH,A
MOVDL,35
MOVBH,0
INT10H
LIGHT_M2MACRO
MOVAH,2
MOVDH,11
MOVDL,0
MOVBH,0
INT10H
ENDM
LIGHT_M3MACRO
MOVDH,3
MOVDL,35
CLEAR MACRO
MOVAL,0 ;
AL滚动的行数
MOVCL,0 ;
左上角列数
MOVCH,0 ;
左上角行数
MOVDH,25 ;
右下角行数
MOVDL,100 ;
右下角列数
MOVBH,7 ;
上滚时添补空行的属性,7为正常,70为反显
MOVAH,6
CLEAR1MACRO
MOVAL,0
MOVBH,7
MOVCH,6
MOVCL,36
MOVDH,9
MOVDL,100
CLEAR2MACRO
MOVCH,12
MOVCL,0
MOVDH,24
------------------------------------
AGAIN_1 MACRO ;
MOVDL,'
'
MOVDL,'
NEWLINEMACRO
PUSHAX ;
PUSHDX
MOVDL,0DH
MOVDL,0AH
POPDX
POPAX
SHOW_ITEMMACROADDRESS
LOCALNEXT1,NEXT2 ;
游览列表内容形式
PUSHBX
MOVBX,0
MOVDL,ADDRESS[BX]
INCBX
AGAIN_1
NEXT1:
MOVDL,ADDRESS[BX]
CMPBX,17
JL NEXT1
NEXT2:
CMPBX,67
JL NEXT2
NEWLINE
POPBX
GETIN MACROADDRESS,COUNT ;
输入信息
LOCAL LP1,LP2,INPUT_END,EXIT
PUSHAX
LP1:
MOVADDRESS[BX],'
CMPBX,COUNT
JL LP1
LP2:
MOVAH,1
CMPAL,0AH
JZ INPUT_END
CMPAL,0DH
MOVADDRESS[BX],AL
JLLP2
INPUT_END:
CMPAL,0DH
JZ EXIT
MOVAH,7
JMPINPUT_END
EXIT:
POPAX
CODE SEGMENT ;
CODE
MAINPROCFAR
ASSUME CS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,0
MOVAL,3
INT10H ;
BIOS显示调用
CLEAR
SHOWBOOK0
NEWLINE
SHOWBOOK1
SHOWBOOK11
NEWLINE ;
通讯录界面
SHOWBOOK2
SHOWBOOK3
SHOWBOOK4
SHOWBOOK5
SHOWBOOK6
SHOWBOOK7
SHOWBOO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 通讯录 汇编 课程设计 报告