通讯录小程序(C/C++)C语言练习小程序
2016-06-05 10:57
417 查看
实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
实现功能:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人
程序说明:
分模块实现
Phonelist.h 头文件——存放函数声明
fun.c ——函数实现
test.c——主函数
!Phonelist.h!
650) this.width=650;" title="2.png" style="float:none;" alt="wKiom1ZZz1HSoxTdAAAzy28bd9c963.png" src="http://s1.51cto.com/wyfs02/M01/76/B4/wKiom1ZZz1HSoxTdAAAzy28bd9c963.png" />
650) this.width=650;" title="3.png" style="float:none;" alt="wKioL1ZZz7TD8KRoAAApWYm3ZPI510.png" src="http://s4.51cto.com/wyfs02/M00/76/B3/wKioL1ZZz7TD8KRoAAApWYm3ZPI510.png" />
650) this.width=650;" title="4.png" style="float:none;" alt="wKiom1ZZz1LRSg8OAAAqKkvyl1s226.png" src="http://s4.51cto.com/wyfs02/M02/76/B4/wKiom1ZZz1LRSg8OAAAqKkvyl1s226.png" />
650) this.width=650;" title="5.png" style="float:none;" alt="wKioL1ZZz7SyVxegAAAVmiIAXQo740.png" src="http://s4.51cto.com/wyfs02/M01/76/B3/wKioL1ZZz7SyVxegAAAVmiIAXQo740.png" />
650) this.width=650;" title="6.png" style="float:none;" alt="wKiom1ZZz1ORfTdHAAAwPgfxn5E138.png" src="http://s1.51cto.com/wyfs02/M00/76/B4/wKiom1ZZz1ORfTdHAAAwPgfxn5E138.png" />
650) this.width=650;" title="7.png" style="float:none;" alt="wKioL1ZZz7XgxWsxAAAUWNtgeT0598.png" src="http://s4.51cto.com/wyfs02/M02/76/B3/wKioL1ZZz7XgxWsxAAAUWNtgeT0598.png" />
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
实现功能:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人
程序说明:
分模块实现
Phonelist.h 头文件——存放函数声明
fun.c ——函数实现
test.c——主函数
!Phonelist.h!
; int Age; char Sex[3]; //男/女 char Tele[13]; char Address[20]; //struct PHONE *next; }PHONE,*Phone; void ADD(PHONE *p);//添加 int DEL(Phone p, char*);//删除 void SEEK(Phone p, char *);//查找 void REVISE(Phone p, char *);//修改 void SHOW(Phone p);//显示 void FREE_ALL(Phone p);//清空 void SORT(Phone p, const size_t );//用快排排序必须将结构体第一个成员设为 Name,才可以实现 void menu(); #endif //__ARROPT_H__fun.c ——函数实现 //fun.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include"Phonelist.h" #define MAX 1000 //通讯录最大存储人数 //*****************添加************** void ADD(Phone p) { printf("请输入要录入联系人的姓名\n"); scanf_s("%s", p->Name, 10);//用scanf_s 函数实现字符串的输入 printf("请输入要录入联系人的性别(男/女)\n"); scanf_s("%s", p->Sex,3); printf("请输入要录入联系人的年龄\n"); scanf_s("%d", &p->Age); printf("请输入要录入联系人的电话\n"); scanf_s("%s",p->Tele, 13); printf("请输入要录入联系人的住址\n"); scanf_s("%s", p->Address, 20); } //****************删除************************** int DEL(Phone p,char *name) { int i = 0; int tmp = 0; Phone j = p; while (i++ < MAX) { if (strcmp(j->Name, name) == 0) { j->Age = 0; tmp = 1; break; } j++; } if (tmp == 1) { printf("%s信息删除成功!\n", name); return 1; } else { printf("%s信息删除失败,无此人!\n", name); return 0; } } //*********查找************* void show_one(Phone j) { printf("Name: %s  ]test.c——主函数 #include<stdio.h> #include<stdlib.h> #include<string.h> #include"Phonelist.h" #define MAX 1000 PHONE PEO[MAX] = {0}; int main() { int choose = 1; int i = 0; int ret = 0; while (choose) { menu(); scanf_s("%d", &choose); char name[10]; if (choose >= 0 && choose < 8) { switch (choose) { i = 0; case 1: if (PEO[i].Age == 0 && i < MAX)//设:若Age信息为"0"则对应信息为空 ADD(&PEO[i++]); break; case 2: printf("请输入要删除学生的名字\n"); scanf_s("%s", name, 10); ret = DEL(PEO, name); if (ret == 1) i--; break; case 3: printf("请输入要查找学生的名字\n"); scanf_s("%s", name, 10); SEEK(PEO, name); break; case 4: printf("请输入要修改学生的名字\n"); scanf_s("%s", name, 10); REVISE(PEO, name); break; case 5: SHOW(PEO); break; case 6: FREE_ALL(PEO); break; case 7: SORT(PEO, i - 1); printf("排序结果: \n"); SHOW(PEO); break; default: break; } } } system("pause"); return 0; }650) this.width=650;" title="1.png" style="float:none;" alt="wKiom1ZZz1HiQ9IKAAA6208brTU289.png" src="http://s4.51cto.com/wyfs02/M00/76/B4/wKiom1ZZz1HiQ9IKAAA6208brTU289.png" />
650) this.width=650;" title="2.png" style="float:none;" alt="wKiom1ZZz1HSoxTdAAAzy28bd9c963.png" src="http://s1.51cto.com/wyfs02/M01/76/B4/wKiom1ZZz1HSoxTdAAAzy28bd9c963.png" />
650) this.width=650;" title="3.png" style="float:none;" alt="wKioL1ZZz7TD8KRoAAApWYm3ZPI510.png" src="http://s4.51cto.com/wyfs02/M00/76/B3/wKioL1ZZz7TD8KRoAAApWYm3ZPI510.png" />
650) this.width=650;" title="4.png" style="float:none;" alt="wKiom1ZZz1LRSg8OAAAqKkvyl1s226.png" src="http://s4.51cto.com/wyfs02/M02/76/B4/wKiom1ZZz1LRSg8OAAAqKkvyl1s226.png" />
650) this.width=650;" title="5.png" style="float:none;" alt="wKioL1ZZz7SyVxegAAAVmiIAXQo740.png" src="http://s4.51cto.com/wyfs02/M01/76/B3/wKioL1ZZz7SyVxegAAAVmiIAXQo740.png" />
650) this.width=650;" title="6.png" style="float:none;" alt="wKiom1ZZz1ORfTdHAAAwPgfxn5E138.png" src="http://s1.51cto.com/wyfs02/M00/76/B4/wKiom1ZZz1ORfTdHAAAwPgfxn5E138.png" />
650) this.width=650;" title="7.png" style="float:none;" alt="wKioL1ZZz7XgxWsxAAAUWNtgeT0598.png" src="http://s4.51cto.com/wyfs02/M02/76/B3/wKioL1ZZz7XgxWsxAAAUWNtgeT0598.png" />
相关文章推荐
- 笔试,面试,C/C++,判断单链表是否带环?若带环,求环长度,求环入口点(两种方法)
- <笔试><面试>C/C++单链表相关(4)判断两链表是否相交,求交点(链表不带环/可能带环)
- <笔试><面试>C/C++单链表(最综合)最全工程从建立到相关函数实现
- C/C++为什么要短路求值?
- VS2015报错:值不能为null参数名:solutionDirectory(visual studio 2015环境下运行C/C++)
- C语言格式控制符
- C++模板详解
- C语言的字符串(篇章之一)
- MFC如何用模拟发送一个伪消息
- 浅谈C语言中的布尔(bool)类型
- 记录一些小点 [随时更新] [神犇勿进] (1)
- C++第七次上机作业
- c++第7次实验——特殊三位数
- Kth Smallest Element in a BST
- C++标准库的数值极限numeric_limits
- C语言实现单链表
- C++实现双向链表
- C++实现单链表
- C++实现动态顺序表
- C++实现 复数类