2C语言实现通讯录
Posted kai-liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2C语言实现通讯录相关的知识,希望对你有一定的参考价值。
main函数入口:
//test.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include "address.h" //显示界面 void Interface_Display() { printf("**********通讯录**********\n"); printf("****1.添加联系人信息******\n"); printf("****2.删除指定联系人信息**\n"); printf("****3.查找指定联系人信息**\n"); printf("****4.修改指定联系人信息**\n"); printf("****5.显示所有联系人信息**\n"); printf("****6.清空所有联系人******\n"); printf("****7.按名字排序所有联系人\n"); printf("****8.退出通讯录**********\n"); printf("\n"); printf("请输入要操作的序号:\n"); } int main() { Con pcon; int choice=1; Init(&pcon); while (choice) { Interface_Display(); printf("请选择操作序号:>"); scanf("%d", &choice); switch (choice) { case 1: Insert(&pcon); //插入 system("cls"); //清屏 break; case 2: Delete(&pcon); //删除 system("cls"); break; case 3: Search(&pcon); //查找 break; case 4: Change(&pcon); //修改 system("cls"); break; case 5: Show(&pcon); //打印 break; case 6: Clear(&pcon); break; //清除 case 7: Sort(&pcon); // 以姓名排序 break; case 8: exit(0); //退出 default: printf("输入有误请重新输入!\n"); break; } printf("\n"); } return 0; }
//address.h #pragma once #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_SIZE 1000 typedef struct pCON { char name[20]; //姓名 char sex[2]; //性别 char age[3]; //年龄 char tele[15]; //电话 char address[25] ; //地址 }pCon; typedef struct CONTACT { struct pCON data[MAX_SIZE]; //存储最大容量 int size; //当前存储容量 }Con; void Init(Con* pcon); //初始化 void Insert(Con* pcon); //插入 void Delete(Con* pcon); //删除 void Search(Con* pcon); //查找 void Change(Con* pcon); //更改 void Show(Con* pcon); //打印 void Clear(Con* pcon); //清除 void Sort(Con* pcon); //以姓名排序
//address.c #include"address.h" void Init(Con* pcon) //初始化 { if (pcon == NULL) { printf("非法输入!\n"); return; } pcon->size = 0; } int find(Con *pcon, char *name) //根据姓名查找位置 { int i = 0; for (i = 0; i < pcon->size; i++) { if (strcmp(name, pcon->data[i].name)==0) { return i; } } return -1; } void Insert(Con *pcon) //插入 { if (pcon->size == MAX_SIZE) { printf("通讯录已经满了!\n"); return; } printf("请输入名字:"); scanf("%s", (pcon->data[pcon->size]).name); printf("请输入性别:"); scanf("%s", (pcon->data[pcon->size]).sex); printf("请输入年龄:"); scanf("%s", (pcon->data[pcon->size]).age); printf("请输入电话:"); scanf("%s", (pcon->data[pcon->size]).tele); printf("请输入地址:"); scanf("%s", (pcon->data[pcon->size]).address); pcon->size++; } void Delete(Con *pcon) //删除 { char name[20]; int ret = 0; printf("请输入要删除人的名字:"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { int i = 0; for (i = ret; i < pcon->size-1; i++) { pcon->data[ret] = pcon->data[ret + 1]; } pcon->size--; printf("已删除该联系人\n"); } else { printf("此人不存在,删除失败!\n"); } } void Search(Con *pcon) //查找信息 { char name[20]; int ret = 0; printf("请输入联系人姓名\n"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { printf("姓名:%s 性别: %s 年龄 :%s 电话:%s 地址: %s \n", pcon->data[ret].name, pcon->data[ret].sex, pcon->data[ret].age, pcon->data[ret].tele, pcon->data[ret].address ); } else { printf("没有找到\n"); } } void Change(Con* pcon) //修改 { char name[20]; int ret = 0; printf("请输入联系人姓名:\n"); scanf("%s", name); ret = find(pcon, name); if (ret!=-1) { printf("请输入修改后名字:"); scanf("%s", (pcon->data[ret]).name); printf("请输入修改后性别:"); scanf("%s", (pcon->data[ret]).sex); printf("请输入修改后年龄:"); scanf("%s", (pcon->data[ret]).age); printf("请输入修改后电话:"); scanf("%s", (pcon->data[ret]).tele); printf("请输入修改后地址:"); scanf("%s", (pcon->data[ret]).address); printf("已经修改\n"); } } void Show(Con * pcon) //显示 { if (pcon->size == 0) { printf("通讯录为空!\n"); } int i = 0; for (i = 0; i < pcon->size; i++) { printf("姓名:%s 性别: %s 年龄 :%s 电话:%s 地址: %s \n", pcon->data[i].name, pcon->data[i].sex, pcon->data[i].age, pcon->data[i].tele, pcon->data[i].address ); } } void Clear(Con *pcon) //清除 { pcon->size = 0; } void Sort(Con *pcon) //以名字排序 { int i = 0; int j = 0; for (i = 0; i < pcon->size-1; i++) { for (j = 0; j < pcon->size - i - 1; j++) { if (strcmp(pcon->data[j].name, pcon->data[j + 1].name)>0) { pCon tmp; tmp = pcon->data[j]; pcon->data[j] = pcon->data[j + 1]; pcon->data[j + 1] = tmp; } } } }
以上是关于2C语言实现通讯录的主要内容,如果未能解决你的问题,请参考以下文章