简易电话号码簿程序设计

  • 格式:doc
  • 大小:61.00 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易电话号码簿程序设计

一、设计目标

编写一个管理电话号码的程序。

二、设计要求

1. 实现人名、电话号码的录入(假定一个人只有一个电话号码)。

2. 人名、电话号码的删除、修改。

3. 根据人名查询该人的电话号码。

4. 用文件保存电话簿。

5. 根据电话号码查询该人的名字。

6. 根据人名进行电话号码的模糊查询(如输入某人的姓,则同姓的其他人的电话号码也可以显示出来)。

三、设计提示

文件操作、键盘操作和屏幕操作可利用DOS和BIOS系统中断完成。相关核心提示见“单词记忆测试器程序设计”一题。

DATAS SEGMENT

count db 4

buf db'li ','54698765 ', ;存储人名和电话号码的数据单元区

'liu ','69856456 ',

'hu ','565664789 ',

'zhang ','569874123 ',

20 dup(10 dup (0),10 dup (0)) ;为再存入数据开辟空间

_name db 10, ?,10 dup(?) ;缓冲区——键盘输入name字符串

num db 10, ?,10 dup(?) ;缓冲区——键盘输入num字符串

temp db 20 dup(?),0dh,0ah,'$'; 缓冲区——存入人名和电话簿信息

menuitem db' (people phonenumber management system)',0ah,0dh db' @************************&&&**************************@',0ah,0dh

db' # { this is main menu } #',0ah,0dh

db' # 1. query (q) #',0ah,0dh

db' # 2. insert (i) #',0ah,0dh

db' # 3. modify (m) #',0ah,0dh

db' # 4. delete (d) #',0ah,0dh

db' # 5. exit (e) #',0ah,0dh

db' @************************&&&**************************@',0ah,0dh

db'please select(q,i,m,d or e):',0ah,0dh,'$';显示主菜单相关信息

mess1 db'name',10 dup(' '),'tel',0ah,0dh,'$'

mess2 db'please Input the name:$'

mess3 db'please Input the telephone number:$'

mess4 db 0ah,0dh,'$';专门定义一个MESS4,以便在代码中用9号功能调用实现换行

mess5 db'Insert succed!$'

mess6 db'delete succed!$'

mess7 db'the information!$'

mess8 db'modify succed!$'

mess9 db'please Input the new name:$'

mess10 db'please Input the new number:$'

err1 db'there is not exsit the people!',0ah,0dh,'$';错误提示信息DATAS ENDS

STACKS SEGMENT

db 2000 dup(?)

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far

mov ax,datas

mov ds,ax

mov es,ax

n1: lea dx,menuitem

mov ah,9

int 21h ;显示主菜单选择界面

mov ah,1

int 21h ;从键盘输入字符

cmp al,'q'

jnz n2

call query ;若所输字符是‘q‘,则调用子程序query

jmp n1

n2: cmp al,'i'

jnz n3

call insert ; 若所输字符是‘i‘,则调用子程序insert jmp n1

n3: cmp al,'m'

jnz n4

call modify

n4: cmp al,'d'

jnz n5

call delete

n5: cmp al,'e'

jz exit

jmp n1

exit:

mov ah,7

int 21h

mov ah,4ch

int 21h

ret ;退出

query proc near ;查找的主程序

push ds

xor ax,ax

push ax

mov ax,datas

mov ds,ax

mov es,ax

cld ;清除方向标志

lea dx,mess4

mov ah,9

int 21h ;换行

lea dx,mess2

mov ah,9

int 21h

call ipname ;调用子程序ipname,从键盘上输入人名lea dx,mess4

mov ah,9

int 21h

call search ;具体查找的子程序

mov ah,7

int 21h

ret

query endp

ipname proc near ;从键盘输入名字

lea dx,_name ;存放待查找的人名地址

mov ah,10

int 21h

mov bh,0

mov bl,_name+1 ;bl 存放从键盘输入的字符串长度

mov cx,10

sub cx,bx ;计算剩下的长度

r:

mov _name[bx+2],20h ;剩下的地方补空格

inc bx

loop r

ret

ipname endp

search proc near

lea di,buf ;di 中存放表首地址

push di

mov bl,count