用C语言写了一个简单的通讯录,说简单一是功能简单,二是也没有加读写文件操作,只是作为链表操作的一个练习,希望能给这方面的新手一此引导和帮助。
代码:
				?
			
	
						
						
						
						
						
						
						
																		
    
        
    
        
                        
                
                    
                
                
                
                    
                
                
                
                    
                
                
                
                    
                
                        
    
 																		
						
																		
    
        
 												
						
																		
	
	
		
				
			
																		
						
						
					
				
				                | 
 
								1
 
								2
 
								3
 
								4
 
								5
 
								6
 
								7
 
								8
 
								9
 
								10
 
								11
 
								12
 
								13
 
								14
 
								15
 
								16
 
								17
 
								18
 
								19
 
								20
 
								21
 
								22
 
								23
 
								24
 
								25
 
								26
 
								27
 
								28
 
								29
 
								30
 
								31
 
								32
 
								33
 
								34
 
								35
 
								36
 
								37
 
								38
 
								39
 
								40
 
								41
 
								42
 
								43
 
								44
 
								45
 
								46
 
								47
 
								48
 
								49
 
								50
 
								51
 
								52
 
								53
 
								54
 
								55
 
								56
 
								57
 
								58
 
								59
 
								60
 
								61
 
								62
 
								63
 
								64
 
								65
 
								66
 
								67
 
								68
 
								69
 
								70
 
								71
 
								72
 
								73
 
								74
 
								75
 
								76
 
								77
 
								78
 
								79
 
								80
 
								81
 
								82
 
								83
 
								84
 
								85
 
								86
 
								87
 
								88
 
								89
 
								90
 
								91
 
								92
 
								93
 
								94
 
								95
 
								96
 
								97
 
								98
 
								99
 
								100
 
								101
 
								102
 
								103
 
								104
 
								105
 
								106
 
								107
 
								108
 
								109
 
								110
 
								111
 
								112
 
								113
 
								114
 
								115
 
								116
 
								117
 
								118
 
								119
 
								120
 
								121
 
								122
 
								123
 
								124
 
								125
 
								126
 
								127
 
								128
 
								129
 
								130
 
								131
 
								132
 
								133
 
								134
 
								135
 
								136
 
								137
 
								138
 
								139
 
								140
 
								141
 
								142
 
								143
 
								144
 
								145
 
								146
 
								147
 
								148
 
								149
 
								150
 
								151
 
								152
 
								153
 
								154
 
								155
 
								156
 
								157
 
								158
 
								159
 
								160
 
								161
 
								162
 
								163
 
								164
 
								165
 
								166
 
								167
 
								168
 
								169
 
								170
 
								171
 
								172
 
								173
 
								174
 
								175
 
								176
 
								177
 
								178
 
								179
 
								180
 
								181
 
								182
 
								183
 
								184
 
								185
 
								186
 
								187
 
								188
 
								189
 
								190
 
								191
 
								192
 
								193
 
								194
 
								195
 
								196
 
								197
 
								198
 
								199
 
								200
 
								201
 
								202
 
								203
 
								204
 
								205
 
								206
 
								207
 
								208
						  | 
/* 转贴请注明出处 */
/* 作者:小浦原(ID:blueboy82006) */
/* http://blog.csdn.net/blueboy82006 */
#include <stdio.h> 
#include <stdlib.h> 
#include<string.h> 
#include<ctype.h> 
typedef struct node{ 
char name[12]; 
char phone[13]; 
struct node *next; 
}LNode; 
LNode *h; //头结点 
static int flag=1; //通讯录创建标记 
int CreateNode(void) //创建单循环链表 
{ 
if(flag) 
{ 
LNode *p; 
h=(LNode *)malloc(sizeof(LNode)); 
h->next=NULL; 
p=h; 
flag--; 
return 1; 
} 
else
return 0; 
} 
int InsertNode(void) //插入函数 
{ 
if(!flag) 
{ 
LNode *t; 
char name1[12]; 
char phone1[13]; 
printf("/n输入姓名:"); 
scanf("%s",name1); 
printf("/n输入联系电话:"); 
scanf("%s",phone1); 
t=(LNode *)malloc(sizeof(LNode)); 
strcpy(t->name,name1); 
strcpy(t->phone,phone1); 
t->next=h->next; 
h->next=t; 
return 1; 
} 
else
return 0; 
} 
int SearchNode(void) //查询函数 
{ 
if(!flag) 
{ 
LNode *p; 
int x=0; 
char name1[12]; 
printf("/n输入查询姓名:"); 
scanf("%s",name1); 
p=h; 
printf("/n查询结果:"); 
while(p->next) 
{ 
p=p->next; 
if(strcmp(p->name,name1)==0) 
{ 
printf("/n姓名:%s/n联系电话:%s/n",p->name,p->phone); 
x++; 
} 
} 
if(!x) 
printf("/n没有找到相关信息!"); 
return 1; 
}else
return 0; 
} 
int DeletNode(void) //删除函数 
{ 
if(!flag) 
{ 
LNode *pre,*p; 
char name1[12]; 
p=h; 
printf("/n输入要删除联系人的姓名:"); 
scanf("%s",name1); 
while(p->next) 
{ 
pre=p; 
p=p->next; 
if(strcmp(p->name,name1)==0) 
{ 
pre->next=p->next; 
free(p); 
printf("删除成功!/n"); 
break; 
} 
} 
if(!p->next) 
printf("/n没有找到要删除的信息!"); 
return 1; 
} 
else
return 0; 
} 
int PrintNode(void) //输出函数 
{ 
if(!flag) 
{ 
LNode *p; 
p=h; 
while(p->next) 
{ 
p=p->next; 
printf("/n姓名:%s /t联系电话:%s",p->name,p->phone); 
} 
return 1; 
} 
else
return 0; 
} 
int main() //主函数 
{ 
char n; 
printf("/n/n"); 
printf("/t/t 通讯录/t/n"); 
printf("/t/t|————————————————|/n"); 
printf("/t/t| |/n"); 
printf("/t/t| [1] 建立通讯录 |/n"); 
printf("/t/t| [2] 插入联系人的姓名 |/n"); 
printf("/t/t| [3] 查找联系人的姓名 |/n"); 
printf("/t/t| [4] 删除联系人的姓名 |/n"); 
printf("/t/t| [5] 输出所有联系人信息 |/n"); 
printf("/t/t| [0] 退出 |/n"); 
printf("/t/t| |/n"); 
printf("/t/t| 如未建立新表,请先建立! |/n"); 
printf("/t/t| |/n"); 
printf("/t/t|————————————————|/n"); 
printf("/n"); 
printf("请输入你的选项(0-5):"); 
while(1) 
{ 
scanf("%s",&n); 
while(!(n=='0'||n=='1'||n=='2'||n=='3'||n=='4'||n=='5')) 
{ 
printf("请输入你的选项(0-5):"); 
scanf("%s",&n); 
} 
system("CLS"); 
switch(n) 
{ 
case '0':{ 
printf("/n/t/t感谢您的使用!/n"); 
return 0; 
} 
case '1':{ 
if(CreateNode()) 
printf("通讯录建立成功!/n"); 
else
printf("通讯录已建立,无需重复建立!/n"); 
break; 
} 
case '2':{ 
if(InsertNode()) 
printf("添加成功!/n"); 
else
printf("添加失败,请先创建通讯录!/n"); 
break; 
} 
case '3':{ 
if(SearchNode()) 
printf("/n"); 
else
printf("查找失败,请先创建通讯录!/n"); 
break; 
} 
case '4':{ 
if(DeletNode()) 
printf("/n"); 
else
printf("删除失败,请先创建通讯录!/n"); 
break; 
} 
case '5':{ 
if(PrintNode()) 
printf("/n以上是全部联系人信息./n"); 
else
printf("ERROR,请先创建通讯录!/n"); 
break; 
} 
default:{printf("输入不符合要求!");} 
} 
printf("/n/n"); 
printf("/t/t 通讯录/t/n"); 
printf("/t/t|————————————————|/n"); 
printf("/t/t| |/n"); 
printf("/t/t| [1] 建立通讯录 |/n"); 
printf("/t/t| [2] 插入联系人的姓名 |/n"); 
printf("/t/t| [3] 查找联系人的姓名 |/n"); 
printf("/t/t| [4] 删除联系人的姓名 |/n"); 
printf("/t/t| [5] 输出所有联系人信息 |/n"); 
printf("/t/t| [0] 退出 |/n"); 
printf("/t/t| |/n"); 
printf("/t/t| 如未建立新表,请先建立! |/n"); 
printf("/t/t| |/n"); 
printf("/t/t|————————————————|/n"); 
printf("/n"); 
} 
}
 | 
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
相关文章
             猜你喜欢
        
        - 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
 - 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
 - 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
 - ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
 - ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
 
			TA的动态
			
		
				- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
 - 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
 - 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
 - 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
 - 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
 
快网idc优惠网
QQ交流群
				您的支持,是我们最大的动力!				
			
		
        热门文章
        
    
    - 
            2025-05-29 28
 - 
            2025-05-29 93
 - 
            2025-06-04 85
 - 
            
在 VPS 服务器上部署 DeepSeek 需要什么配置?怎么部署?
2025-05-25 100 - 
            2025-05-27 33
 
		热门评论
	
	
        
    		
            	
        
        