《汇编语言程序设计》课程设计说明书-班级通信录管理系统的设计与实现.doc
文本预览下载声明
班级通信录管理系统的设计与实现
1 需求说明
1.1实验要求
1.1.1建立通讯录,添加一个同学的通信记录,删除一个同学的通信记录,修改一个同学的通信记录,查询一个同学的通信记录,显示所有同学的通信记录,能根据姓名或宿舍号进行排序。
1.1.2通信记录包括学号、姓名、电话号码、宿舍号等信息,所有信息最终用文件保存。
1.2功能简述
1.2.1 建立通信录
运行程序后,程序自动建立存放通讯录文档,并输出提示要求输入所建文档的文件名。显示程序提供操作的主菜单和提示符,等待用户输入信息。若输入错误,则清屏显示主菜单。
1.2.2添加通信记录
在班级通讯录的末尾添加一个同学的通信记录。添加成功后显示操作成功信息。
1.2.3删除通信记录
删除通讯录时,先显示删除子菜单,询问用户是按学号、姓名、电话号码、宿舍号中的哪一种信息查找学生记录并删除。若选择按学号删除,则显示相应的提示信息,等待输入学号。显示找到的为该学号的所有同学信息,提示是否确定删除,若用户回答是,则删除,否则返回主菜单。
1.2.4查询通信记录
查询通信记录时,先显示查询子菜单,询问用户按学号、姓名、电话号码、宿舍号中的哪一种信息查找学生记录。等待用户输入该项信息,用户按下回车后显示所有匹配该信息的学生记录。
1.2.5显示所有通信记录
将文档中保存的所有同学的通讯记录用表格的形式显示出来,第一行显示同学通讯记录的标题,各个信息项之间用空格分开。
1.2.6根据姓名进行排序
排序时,显示排序子菜单,询问用户是按照升序还是降序进行排序。然后根据要求对记录进行排序。
1.2.7保存通讯记录
将修改后的同学通讯记录保存到文档中。
1.2.8退出班级通信录管理系统
选择该功能选项后,退出班级通信录管理系统,关闭文件,返回dos。
2设计说明
2.1 程序流程图设计
2.2各功能之间的关系
2.2.1用户输入信息
在Add、Edit、Delete、Inquiry函数中都需要用户输入学号、姓名、电话号码、宿舍号中的一项或全部信息,可以将输入学号、姓名、电话号码、宿舍号分别用inputID(输入学号)、inputName(输入名字)、inputNum(实习输入电话号码和宿舍号)来实现,Add函数中需要调用inputID、inputName、inputNum这三个函数,而Edit、Delete、Inquiry根据用户需要调用相应的函数来实现输入功能。
2.2.2搜索同学记录
在Edit、Delete、Inquiry函数中都需要在已存在的同学记录中搜索到与关键字匹配的同学记录。这样,可以把搜索这个功能提取出来,实现代码的共享。其中搜索按关键字的类型不同分为按学号搜索、按姓名搜索、按电话号码搜索、按宿舍号搜索。
2.2.3关键字的匹配
Edit、Delete、Inquiry、Sort函数中都需要进行关键字匹配和比较。把比较关键字的大小提取出来在strCmp中实现。方便进行搜索和排序。
2.3文档的处理
在用户进入班级通信录管理系统时,创建文本文档,当用户选择Save功能时将缓冲区中的学生记录写进文档。当用户选择List时,将缓冲区和文档中的所有记录显示出来。用户退出后,关闭文档。
3详细的算法设计
3.1主菜单的显示
mainMenu db | List-0,Add-1,Edit-2,Delete-3,inquiry-4,Sort-5 |,0dh,0ah
db | Save-6,Quit-7,MainMenu-else |$
;显示主菜单
showMainM proc
mov ah,09h
lea dx,decLine
int 21h
lea dx,mainMenu
int 21h
lea dx,decLine
int 21h
ret
showMainM endp
3.2学生记录的数据结构
records db 100 dup(9 dup(20h),$,3 dup(19 dup(20h),$),0dh,0ah);学生记录,包括学号和姓名(20个字符)、班级、寝室号信息。
sCount db 0 ;搜索所得结果数量
rCount dw 0 ;记录数量0-2^16
rLen dw 72 ;记录长度
i dw 0 ;计数器
j dw 0 ;计数器
IDLen dw 10 ;学号长度(包括$)
otherLen dw 20 ; 姓名、班级、寝室号长度(包括$)
ID db ID$
stdName db StdName$ ;输入学生信息提示
Te
显示全部