C語言實現簡易通訊錄-創(chuàng)新互聯

目錄

成都創(chuàng)新互聯公司長期為數千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為渝北企業(yè)提供專業(yè)的網站建設、網站制作,渝北網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

1.基本框架的實現

1.1?基本內容test.c

2.?函數的聲明contact.h

3.函數的實現

3.1 初始化/清空聯系人

3.2增加通訊錄的聯系人

3.3展示通訊錄中所以聯系人的信息

3.4通過名字找到指定的聯系人

3.5通過名字搜索聯系人

3.6刪除聯系人

3.7修改聯系人

3.8通過選擇的方式排序聯系人

實現一個通訊錄:

通訊錄可以用來存儲1000個人的信息,每個人的信息包括:姓名、性別、年齡、電話、住址

提供方法:

1.添加聯系人信息
2.刪除指定聯系人信息
3.查找指定聯系人信息
4.修改指定聯系人信息
5.顯示所有聯系人信息
6.清空所有聯系人
7.以名字排序所有聯系人

1.基本框架的實現

我們首先在vs里創(chuàng)建一個test.c? 和 contact .c? 和 contact.h

  1. 我們在test.c來實現這個通訊錄的主體內容
  2. 在contact.c的內容中來完善函數的實現
  3. contact.h的內容是定義一些變量和函數
1.1?基本內容test.c

首先我們需要打印一個菜單


void print_menu()
{
	printf("*************************************************\n");
	printf("******** 1.add           2.search          ******\n");
	printf("******** 3.del           4.modify          ******\n");
	printf("******** 5.show          6.empty           ******\n");
	printf("******** 7.sort          0.exit            ******\n");
	printf("*************************************************\n");
	


}

以上的內容就是我們需要實現的基本功能,接著我們就完善test.c中基本框架的實現

//test.c
#include"contact.h"
//實現一個通訊錄;
//
//通訊錄可以用來存儲1000個人的信息,每個人的信息包括:姓名、性別、年齡、電話、住址
//
//提供方法:
//
//添加聯系人信息
//刪除指定聯系人信息
//查找指定聯系人信息
//修改指定聯系人信息
//顯示所有聯系人信息
//清空所有聯系人
//以名字排序所有聯系人

void print_menu()
{
	printf("*************************************************\n");
	printf("******** 1.add           2.search          ******\n");
	printf("******** 3.del           4.modify          ******\n");
	printf("******** 5.show          6.empty           ******\n");
	printf("******** 7.sort          0.exit            ******\n");
	printf("*************************************************\n");
	


}
void test()
{
	int input = 0;
	Contact con;
	//初始化通訊錄
	init_contact(&con);
	do
	{
		//打印菜單
		print_menu();
		scanf("%d", &input);
		switch (input)
		{
		    case 1:
				//增加函數
				add_contact(&con);
				break;
			case 2:
				//尋找
				search_contact(&con);
				break;
			case 3:
				//刪除聯系人
				del_contact(&con);
				break;
			case 4:
				//修改聯系人
				modify_contact(&con);
				break;
			case 5:
				//展示通訊錄
				show_contact(&con);
			
				break;
			case 6:
				init_contact(&con);
				printf("清除成功\n");
				break;
			case 7:
				sort_contact(&con);
				break;
			case 0:
				printf("退出成功\n");
				break;
			default :
				printf("輸入有誤\n");
				break;
			

		}
		

	} while (input);
}


int main()
{
	test();
	return 0;
}
2.?函數的聲明contact.h

然后需要我們在contact.h中聲明這些函數,并創(chuàng)建好通訊錄需要的內容,就可以用結構體來實現。

//contact.h
#pragma once
#include#include#include
#include//通訊錄可以用來存儲1000個人的信息,每個人的信息包括:姓名、性別、年齡、電話、住址
#define NAME_MAX 20
#define SEX_MAX 8
#define TELE_MAX 15
#define ADDR_MAX 20
#define MAX 100



typedef struct Peoinfo
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tele[TELE_MAX];
	char addr[ADDR_MAX];
}Peoinfo;

typedef struct Contact
{
	Peoinfo data[MAX];
	int sz;
}Contact;



//初始化/清空
void init_contact(Contact* pc);


//通訊錄中增加
void  add_contact(Contact* pc);

//show通訊錄
void show_contact( const Contact* pc);

//通訊錄尋找人
int find_by_name(const Contact* pc);

//通訊錄里search

void search_contact(const Contact* pc);

//刪除聯系人
void del_contact(Contact* pc);

//修改聯系人

void modify_contact(Contact* pc);

//排序
void sort_contact(Contact* pc);
3.函數的實現 3.1 初始化/清空聯系人
//初始化/清空
void init_contact(Contact* pc)
{
	assert(pc);
	pc->sz = 0;
	memset(pc->data, 0, sizeof(pc->data));
}
3.2增加通訊錄的聯系人
//add
void  add_contact(Contact* pc)
{
	assert(pc);
	if (pc->sz >MAX)
		printf("通訊錄已滿,無法添加\n");
	printf("請輸入姓名:>\n");
	scanf("%s", pc->data[pc->sz].name);
	printf("請輸入性別;>\n");
	scanf("%s", pc->data[pc->sz].sex);
	printf("請輸入年齡;>\n");
	scanf("%d", &(pc->data[pc->sz].age));
	printf("請輸入電話:>\n");
	scanf("%s", pc->data[pc->sz].tele);
	printf("請輸入住址:>\n");
	scanf("%s", pc->data[pc->sz].addr);
	pc->sz++;

}
3.3展示通訊錄中所以聯系人的信息
//show
void show_contact(const Contact* pc)
{
	assert(pc);
	int i = 0;
	printf("%-10s\t%-5s\t%-4s\t%-15s\t%-10s\n", "姓名", "性別", "年齡", "電話", "住址");
	for (i = 0; i< pc->sz; i++)
	{
		printf("%-10s\t%-5s\t%-4d\t%-15s\t%-10s\n", pc->data[i].name, pc->data[i].sex, pc->data[i].age, pc->data[i].tele, pc->data[i].addr);
	}
}
3.4通過名字找到指定的聯系人
//通訊錄找人
int find_by_name(const Contact* pc)
{
	assert(pc);
	char findPeo[20];
	printf("請輸入需要搜索/刪除/修改數據的名字:>");
	scanf("%s", findPeo);
	int i = 0;
	for (i = 0; i< pc->sz; i++)
	{
		if (strcmp(pc->data[i].name, findPeo)==0)
		{
			
			return i;
		}
		
			
	}
	return -1;
}
3.5通過名字搜索聯系人
//通訊錄中搜索

void search_contact(const Contact* pc)
{
	assert(pc);
	int ret = find_by_name(pc);
	if (ret == -1)
	{
		printf("不存在此人\n");
	}
	else
	{
		printf("%-10s\t%-5s\t%-4s\t%-15s\t%-10s\n", "姓名", "性別", "年齡", "電話", "住址");
		printf("%-10s\t%-5s\t%-4d\t%-15s\t%-10s\n", 
 pc->data[ret].name,
 pc->data[ret].sex, 
 pc->data[ret].age, 
 pc->data[ret].tele, 
 pc->data[ret].addr);
	}

}
3.6刪除聯系人
//del

void del_contact(Contact*pc)
{
	assert(pc);
	int ret=find_by_name(pc);
	if (ret == -1)
		printf("不存在此人\n");
	else
	{
		int i = 0;
		for (i = ret; isz; i++)
		{
			pc->data[i] = pc->data[i + 1];
		}
		printf("刪除成功\n");
		pc->sz -= 1;
	}
}
3.7修改聯系人
//modify修改

void modify_contact(Contact* pc)
{
	assert(pc);
	int ret = find_by_name(pc);
	if (ret == -1)
		printf("不存在此人\n");
	else
	{
		
		printf("請輸入姓名:>\n");
		scanf("%s", pc->data[ret].name);
		printf("請輸入性別;>\n");
		scanf("%s", pc->data[ret].sex);
		printf("請輸入年齡;>\n");
		scanf("%d", &(pc->data[ret].age));
		printf("請輸入電話:>\n");
		scanf("%s", pc->data[ret].tele);
		printf("請輸入住址:>\n");
		scanf("%s", pc->data[ret].addr);
		printf("修改成功\n");
	}
}
3.8通過選擇的方式排序聯系人
//sort

void sort_contact( Contact* pc)
{
	assert(pc);
	if (pc->sz == 0)
	{
		printf("通訊錄為空,無法排序\n");
	}
	int k = 0;
	printf("1.按名字排序 2.按年齡排序 0.退出\n");
	printf("請選擇:>");
	scanf("%d", &k);
	
	if (k == 0)
		printf("退出成功\n");
	else if (k == 1)
	{
		Peoinfo tmp;
		int i = 0;
		
		for (i = 0; i< pc->sz - 1; i++)
		{
			int j = 0;
			for (j = 0; j< pc->sz -i- 1; j++)
			{
				if (strcmp(pc->data[j].name, pc->data[j + 1].name)>0)
				{
					 tmp = pc->data[j];
					 pc->data[j] = pc->data[j + 1];
					pc->data[j + 1] = tmp;
				
					

				}
			}
		}
		
		
	}

	else if (k == 2)
	{
		int i = 0;
		Peoinfo tmp;
		for (i = 0; i< pc->sz - 1; i++)
		{
			for (int j = 0; j< pc->sz - i-1; j++)
			{
				if ((pc->data[j].age - pc->data[j + 1].age) >0)
				{
					tmp = pc->data[j];
					pc->data[j] = pc->data[j + 1];
					pc->data[j + 1] = tmp;

				}
			}
		}
	}

}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

本文題目:C語言實現簡易通訊錄-創(chuàng)新互聯
URL地址:http://muchs.cn/article20/cecgjo.html

成都網站建設公司_創(chuàng)新互聯,為您提供做網站、全網營銷推廣、App設計、外貿網站建設用戶體驗、標簽優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都seo排名網站優(yōu)化