欢迎来到天天文库
浏览记录
ID:18730685
大小:49.50 KB
页数:7页
时间:2018-09-20
《通讯录管理系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、通讯录管理系统1分析有哪些功能,要实现什么。设计完成一个通讯录管理系统,能够利用这个系统方便地管理同学的个人信息。可以增加、删除、调入、保存、显示等功能。要求多人配合完成,相互协调好头文件,外部变量,数组类型结构等。要求有三人合作完成。2首先确定数据结构:比如说通讯录管理系统,采用链表的方式来保存数据,而链表的每一个结点就是一个人的信息,对于每一结点人采用结构体组成,每个结点包括三个成员,姓名、电话、指针,这样就可以把所有人的结点串起来了。对应于要实现的功能,这种结构的动作会是什么样呢?初始化,即链表设置为空;增加,找到链表的尾巴后,可以增加一个人的信息;删除,找到某
2、人的结点,把它删除了;保存,可以把内存中的链表按指定的名字保存;调入,清除内存中链表,然后把文件中的内容调入进来;显示,显示内存链表中的数据。(想改变什么内容,就把内容的地址传过去,这点不能动摇)注意确定链表的结构非常重要。一般在主程序中有两种方式保存链表的头。第一种是定义一个头结点,然后把头结点的地址传过去,这样在子函数中可以很方便地使用p->name等操作了;第二种是定义一个头指针,然后把头指针的地址传过去,这样注意传递的时候是传的二级指针,在形参定义的时候要注意,另外,在子函数中的使用应该是(*p)->name,这样才行,在出子函数之前,要确定一下(*p)里放的
3、内容是头打针内容,这样返回主函数是放心的。第二种方式定义有一点麻烦,也可以直接传递头指针的内容,然后每次在可能修改头打针的函数中返回的时候把头再返回回来给主函数的头指针也可以。(注明在本程序中就是这样用的)3程序的格式(1)建立头文件HEAD.C。包括以下内容:包括的系统库函数都写进来。#include#include#include#include节点的数据结构写进来。typedefstructaddress{charname[18];chartel[20];structaddress*ne
4、xt;}addr;宏定义写进来。#defineLENsizeof(addr)/*后面没有分号*/#defineASK(p)do{p=(addr*)malloc(sizeof(addr));if(p==NULL){printf("memeryfail");exit(-1);}}while(0)外部变量声明写进来。7externintsaveid;自己定义的函数声明写进来。注意:凡是需要返回指针的函数前面要定义好,比如初始化,增加节点,删除节点,释放节点,文件中读出节点都要ADDR*,传入的参数统一就为头指针。(目前我这个例子中采用的是传递头指针变量的值,所以注意返
5、回一个头地址回来)addr*aini(addr*top);addr*aadd(addr*top);addr*adel(addr*top);voidadisplay(addr*top);intasave(addr*top);voidafind(addr*top);addr*aread(addr*top);voidalink();voidaquit();addr*afree(addr*top);(2)主程序为MAIN.C。系统有初始化,增加,删除,显示,保存,调入等功能。请分配好各人的负责范围,如果需要自己编写函数的,可以在自己的文件中自行调用,如调入模块LOAD,需要两
6、种模式:覆盖和追加,如果为了程序更加清楚,可以考虑在自己的文件中写这两个函数。#include"head.c"intsaveid=0;main(){addr*top=NULL;for(;;)switch(menu_select()){case1:top=aini(top);break;case2:top=aadd(top);break;case3:amodify(top);break;case4:adisplay(top);break;case5:afind(top);break;case6:top=adel(top);break;case7:alink(top);b
7、reak;case8:asave(top);break;case9:top=aread(top);break;case0:aquit(top);}}7intmenu_select(){chars[2];intcn;clrscr();printf("");printf("ttconnectionbookmanager");printf("tt1ini2add");printf("tt3mod4dis");printf("tt5fin6del");printf("tt7link8sav");
此文档下载收益归作者所有