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

當(dāng)前位置: 首頁 > news >正文

html動態(tài)背景代碼seo體系百科

html動態(tài)背景代碼,seo體系百科,軟件開發(fā)工具推薦,網(wǎng)站服務(wù)器放在哪里好前言:生活中處處都會看到或是用到通訊錄,今天我們就通過C語言來簡單的模擬實(shí)現(xiàn)一下通訊錄。 雞湯:跨越山海,終見曙光! 鏈接:gitee倉庫:代碼鏈接 目錄 主函數(shù)聲明部分初始化通訊錄實(shí)現(xiàn)擴(kuò)容的函數(shù)增加通訊錄所…

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

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

目錄

    • 主函數(shù)
    • 聲明部分
      • 初始化通訊錄
      • 實(shí)現(xiàn)擴(kuò)容的函數(shù)
      • 增加通訊錄所需要人
      • 顯示通訊錄
      • 選擇刪除的人
      • 查找需要找的人
      • 修改通訊錄
    • 通訊錄的實(shí)現(xiàn)

當(dāng)然了,在模擬實(shí)現(xiàn)一個通訊錄前我們依然需要一個大致的框架。

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

當(dāng)然了,既然是實(shí)現(xiàn)一個通訊錄這樣的功能,我們把在寫這個功能的時候把它分成三個模塊
在這里插入圖片描述

主函數(shù)

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

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

//類型的聲明
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;//存放數(shù)據(jù)int sz;//記錄當(dāng)前通訊錄中存在的人的信息個數(shù)int capacity;//記錄的是通訊錄的當(dāng)前容量
}Contact;

主函數(shù)部分:

#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;//存放數(shù)據(jù)int sz;//記錄當(dāng)前通訊錄中存在的人的信息個數(shù)int capacity;//記錄的是通訊錄的當(dāng)前容量
}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));//開辟一個能存放當(dāng)前容量的空間if (pc->data == NULL)//判斷開辟是否成功{perror("calloc");return;}memset(pc->data, 0, sizeof(pc->data));//將開辟的空間全部初始化為0
}

實(shí)現(xiàn)擴(kuò)容的函數(shù)

void CheckCapacity(Contact* pc)//給通訊錄增容
{if (pc->sz == pc->capacity)//判斷是否是需要增容{PeoInfo* ptr = (PeoInfo*)realloc(pc->data, (pc->capacity + DEFAULT_INC) * sizeof(PeoInfo));//擴(kuò)容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++)//刪除這個人,并讓后面的數(shù)往前走{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);
}

通訊錄的實(shí)現(xiàn)

#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));//開辟一個能存放當(dāng)前容量的空間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));//擴(kuò)容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++)//刪除這個人,并讓后面的數(shù)往前走{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);
}

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

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

相關(guān)文章:

  • 福州網(wǎng)站建設(shè)公司自己建網(wǎng)站怎么推廣
  • 綜述題建設(shè)網(wǎng)站需要幾個步驟谷歌網(wǎng)址
  • 網(wǎng)站開發(fā)流行精準(zhǔn)客戶數(shù)據(jù)采集軟件
  • 用dw做的網(wǎng)站怎么放到網(wǎng)上google谷歌搜索主頁
  • 網(wǎng)站后臺用esayui做網(wǎng)絡(luò)營銷是學(xué)什么
  • 大連做網(wǎng)站建設(shè)怎么用模板做網(wǎng)站
  • 網(wǎng)上學(xué)編程可靠嗎佛山市seo推廣聯(lián)系方式
  • 麻陽住房和城鄉(xiāng)建設(shè)局網(wǎng)站蘭州網(wǎng)絡(luò)推廣新手
  • 哪個網(wǎng)站可以做兼職ppt模板廣州seo診斷
  • 0wordpress進(jìn)行seo網(wǎng)站建設(shè)
  • 重慶金山建設(shè)監(jiān)理有限公司網(wǎng)站長沙網(wǎng)站推廣公司排名
  • 廣州積分入學(xué)網(wǎng)站百度seo排名教程
  • 江山網(wǎng)站制作廣州品牌營銷策劃公司排名
  • 做美圖網(wǎng)站有哪些東西seo優(yōu)化百度技術(shù)排名教程
  • 網(wǎng)站開發(fā) 一眼亞馬遜排名seo
  • 怎樣在設(shè)計(jì)網(wǎng)站做圖賺錢seo流量軟件
  • 網(wǎng)站建設(shè)構(gòu)思市場營銷平臺
  • wampserver裝wordpress福建seo搜索引擎優(yōu)化
  • 江蘇專業(yè)網(wǎng)站制作公司新品牌推廣方案
  • flash 做ppt的模板下載網(wǎng)站刷粉網(wǎng)站推廣快點(diǎn)
  • 蘭州專業(yè)做網(wǎng)站網(wǎng)站制作網(wǎng)站推廣
  • 什么網(wǎng)站可以做設(shè)計(jì)兼職在線查網(wǎng)站的ip地址
  • h5網(wǎng)站制作報(bào)價(jià)app推廣方案模板
  • 博客網(wǎng)站制作以網(wǎng)絡(luò)營銷為主題的論文
  • 婚戀網(wǎng)站如何做自媒體營銷環(huán)球軍事網(wǎng)最新軍事新聞最新消息
  • 網(wǎng)站建設(shè)授權(quán)書百度客服聯(lián)系方式
  • 閔行區(qū)做網(wǎng)站公司寧德市教育局
  • 網(wǎng)站建設(shè)公司怎么找業(yè)務(wù)seo查詢平臺
  • 陜西手機(jī)網(wǎng)站建設(shè)武漢網(wǎng)站推廣
  • 免費(fèi)建網(wǎng)站平臺哪個好網(wǎng)頁搜索快捷鍵