【C语言】通讯录制作

//此部分为该通讯录头部(head.h)
#ifndef _CONTACT__
#define _CONTACT__

#define NAME_MAX 20
#define SEX_MAX 5
#define TEL_MAX 11
#define ADDR_MAX 20
#define PERSON_MAX 1000

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

typedef struct person
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tel[TEL_MAX];
	char addr[ADDR_MAX];
}*pPerson;

typedef struct contact
{
	struct person TelBook[PERSON_MAX];
	int count;
}*pCon;

void add_peo(pCon pcon);
void del_peo(pCon pcon);
void search_peo(pCon pcon);
void modil_peo(pCon pcon);
void show_peo(pCon pcon);
void clear_peo(pCon pcon);

#endif

//此部分为通讯录最重要部分,即功能函数(contact.c)

#include "head.h"

int find(pCon pcon,char *name)
{
	int i=0;
	for(i=0;i<pcon->count;i++)
	{
		if(strcmp((pcon->TelBook[i]).name,name)==0)
			return i;
	}
	return -1;
}
void add_peo(pCon pcon)
{
	if((pcon->count)==PERSON_MAX)
		printf("通讯录已满,请删除后再添加。\n");
	printf("姓名:");
	scanf("%s",(pcon->TelBook[pcon->count]).name);
	printf("性别:");
	scanf("%s",(pcon->TelBook[pcon->count]).sex);
	printf("年龄:");
	scanf("%d",&(pcon->TelBook[pcon->count]).age);
	printf("电话:");
	scanf("%s",(pcon->TelBook[pcon->count]).tel);
	printf("家庭住址:");
	scanf("%s",(pcon->TelBook[pcon->count]).addr);
	pcon->count++;
}
void del_peo(pCon pcon)
{
	int ret=0;
	char peoplename[NAME_MAX];
	printf("请输入您要删除的联系人:");
	scanf("%s",peoplename);
	ret=find(pcon,peoplename);
	if(ret==-1)
	{
		printf("联系人不存在。\n");
	}
	else
	{
		int j;
		for(j=ret;j<pcon->count-1;j++)
		{
			pcon->TelBook[j]=pcon->TelBook[j+1];
		}
		printf("删除联系人成功。\n");
	}
	pcon->count--;
}
void search_peo(pCon pcon)
{
	int ret=0;
	char peoplename[NAME_MAX];
	printf("请输入您要查找的联系人:");
	scanf("%s",peoplename);
	ret=find(pcon,peoplename);
	if(ret==-1)
	{
		printf("联系人不存在。\n");
	}
	else
	{
		printf(" %s\t",(pcon->TelBook[ret]).name);
		printf(" %s\t",(pcon->TelBook[ret]).sex);
		printf(" %d\t",(pcon->TelBook[ret]).age);
		printf(" %s\t",(pcon->TelBook[ret]).tel);
		printf(" %s\n",(pcon->TelBook[ret]).addr);
	}
}
void modil_peo(pCon pcon)
{
	int ret=0;
	char peoplename[NAME_MAX];
	printf("请输入您要修改的联系人:");
	scanf("%s",peoplename);
	ret=find(pcon,peoplename);
	if(ret==-1)
	{
		printf("联系人不存在。");
	}
	else
	{
		printf("姓名:");
		scanf("%s",(pcon->TelBook[ret]).name);
		printf("性别:");
		scanf("%s",(pcon->TelBook[ret]).sex);
		printf("年龄:");
		scanf("%d",&(pcon->TelBook[ret]).age);
		printf("电话:");
		scanf("%s",(pcon->TelBook[ret]).tel);
		printf("家庭住址:");
		scanf("%s",(pcon->TelBook[ret]).addr);
	}
}
void show_peo(pCon pcon)
{
	int i;
	for(i=0;i<pcon->count;i++)
	{
		printf(" %d.%s\t",i+1,(pcon->TelBook[i]).name);
		printf(" %s\t",(pcon->TelBook[i]).sex);
		printf(" %d\t",(pcon->TelBook[i]).age);
		printf(" %s\t",(pcon->TelBook[i]).tel);
		printf(" %s\n",(pcon->TelBook[i]).addr);
	}
}
void clear_peo(pCon pcon)
{
	pcon->count=0;
	printf("通讯录已清空。\n");
}

//此部分为通讯录测试部分,即main函数部分(test.c)

#include "head.h"

void print()
{
	printf("    ************************************************************************\n");
	printf("    ||                                                                    ||\n");
	printf("    ||        1. 添加联系人        2. 删除联系人        3.查找联系人      ||\n");
	printf("    ||        4. 修改联系人        5. 显示联系人        6.清空联系人      ||\n");
	printf("    ||                                                                    ||\n");
	printf("    ************************************************************************\n");
}

int main ()
{
	struct contact my_contact;
	int input;
	my_contact.count=0;
	while(1)
	{
		print();
		printf("请选择操作:");
		scanf("%d",&input);
		switch(input)
		{
			case 1:
				add_peo(&my_contact);
				break;
			case 2:
				del_peo(&my_contact);
				break;
			case 3:
				search_peo(&my_contact);
				break;
			case 4:
				modil_peo(&my_contact);
				break;
			case 5:
				show_peo(&my_contact);
				break;
			case 6:
				clear_peo(&my_contact);
				break;
			default:
				printf("操作错误\n");
				break;
		}
	}
	return 0;
}

添加联系人

删除联系人

查找联系人

修改联系人

显示联系人

清空联系人

时间: 2024-12-27 22:39:07

【C语言】通讯录制作的相关文章

Swift语言学习---------高级之简单通讯录制作

效果图: 文件目录: 示例代码如下: Contact.swift import UIKit class Contact: NSObject { //声明属性 var name:String? var phone:String? var gender:String? var age:String? //初始化方法 init(name:String ,phone:String,gender:String,age:String){ self.name = name self.phone = phone

通讯录制作(.csv文件转.vcf文件即vcard格式)

问题:大量表格形式的通讯录信息需要导入手机通讯录,一个个导入太繁琐,制作vcard格式文件批量导入联系人. 解决方案:将批量的表格联系人制作为手机可以识别的.vcf后缀的vcard文件,手机联系人从文件添加. Step1 制作.csv格式通讯录: excel 制作通讯录表格,类别可设置为:姓名,电话,邮箱,备注等 制作完成后保存为.csv格式.(此格式将内容以逗号隔开,可以用记事本打开,看格式是否正确,但要修改通讯录时还需用excel再次进行修改保存) 工具(163邮箱 亲测可行:qq邮箱,不能

C语言 通讯录

实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 main.c #include "contact.h" //查找联系人,返回下标: int find(pCon pcon,char *name) { int i=0; while(i < pcon->num) {

c 语言 通讯录 写入文本文件(含读取,删除某行,修改某行)

/*   实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址   提供方法: 1.  添加联系人信息 2.  删除指定联系人信息 3.  查找指定联系人信息 4.  修改指定联系人信息 5.  显示所有联系人信息 6.  清空所有联系人  7.  显示文本电话簿信息  */ //头文件 #ifndef __PHONE_BOOK_H__ #define __PHONE_BOOK_H__ typedef struct phone_book { c

C语言通讯录系统——C语言单向链表实现

实现的通讯录功能有:查看通讯录.添加联系人.删除联系人.查询联系人.保存并退出. 通过txt文件保存和读取通讯录数据. #include <stdio.h> #include <string.h> #include <Windows.h> void showMenu(); void initL(); void addPerson(); void displayPersons(); void deletePerson(); void saveList(); void se

C语言做一个通讯录程序(在console里面运行)

最近复习C语言的时候看到网上有个C语言通讯录的小项目,于是看了下那个程序实现的大概的功能,然后自己也跟着做了个.代码还算简洁,贴上来给有需要的人. 1 // 2 // main.m 3 // AdressBook 4 // 5 // Created by bestkayle on 15/8/8. 6 // Copyright (c) 2015年 bestkayle. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>

初学django搭建一个通讯录应用

---恢复内容开始--- django搭建一个通讯录应用 一.环境介绍 window10 64位 Django-1.5.12 python 2.7 Sqlite3 二.基本安装 python2.7安装教程地址:http://jingyan.baidu.com/article/19192ad8399a62e53e5707e0.html Django安装教程地址:http://www.runoob.com/django/django-install.html SQLite3安装教程: 下载地址:ht

第七届R语言会议 - 小记

第七届中国R语言会议 小记 R语言始于1993年,并在1995年首次发布,后来经过2000年R-1.0,2004年R-2.0和2013年R-3.0,以61%的得票荣登世界编程或同积累语言排行榜榜首,远超Python,SQL,SAS,JAVA,Excel和Rapidminer. R最初是一种基于数学的脚本语言,前身为S语言.但是论数学,远不及专业的Matlab和SAS:论脚本功能,又远不及Python和Perl.但是,随着R语言的发展,在功能强大的IDE,RStudio和R本身开源的双重帮助下,R

【大话QT之十四】QT实现多语言切换

功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言包. 实现方法: 为了支持国际化最关键的地方是制作多国语言包,然后再实现动态切换.QT里面既可以采用命令行也可以采用Qt Creator的界面操作来生成,这里我们利用Qt Creator来生成多国语言包.基本流程是,先生成ts文件,然后生成qm文件,最后通过QTranslator类来加载qm文件,实