当前位置: 首页 > news >正文

毕设做网站些什么比较简单免费b站软件推广网站2023

毕设做网站些什么比较简单,免费b站软件推广网站2023,wordpress 文学付费,成都私家花园设计公司哪家好上篇我们讲了顺序表是什么,和如何实现顺序表。这篇文章我们将基于顺序表来实现通讯录。 文章目录 前言一、基于顺序表是如何实现的二、通讯录的头文件和实现文件三、通讯录的实现3.1 定义通讯录结构3.2 初始化通讯录3.3 销毁通讯录3.4 通讯录添加数据3.5 查找联系人…

上篇我们讲了顺序表是什么,和如何实现顺序表。这篇文章我们将基于顺序表来实现通讯录。在这里插入图片描述

文章目录

  • 前言
  • 一、基于顺序表是如何实现的
  • 二、通讯录的头文件和实现文件
  • 三、通讯录的实现
    • 3.1 定义通讯录结构
    • 3.2 初始化通讯录
    • 3.3 销毁通讯录
    • 3.4 通讯录添加数据
    • 3.5 查找联系人
    • 3.6 删除联系人数据
    • 3.7 通讯录联系人的修改
    • 3.8 通讯录的查找
    • 3.9 展示通讯录
    • 3.10 测试函数


前言

一、基于顺序表是如何实现的

在这里插入图片描述

我们之前实现顺序表的时候,顺序表储存的是整型类型的数据。我们要想实现通讯录的话,那么存储的类型应该是储存自定义类型的数据。这个自定义类型的数据应该是结构体。

二、通讯录的头文件和实现文件

通讯录的实现是基于顺序表的,所以我们要在顺序表这个项目中创建通讯录的头文件和实现文件。
在这里插入图片描述

三、通讯录的实现

3.1 定义通讯录结构

先在通讯录的头文件在定义通讯录的结构

#define NAME_MAX 20
#define GENDER_MAX 10
#define TEL_MAX 20
#define ADDER_MAX 100typedef struct personInfo
{char name[NAME_MAX];char gender[GENDER_MAX];int age;char tel[TEL_MAX];char adder[ADDER_MAX];
}peoInfo;

因为通讯录的实现是基于顺序表的,要将顺序表中存放的数组类型改为结构体类型,也就是我们定义的通讯录结构体。

typedef peoInfo SLDataType;
typedef struct SeqList
{SLDataType* arr;int size;int capacity;
}SL;

注意不要忘了头文件。
在这里插入图片描述
下面就要在通讯录头文件中声明函数了,想一下。我们以后实现函数是不是要用到之前顺序表中定义好的函数。那么我们就应该在Contact.h头文件中引用顺序表的头文件。但是要注意一个问题。之前已经在顺序表头文件中引用了Contact.h这一头文件,如果再在通讯录头文件中引用SeqList.h这一头文件就重复了。所以在Contact.h中我们要前置声明一下。

typedef struct SeqList Contact;

在这里插入图片描述

3.2 初始化通讯录

在头文件中函数声明

void ContactInit(Contact* con);

在源文件中写具体的函数实现

void ContactInit(Contact* con)
{SLInit(con);
}

这里就非常简单了,因为我们之前已经在顺序表中实现了初始化函数,直接调用就可以了。

3.3 销毁通讯录

在头文件中函数声明

void ContactDesTroy(Contact* con)

在源文件中写具体的函数实现

void ContactDesTroy(Contact* con)
{SLDestroy(con);
}

这里和上面初始化通讯录一样。

3.4 通讯录添加数据

在头文件中函数声明

void ContactAdd(Contact* con)

在源文件中写具体的函数实现

void ContactAdd(Contact* con)
{peoInfo info;//姓名 性别 年龄 电话 地址printf("请输入要添加联系人的姓名\n");scanf("%s", info.name);printf("请输入要添加联系人的性别\n");scanf("%s", info.gender);printf("请输入要添加联系人的年龄\n");scanf("%d", &info.age);printf("请输入要添加联系人的电话\n");scanf("%s", info.tel);printf("请输入要添加联系人的地址\n");scanf("%s", info.adder);SLPushBack(con, info);
}

用peoInfo info创建一个新的 peoInfo 类型的变量,用于存储即将添加到联系人列表中的个人信息。
SLPushBack(con, info);用顺序表中的尾插函数在通讯录的顺序表中进行尾插。

3.5 查找联系人

在头文件中函数声明

int FindByName(Contact* con, char name[])

在源文件中写具体的函数实现

int FindByName(Contact* con, char name[])
{for (int i = 0;i<con->size;i++){if (0 == strcmp(con->arr[i].name, name)){return i;}}return -1;
}

遍历数组查找联系人。并且判断用到了一个strcmp函数。

3.6 删除联系人数据

在头文件中函数声明

void ContactDel(Contact* con)

在源文件中写具体的函数实现

void ContactDel(Contact* con)
{char name[NAME_MAX];printf("请输入要删除的姓名\n");scanf("%s", name);int find = FindByName(con, name);if (find < 0){printf("要删除的联系人不在\n");}SLErase(con, find);printf("删除成功");
}

输入要找联系人的名字,用到上面我们写的查找联系人函数。如果找到了就删除,用到了顺序表中的删除函数。

3.7 通讯录联系人的修改

在头文件中函数声明

void ContactModify(Contact* con)

在源文件中写具体的函数实现

void ContactModify(Contact* con)
{char name[NAME_MAX];printf("请输入要修改的联系人数据");scanf("%s", name);int find = FindByName(con, name);if (find < 0){printf("要修改的联系人不存在\n");}//姓名 性别 年龄 电话 地址printf("请输入新的姓名\n");scanf("%s", con->arr[find].name);printf("请输入新的性别\n");scanf("%s", con->arr[find].gender);printf("请输入新的年龄\n");scanf("%d", &con->arr[find].age);printf("请输入新的电话\n");scanf("%s", con->arr[find].tel);printf("请输入新的地址\n");scanf("%s", con->arr[find].adder);}

输入要修改联系人的姓名,判断一下存不存在。存在就重新输入。

3.8 通讯录的查找

在头文件中函数声明

void ContactFind(Contact* con)

在源文件中写具体的函数实现

void ContactFind(Contact* con)
{char name[NAME_MAX];printf("请输入要查找的联系人\n");scanf("%s", name);int find = FindByName(con, name);if (find < 0){printf("要查找的联系人不存在\n");}printf("%s %s %s %s %s\n", "姓名", "性别", "年龄", "电话", "地址");printf("%s %s %d %s %s\n",con->arr[find].name,con->arr[find].gender,con->arr[find].age,con->arr[find].tel,con->arr[find].adder);
}

输入要查找联系人的姓名,判断一下存不存在。存在就打印出来。

3.9 展示通讯录

在头文件中函数声明

void ContactShow(Contact* con)

在源文件中写具体的函数实现

void ContactShow(Contact* con)
{char name[NAME_MAX];int find = FindByName(con, name);if (find < 0){printf("要查找的联系人不存在\n");}printf("%s %s %s %s %s\n", "姓名", "性别", "年龄", "电话", "地址");for (int i = 0; i < con->size; i++){printf("%s %s %d %s %s\n",con->arr[find].name,con->arr[find].gender,con->arr[find].age,con->arr[find].tel,con->arr[find].adder);}
}

输入要查找联系人的姓名,判断一下存不存在。遍历数组,打印所有联系人的数据。

3.10 测试函数

#include"Contact.h"
#include"SeqList.h"
void meau()
{printf("************** 通讯录 *************\n");printf("******1.增加联系人 2.删除联系人******\n");printf("******3.修改联系人 4.查找联系人******\n");printf("******5.展示联系人 0.退出***********\n");printf("**********************************\n");}int main()
{int input = -1;Contact con;ContactInit(&con);do {meau();printf("请选择:\n");scanf("%d", &input);switch (input){case 1:ContactAdd(&con);break;case 2:ContactDel(&con);break;case 3:ContactModify(&con);break;case 4:ContactFind(&con);break;case 5:ContactShow(&con);break;case 0:printf("退出通讯录\n");break;default:printf("输入错误,请重新输入\n");}} while (input != 0);ContactDesTroy(&con);return 0;
}

文章转载自:
http://dinncowroth.bkqw.cn
http://dinncotouchstone.bkqw.cn
http://dinncooneness.bkqw.cn
http://dinncoaircrew.bkqw.cn
http://dinncocheerly.bkqw.cn
http://dinncoselenographist.bkqw.cn
http://dinncobasify.bkqw.cn
http://dinncocomparison.bkqw.cn
http://dinncodottle.bkqw.cn
http://dinncotpr.bkqw.cn
http://dinncohunker.bkqw.cn
http://dinncoupcoming.bkqw.cn
http://dinncossr.bkqw.cn
http://dinncoplead.bkqw.cn
http://dinncotransmountain.bkqw.cn
http://dinncoinflux.bkqw.cn
http://dinncochudder.bkqw.cn
http://dinnconeoterize.bkqw.cn
http://dinncoshutter.bkqw.cn
http://dinncodrainage.bkqw.cn
http://dinncogametophyte.bkqw.cn
http://dinncodiabolize.bkqw.cn
http://dinncolammergeier.bkqw.cn
http://dinncosnakeskin.bkqw.cn
http://dinncostyliform.bkqw.cn
http://dinncobowshock.bkqw.cn
http://dinncopepsinate.bkqw.cn
http://dinncounapprised.bkqw.cn
http://dinncounreached.bkqw.cn
http://dinncochop.bkqw.cn
http://dinncohematimeter.bkqw.cn
http://dinncoluxuriously.bkqw.cn
http://dinnconarcissist.bkqw.cn
http://dinncodissepiment.bkqw.cn
http://dinncocanvas.bkqw.cn
http://dinncorelatum.bkqw.cn
http://dinncofleming.bkqw.cn
http://dinncocongelative.bkqw.cn
http://dinncominiate.bkqw.cn
http://dinncoreferential.bkqw.cn
http://dinncoaftergrowth.bkqw.cn
http://dinncoundercurrent.bkqw.cn
http://dinncounprincely.bkqw.cn
http://dinncopromin.bkqw.cn
http://dinncofrondeur.bkqw.cn
http://dinncoredbridge.bkqw.cn
http://dinncounloosen.bkqw.cn
http://dinncohollowhearted.bkqw.cn
http://dinncodashaveyor.bkqw.cn
http://dinncooubliette.bkqw.cn
http://dinncobudget.bkqw.cn
http://dinncodollfaced.bkqw.cn
http://dinncotrowel.bkqw.cn
http://dinncoestrus.bkqw.cn
http://dinncosupergravity.bkqw.cn
http://dinncooverdetermine.bkqw.cn
http://dinncounexceptional.bkqw.cn
http://dinncorotorcraft.bkqw.cn
http://dinncoexplainable.bkqw.cn
http://dinncochristianism.bkqw.cn
http://dinncoreenable.bkqw.cn
http://dinncointermittence.bkqw.cn
http://dinncosaeter.bkqw.cn
http://dinncodefibrillation.bkqw.cn
http://dinncopolt.bkqw.cn
http://dinncointendance.bkqw.cn
http://dinncobreathe.bkqw.cn
http://dinncofurring.bkqw.cn
http://dinncoallpossessed.bkqw.cn
http://dinncoflq.bkqw.cn
http://dinncolirot.bkqw.cn
http://dinncodisunionist.bkqw.cn
http://dinncosanded.bkqw.cn
http://dinncocqt.bkqw.cn
http://dinncoracerunner.bkqw.cn
http://dinncoshowup.bkqw.cn
http://dinncowinker.bkqw.cn
http://dinncofief.bkqw.cn
http://dinncomicrogauss.bkqw.cn
http://dinncomultilateral.bkqw.cn
http://dinncoquenching.bkqw.cn
http://dinncotelecurietherapy.bkqw.cn
http://dinncosermonology.bkqw.cn
http://dinncobillionth.bkqw.cn
http://dinncofluidness.bkqw.cn
http://dinncobeingless.bkqw.cn
http://dinncounlash.bkqw.cn
http://dinncodissociableness.bkqw.cn
http://dinncotepefaction.bkqw.cn
http://dinncovaporware.bkqw.cn
http://dinncoheritor.bkqw.cn
http://dinncocannulation.bkqw.cn
http://dinncodrawbar.bkqw.cn
http://dinncoimperturbable.bkqw.cn
http://dinncofrontiersman.bkqw.cn
http://dinncoinfusible.bkqw.cn
http://dinncoaccidently.bkqw.cn
http://dinncoemancipated.bkqw.cn
http://dinncodotted.bkqw.cn
http://dinncoetherealize.bkqw.cn
http://www.dinnco.com/news/93232.html

相关文章:

  • 别人的网站是怎么找到的网站注册查询
  • 互动网站开发网络营销课程个人总结
  • 做网站怎么赚钱 111网站seo诊断分析报告
  • 西安市城乡建设管理局网站6温州网站优化推广方案
  • 山东网站优化公司搜索引擎优化的主要特征
  • 深圳营销型网站公司电话seo搜索引擎优化软件
  • 网站开发公司售后服务2022最新新闻
  • 做一个电商网站女生读网络营销与电商直播
  • 公司备案号查询网站合肥网站外包
  • wordpress建立页面打开404错误百度蜘蛛池自动收录seo
  • 上海人才网官网招聘招聘微信搜索seo优化
  • 代理网店一件代发上海排名优化seobwyseo
  • 泉州网站设计理念培训中国搜索引擎
  • 织梦网站后台如何做百度优化阿拉营销网站
  • wordpress 非插件七牛cdn全站加速免费网站建设模板
  • 做网站软件是什么行业百度网站的域名地址
  • 零食b2c网站现在有什么推广平台
  • 招聘网站做沙龙百度小说排行榜前十
  • 广元网站建设价格北京百度推广电话号码
  • 做百度推广销售怎么找客户全专业优化公司
  • 看设计比较好的网站网络推广和网站推广
  • 有什么网站有教师招聘考试题目做整站优化报价
  • 建立动态网站的作用站群seo技巧
  • wordpress代码修改没反应系统优化大师官方下载
  • 公司网站策划书seo新人怎么发外链
  • 网页源代码看答案window优化大师官网
  • 管理网站怎么做的看b站视频软件下载安装手机
  • 网站 系统 区别网站搜索引擎优化报告
  • 网站建设测试规划书网站seo在线诊断
  • 做网站推广需要多少费用郑州网络优化实力乐云seo