中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

個人怎么注冊小微企業(yè)搜索引擎優(yōu)化面對哪些困境

個人怎么注冊小微企業(yè),搜索引擎優(yōu)化面對哪些困境,WordPress主題開源,淘寶網站建設那么便宜前言:生活中處處都會看到或是用到通訊錄,今天我們就通過C語言來簡單的模擬實現一下通訊錄。 雞湯:跨越山海,終見曙光! 鏈接:gitee倉庫:代碼鏈接 目錄 主函數聲明部分初始化通訊錄實現擴容的函數增加通訊錄所…

前言:生活中處處都會看到或是用到通訊錄,今天我們就通過C語言來簡單的模擬實現一下通訊錄。
雞湯:跨越山海,終見曙光!

鏈接:gitee倉庫:代碼鏈接這里是引用

目錄

    • 主函數
    • 聲明部分
      • 初始化通訊錄
      • 實現擴容的函數
      • 增加通訊錄所需要人
      • 顯示通訊錄
      • 選擇刪除的人
      • 查找需要找的人
      • 修改通訊錄
    • 通訊錄的實現

當然了,在模擬實現一個通訊錄前我們依然需要一個大致的框架。

  1. 可以保存至少100人的信息
  2. 增加人的信息
  3. 刪除指定人的信息
  4. 查找指定人的信息
  5. 修改指定聯(lián)系人的信息
  6. 排序通訊錄的信息(這個等作者以后時間充足了再來實現)
  7. 顯示所有聯(lián)系人的信息

當然了,既然是實現一個通訊錄這樣的功能,我們把在寫這個功能的時候把它分成三個模塊
在這里插入圖片描述

主函數

話不多說,看代碼:
實現一個功能,當然還是從主函數開始寫,這個主函數的大體思路我們在之前的三子棋功能中也實現過,想要看的可以點這個鏈接:[三子棋]
(https://blog.csdn.net/m0_64826370/article/details/132393038?spm=1001.2014.3001.5501/)

創(chuàng)建一個通訊錄,我們需要創(chuàng)建聯(lián)系人的信息,我們可以選擇用結構體來存放

//類型的聲明
typedef struct PeoInfo
{char name[NAME_MAX];//保存姓名int age;char sex[SEX_MAX];//性別char tele[TELE_MAX];//電話char addr[ADDR_MAX];//地址
}PeoInfo;//創(chuàng)建通訊錄,將聯(lián)系人記錄下來
typedef struct Contact
{PeoInfo* data;//存放數據int sz;//記錄當前通訊錄中存在的人的信息個數int capacity;//記錄的是通訊錄的當前容量
}Contact;

主函數部分:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include "contact.h"
//通訊錄的基本功能void menu()
{printf("***************************************\n");printf("**** 1.add          2.del    **********\n");printf("**** 3.search       4.modify **********\n");printf("**** 5.show         6.sort   **********\n");printf("**** 0.exit                  **********\n");printf("***************************************\n");
}
enum Option//使用枚舉,增加代碼的可讀性
{EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT
};
int main()
{int input = 0;Contact con;InitContact(&con);//創(chuàng)建一塊通訊錄的同時,初始化一塊通訊錄do{menu();printf("請輸入你的選擇:>");scanf("%d", &input);switch (input){case ADD://增加AddContact(&con);break;case DEL://減少DelContact(&con);break;case SEARCH://刪除SearchContact(&con);break;case MODIFY://修改ModifyContact(&con);break;case SHOW://顯示ShowContact(&con);break;case SORT://排序//qsortbreak;case EXIT://退出DestroyContact(&con);//銷毀空間printf("退出\n");break;default:printf("輸入錯誤,請重新輸入\n");break;}} while (input);return 0;
}

聲明部分

#pragma once
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NAME_MAX 20
#define SEX_MAX 5
#define TELE_MAX 12
#define ADDR_MAX 30
#define MAX 100
#define DEFAULT_SZ 3
#define DEFAULT_INC 2//類型的聲明
typedef struct PeoInfo
{char name[NAME_MAX];//保存姓名int age;char sex[SEX_MAX];//性別char tele[TELE_MAX];//電話char addr[ADDR_MAX];//地址
}PeoInfo;
;//動態(tài)
typedef struct Contact
{PeoInfo* data;//存放數據int sz;//記錄當前通訊錄中存在的人的信息個數int capacity;//記錄的是通訊錄的當前容量
}Contact;//初始化通訊錄
void InitContact(Contact* pc);//增加聯(lián)系人
void AddContact(Contact* pc);void DestroyContact(Contact* pc);
//顯示所有聯(lián)系人
void ShowContact(Contact* pc);//刪除指定聯(lián)系人
void DelContact(Contact* pc);//查找指定聯(lián)系人
void SearchContact(Contact* pc);//修改指定聯(lián)系人
void ModifyContact(Contact* pc);//銷毀通訊錄
void DestroyContact(Contact* pc);

初始化通訊錄

void InitContact(Contact* pc)
{assert(pc);pc->sz = 0;pc->capacity = DEFAULT_SZ;pc->data = calloc(pc->capacity, sizeof(PeoInfo));//開辟一個能存放當前容量的空間if (pc->data == NULL)//判斷開辟是否成功{perror("calloc");return;}memset(pc->data, 0, sizeof(pc->data));//將開辟的空間全部初始化為0
}

實現擴容的函數

void CheckCapacity(Contact* pc)//給通訊錄增容
{if (pc->sz == pc->capacity)//判斷是否是需要增容{PeoInfo* ptr = (PeoInfo*)realloc(pc->data, (pc->capacity + DEFAULT_INC) * sizeof(PeoInfo));//擴容if (ptr != NULL)//判斷是否增容成功{pc->data = ptr;pc->capacity += DEFAULT_INC;printf("增容成功\n");}else{perror("AddContact->realloc");return;}}
}

增加通訊錄所需要人

void AddContact(Contact* pc)//增容
{assert(pc);CheckCapacity(pc);//增加信息printf("請輸入名字:");scanf("%s", pc->data[pc->sz].name);printf("請輸入年齡:");scanf("%d", &pc->data[pc->sz].age);printf("請輸入性別:");scanf("%s", pc->data[pc->sz].sex);printf("請輸入電話:");scanf("%s", pc->data[pc->sz].tele);printf("請輸入地址:");scanf("%s", pc->data[pc->sz].addr);pc->sz++;printf("增加成功\n");
}

顯示通訊錄

void ShowContact(Contact* pc)//顯示通訊錄
{assert(pc);if (pc->sz == 0){printf("通訊錄為空,無需打印\n");return;}int i = 0;//名字	年齡	性別	電話	地址printf("%-20s%-5s%-5s%-12s%-30s\n", "名字", "年齡", "性別", "電話", "地址");for (i = 0; i < pc->sz; i++){//打印每個人信息printf("%-20s%-5d%-5s%-12s%-30s\n",pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);}
}

選擇刪除的人

void DelContact(Contact* pc)//刪除所需要刪除的人
{char name[NAME_MAX];assert(pc);if (pc->sz == 0){printf("通訊錄為空,無法刪除\n");return;}//找到聯(lián)系人printf("輸入刪除人的名字:");scanf("%s", name);//找到名字為name的人int ret = FindByName(pc, name);//找到這個人所在的位置if (ret == -1){printf("要刪除得到人不存在\n");return;}//刪除這個人int i = 0;for (i = ret; i < pc->sz - 1; i++)//刪除這個人,并讓后面的數往前走{pc->data[i] = pc->data[i + 1];}pc->sz--;printf("刪除成功\n");
}

查找需要找的人

void SearchContact(Contact* pc)//查找人
{assert(pc);char name[NAME_MAX];printf("輸入查找人的名字:");scanf("%s", name);//找到名字為name的人int ret = FindByName(pc, name);if (ret == -1){printf("要查找的人不存在\n");return;}//顯示出來printf("%-20s%-5s%-5s%-12s%-30s\n", "名字", "年齡", "性別", "電話", "地址");printf("%-20s%-5d%-5s%-12s%-30s\n",pc->data[ret].name, pc->data[ret].age, pc->data[ret].sex, pc->data[ret].tele, pc->data[ret].addr);
}

修改通訊錄

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

通訊錄的實現

#define _CRT_SECURE_NO_WARNINGS 
#include "contact.h"//動態(tài)
void InitContact(Contact* pc)
{assert(pc);pc->sz = 0;pc->capacity = DEFAULT_SZ;pc->data = calloc(pc->capacity, sizeof(PeoInfo));//開辟一個能存放當前容量的空間if (pc->data == NULL)//判斷開辟是否成功{perror("calloc");return;}memset(pc->data, 0, sizeof(pc->data));//將開辟的空間全部初始化為0
}void CheckCapacity(Contact* pc)//給通訊錄增容
{if (pc->sz == pc->capacity)//判斷是否是需要增容{PeoInfo* ptr = (PeoInfo*)realloc(pc->data, (pc->capacity + DEFAULT_INC) * sizeof(PeoInfo));//擴容if (ptr != NULL)//判斷是否增容成功{pc->data = ptr;pc->capacity += DEFAULT_INC;printf("增容成功\n");}else{perror("AddContact->realloc");return;}}
}
void DestroyContact(Contact* pc)//刪除通訊錄
{free(pc->data);//釋放所開辟的空間pc->data = NULL;pc->capacity = 0;pc->sz = 0;
}
void AddContact(Contact* pc)//增容
{assert(pc);CheckCapacity(pc);//增加信息printf("請輸入名字:");scanf("%s", pc->data[pc->sz].name);printf("請輸入年齡:");scanf("%d", &pc->data[pc->sz].age);printf("請輸入性別:");scanf("%s", pc->data[pc->sz].sex);printf("請輸入電話:");scanf("%s", pc->data[pc->sz].tele);printf("請輸入地址:");scanf("%s", pc->data[pc->sz].addr);pc->sz++;printf("增加成功\n");
}void ShowContact(Contact* pc)//顯示通訊錄
{assert(pc);if (pc->sz == 0){printf("通訊錄為空,無需打印\n");return;}int i = 0;//名字	年齡	性別	電話	地址printf("%-20s%-5s%-5s%-12s%-30s\n", "名字", "年齡", "性別", "電話", "地址");for (i = 0; i < pc->sz; i++){//打印每個人信息printf("%-20s%-5d%-5s%-12s%-30s\n",pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);}
}int FindByName(Contact* pc, char name[])//查找人,判斷這個人的位置與是否存在
{assert(pc);int i = 0;for (i = 0; i < pc->sz; i++){if (strcmp(pc->data[i].name, name) == 0){return i;}}return -1;//找不到
}
void DelContact(Contact* pc)//刪除所需要刪除的人
{char name[NAME_MAX];assert(pc);if (pc->sz == 0){printf("通訊錄為空,無法刪除\n");return;}//找到聯(lián)系人printf("輸入刪除人的名字:");scanf("%s", name);//找到名字為name的人int ret = FindByName(pc, name);//找到這個人所在的位置if (ret == -1){printf("要刪除得到人不存在\n");return;}//刪除這個人int i = 0;for (i = ret; i < pc->sz - 1; i++)//刪除這個人,并讓后面的數往前走{pc->data[i] = pc->data[i + 1];}pc->sz--;printf("刪除成功\n");
}void SearchContact(Contact* pc)//查找人
{assert(pc);char name[NAME_MAX];printf("輸入查找人的名字:");scanf("%s", name);//找到名字為name的人int ret = FindByName(pc, name);if (ret == -1){printf("要查找的人不存在\n");return;}//顯示出來printf("%-20s%-5s%-5s%-12s%-30s\n", "名字", "年齡", "性別", "電話", "地址");printf("%-20s%-5d%-5s%-12s%-30s\n",pc->data[ret].name, pc->data[ret].age, pc->data[ret].sex, pc->data[ret].tele, pc->data[ret].addr);
}void ModifyContact(Contact* pc)//修改通訊錄
{assert(pc);char name[NAME_MAX];printf("輸入要修改人的名字:");scanf("%s", name);//找到名字為name的人int ret = FindByName(pc, name);if (ret == -1){printf("要修改的人不存在\n");return;}//修改printf("請輸入名字:");scanf("%s", pc->data[ret].name);printf("請輸入年齡:");scanf("%d", &pc->data[ret].age);printf("請輸入性別:");scanf("%s", pc->data[ret].sex);printf("請輸入電話:");scanf("%s", pc->data[ret].tele);printf("請輸入地址:");scanf("%s", pc->data[ret].addr);
}

好了,今天的內容博主就講到這里了,如果有講的不好的地方,歡迎各位到評論區(qū)留言,如果覺得博主講的不錯就送上一個三連吧~謝謝各位

http://www.risenshineclean.com/news/64431.html

相關文章:

  • 學校網站的英文奇葩網站100個
  • 網站模板設計開發(fā)站長工具四葉草
  • wordpress怎么上傳logo百度關鍵詞優(yōu)化工具
  • 石家莊專業(yè)建站公司網頁版百度云
  • 代理服務器地址seo搜索引擎優(yōu)化服務
  • 騰訊云做網站需要報備百度人工服務熱線24小時
  • 專業(yè)網站設計哪家好可以做產品推廣的軟件有哪些
  • 代銷網站源碼seo優(yōu)化技術是什么
  • wordpress半透明主題關鍵詞優(yōu)化排名軟件
  • 禁止wordpress獲取隱私新手怎么入行seo
  • 武漢網站推廣霸屏寧波正規(guī)優(yōu)化seo軟件
  • 網站域名備案在哪里職業(yè)培訓機構需要什么資質
  • 谷搜易外貿網站建設站長之家關鍵詞挖掘工具
  • 如何利用源代碼做網站今日頭條最新
  • 網站建設需求 百度文庫三十個知識點帶你學黨章
  • 盛澤做網站的微信賣貨小程序怎么做
  • 設計廣告圖用什么軟件好用有利于seo優(yōu)化的是
  • 網站的站內結構錨文本是如何做的seo指什么
  • 做電影網站模板教學設計免費注冊個人網站不花錢
  • java網站開發(fā)是干什么安徽網絡關鍵詞優(yōu)化
  • 工信局網站備案查詢溫州seo網站推廣
  • 中國企業(yè)網銀怎么轉賬seo推廣軟
  • 石家莊專業(yè)網站設計電話搜狗競價推廣效果怎么樣
  • 網站做下載功能網站代搭建維護
  • 滄州有沒有做網站的國外網站制作
  • 怎樣進行站點優(yōu)化seo高端培訓
  • 什么做網站做個多少錢啊排名優(yōu)化seo
  • wordpress用windows會慢寧波seo關鍵詞優(yōu)化報價
  • 自己做的網站做登錄網店運營與推廣
  • 做競彩網站代理犯法么站長統(tǒng)計app軟件下載