国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言--通訊錄的實現(xiàn)

這篇具有很好參考價值的文章主要介紹了C語言--通訊錄的實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C語言–通訊錄的實現(xiàn)


通訊錄的功能

  1. 人的信息:姓名+年齡+性別+住址+電話
  2. 通訊錄中可以存放100個人的信息
  3. 增加聯(lián)系人
  4. 刪除指定聯(lián)系人
  5. 查找指定聯(lián)系人
  6. 修改指定聯(lián)系人
  7. 顯示所有聯(lián)系人的信息

一、模塊劃分

test.c----測試通訊錄
contact.c----通訊錄的實現(xiàn)
contact.h----函數(shù)的聲明

二、具體代碼

1.測試模塊

代碼如下(示例):

#define _CRT_SECURE_NO_WARNINGS 1
//用于函數(shù)的測試
#include "contact.h"//自己創(chuàng)建的頭文件使用""去引用
void menu()
{
	printf("********************************************\n");
	printf("******  1.Add    2.Del      ****************\n");
	printf("******  3.Ser    4.Mod      ****************\n");
	printf("******  5.Show   0.Exit     ****************\n");
	printf("********************************************\n");
}
int main()
{
	int input = 0;
	//創(chuàng)建通訊錄
	Contact con;//創(chuàng)建結(jié)構(gòu)體對象
	//初始化通訊錄
	InitContact(&con);
	do
	{
	    menu();
		printf("請選擇:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			AddContact(&con);//結(jié)構(gòu)體傳參
			break;
		case 2:
			DelContact(&con);
			break;
		case 3:
			SearchContact(&con);
			break;
		case 4:
			ModifyContact(&con);
			break;
		case 5:
			ShowContact(&con);
			break;
		case 0:
			printf("退出通訊錄");
			break;
		default:
			printf("選擇錯誤");
			break;
		}
	} while (input);
	return 0;
}

2.通訊錄主函數(shù)實現(xiàn)模塊

代碼如下(示例):文章來源地址http://www.zghlxwxcb.cn/news/detail-608027.html

#define _CRT_SECURE_NO_WARNINGS 1
//放置函數(shù)的實現(xiàn)
#include "contact.h"//自己創(chuàng)建的頭文件使用""去引用



//初始化結(jié)構(gòu)體的函數(shù)
void InitContact(Contact* pc)
{
	assert(pc);//防止出現(xiàn)空指針
	pc->sz = 0;
	//使用memset將data數(shù)組初始化為0
	memset(pc->data, 0, sizeof(pc->data));//memset(初始化地址,初始化為多少,初始化多少個字節(jié))
}



//增加聯(lián)系人的函數(shù)-----Add
void AddContact(Contact* pc)
{
	assert(pc);//防止出現(xiàn)空指針
	if (pc->sz == 100)
	{
		printf("通訊錄已滿,無法添加\n");
		return;
	}
	//判斷通訊錄是否存滿之后,開始增加個人信息
	printf("請輸入名字:>");
	scanf("%s", pc->data[pc->sz].name);//數(shù)組名。不需要取地址
	//pc代表的是Contact結(jié)構(gòu)體的指針,data和sz是Contact結(jié)構(gòu)體的元素
	//pc->data[pc->sz]指的是將sz定義為data數(shù)組的下標,
	//當存儲一個人的信息之后,sz++就可以移動數(shù)組的位置繼續(xù)存儲新的信息
	//.name是結(jié)構(gòu)體尋找自己元素的方法
	printf("請輸入年齡:>");
	scanf("%d", &(pc->data[pc->sz].age));//變量,需要取地址,scanf本身就需要&才能使用
	printf("請輸入性別:>");
	scanf("%s", pc->data[pc->sz].sex);//數(shù)組名本身就是首元素的地址。不需要取地址
	printf("請輸入住址:>");
	scanf("%s", pc->data[pc->sz].addr);
	printf("請輸入電話:>");
	scanf("%s", pc->data[pc->sz].tele);

	pc->sz++;
}



//顯示通訊錄的函數(shù)-----Show
void ShowContact(const Contact* pc)//函數(shù)聲明和定義要保持一致
{
	assert(pc);//防止出現(xiàn)空指針
	int i = 0;
	printf("%-20s\t%-4s\t%-5s\t%-20s\t%-12s\n", "名字", "年齡", "性別", "地址", "電話");
	for (i = 0; i < pc->sz; i++)
	{
		printf("%-20s\t%-4d\t%-5s\t%-20s\t%-12s\n", //左對齊版本,一個漢字占用2個字節(jié)
				pc->data[i].name, 
				pc->data[i].age, 
				pc->data[i].sex, 
				pc->data[i].addr, 
				pc->data[i].tele);
	}	
}


//查找人名位置的函數(shù)
int FindByName(const Contact* pc, char name[])
{
	int i = 0;
	for (i = 0; i < pc->sz; i++)
	{
		if (strcmp(pc->data[i].name, name) == 0)
		{
			return i;
		}
	}
	return -1;
}


//刪除通訊錄的信息-----Del
void DelContact(Contact* pc)
{
	assert(pc);//防止出現(xiàn)空指針
	char name[NAME_MAX] = { 0 };
	if (pc->sz == 0)
	{
		printf("通訊錄為空,無法刪除\n");
		return;
	}
	//尋找刪除對象
	printf("請輸入要刪除的人的名字:>");
	scanf("%s", name);
	int ret = FindByName(pc, name);
	if (-1 == ret)
	{
		printf("要刪除的人不存在");
		return;
	}
	
	//刪除
	int i = 0;
	for (i = ret; i < pc->sz - 1; i++)//sz-1為了防止越界訪問
	{
		pc->data[i] = pc->data[i + 1];//將后面的覆蓋到前面,達到刪除的目的
	}
	pc->sz--;
	printf("刪除成功\n");
}


//尋找指定聯(lián)系人---Ser
void SearchContact(const Contact* pc)
{
	char name[NAME_MAX] = { 0 };
	printf("請輸入要刪除的人的名字:>");
	scanf("%s", name);
	int ret = FindByName(pc, name);
	if (-1 == ret)
	{
		printf("要查找的人不存在\n");
		return;
	}
	//打印信息
	printf("%-20s\t%-4s\t%-5s\t%-20s\t%-12s\n", "名字", "年齡", "性別", "地址", "電話");
	printf("%-20s\t%-4d\t%-5s\t%-20s\t%-12s\n", //左對齊版本,一個漢字占用2個字節(jié)
		pc->data[ret].name,
		pc->data[ret].age,
		pc->data[ret].sex,
		pc->data[ret].addr,
		pc->data[ret].tele);
}


//修改通訊錄信息
void ModifyContact(Contact* pc)
{
	assert(pc);
	char name[NAME_MAX] = { 0 };
	printf("請輸入要修改的人的名字:>");
	scanf("%s", name);
	int ret = FindByName(pc, name);
	if (-1 == ret)
	{
		printf("要修改的人不存在\n");
		return;
	}
	printf("請輸入名字:>");
	scanf("%s", pc->data[ret].name);
	printf("請輸入年齡:>");
	scanf("%d", &(pc->data[ret].age));
	printf("請輸入性別:>");
	scanf("%s", pc->data[ret].sex);//數(shù)組名。不需要取地址
	printf("請輸入住址:>");
	scanf("%s", pc->data[ret].addr);
	printf("請輸入電話:>");
	scanf("%s", pc->data[ret].tele);
}

3.函數(shù)頭文件模塊

#pragma once

#include<stdio.h>
#include<string.h>//memset的頭文件,統(tǒng)一放在自己定義的頭文件里
#include<assert.h>//assert的頭文件


//頭文件用于是放置函數(shù)的聲明
//人的信息
#define MAX 100
#define NAME_MAX 20
#define SEX_MAX 5
#define ADDR_MAX 30
#define TELE_MAX 12



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

typedef struct Contact
{
	PeoInfo data[MAX];//存放個人信息的
	int sz;//用于記錄當前放了幾個人的信息
}Contact;

//初始化通訊錄
void InitContact(Contact* pc);
//增加聯(lián)系人
void AddContact(Contact* pc);
//顯示通訊錄中的信息
void ShowContact(const Contact* pc);//為了放置被修改
//刪除通訊錄的信息
void DelContact(Contact* pc);
//查找通訊錄的信息
void SearchContact(const Contact* pc);
//修改通訊錄的信息
void ModifyContact(Contact* pc);

到了這里,關(guān)于C語言--通訊錄的實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C語言】實現(xiàn)動態(tài)版通訊錄

    【C語言】實現(xiàn)動態(tài)版通訊錄

    ??內(nèi)容專欄:【C語言】進階部分 ??本文概括: 結(jié)合自定義類型、動態(tài)內(nèi)存管理知識,對靜態(tài)版本的通訊錄進行優(yōu)化。 ??本文作者:花 碟 ??發(fā)布時間:2023.4.2 ? 目錄 前言: 一、靜態(tài)版本代碼實現(xiàn): 二、動態(tài)通訊錄? 三、代碼整理? 前面我們學過了結(jié)構(gòu)體、枚舉等自定義

    2024年02月02日
    瀏覽(96)
  • C語言進階——通訊錄模擬實現(xiàn)

    C語言進階——通訊錄模擬實現(xiàn)

    ??個人主頁:_麥麥_ ??今日名言:只有走在路上,才能擺脫局限,擺脫執(zhí)著,讓所有的選擇,探尋,猜測,想象都生機勃勃?!嗲镉辍段幕嗦谩?目錄 一、前言 二、正文 1.大體框架 2.界面顯示 3. 創(chuàng)建通訊錄 4.初始化通訊錄 5.增加聯(lián)系人 6.顯示聯(lián)系人 7. 刪除聯(lián)系人 ?

    2024年02月02日
    瀏覽(81)
  • 【C語言】實現(xiàn)通訊錄(動態(tài)+文件)

    【C語言】實現(xiàn)通訊錄(動態(tài)+文件)

    在之前三子棋和掃雷的基礎(chǔ)上,本篇文章博主將給大家逐步分析實現(xiàn)通訊錄,介紹通訊錄的每個功能( 動態(tài)增長和文件保存 )。 —————————————————————— test.c - 測試通訊錄 Contact.c - 函數(shù)的實現(xiàn) Contact.h - 函數(shù)和類型的聲明 以多文件的形式分模塊寫的

    2024年02月13日
    瀏覽(78)
  • C語言實現(xiàn)通訊錄--動態(tài)版

    C語言實現(xiàn)通訊錄--動態(tài)版

    實現(xiàn)一個通訊錄,聯(lián)系人的數(shù)量可多可少 1.在靜態(tài)版本的基礎(chǔ)上改用動態(tài)的方法: (1)默認能夠存放三個人的信息 (2)不夠的話,每次增加兩個人的信息 2.其他功能不變 建立三個文件: test.c 用于測試通訊錄的相關(guān)功能 contsct.c 通訊錄的實現(xiàn)模塊(用函數(shù)實現(xiàn)功能) conta

    2024年02月15日
    瀏覽(99)
  • C語言——靜態(tài)通訊錄的實現(xiàn)

    C語言——靜態(tài)通訊錄的實現(xiàn)

    今天我們來實現(xiàn)一下一個靜態(tài)的通訊錄: 我就先展示一下幾個功能: 實現(xiàn)一個通訊錄; 通訊錄可以用來存儲100個人的信息,每個人的信息包括:姓名、性別、年齡、電話、住址 提供方法: 添加聯(lián)系人信息 刪除指定聯(lián)系人信息 查找指定聯(lián)系人信息 修改指定聯(lián)系人信息 顯示

    2024年01月22日
    瀏覽(93)
  • C語言實現(xiàn)通訊錄(文件版)

    C語言實現(xiàn)通訊錄(文件版)

    學習完C語言的文件讀寫,我們又可以將通訊錄增加以下功能: 1.當退出通訊錄的時候,把已增加的聯(lián)系人信息寫到文件中。 2.當通訊錄初始化的時候,加載(讀取)文件里的信息到通訊錄 ——(直接使用打印函數(shù)可以顯示在屏幕上) 分析: 當我們退出通訊錄的時候要實現(xiàn)通訊錄

    2024年02月01日
    瀏覽(21)
  • C語言實現(xiàn)通訊錄--靜態(tài)版

    C語言實現(xiàn)通訊錄--靜態(tài)版

    實現(xiàn)一個通訊錄 ,里面存放100個人的信息,完成通訊錄的基本操作功能:增刪查改聯(lián)系人 (1)通訊錄存放100個人的信息? 創(chuàng)建一個數(shù)組作為通訊錄,100個元素,每個元素里面存放每個人的信息,所以數(shù)組里面的每個元素應(yīng)該是結(jié)構(gòu)體類型。 (2)每個人的信息應(yīng)該包括哪些

    2024年02月16日
    瀏覽(69)
  • 【C語言】動態(tài)內(nèi)存管理基礎(chǔ)知識——動態(tài)通訊錄,如何實現(xiàn)通訊錄容量的動態(tài)化

    【C語言】動態(tài)內(nèi)存管理基礎(chǔ)知識——動態(tài)通訊錄,如何實現(xiàn)通訊錄容量的動態(tài)化

    動態(tài)內(nèi)存管理的函數(shù)有:malloc,calloc,ralloc,free,本文講解動態(tài)內(nèi)存函數(shù)和使用,如何進行動態(tài)內(nèi)存管理,實現(xiàn)通訊錄聯(lián)系人容量的動態(tài)化,對常見動態(tài)內(nèi)存錯誤進行總結(jié)。 ???????? ? ? ? ? ? ? ? ? ??? 豬巴戒 :個人主頁? ??????????????? 所屬專欄 :《C語言進階》

    2024年02月04日
    瀏覽(44)
  • 【C語言】實現(xiàn)通訊錄管理系統(tǒng)

    【C語言】實現(xiàn)通訊錄管理系統(tǒng)

    大家好,我是蘇貝,本篇博客帶大家實現(xiàn)通訊錄,如果你覺得我寫的還不錯的話,可以給我一個贊??嗎,感謝?? 本文將使用C語言來實現(xiàn)通訊錄管理系統(tǒng),該通訊錄包括若干聯(lián)系人,和每個聯(lián)系人的姓名、年齡、性別、電話、地址。此通訊錄的功能包括:增加聯(lián)系人信息,

    2024年02月08日
    瀏覽(95)
  • C語言實現(xiàn)個人通訊錄(功能優(yōu)化)

    C語言實現(xiàn)個人通訊錄(功能優(yōu)化)

    用C語言實現(xiàn)個人通訊錄,完成個人通訊錄的增加、減少、查找、修改聯(lián)系人,同時實現(xiàn)通訊錄的排序功能和隱藏空間的功能等; 分三個文件實現(xiàn): Test.c 這個文件用于測試代碼,測試功能實現(xiàn),以及最后的主函數(shù),都可以用這個實現(xiàn)。(注意:在寫項目過程中,一定要每實現(xiàn)

    2024年02月06日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包