通讯录的简单实现

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int count= 0;

int menu();
void add();
void select();
void modify();
void watch();
void clear();
void name_sort();
void del();

struct people
{
char name[20];
char sex[4];
char age;
char tel[15];
char address[20];
}lest[1000];

int main()
{
while (1)
{
int sel = menu();
switch (sel)
{
case 0: return 0;
break;
case 1: add();
break;
case 2: del();
break;
case 3: select();
break;
case 4: modify();
break;
case 5: watch();
break;
case 6: clear();
break;
case 7:name_sort();
break;
default:
break;
}
}
system("pause");
return 0;
}

int menu()
{
int sel = 0;
printf("****************************************\n");
printf("************欢迎使用通讯录**************\n");
printf("****************************************\n");
printf("** 0.exit *****************************\n");
printf("** 1.添加联系人信息 ********************\n");
printf("** 2.删除指定联系人信息 ****************\n");
printf("** 3.查找指定联系人信息 ****************\n");
printf("** 4.修改指定联系人信息 ****************\n");
printf("** 5.显示所有联系人信息 ****************\n");
printf("** 6.清空所有联系人 ********************\n");
printf("** 7.以名字排序所有联系人 **************\n");
printf("****************************************\n");
printf("请输入您的选择\n");
scanf("%d", &sel);
if (sel<0 || sel>7)
{
printf("输入错误请重新输入!\n");
menu();
}
return sel;
}

void add()
{
printf("请输入姓名:\n");
scanf("%s", &lest[count].name);
printf("请输入性别:\n");
scanf("%s", &lest[count].sex);
printf("请输入年龄:\n");
scanf("%d", &lest[count].age);
printf("请输入电话:\n");
scanf("%s", &lest[count].tel);
printf("请输入住址:\n");
scanf("%s", &lest[count].address);
count++;
printf("添加成功!\n");
}

void select()
{
int i = 0;
int j = count;
char sel_name[20];
printf("请输入要查找的人:\n");
scanf("%s", sel_name);
for (i = 0; i < count; i++)
{
if (strcmp(lest[i].name, sel_name) == 0)
{
printf("姓名:%s\n", lest[i].name);
printf("性别:%s\n", lest[i].sex);
printf("年龄:%d\n", lest[i].age);
printf("电话:%s\n", lest[i].tel);
printf("住址:%s\n", lest[i].address);
break;
}
if (i == count-1)
{
printf("不存在要找的人。\n");
}
}  
}

void modify()
{
int i = 0;
int j = count;
char sel_name[20];
printf("请输入要修改的人:\n");
scanf("%s", sel_name);
for (i = 0; i < count; i++)
{
if (strcmp(lest[i].name, sel_name) == 0)
{
printf("请输入新的姓名:\n");
scanf("%s", &lest[i].name);
printf("请输入新的性别:\n");
scanf("%s", &lest[i].sex);
printf("请输入新的年龄:\n");
scanf("%d", &lest[i].age);
printf("请输入新的电话:\n");
scanf("%s", &lest[i].tel);
printf("请输入新的住址:\n");
scanf("%s", &lest[i].address);
}
}
if (i == count-1)
{
printf("不存在要找的人。\n");
}
}

void watch()
{
int i = 0;
int j = count;
for (i = 0; i <j; i++)
{
printf("姓名:%s\n", lest[i].name);
printf("性别:%s\n", lest[i].sex);
printf("年龄:%d\n", lest[i].age);
printf("电话:%s\n", lest[i].tel);
printf("住址:%s\n", lest[i].address);
}
}

void clear()
{
count = 0;
}

void name_sort()
{
int i = 0;
int j = 0;
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - i - 1; j++)
{
if (strcmp(lest[j].name, lest[j + 1].name)>0)
{
lest[count + 1] = lest[j];
lest[j] = lest[j + 1];
lest[j + 1] = lest[count + 1];
}
}
}
strcpy(lest[count + 1].name, "0");
strcpy(lest[count + 1].sex, "0");
lest[count + 1].age = 0;
strcpy(lest[count + 1].tel, "0");
strcpy(lest[count + 1].address, "0");
watch();
}

void del()
{
int i = 0;
int j = count;
char sel_name[20];
int b = 0;
printf("请输入要删除的人:\n");
scanf("%s", sel_name);
for (i = 0; i < count; i++)
{
if (strcmp(lest[i].name, sel_name) == 0)
{
for (b = i + 1; b < j; b++)
{
strcpy(lest[i].name, lest[i + 1].name);
strcpy(lest[i].sex, lest[i + 1].sex);
lest[i].age = lest[i + 1].age;
strcpy(lest[i].tel, lest[i + 1].tel);
strcpy(lest[i].address, lest[i + 1].address);
}

count--;
}
}
}
时间: 2024-12-28 11:04:31

通讯录的简单实现的相关文章

手机故障手机通讯录被删除了怎么恢复

                                                  手机故障手机通讯录被删除了怎么恢复 通讯录是人们存下对方联系方式的一个重要途径,万一手机坏了或者不小心将手机的通讯录删除了对自己是一个重大的损失,万一有一个重要的客户那你丢的就不止通讯录这么简单了!那么怎么才能找回被误删或者不小心弄丢的通讯录呢?!下面我们就一起来了解下 吧.怎样恢复苹果手机通讯录?其实最方便快捷的方法就是利用软件的帮助是很快捷就能找回来的. 2017年最新的信息恢复软件天盾微信聊

UITableView全面解析

本文转自:http://www.cocoachina.com/ios/20140922/9710.html 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 1.基本介绍 2.数据源 3.代理 4.性能优化 5.UITableViewCell 6.常用操作

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

IOS开发系列--UITableView使用全面解析

--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 基本介绍 UITableVie

iOS开发系列--UITableView全面解析

概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 基本介绍 UITableView有两种风格:UITableViewSt

iOS开发之UITableView全面解析

在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 1.基本介绍 2.数据源 3.代理 4.性能优化 5.UITableViewCell 6.常用操作 7.UITableViewController 8.MVC模式   基本介绍 UITableView有两种风

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

UI第十八节——UITableView

在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,基本大部分应用都有UITableView.当然它的广泛使用自然离不开它强大的功能,今天就针对UITableView重点展开讨论. 1.UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped. 一.如何选择grouped Or Plain 1.grouped的sectionHeader,sectionFooter的背景色默认