c語言小項(xiàng)目--通訊錄-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供曲阜網(wǎng)站建設(shè)、曲阜做網(wǎng)站、曲阜網(wǎng)站設(shè)計(jì)、曲阜網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、曲阜企業(yè)網(wǎng)站模板建站服務(wù),10年曲阜做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

今天我們?cè)囍胏語言實(shí)現(xiàn)簡單通訊錄的制作,功能大致如下:

//1.存放好友信息
//2.增加好友信息
//3.刪除好友信息
//4.查找好友信息
//5.修改好友信息

了解相應(yīng)功能后我們?cè)囍鴺?gòu)建一個(gè)菜單:

void menu()//菜單
{
?printf("*************************************\n");
?printf("******1.add ? ? ? ? ? ?2.del ?*******\n");
?printf("******3.search ? ? ? ? 4.modify ?****\n");
?printf("******5.show ? ? ? ? ? 0.exit ? ? ?**\n");
?printf("*************************************\n");
}

接下來就是創(chuàng)建通訊錄了,先定義用戶相關(guān)信息,并枚舉相關(guān)變量

enum MY { MAX = 100,MAX_NAME=20,MAX_SEX=5,MAX_TELE=12,MAX_ADDR=30 };

struct people?
{
?char name[MAX_NAME];
?int age;
?char sex[MAX_SEX];
?char tele[MAX_TELE];
?char addr[MAX_ADDR];
};?

接著定義通訊錄的類型

struct Contact
{
?struct people data[MAX]; //存放用戶信息
?int size;? ? ? ? ? ? ? ? ? ? ? ? ? ? //記錄當(dāng)前已經(jīng)有的用戶數(shù)量
};

然后初始化通訊錄,默認(rèn)所有信息為0

void InitContact(struct Contact* ps)
{
?memset(ps->data, 0, sizeof(ps->data));
?ps->size = 0;
}

通訊錄初始化后,就要開始完善它的功能的

//增加好友信息
void addContact(struct Contact* ps)
{
?if (ps->size == MAX)
?{
??? ?printf("通訊錄已滿\n");
?}
?else
?{
??? ?printf("請(qǐng)輸入名字:");
??? ?scanf("%s", ps->data[ps->size].name);
??? ?printf("請(qǐng)輸入年齡:");
??? ?scanf("%d", &(ps->data[ps->size].age));
??? ?printf("請(qǐng)輸入性別:");
??? ?scanf("%s", ps->data[ps->size].sex);
??? ?printf("請(qǐng)輸入電話:");
??? ?scanf("%s", ps->data[ps->size].tele);
??? ?printf("請(qǐng)輸入地址:");
??? ?scanf("%s", ps->data[ps->size].addr);
??? ?ps->size++;
??? ?printf("添加成功\n");
?}
}
//顯示好友信息
void ShowContact(struct Contact* ps)
{
?if (ps->size == 0)
?{
??? ?printf("通訊錄為空\n");
?}
?else
?{
??? ?printf("%20s\t %4s\t %5s\t %12s\t %20s\n","名字","年齡","性別","電話","地址");
??? ?for (int i = 0; i< ps->size; i++)
??? ?{
??? ??? ?printf("%20s\t %4d\t %5s\t %12s\t %20s\n",
??? ??? ??? ?ps->data[i].name,
??? ??? ??? ?ps->data[i].age,
??? ??? ??? ?ps->data[i].sex,
??? ??? ??? ?ps->data[i].tele,
??? ??? ??? ?ps->data[i].addr );
??? ?}
?}
}
//刪除好友信息
void DelContact(struct Contact* ps)
{
?char name[MAX_NAME];
?printf("請(qǐng)輸入要?jiǎng)h除人的名字:");
?scanf("%s", name);
?int i = 0;
?//1.查找要?jiǎng)h除的人在什么位置
?for (int i = 0; i< ps->size; i++)
?{
??? ?if (strcmp(ps->data[i].name, name) == 0)
??? ?{
??? ??? ?break;
??? ?}
?}
?//2.刪除
?if (i == ps->size)
?{
??? ?printf("要?jiǎng)h除的人不存在\n");
?}
?else
?{
??? ?int j = 0;
??? ?for (j = i; j< ps->size-1; j++)
??? ?{
??? ??? ?ps->data[j] = ps->data[j + 1];
??? ?}
??? ?ps->size--;
??? ?printf("刪除成功\n");
?}
?
}
//查找指定的人
void SearchContact(struct Contact* ps)
{
?char name[MAX_NAME];
?printf("請(qǐng)輸入查找人的名字");
?scanf("%s", name);
?int i = 0;
?//1.查找的人在什么位置
?for (int i = 0; i< ps->size; i++)
?{
??? ?if (strcmp(ps->data[i].name, name) == 0)
??? ?{
??? ??? ?break;
??? ?}
?}
?if (i == ps->size)
?{
??? ?printf("查找的人不存在\n");
?}
?else
?{
??? ?printf("%20s\t %4s\t %5s\t %12s\t %20s\n", "名字", "年齡", "性別", "電話", "地址");
??? ?printf("%20s\t %4d\t %5s\t %12s\t %20s\n",
??? ??? ?ps->data[i].name,
??? ??? ?ps->data[i].age,
??? ??? ?ps->data[i].sex,
??? ??? ?ps->data[i].tele,
??? ??? ?ps->data[i].addr);
??? ?
?}
};
//修改好友信息
void ModifyContact(struct Contact* ps)
{
?char name[MAX_NAME];
?printf("請(qǐng)輸入修改人的名字");
?scanf("%s", name);
?int i = 0;
?//1.修改的人在什么位置
?for (int i = 0; i< ps->size; i++)
?{
??? ?if (strcmp(ps->data[i].name, name) == 0)
??? ?{
??? ??? ?break;
??? ?}
?}
?if (i == ps->size)
?{
??? ?printf("修改的人不存在\n");
?}
?else
?{
??? ?printf("請(qǐng)輸入名字:");
??? ?scanf("%s", ps->data[i].name);
??? ?printf("請(qǐng)輸入年齡:");
??? ?scanf("%d", &(ps->data[i].age));
??? ?printf("請(qǐng)輸入性別:");
??? ?scanf("%s", ps->data[i].sex);
??? ?printf("請(qǐng)輸入電話:");
??? ?scanf("%s", ps->data[i].tele);
??? ?printf("請(qǐng)輸入地址:");
??? ?scanf("%s", ps->data[i].addr);
??? ?printf("修改成功\n");
?}
}

最后就是將其全部存入主函數(shù)中

int main()
{
?int input = 0;
?struct Contact con;//con就是通訊錄
?InitContact(&con);
?do
?{
??? ?menu();
??? ?printf("請(qǐng)選擇:");
??? ?scanf("%d", &input);
??? ?switch (input)
??? ?{
??? ?case 1:
??? ??? ?addContact(&con);
??? ??? ?break;
??? ?case 2:
??? ??? ?DelContact(&con);
??? ??? ?break;
??? ?case 3:
??? ??? ?SearchContact(&con);
??? ??? ?break;
??? ?case 4:
??? ??? ?ModifyContact(&con);
??? ??? ?break;
??? ?case 5:
??? ??? ?ShowContact(&con);
??? ??? ?break;
??? ?case 0:
??? ??? ?printf("退出通訊錄\n");
??? ??? ?break;
??? ?default:
??? ??? ?printf("選擇錯(cuò)誤\n");
??? ??? ?break;
??? ?}
?} while (input);
?return 0;
}?

總體代碼就是這樣,如果大家發(fā)現(xiàn)bug或者有更好的方法 ,歡迎大家一起來討論呀,一起加油

#define _CRT_SECURE_NO_WARNINGS 1
#include#include#include//1.存放好友信息
//2.增加好友信息
//3.刪除好友信息
//4.查找好友信息
//5.修改好友信息
enum MY { MAX = 100,MAX_NAME=20,MAX_SEX=5,MAX_TELE=12,MAX_ADDR=30 };
void menu()//菜單
{
	printf("*************************************\n");
	printf("******1.add            2.del  *******\n");
	printf("******3.search         4.modify  ****\n");
	printf("******5.show           0.exit      **\n");
	printf("*************************************\n");
}
//創(chuàng)建通訊錄
struct people 
{
	char name[MAX_NAME];
	int age;
	char sex[MAX_SEX];
	char tele[MAX_TELE];
	char addr[MAX_ADDR];
};
//通訊錄類型
struct Contact
{
	struct people data[MAX];//存放用戶信息
	int size;//記錄當(dāng)前已經(jīng)有的用戶數(shù)量
};
//初始化通訊錄
void InitContact(struct Contact* ps)
{
	memset(ps->data, 0, sizeof(ps->data));
	ps->size = 0;
}
//增加好友信息
void addContact(struct Contact* ps)
{
	if (ps->size == MAX)
	{
		printf("通訊錄已滿\n");
	}
	else
	{
		printf("請(qǐng)輸入名字:");
		scanf("%s", ps->data[ps->size].name);
		printf("請(qǐng)輸入年齡:");
		scanf("%d", &(ps->data[ps->size].age));
		printf("請(qǐng)輸入性別:");
		scanf("%s", ps->data[ps->size].sex);
		printf("請(qǐng)輸入電話:");
		scanf("%s", ps->data[ps->size].tele);
		printf("請(qǐng)輸入地址:");
		scanf("%s", ps->data[ps->size].addr);
		ps->size++;
		printf("添加成功\n");
	}
}
//顯示好友信息
void ShowContact(struct Contact* ps)
{
	if (ps->size == 0)
	{
		printf("通訊錄為空\n");
	}
	else
	{
		printf("%20s\t %4s\t %5s\t %12s\t %20s\n","名字","年齡","性別","電話","地址");
		for (int i = 0; i< ps->size; i++)
		{
			printf("%20s\t %4d\t %5s\t %12s\t %20s\n",
				ps->data[i].name,
				ps->data[i].age,
				ps->data[i].sex,
				ps->data[i].tele,
				ps->data[i].addr );
		}
	}
}
//刪除好友信息
void DelContact(struct Contact* ps)
{
	char name[MAX_NAME];
	printf("請(qǐng)輸入要?jiǎng)h除人的名字:");
	scanf("%s", name);
	int i = 0;
	//1.查找要?jiǎng)h除的人在什么位置
	for (int i = 0; i< ps->size; i++)
	{
		if (strcmp(ps->data[i].name, name) == 0)
		{
			break;
		}
	}
	//2.刪除
	if (i == ps->size)
	{
		printf("要?jiǎng)h除的人不存在\n");
	}
	else
	{
		int j = 0;
		for (j = i; j< ps->size-1; j++)
		{
			ps->data[j] = ps->data[j + 1];
		}
		ps->size--;
		printf("刪除成功\n");
	}
	
}
//查找指定的人
void SearchContact(struct Contact* ps)
{
	char name[MAX_NAME];
	printf("請(qǐng)輸入查找人的名字");
	scanf("%s", name);
	int i = 0;
	//1.查找的人在什么位置
	for (int i = 0; i< ps->size; i++)
	{
		if (strcmp(ps->data[i].name, name) == 0)
		{
			break;
		}
	}
	if (i == ps->size)
	{
		printf("查找的人不存在\n");
	}
	else
	{
		printf("%20s\t %4s\t %5s\t %12s\t %20s\n", "名字", "年齡", "性別", "電話", "地址");
		printf("%20s\t %4d\t %5s\t %12s\t %20s\n",
			ps->data[i].name,
			ps->data[i].age,
			ps->data[i].sex,
			ps->data[i].tele,
			ps->data[i].addr);
		
	}
};
//修改好友信息
void ModifyContact(struct Contact* ps)
{
	char name[MAX_NAME];
	printf("請(qǐng)輸入修改人的名字");
	scanf("%s", name);
	int i = 0;
	//1.修改的人在什么位置
	for (int i = 0; i< ps->size; i++)
	{
		if (strcmp(ps->data[i].name, name) == 0)
		{
			break;
		}
	}
	if (i == ps->size)
	{
		printf("修改的人不存在\n");
	}
	else
	{
		printf("請(qǐng)輸入名字:");
		scanf("%s", ps->data[i].name);
		printf("請(qǐng)輸入年齡:");
		scanf("%d", &(ps->data[i].age));
		printf("請(qǐng)輸入性別:");
		scanf("%s", ps->data[i].sex);
		printf("請(qǐng)輸入電話:");
		scanf("%s", ps->data[i].tele);
		printf("請(qǐng)輸入地址:");
		scanf("%s", ps->data[i].addr);
		printf("修改成功\n");
	}
}
int main()
{
	int input = 0;
	struct Contact con;//con就是通訊錄
	InitContact(&con);
	do
	{
		menu();
		printf("請(qǐng)選擇:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			addContact(&con);
			break;
		case 2:
			DelContact(&con);
			break;
		case 3:
			SearchContact(&con);
			break;
		case 4:
			ModifyContact(&con);
			break;
		case 5:
			ShowContact(&con);
			break;
		case 0:
			printf("退出通訊錄\n");
			break;
		default:
			printf("選擇錯(cuò)誤\n");
			break;
		}
   
	} while (input);
	return 0;
}

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

分享標(biāo)題:c語言小項(xiàng)目--通訊錄-創(chuàng)新互聯(lián)
文章路徑:http://www.muchs.cn/article38/deogsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名服務(wù)器托管、網(wǎng)頁設(shè)計(jì)公司、定制開發(fā)、微信小程序

廣告

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

營銷型網(wǎng)站建設(shè)