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

石家庄企业建站系统网络广告的发布方式包括

石家庄企业建站系统,网络广告的发布方式包括,那些网站容易做淘宝推广,萍乡的电子商务网站建设公司【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一…

【C语言】通讯录的实现(静态版

  • 一.前言
    • 1.前期准备
      • a.菜单实现
      • b.联系人结构体的构建
      • c.菜单选项的功能
      • d.#define 的定义
    • 2.功能的实现
      • a.初始化通讯录
      • b.增加联系人
      • c.显示通讯录
      • d.查找联系人
      • e.修改联系人
      • d.删除联系人
    • 3. 总代码
      • test.c
      • contact.c
      • contact.h

一.前言

本文将会用c语言实现一个通讯录的系统,并且存储若干人的信息,每个人的信息包括:姓名,性别,年龄,电话号码,住址。此通讯录系统的功能包括:
1.增加联系人
2.删除对应的联系人
3.查找联系人
4.修改联系人的信息
5.排序此通讯录
6.显示通讯录每个人的信息 。

1.前期准备

建立菜单,十分重要,可以与用户之间建立联系。

菜单中要包含所以功能,以便用户操作。

a.菜单实现

void menu()
{printf("******************************\n");printf("*****   1.add    2.del   *****\n");printf("*****   3.search  4.show *****\n");printf("****    4.modify  6.sort ****\n");printf("****    0.exit           ****\n");printf("*****************************\n");
}

在这里插入图片描述

b.联系人结构体的构建

typedef struct PeoInfo
{char name[MAX_NAME];int age;char tele[MAX_TELE];char sex[MAX_SEX];char addr[MAX_ADDR];
}PeoInfo;typedef struct Contact
{PeoInfo data[MAX];int sz;//记录个数
}Contact;

c.菜单选项的功能

利用枚举enum增加可读性,

再利用 switch函数实现各自功能。

enum Option
{EXIT,//0ADD,//1DEL,//2SEARCH,//3SHOW,//4MODIFY,//5SORT//6
};
int main()
{int input = 0;Contact con;//建立结构体InitContact(&con);do{menu();printf("请选择:>");scanf("%d", &input);switch (input){case ADD:AddContact(&con);break;case DEL:DelContact(&con);break;case SEARCH:SearchContact(&con);break;case SHOW:ShowContact(&con);break;case MODIFY:ModifyContact(&con);case SORT:SortContact(&con);case EXIT:printf("退出程序\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

d.#define 的定义

便于修改数据,增加可改性

#define MAX 100
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30

2.功能的实现

a.初始化通讯录

void InitContact(Contact* pc)
{pc->sz= 0;memset(pc->data, 0, sizeof(pc->sz));
} //初始化结构体

b.增加联系人

void AddContact(Contact* pc)
{if (pc->sz == MAX){printf("通讯录已满,无法增加\n");return;}printf("请输入名字:>");scanf("%s", pc->data[pc->sz].name);printf("请输入性别:>");scanf("%s", pc->data[pc->sz].sex);printf("请输入电话:>");scanf("%s", pc->data[pc->sz].tele);printf("请输入地址:>");scanf("%s", pc->data[pc->sz].addr);printf("请输入年龄:>");scanf("%d", &(pc->data[pc->sz].age)); //注意年龄在这是一个int类型,所以传址pc->sz++;printf("添加成功\n");
}

在这里插入图片描述

c.显示通讯录

int cmp_by_name(const void* p1, const void* p2)
{return strcmp(((PeoInfo*)p1)->name, ((PeoInfo*)p2)->name);
}
void SortContact(Contact* pc)
{qsort(pc->data, pc->sz, sizeof(PeoInfo), cmp_by_name);printf("排序成功\n");
}

在这里插入图片描述

d.查找联系人

查找联系人这边我们需要构建一个函数,这个函数需要去根据我们想要寻找的姓名去在通讯录中寻找这个人所对应的位置,加入找到了就可以返回对应位置的下标,否则返回-1。找到之后就和打印通讯录的操作差不多打印出来就好了。

static int FindByName(const Contact* pc, char name[])//通过名字来找
{for (int i = 0;i < pc->sz;i++){if (0 == strcmp(pc->data[i].name, name)){return i;}}return -1;
} //寻找或删除联系人下标
 void SearchContact(Contact* pc)
{char name[MAX_NAME] = { 0 };printf("请输入要查找人的名字:>");scanf("%s", name);int pos = FindByName(pc, name);//pos为要寻找的人的下标if (pos == -1){printf("要查找人不存在\n");return;}printf("%-10s %-4s %-5s %-12s %-30s\n", "姓名", "年龄", "性别", "电话", "地址");printf("%-10s %-4d %-5s %-12s %-30s\n", pc->data[pos].name, pc->data[pos].age, pc->data[pos].sex,pc->data[pos].tele, pc->data[pos].addr);
}

在这里插入图片描述

e.修改联系人

void ModifyContact(Contact* pc)
{char name[MAX_NAME] = { 0 };printf("请输入要修改人的名字:>");scanf("%s", name);int pos = FindByName(pc, name);if (pos == -1){printf("要修改人不存在\n");return;}printf("请输入名字:>");scanf("%s", pc->data[pc->sz].name);printf("请输入性别:>");scanf("%s", pc->data[pc->sz].sex);printf("请输入电话:>");scanf("%s", pc->data[pc->sz].tele);printf("请输入地址:>");scanf("%s", pc->data[pc->sz].addr);printf("请输入年龄:>");scanf("%d", &(pc->data[pc->sz].age));printf("修改成功\n");
}

d.删除联系人

void DelContact(Contact* pc)
{char name[MAX_NAME] = { 0 };if (pc->sz == 0){printf("通讯录为空,无法删除\n");return;}printf("要删除人的姓名:>");scanf("%s", name);int pos;pos = FindByName(pc, name);if (pos == -1){printf("要删除人不存在\n");return;}int i = 0;for (i = pos;i < pc->sz-1;i++){pc->data[i] = pc->data[i + 1];}pc->sz--;printf("删除成功\n");
}

在这里插入图片描述

3. 总代码

test.c

#include"contact.h"
void menu()
{printf("******************************\n");printf("*****   1.add    2.del   *****\n");printf("*****   3.search  4.show *****\n");printf("****    4.modify  6.sort ****\n");printf("****    0.exit           ****\n");printf("*****************************\n");
}
enum Option
{EXIT,ADD,DEL,SEARCH,SHOW,MODIFY,SORT
};
int main()
{int input = 0;Contact con;InitContact(&con);do{menu();printf("请选择:>");scanf("%d", &input);switch (input){case ADD:AddContact(&con);break;case DEL:DelContact(&con);break;case SEARCH:SearchContact(&con);break;case SHOW:ShowContact(&con);break;case MODIFY:ModifyContact(&con);case SORT:SortContact(&con);case EXIT:printf("退出程序\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

contact.c

#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"void InitContact(Contact* pc)
{pc->sz = 0;memset(pc->data, 0, sizeof(pc->data));
}void AddContact(Contact* pc)
{if (pc->sz == MAX){printf("通讯录已满,无法增加\n");return;}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(const Contact* pc)
{int i = 0;//姓名      年龄      性别     电话      地址//zhangsan 20        男      123456    北京////打印标题printf("%-10s %-4s %-5s %-12s %-30s\n", "姓名", "年龄", "性别", "电话", "地址");//打印数据for (i = 0; i < pc->sz; i++){printf("%-10s %-4d %-5s %-12s %-30s\n",pc->data[i].name, pc->data[i].age, pc->data[i].sex, pc->data[i].tele, pc->data[i].addr);}
}static int FindByName(const Contact* pc, char name[])
{int i = 0;for (i = 0; i < pc->sz; i++){if (0 == strcmp(pc->data[i].name, name)){return i;}}return -1;
}void DelContact(Contact* pc)
{char name[MAX_NAME] = { 0 };if (pc->sz == 0){printf("通讯录为空,无法删除\n");return;}//删除//1. 找到要删除的人 - 位置(下标)printf("输入要删除人的名字:>");scanf("%s", name);int pos = FindByName(pc, name);if (pos == -1){printf("要删除的人不存在\n");return;}int i = 0;//2. 删除 - 删除pos位置上的数据for (i = pos; i < pc->sz - 1; i++){pc->data[i] = pc->data[i + 1];}pc->sz--;printf("删除成功\n");
}void SearchContact(const Contact* pc)
{char name[MAX_NAME] = { 0 };printf("请输入要查找人的名字:>");scanf("%s", name);//查找int pos = FindByName(pc, name);if (pos == -1){printf("要查找的人不存在\n");return;}//打印printf("%-10s %-4s %-5s %-12s %-30s\n", "姓名", "年龄", "性别", "电话", "地址");//打印数据printf("%-10s %-4d %-5s %-12s %-30s\n",pc->data[pos].name,pc->data[pos].age,pc->data[pos].sex,pc->data[pos].tele,pc->data[pos].addr);
}void ModifyContact(Contact* pc)
{char name[MAX_NAME] = { 0 };printf("请输入要修改人的名字:>");scanf("%s", name);int pos = FindByName(pc, name);if (pos == -1){printf("要修改的人不存在\n");return;}//修改printf("请输入名字:>");scanf("%s", pc->data[pos].name);printf("请输入年龄:>");scanf("%d", &(pc->data[pos].age));printf("请输入性别:>");scanf("%s", pc->data[pos].sex);printf("请输入电话:>");scanf("%s", pc->data[pos].tele);printf("请输入地址:>");scanf("%s", pc->data[pos].addr);printf("修改成功\n");
}//按照名字来排序
int cmp_by_name(const void* e1, const void* e2)
{return strcmp(((PeoInfo*)e1)->name, ((PeoInfo*)e2)->name);
}void SortContact(Contact* pc)
{qsort(pc->data, pc->sz, sizeof(PeoInfo), cmp_by_name);printf("排序成功\n");
}

contact.h

#define  _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<string.h>#define MAX 100
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30typedef struct PeoInfo
{char name[MAX_NAME];int age;char tele[MAX_TELE];char sex[MAX_SEX];char addr[MAX_ADDR];
}PeoInfo;typedef struct Contact
{PeoInfo data[MAX];int sz;//记录个数
}Contact;void InitContact(Contact* pc);//初始化通讯录
void AddContact(Contact* pc);//增加联系人
void ShowContact(Contact* pc);//显示通讯录
void DelContact(Contact* pc);//删除联系人
void SortContact(Contact* pc);//排序通讯录
void ModifyContact(Contact* pc);//修改联系人信息
void SearchContact(Contact* pc);//查找联系人

👊👊👊
感谢阅读!!!
🌸

http://www.hkea.cn/news/640301/

相关文章:

  • 做毕设好的网站百度客服电话24小时
  • 上海手机网站建设电话咨询seo综合查询系统
  • wordpress 4.6 中文版沈阳seo
  • 文件管理软件天津搜索引擎优化
  • 九亭网站建设全国疫情高峰时间表最新
  • 青岛网站建设公司武汉seo收费
  • mvc网站建设的实验报告怎么做优化
  • 有官网建手机网站千锋教育培训多少钱费用
  • b2c交易模式的网站有哪些百度营销客户端
  • flash 学习网站重庆网站seo多少钱
  • 年终总结ppt模板免费下载网站小红书seo排名规则
  • 自己架设网站口碑营销的产品有哪些
  • 湖北省网站备案最快几天天津百度推广排名优化
  • app在线开发制作平台seo网络优化前景怎么样
  • 商务网站的基本情况网站建设工作总结
  • 山西建设厅网站网络销售怎么聊客户
  • 软装素材网站有哪些seo网络排名优化哪家好
  • 邯郸市做网站建设网络口碑营销案例分析
  • 罗湖网站建设联系电话西安核心关键词排名
  • 如何编写网站电脑清理软件十大排名
  • 怎么给企业制作网站seo关键词排名优化哪好
  • 高仿服装网站建设西安百度关键词推广
  • 网站单页面怎么做的百度seo站长工具
  • 网站建设谢辞企业营销型网站有哪些
  • 免费网站制作申请行业关键词一览表
  • 网站建设费关键词排名提高方法
  • 搭建淘宝客网站源码最近发生的新闻事件
  • 网站模版网网站关键词排名优化价格
  • 做网站去哪里全国免费发布广告信息平台
  • 靖江做网站湖南seo服务电话