1、完成按姓名删除通讯信息应提供一个界面来调用各个功能调用界面和各个功能的操作界面应尽可能清晰美观! 四问题分析:此程序主要运用到了文本文件的打开和读取,文件中存取信息的格式为结构体数组,一个主函数下面分为六个子函数,用户可在汉语的提醒下进行有关操作,此程序运行的前提是必须首先在编译器的子文件中建立一个文本文件,则可以在运行程序的过程中对这个文本文件进行相关读取。读取文件是通过(fp=fopen(filename”w”)=NULL等语句来完成,文件内数据的位置是有主函数中定义的指针fp来找的,在此函数中还用到了循环语句while在加上(!feof(fp)语句用于查找文件中的数据。此程序没用到链表,
2、故语言简单,但用文件的方法来创建一个通讯录有其不足之处,在总结中将一一说明。1,段定义(segment)1)代码段(data segment)变量的定义和预置:data segment学生通讯录界面信息变量出错信息变量变量结构体定义(student struc) student struc num db 00name db 15 dup(?)address db 50 dup(?student ends 宏定义(名字 macro.endm) show macro address ;界面显示light_m1 macro a ;光标位置light_m2 macro light_m3 macro c
3、lear macro ;当前显示页面上滚clear1 macro clear2 macroagain_1 macro ;空格newline macro ;换行show_item macro address ;显示信息local next1next2 getin macro addresscount ;读入信息local lp1lp2input_endexit 2)数据段定义code segment main proc farassume cs:codeds:dataes:data3)startstart:mov axdatamov dsaxmov ah0mov al3int 10h 通讯录界面
4、(show)选择操作:添加(i)删除(d)查询(q)列表(排序)(l)退出(e)具体操作:insert proc near ;插入query proc near ;查询delete proc near ;删除list proc near ;游览列表4)code ends ;程序结束end start五总体设计: 数据结构依据给定的通讯录信息和数据格式,链表结点必须用结构实现。结构类型的层次结构:typedef struct /*定义数据结构*/);char name20; /*姓名*/char sex20; /*性别*/char age20; /*年龄*/char number; /*学号*/
5、char units20; /*单位*/char tele12; /*电话*/char qq10; /*qq号码*char E_Mail; /*邮箱*/模块划分 主函数main()输入记录enter(ADDRESS t);显示记录void list(ADDRESS tint n);按姓名查找显示记录void search(ADDRESS tint n);删除记录int delete(ADDRESS tint n);插入记录int add(ADDRESS tint n);记录保存为文件void save(ADDRESS tint n); /从文件中读记录int load(ADDRESS t);按
6、序号查找显示记录void display(ADDRESS t);按姓名排序void sort(ADDRESS tint n);快速查找记录void qseek(ADDRESS tint n);文件复制void copy();显示单条记录void print(ADDRESS temp);查找函数 int find(ADDRESS tint nchar *s) ;主菜单函数int menu_select();程序总体框架六编写源代码:源程序代码:#include conio.hstdio.hstdlib.hstring.hctype.h#define M 50typedef structchar
7、name15;char sex4;char age4;char number20;char units15;char tele20;char qq15;char E_Mail10;ADDRESS;int enter(ADDRESS t);int find(ADDRESS t,int n,char *s) ;int i;ADDRESS adrM;int length;clrscr();while(1)switch(menu_select()case 0:length=enter(adr);break;case 1:list(adrlength);case 2:search(adrlength);
8、case 3:length=delete(adrlength);case 4:length=add(adrlength); break;case 5:save(adrlength);case 6:length=load(adr);case 7:display(adr);case 8:sort(adrlength);case 9:qseek(adrlength);case 10:copy();case 11:exit(0);menu_select()char s80;int c;textbackground(15);textcolor(2);gotoxy(2612);cprintf(DZ0503
9、 Names gotoxy(2514); Yicheng Zhang textcolor(4);gotoxy(125);press any key enter menu.ngetch();gotoxy(11);*DZ0503 Names*nnprintf( 0. Enter recordn 1. List the filen 2. Search record on namen 3. Delete a recordn 4. add record n 5. Save the filen 6. Load the filen 7. display record on ordern 8. sort to
10、 make new filen 9. Quick seek recordn 10. copy the file to new filen 11. Exitn*ndon Enter you choice(011):scanf(%ss);c=atoi(s);while(c11);return c;int enter(ADDRESS t)int in;char *s;nplease input num n%d&n);please input record nnn*DZ0503 Names Address*nntname:ntex:ntage:ntnumber:ntunits:nttele:ntqq:ntE_Mail:-nvoid list(ADDRESS tint n) namen sexn agen numbern unitsn telen qqn E_Mailnreturn n;Press any key continue.n*end*nvoid search(ADDRESS tint n)char s20;please search nameni=find(tns);if(in-1)not foundnelseprint(ti);void print(ADDRESS temp)nn*n%-20s%-30s%-10sntemp.name);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1