C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄-創(chuàng)新互聯(lián)

目錄

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

1.基本框架的實(shí)現(xiàn)

1.1?基本內(nèi)容test.c

2.?函數(shù)的聲明contact.h

3.函數(shù)的實(shí)現(xiàn)

3.1 初始化/清空聯(lián)系人

3.2增加通訊錄的聯(lián)系人

3.3展示通訊錄中所以聯(lián)系人的信息

3.4通過名字找到指定的聯(lián)系人

3.5通過名字搜索聯(lián)系人

3.6刪除聯(lián)系人

3.7修改聯(lián)系人

3.8通過選擇的方式排序聯(lián)系人

實(shí)現(xiàn)一個(gè)通訊錄:

通訊錄可以用來(lái)存儲(chǔ)1000個(gè)人的信息,每個(gè)人的信息包括:姓名、性別、年齡、電話、住址

提供方法:

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

1.基本框架的實(shí)現(xiàn)

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

  1. 我們?cè)趖est.c來(lái)實(shí)現(xiàn)這個(gè)通訊錄的主體內(nèi)容
  2. 在contact.c的內(nèi)容中來(lái)完善函數(shù)的實(shí)現(xiàn)
  3. contact.h的內(nèi)容是定義一些變量和函數(shù)
1.1?基本內(nèi)容test.c

首先我們需要打印一個(gè)菜單


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");
	


}

以上的內(nèi)容就是我們需要實(shí)現(xiàn)的基本功能,接著我們就完善test.c中基本框架的實(shí)現(xiàn)

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

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:
				//增加函數(shù)
				add_contact(&con);
				break;
			case 2:
				//尋找
				search_contact(&con);
				break;
			case 3:
				//刪除聯(lián)系人
				del_contact(&con);
				break;
			case 4:
				//修改聯(lián)系人
				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.?函數(shù)的聲明contact.h

然后需要我們?cè)赾ontact.h中聲明這些函數(shù),并創(chuàng)建好通訊錄需要的內(nèi)容,就可以用結(jié)構(gòu)體來(lái)實(shí)現(xiàn)。

//contact.h
#pragma once
#include#include#include
#include//通訊錄可以用來(lái)存儲(chǔ)1000個(gè)人的信息,每個(gè)人的信息包括:姓名、性別、年齡、電話、住址
#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);

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

//修改聯(lián)系人

void modify_contact(Contact* pc);

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

}
3.3展示通訊錄中所以聯(lián)系人的信息
//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通過名字找到指定的聯(lián)系人
//通訊錄找人
int find_by_name(const Contact* pc)
{
	assert(pc);
	char findPeo[20];
	printf("請(qǐng)輸入需要搜索/刪除/修改數(shù)據(jù)的名字:>");
	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通過名字搜索聯(lián)系人
//通訊錄中搜索

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刪除聯(lián)系人
//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修改聯(lián)系人
//modify修改

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

void sort_contact( Contact* pc)
{
	assert(pc);
	if (pc->sz == 0)
	{
		printf("通訊錄為空,無(wú)法排序\n");
	}
	int k = 0;
	printf("1.按名字排序 2.按年齡排序 0.退出\n");
	printf("請(qǐng)選擇:>");
	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)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄-創(chuàng)新互聯(lián)
URL地址:http://bm7419.com/article20/cecgjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、全網(wǎng)營(yíng)銷推廣App設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、用戶體驗(yàn)、標(biāo)簽優(yōu)化

廣告

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

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