【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
来源:互联网 发布:java 生成jar包命令 编辑:程序博客网 时间:2024/05/22 00:29
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#define NAME_MAX 10#define SEX_MAX 3#define AGE_MAX 100#define TEL_MAX 15#define ADDR_MAX 20#define PEOPLE_MAX 1000typedef struct LINK{ char name[NAME_MAX]; char sex[SEX_MAX]; int age; char tel[TEL_MAX]; char addr[ADDR_MAX];}linkman;typedef struct PEOPLE{ int num; linkman count[1000];}*people;int search(people cou, char *name){ int i = 0; for (; i < cou->num; i++) { if (strcmp(name, (cou->count[i]).name) == 0) return i; } return -1;}void add_linkman(people cou)//添加联系人{ if (cou->num == 1000) { printf("该通讯录已满,无法录入信息!\n"); } printf("please input name>:\n"); scanf("%s", (cou->count[cou->num]).name); printf("please input the sex>:\n"); scanf("%s", (cou->count[cou->num]).sex); printf("please input the age>:\n"); scanf("%d", &(cou->count[cou->num]).age); printf("please input the telephone>:\n"); scanf("%s", (cou->count[cou->num]).tel); printf("please input the address>:\n"); scanf("%s", (cou->count[cou->num]).addr); cou->num++;}void delete_linkman(people cou)//删除联系人{ char name[NAME_MAX]; int i = 0; if (cou->num == 0) { printf("该通讯录已空,无法删除信息!\n"); return; } printf("请输入要删除人的名字>:"); scanf("%s", &name); printf("\n"); int ret = search(cou, name); if (ret == -1) { printf("此人不存在,删除失败!\n"); } else { for (i = ret; i < cou->num; i++) { cou->count[i] = cou->count[i + 1]; } cou->num--; }}void find_linkman(people cou)//查找联系人{ char name[NAME_MAX]; int i = 0; printf("请输入要查找人的名字>:"); scanf("%s", name); if (cou->num == 0) { printf("当前为空表,查找失败!\n"); return; } int ret = search(cou, name); if (ret != -1) { printf("%s\t%s\t%d\t%s\t%s\n", (cou->count[ret]).name, (cou->count[ret]).sex, (cou->count[ret]).age, (cou->count[ret]).tel, (cou->count[ret]).addr); } else { printf("此联系人不存在,查找失败!\n"); }}void change_linkman(people cou)//修改指定人信息{ char name[NAME_MAX]; int i = 0; printf("请输入要修改人的名字>:"); scanf("%s", name); if (cou->num == 0) { printf("当前为空表,查找失败!\n"); return; } int ret = search(cou, name); if (ret != -1) { printf("please input name again>:\n"); scanf("%s", (cou->count[ret]).name); printf("please input the sex>:\n"); scanf("%s", (cou->count[ret]).sex); printf("please input the age>:\n"); scanf("%d", &(cou->count[ret]).age); printf("please input the telephone>:\n"); scanf("%s", (cou->count[ret]).tel); printf("please input the address>:\n"); scanf("%s", (cou->count[ret]).addr); }}void display_linkman(people cou)//显示所有联系人{ int i = 0; if (cou->num == 0) { printf("当前为空表,显示失败!\n"); return; } for (i = 0; i < cou->num; i++) { printf("%s\t%s\t%d\t%s\t%s", (cou->count[i]).name, (cou->count[i]).sex, (cou->count[i]).age, (cou->count[i]).tel, (cou->count[i]).addr); printf("\n"); }}void empty_linkman(people cou)//清空所有联系人{ cou->num = 0;}struct stu{ char name[15];};void name_sort(people cou)//按名字顺序排序所有人{ int i = 0; int j = 0; if (cou->num == 0) { printf("当前为空表,排序失败!\n"); return; } for (i = 0; i < cou->num - 1; i++) { for (j = 0; j < cou->num - i - 1; j++) { if (strcmp(cou->count[j].name, (cou->count[j + 1]).name)>0) { linkman tmp = cou->count[j]; cou->count[j] = cou->count[j + 1]; cou->count[j + 1] = tmp; } } }}void menu(){ printf("************************************\n"); printf("**********1.添加联系人信息**********\n"); printf("********2.删除指定联系人信息********\n"); printf("********3.查找指定联系人信息********\n"); printf("********4.修改指定联系人信息********\n"); printf("********5.显示所有联系人信息********\n"); printf("********6.清空所有联系人************\n"); printf("*******7.以名字排序所有联系人*******\n"); printf("***************0 退出***************\n"); printf("************************************\n");}int main(){ int opp = 1; struct PEOPLE cou; cou.num = 0; while (opp) { menu(); printf("请选择>:"); scanf("%d", &opp); switch (opp) { case 0: exit(EXIT_FAILURE); break; case 1: add_linkman(&cou); break; case 2: delete_linkman(&cou); break; case 3: find_linkman(&cou); break; case 4: change_linkman(&cou); break; case 5: display_linkman(&cou); break; case 6: empty_linkman(&cou); break; default: { printf("输入有误,请重新输入>:\n"); break; } } } system("pause"); return 0;}
如下图(部分截图):
0 0
- 【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
- 用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
- iOS添加、删除通讯录 (清空通讯录)
- 用C语言模拟实现一个通讯录,要求实现其添加、删除、修改、查找、显示和排序联系人信息的功能
- 创建通讯录实现(增,删,查,改,显示,清空)功能
- c语言实现通讯录,包括增加名字,删除信息,查找,修改,排序
- 汇编实现的简单的通讯录系统,有插入,修改,删除,打印,查找功能
- 打造一个在线通信录,实现在线通讯录的显示、添加、删除
- 能够实现添加,修改及删除的通讯录
- 用c语言实现一个通讯录; 通讯录可以存储1000个人的信息,信息包括姓名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系&
- Swift - 添加、修改、删除通讯录联系人
- iOS 全部清空通讯录
- 编写一个可容纳1000人的通讯录(【结构体】静态通讯录的实现)
- 实现通讯录分组排序的一个方法
- Android手机通讯录的读取、添加、删除、查找
- EditText联想通讯录并清空数据
- 通讯录1.0(可实现插入输出)
- sipdroid实现添加通讯录
- 【面试题】C语言:模拟实现内存放置函数memset()
- Context详解
- 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
- 常用正则表达式大全
- 【指针篇】C语言:指针与数组的区别,数组指针与指针数组的剖析。
- 【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
- C语言:使用malloc开辟一个3*4的二维数组,并将内容初始化为1-12.
- jsonString 与bean互转
- C语言:单链表的实现(包括:尾插、尾删、头插、头删、指定位置插入、长度、打印)
- C语言:【单链表】删除一个无头单链表的非尾节点
- Android学习笔记02——EditText
- C语言:【单链表】在无头单链表的一个非头节点前插入一个节点
- C语言:【单链表】逆置反转单链表
- C语言:【单链表】查找单链表的中间节点,要求只能遍历一次