您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 模板--汇编项目说明文档
1WIN32汇编项目——通讯录说明文档1、基本功能通讯录添加功能通讯录查找功能通讯录修改功能通讯录删除功能通讯录整体输出功能2、功能展示2.1.菜单界面图2-1菜单界面2图2-3主程序运行框图2.2通讯录增加功能流程图:示例图2-3选择菜单(添加)判断是否为满不满,接收用户输入已满这返回主菜单将输入的内容存储临时变量里使用movsb将输入内容移动至数组中提示保存成功任意键返回主菜单3功能截图:介绍:1.首先用IsFull判断数组是否为满2.已满返回主菜单43.未满,提示用户输入4.将用于储存用户输入的g_strTemContacts复制进数组g_stContacts中相应位置5.提示保存成功2.3通讯录查找功能流程图:没有查找到没有查找到找找到到功能截图:为空选择菜单(查找)判断是否为空不空,用户选择查询方式为空返回主菜单根据姓名查询根据电话号码查询根据用户输入姓名查找电话根据用户输入电话查找姓名提示该数据不存在并返回主菜单打印该联系人后并返回主菜单5选择查询方式按姓名查询查询结果6号码查询号码查询结果7介绍:1、IsEmpty判断是否为空2、为空返回主菜单3、不为空,提示用户选择查询方法4、用g_strTemContacts中的姓名或者电话号码存储用于检索的姓名或者电话5、找到数据,打印到屏幕上6、未找到数据,返回主菜单2.4通讯录修改功能流程图:选择菜单(修改)查询是否存在存在,接受用输入修改内容不存在返回主菜单提示是否修改8NoYes功能截图:为空时查询存在提示修改成功并返回主菜单直接返回主菜单9输入完成提示是否修改Yes10No直接返回主菜单介绍:1、FindData查询要修改的用户信息是否存在2、不存在返回主菜单3、如果存在提示用户输入要修改为的信息4、g_strTemContacts临时储存用户输入的修改信息5、提示用户是否确认修改6、NO直接返回7、Yes将g_strTemContacts的信息拷贝到g_stContacts相应位置2.5通讯录删除功能流程图:选择菜单(删除)查询是否存在存在,提示是否确认删除不存在返回主菜单11NoYes功能截图:要删除的数据不存在存在提示是否删除提示修改成功并返回主菜单直接返回主菜单12NO直接返回Yes介绍:1、FindData查询要删除的数据是否存在132、不存在返回主菜单3、存在提示是否确认删除4、否,返回主菜单5、是,则将g_stContacts中要删除元素后一个元素覆盖将要删除的元素6、提示删除成功2.5通讯录全部输出功能流程图截图:选择菜单(查看全部联系人)表是否为空不为空,打印全部联系人为空返回主菜单任意键返回主菜单14介绍:1.IsEmpty查看是否为空2.为空,返回主菜单3.不为空遍历数组,将信息打印到屏幕上153、程序代码清单3.1头文件.data;定义结构体CONTACTSSTRUCTstructszNameBYTE25dup(0);姓名szPhoneNumberBYTE12dup(0);号码CONTACTSSTRUCTendsPCONTACTSSTRUCTTYPEDEFPTRCONTACTSSTRUCT;取别名;声明全局变量g_stContactsCONTACTSSTRUCT100dup('0');定义结构体数组CONLengthEQUsizeof(CONTACTSSTRUCT)g_nCountDWORD0;元素个数g_nIndexDWORD0;查询索引g_nMaxCountDWORD100;最大保存元素个数g_strTemContactsCONTACTSSTRUCT'0','0';接收输入信息g_ClsByte'cls',0;清屏参数g_PauseByte'pause',0;暂停(按任意键继续)g_MenuByte'',0dh,0ah,'',0dh,0ah,'通讯录',0dh,0ah,'1.显示全部联系人',0dh,0ah,'2.添加联系人',0dh,0ah,'3.删除联系人',0dh,0ah,'4.修改联系人',0dh,0ah,'5.查询联系人',0dh,0ah,'6.退出',0dh,0ah,'',0dh,0ah,'',0dh,0ah,0g_SelectNumByte0;获取选项16;提示信息g_FullByte'电话簿已满,无法添加',0dh,0ah,0g_EmptyByte'电话簿为空,无法删除查询',0dh,0ah,0g_NameByte'姓名',0dh,0ah,0g_PhoneNumberByte'电话号码',0dh,0ah,0g_ExistByte'要删除的联系人不存在',0g_IsAlterByte'确定修改',0dh,0ah,'1.Yes',0dh,0ah,'2.No',0dh,0ah,0g_IsDeleteByte'确定删除',0dh,0ah,'1.Yes',0dh,0ah,'2.No',0dh,0ah,0g_IsSaveByte'确定保存',0dh,0ah,'1.Yes',0dh,0ah,'2.No',0dh,0ah,0g_SaveSuccessByte'保存成功',0g_FindNoneByte'未找到要数据',0g_DeleteSuccessByte'删除成功',0g_UserNameByte'联系人姓名:',0g_UserPhoneNumberByte'联系人电话号码:',0g_AlterSuccessByte'修改成功',0g_InNameByte'请输入姓名',0g_InPhoneNumberByte'请输入电话号码',0g_InputInfoByte'请输入要添加的姓名和电话',0dh,0ah,'如:小强1313131',0dh,0ah,0g_AlterInfoByte'请输入要修改的姓名和电话',0dh,0ah,'如:小强1313131',0dh,0ah,0g_SelMethodsByte'选择查询方式',0dh,0ah,'1.根据姓名',0dh,0ah,'2.根据号码',0dh,0ah,0;定义格式控制符,用于输入输出时用到的格式控制符g_NextLineByte0dh,0ah,0g_szScanFormatBYTE'%s%s',0g_szScanOneBYTE'%s',0g_szCHByte'%c',0173.2源文件.386.modelflat,stdcalloptioncasemap:none;casesensitiveincludewindows.incincludekernel32.incincludemsvcrt.incincludePhonebook.incincludelibkernel32.libincludelibmsvcrt.libMainproto;主函数ShowMenuproto;显示菜单CleanScreenproto;清屏Pauseproto;暂停按任意键继续GetSelectionproto;获取选项数字IsFullproto;是否已满IsEmptyproto;是否为空ShowALlInfoproto;显示全部联系人ADD_USERproto;添加联系人FindDataproto;查询联系人AlterDataproto;修改联系人RemoveDataproto;删除联系人.codestart:callMainINVOKEExitProcess,0MainprocstartMenu:callCleanScreencallShowMenucallGetSelection18cmp[g_SelectNum],'1'jeShowALcmp[g_SelectNum],'2'jeAddInfocmp[g_SelectNum],'3'jeDelInfocmp[g_SelectNum],'4'jeAltInfocmp[g_SelectNum],'5'jeFinInfocmp[g_SelectNum],'6'jeExitjmpstartMenuShowAL:callShowALlInfojmpstartMenuAddInfo:callADD_USERjmpstartMenuDelInfo:callRemoveDatajmpstartMenuAltInfo:callAlterDatajmpstartMenuFinInfo:callFindDatajmpstartMenuExit:retMainendpIsFullprocmovebx,g_nMaxCountcmpebx,g_nCountjeyesjnenoyes:moveax,1retno:moveax,019retIsFullendpIsEmptyprocmovebx,g_nCountcmpebx,0jeyes;空cmpebx,0jneno;非空yes:moveax,0retno:moveax,1retIsEmptyendpADD_USERPROC;无参数callCleanScreen;清屏callIsFull;查看是否已满cmpeax,1jefullpushoffsetg_InputInfo;printf函数输出信息字符串入栈;pushr/m32(imm32)可以是寄存器或内存或立即数callcrt_printfaddesp,4pushoffsetg_strTemContacts.szPhoneNumberpushoffsetg_strTemContacts.szName;scanf函数后两个参数入栈pushoffsetg_szScanFormat;scnaf函数格式控制符入栈callcrt_scanfaddesp,0chmoveax,[g_nCount]imuleax,CONLengthleaesi,g_strTemContactsleaedi,g_stContactsaddedi,eaxmovecx,CONLengthrepmovsbinc[g_nCount]pushoffsetg_SaveSuccess20callcrt_printfaddesp,4jmpnofull:pushoffsetg_Fullcallcrt_printfaddesp,4no:callPauseretADD_USERendpPauseprocpushoffsetg_Pausecallcrt_systemaddesp,4retPauseendpShowMenuprocpushoffsetg_Menucallcrt_printfaddesp,4retShowMenuendpCleanScreenprocpushoffsetg_Clscallcrt_systemaddesp,4retCleanScreenendpGetSelectionprocpushoffsetg_SelectNumpushoffsetg_szCHcallcrt_scanfaddesp,8retGetSelectionendp21FindDataproccallCleanScreencallIsEmptycmpeax,0jeEmptymov[g_nIndex],0pushoffsetg_SelMethodscallcrt_printfaddesp,4reselect:callGetSelectioncmp[g_SelectNum],'1'jeSel_Namecmp[g_SelectNum],'2'jeSel_PhoneNumjmpreselect;按照电话查询姓名Sel_PhoneNum:pushoffsetg_InPhoneNumbercallcrt_printfaddesp,4;scanf函数pushoffsetg_strTemContacts.szPhoneNumberpushoffsetg_szScanOnecallcrt_scanfaddesp,8movebx,of
本文标题:模板--汇编项目说明文档
链接地址:https://www.777doc.com/doc-2305359 .html