C语言实现通讯录管理系统:分组与链表应用

创始人
2024-12-31 11:21:05
0 次浏览
0 评论

用c语言编写一个通讯录,并对他进行增加,查询,删除,修改,显示记录等操作,要写出源代码并画出流程图

这是我整理的利用分组和链表两个功能实现的通讯录,基本可以满足你的要求了!!代码如下:#include"stdlib.h"#defineNEW(structnode*)malloc(sizeof(structnode))structstudent{charname[10],tel[11];}a[20];structionnode{charname[20],tel[11];structnode*next;};main(){structstudent*jianli(),*delete(structstudent*);structstudent*charu(structstudent*);voidxianshi(structstudent*);structnode*create(),*delnode(structnode*,char*);structnode*insert(structurnode*,structnode*,char*);voidprlist(structnode*);structstudent*p;structnode*head=NULL,*stu;chars[80],name[20],q[80];intc,w;a:;system("cls");printf("\n选择输入\n");printf("1.SHUZU\n2.LIANBIAO\n0.Quit\n");gets(q);w=atoi(q);switch(w){case1:do{do{printf("---------------------------------------------------------------\n");printf("*********************电话簿****************************\n");printf("----------------------------------------------\n");printf("||<1>Addanote||\n");printf("||<2>显示列表||\n");printf("||<3>删除笔记||\n");printf("||<4>插入||\n");printf("||<0>退出||\n");printf("-----------------------------------------------------------------\n");printf("输入你的选择(0-4):");gets(s);c=atoi(s);}while(c<0>4);system("cls");switch(c){case1:p=jianli();break;case2:xianshi(p);break;case3:printf("\n请putthenamethoddeleted\n");p=delete(p);break;case4:printf("\n请输入新名称\n");p=charu(p);break;}}while(c);gotoa;case2:do{do{printf("-------------------------------------------------\n");printf("*******************电话簿********************\n");printf("-------------------------------------------------------------------------\n");printf("||<1>Addanote||\n");printf("||<2>显示列表||\n");printf("||<3>删除笔记||\n");printf("||<4>插入笔记||\n");printf("||<0>释放||\n");printf("--------------------------------------------\n");printf("输入你的选择(0-4):");get(s);c=atoi(s);}while(c<0>4);system("cls");switch(c){case1:head=create();break;case2:prlist(head);break;case3:printf("\n输入要删除的名称\n");get(name);head=delnode(head,name);break;case4:stu=NEW;printf("\n输入新节点\n");printf("name:");gets(stu->name);printf("电线:");gets(stu->tel);stu->next=NULL;printf("\nInsertposition\n");printf("name:");gets(name);head=insert(head,stu,name);}}while(c);gotoa;}}#include"string.h"structstudent*jianli(){charc1[10],c2[11];inti=0;printf("姓名:");gets(c1);while(strlen(c1)!=0){strcpy(a[i].name,c1);printf("电话:");gets(c2);strcpy(a[i].tel,c2);i++;printf("姓名:");gets(c1);}returna;}#include"string.h"structstudent*delete(structsStudent*p){charc1[10];inti=0,j,l=0;while(strlen(p[i].name)!=0)i++;printf("name:");gets(c1);for(j=0;j<=i+1;j++)if(strcmp(c1,p[j].name)==0){p[j]=p[j+1];l=j;}while(lname,name);printf("tel:");gets(p->tel);p->next=NULL;if(h==NULL)h=p;next->next=p;q=p;printf("name:");gets(name);}returnh;}structnode*insert(structnode*head,structnode*p0,char*x){structtnode*p,*q;if(head==NULL){head=p0;p0->next=NULL;}else{p=head;while(strcmp(x,p->name)!=0&&p->next!=NULL){q=p;p=q->next;}if(strcmp(x,p->name)==0){if(p==head)head=p0;elseq->next=p0;p0->下一个=p;}下一个{p->下一个=p0;p0->下一个=NULL;}}returnhead;}​​voidprlist(structnode*head){structnode*p;p=head;printf("name\ttel\n\n");while(p!=NULL){printf("%s\t%s\n",p->姓名,p->电话);p=p->下一个;}}structnode*delnode(structnode*head,char*x){structnode*p,*q;if(head==NULL){printf("thisisaemptylist.");returnhead;}​​p=head;while(strcmp(x,p->name)!=0&&p->next!=NULL){q=p;p=p->next;}if(strcmp(x,p->name)==0){if(p==head)head=p->next;elseq->next=p->next;free(p);}elseprintf("未找到。
");返回标头;}

C语言程序设计,通讯录管理系统

/*【用C语言编写一个电话本管理程序,具有数据录入、修改、删除、显示、查询功能】1、数据包括:人名、工作单位、电话号码、电子邮箱地址。
2.记录中的姓名和电话号码可以修改。
3.可以添加或删除记录。
4.可以显示所有保存的记录。
5.您可以按姓名或电话号码进行搜索。
其他:使用结构体数组和文件系统实现。
该结构包括姓名、工作单位、电话号码和电子邮件。
这绝对是原创的。
2010年7月12日晚上编写并测试,纯C语言。
*/#include#include#include#defineszSTR64#definefileDB"c:\contact.txt"structCONTACT{charname[szSTR];/*名称*/charunit[szSTR];/*工作单位*/chartele[szSTR];/*电话号码*/charmail[szSTR];/*邮箱*/};typedefstructCONTACTCON;#defineBNAME1#defineBUNIT2#defineBTELE4#defineBMAIL8#defineBFULL0xFFintOPER[5]={BFULL,BNAME,BUNIT,BTELE,BMAIL};voidinput(CON*s,intmask){if(mask&BNAME){printf("请命名学生输入:");scanf("%s",s->name);}if(mask&BUNIT){printf("请输入函数unit:");scanf("%s",s->unit);}if(mask&BTELE){printf("请输入您的联系电话:");scanf("%s",s->tele);}if(mask&BMAIL){printf("请输入您的邮箱:");scanf("%s",s->mail);}}/*endinput*/voidshow(intid,CON*s){if(!s)return;if(id)printf("%d\t%s\t%s\t%s\t%s\n",id,s->姓名,s->单位,s->电话,s->邮件);elseprintf("[姓名]%s[工作单位]%s[电话]%s[电子邮件]%s\n",s->姓名,s->单位,s->电话,s->邮件);/*endif*/}/*endshow*/voidregist(void){CONs;FILE*f=0;input(&s,BFULL);f=fopen(fileDB,"ab");fwrite(&s,sizeof(s),1,f);fclose(f);printf("数据已保存保存!*b=0;fpos_tq;if(!s)returnn0;f=fopen(fileDB,"rb");if(!f){printf("数据库中无记录\n");return0;}/*endif*/printf("号码\t姓名\t位\t电话\t电子邮件\n");printf("----------------------------------------------------------\n");while(!feof(f)){fgetpos(f,&q);r=fread(&t,sizeof(t),1,f);if(r<1 xss=clean key){a=strstr(t.name,key);b xss=clean xss=clean if(p)*p=q;if(s)memcpy(s,&t,sizeof(t));i++;show(i,&t);}/*endwhile*/fclose(f);printf( fpos_tquery(CON*s){charkey[szSTR]='' fpos_tp=0;intr key);r=browse(key,&p,s);returnr?p:-1;}/*endquery*/voidclear(void){FILE*f CONs;fpos_tp=查询(&s);if(p return;f=fopen(fileDB, voidmodify(void){FILE*f=0;CONs;intcmd fpos_tp=query(&s);if(p return;f=fopen(fileDB,>\n');}/*endcase*:///*mext*/}/*endclear*/intmain(void){intcmd=0;CONs;for(;;){printf('欢迎访问通讯录!请选择:1-添加;2-查询;3-删除;4-修改;5-输出all;0-退出\n");scanf("%d",&cmd);switch(cmd){case0:return0;case1:regist();break;case2:query(&s);break;case3:clear();打破;情况4:修改();break;case5:browse(0,0,&s);break;}//endcase}return0;}

用C语言编写一个简单的通讯录软件,实现简单的姓名电话邮箱地址的存入与查找。

#include#includeconsintMAX_NAME=99;consintMAX_PHONE=27;consintMAX_ADDR=127;typedefstruct_PersonInfo{charname[MAX_NAME+1];charphone[MAX_PHONE+1];charaddr[MAX_ADDR+1];}个人信息;ID="号码:";constchar*NAME="姓名:";constchar*PHONE="电话:";constchar*ADDR="地址:";consintMAX_NUM=512;PersonInfog_piArry[MAX_NUM];staticintread_line(FILE*fp,char*line,intmax_length){inti;charch;/*初始化indextostring字符*/i=0;/*读取到行尾,将字符串中的字符填充到其最大长度,并忽略、ifany*/for(;;){/*读取下一个字符*/ch=fgetc(fp);/*检查endoffile错误*/if(ch==EOF)return-1;/*检查forendofline*/if(ch=='\n'){/*终止字符串并返回*/line[i]='\0';return0;}/*填充字符串ifitisnotalreadyfull*/if(i='0'){returntrue;}else{returnfalse;}}intIsString(char*szBuff){constantnLen=strlen(szBuff);intnDigitCnt=0;intnPos=0;for(nPos=0;nPosname);fprintf(stderr,"%s",PHONE);printf("%s\n",node->phone);fprintf(stderr,"%s",ADDR);printf("%s\n",node->>addr);}voidmenu_add(){charname[MAX_NAME+1]={0};charphone[MAX_PHONE+1]={0};charaddr[MAX_ADDR+1]={0};intnId=0;do{fprintf(stderr,"%s",ID);scanf("%d",&nId);getchar();}while(nId>=MAX_NUM&&nId<1 intnLen=0;do{fprintf(stderr NAME);fgets(名称,MAX_NAME,stdin);nLen=strlen(名称)-1;名称[nLen] PHONE);fgets(phone,MAX_PHONE,stdin);nLen=strlen(phone)-1;phone[nLen] ADDR);fgets(addr,M​​AX_ADDR,stdin);nLen=strlen(addr)-1;addr[nLen] nId=nId-1;PersonInfo*pi g_piArry[nId];if(0!=strlen(pi->name))){inti=0;for(i=MAX_NUM;i>nId;i--){memcpy(&g_piArry[i],&g_piArry[i-1],sizeof(PersonInfo));}}strcpy(pi->姓名,姓名);strcpy(pi->电话,电话);strcpy(pi->地址,地址);返回;}voidmenu_print(){intn=0;for(n=0;n=MAX_NUM&&nId<1 PersonInfo*pi=&g_piArry[nId];inti for(i=nId-1;i nId);return;}voidmenu_modify(){intnId=0;do{fprintf(stderr,>=MAX_NUM&&nId<1 charname[MAX_NAME+1]={0};charphone[MAX_PHONE+1] charaddr[MAX_ADDR+1]={0};intnLen NAME);fgets(名称,MAX_NAME,stdin);nLen=strlen(name)-1;name[nLen] PHONE);fgets(phone,MAX_PHONE,stdin);nLen=strlen(phone)-1;电话[nLen] ADDR);fgets(addr,M​​AX_ADDR,stdin);nLen=strlen(addr)-1;addr[nLen] nId=nId-1;PersonInfo*pi>姓名,姓名);strcpy(pi->电话,phone);strcpy(pi->addr,addr);return;}voidmenu_detail(){intnId=0;do{fprintf(stderr,"%s",ID);scanf("%d",&nId);getchar();}while(nId>=MAX_NUM&&nId
热门文章
1
JSF架构解析与Java学习资源分享:J... JavaServerFacesJSF体系结构JavaServerFaces(JS...

2
数据结构C语言版深度解析与C语言入门很简... 《数据结构(C语言版)》.严蔚敏吴伟民著.pdf在《数据结构(C语言版)》一书中...

3
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

4
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

5
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

6
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

7
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

8
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

9
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

10
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...