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

北京网站制作公司转型方向网站建设图标图片

北京网站制作公司转型方向,网站建设图标图片,周口公司做网站,WordPress点击出现爱心通讯录 一、基本思路及功能介绍二、功能实现1.基础菜单的实现2.添加联系人信息功能实现3.显示联系人信息功能实现4.删除联系人信息功能实现5.查找联系人信息功能实现6.修改联系人信息功能实现7.排序联系人信息功能实现8.加载和保存联系人信息功能实现 三、源文件展示1.test.c2.… 通讯录 一、基本思路及功能介绍二、功能实现1.基础菜单的实现2.添加联系人信息功能实现3.显示联系人信息功能实现4.删除联系人信息功能实现5.查找联系人信息功能实现6.修改联系人信息功能实现7.排序联系人信息功能实现8.加载和保存联系人信息功能实现 三、源文件展示1.test.c2.contact.c3.contact.h 一、基本思路及功能介绍 想要用C语言实现通讯录的功能基本上涵概了C语言入门的一些知识运用如指针、结构体、文件操作、动态内存管理等相关的知识 实现一个简单的通讯录的基本功能 1.添加联系人信息2.删除联系人信息3.查找联系人信息4.修改联系人信息5.显示联系人信息6.排序联系人信息 7.保存联系人信息8.退出通讯录二、功能实现 1.基础菜单的实现 void menu() {printf(\t\t\t\t************************************\n);printf(\t\t\t\t****** 通讯录管理系统 ********\n);printf(\t\t\t\t************************************\n);printf(\t\t\t\t* 1.添加联系人 *\n);printf(\t\t\t\t* 2.删除联系人 *\n);printf(\t\t\t\t* 3.查找联系人 *\n);printf(\t\t\t\t* 4.修改联系人 *\n);printf(\t\t\t\t* 5.显示联系人 *\n);printf(\t\t\t\t* 6.排序联系人 *\n);printf(\t\t\t\t* 0.退出通讯录 *\n);printf(\t\t\t\t************************************\n);printf(\t\t\t\t************************************\n); } enum {EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT }; int main() {int input 0;struct 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 MODIFY:ModifyContact(con);//修改联系人信息break;case SHOW:ShowContact(con);//显示联系人信息break;case SORT:SortContact(con);//排序联系人信息break;case EXIT:SaveContact(con);//保存信息DistroyContact(con);//销毁通讯录信息printf(退出通讯录\n);break;default:printf(选择错误请重新选择\n);break;}} while (input);return 0; }2.添加联系人信息功能实现 //扩充容量 void CheckContact(struct Contact* pc) {if (pc-sz pc-capacity){struct PeoInfo* ptr (struct PeoInfo*)realloc(pc-data, (pc-capacity 2) * sizeof(struct PeoInfo));if (ptr ! NULL){pc-data ptr;pc-capacity 2;printf(扩容成功\n);}else{printf(扩容失败\n);exit(1);}} }//初始化通讯录 void InitContact(struct Contact* pc) {pc-sz 0;pc-data (struct PeoInfo*)malloc(DEFAULT_SZ * sizeof(struct PeoInfo));pc-capacity DEFAULT_SZ; }//添加联系人信息 void AddContact(struct Contact* pc) {CheckContact(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);printf(添加成功\n);pc-sz; }3.显示联系人信息功能实现 //显示联系人信息 void ShowContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空显示失败\n);return;}int i 0;printf(\t\t--------------------------------------------------------------------------\n);printf(\t\t--------------------------------------------------------------------------\n);printf(\t%15s\t%15s\t%15s\t%15s\t%15s\n\n,姓名, 年龄, 性别, 电话, 住址);for (i 0; i pc-sz; i){printf(\t%15s\t%15d\t%15s\t%15s\t%15s\n,pc-data[i].name,pc-data[i].age,pc-data[i].sex,pc-data[i].tele,pc-data[i].addr);}printf(\t\t--------------------------------------------------------------------------\n);printf(\t\t--------------------------------------------------------------------------\n); }4.删除联系人信息功能实现 //删除联系人信息 int FindContactByName(const struct 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; }void DelContact(struct Contact* pc) {if (pc-sz 0){printf(联系人为空操作失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要删除的联系人姓名:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(查找的联系人不存在\n);}else{for (int i pos; i pc-sz - 1; i){pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n);} }5.查找联系人信息功能实现 //查找联系人信息 void SearchContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空查找失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要查找的联系人的名字:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(联系人不存在\n);return;}else{printf(\t%15s\t%15s\t%15s\t%15s\t%15s\n\n,姓名, 年龄, 性别, 电话, 住址);printf(\t%15s\t%15d\t%15s\t%15s\t%15s\n,pc-data[pos].name,pc-data[pos].age,pc-data[pos].sex,pc-data[pos].tele,pc-data[pos].addr);} }6.修改联系人信息功能实现 //修改联系人信息 void ModifyContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空查找失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要修改的联系人姓名:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(联系人不存在\n);return;}else{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); }7.排序联系人信息功能实现 //排序联系人信息 void SortContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空无法排序\n);return;}int i 0;int j 0;struct PeoInfo tmp;for (i 0; i pc-sz - 1; i){int flag 1;for (j 0; j pc-sz - i - 1; j){if (strcmp(pc-data[j].name, pc-data[j 1].name) 0){tmp pc-data[j];pc-data[j] pc-data[j 1];pc-data[j 1] tmp;flag 0;}}if (flag 1){return;}}printf(排序成功\n); }8.加载和保存联系人信息功能实现 //加载有效信息到通讯录中 void LoadContact(struct Contact* pc) {FILE* pf fopen(contact.txt, rb);if (pf NULL){perror(contact:fopen);return;}struct PeoInfo tmp { 0 };while (fread(tmp, sizeof(struct PeoInfo), 1, pf)){CheckContact(pc);pc-data[pc-sz] tmp;pc-sz;}fclose(pf);pf NULL; }//保存信息 void SaveContact(struct Contact* pc) {//1.打开文件FILE* pf fopen(contact.txt, wb);if (pf NULL){perror(SaveContact:fopen);return;}//2.写数据int i 0;for (i 0; i pc-sz; i){fwrite((pc-data[i]), sizeof(struct PeoInfo), 1, pf);}//3.关闭文件fclose(pf);pf NULL; }三、源文件展示 1.test.c void menu() {printf(\t\t\t\t************************************\n);printf(\t\t\t\t****** 通讯录管理系统 ********\n);printf(\t\t\t\t************************************\n);printf(\t\t\t\t* 1.添加联系人 *\n);printf(\t\t\t\t* 2.删除联系人 *\n);printf(\t\t\t\t* 3.查找联系人 *\n);printf(\t\t\t\t* 4.修改联系人 *\n);printf(\t\t\t\t* 5.显示联系人 *\n);printf(\t\t\t\t* 6.排序联系人 *\n);printf(\t\t\t\t* 0.退出通讯录 *\n);printf(\t\t\t\t************************************\n);printf(\t\t\t\t************************************\n); } enum {EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT }; int main() {int input 0;struct 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 MODIFY:ModifyContact(con);//修改联系人信息break;case SHOW:ShowContact(con);//显示联系人信息break;case SORT:SortContact(con);//排序联系人信息break;case EXIT:SaveContact(con);//保存信息DistroyContact(con);//销毁通讯录信息printf(退出通讯录\n);break;default:printf(选择错误请重新选择\n);break;}} while (input);return 0; }2.contact.c #include contact.h//扩充容量 void CheckContact(struct Contact* pc) {if (pc-sz pc-capacity){struct PeoInfo* ptr (struct PeoInfo*)realloc(pc-data, (pc-capacity 2) * sizeof(struct PeoInfo));if (ptr ! NULL){pc-data ptr;pc-capacity 2;printf(扩容成功\n);}else{printf(扩容失败\n);exit(1);}} }//加载有效信息到通讯录中 void LoadContact(struct Contact* pc) {FILE* pf fopen(contact.txt, rb);if (pf NULL){perror(contact:fopen);return;}struct PeoInfo tmp { 0 };while (fread(tmp, sizeof(struct PeoInfo), 1, pf)){CheckContact(pc);pc-data[pc-sz] tmp;pc-sz;}fclose(pf);pf NULL; }//初始化通讯录 void InitContact(struct Contact* pc) {pc-sz 0;pc-data (struct PeoInfo*)malloc(DEFAULT_SZ * sizeof(struct PeoInfo));pc-capacity DEFAULT_SZ;LoadContact(pc);//加载有效信息到通讯录中 }//添加联系人信息 void AddContact(struct Contact* pc) {CheckContact(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);printf(添加成功\n);pc-sz; }//销毁通讯录 void DistroyContact(struct Contact* pc) {free(pc-data);pc-data NULL;pc-sz 0;pc-capacity 0; }//显示联系人信息 void ShowContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空显示失败\n);return;}int i 0;printf(\t\t--------------------------------------------------------------------------\n);printf(\t\t--------------------------------------------------------------------------\n);printf(\t%15s\t%15s\t%15s\t%15s\t%15s\n\n,姓名, 年龄, 性别, 电话, 住址);for (i 0; i pc-sz; i){printf(\t%15s\t%15d\t%15s\t%15s\t%15s\n,pc-data[i].name,pc-data[i].age,pc-data[i].sex,pc-data[i].tele,pc-data[i].addr);}printf(\t\t--------------------------------------------------------------------------\n);printf(\t\t--------------------------------------------------------------------------\n); }//删除联系人信息 int FindContactByName(const struct 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; }void DelContact(struct Contact* pc) {if (pc-sz 0){printf(联系人为空操作失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要删除的联系人姓名:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(查找的联系人不存在\n);}else{for (int i pos; i pc-sz - 1; i){pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n);} }//查找联系人信息 void SearchContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空查找失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要查找的联系人的名字:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(联系人不存在\n);return;}else{printf(\t%15s\t%15s\t%15s\t%15s\t%15s\n\n,姓名, 年龄, 性别, 电话, 住址);printf(\t%15s\t%15d\t%15s\t%15s\t%15s\n,pc-data[pos].name,pc-data[pos].age,pc-data[pos].sex,pc-data[pos].tele,pc-data[pos].addr);} }//修改联系人信息 void ModifyContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空查找失败\n);return;}char name[NAME_MAX] { 0 };printf(请输入要修改的联系人姓名:);scanf(%s, name);int pos FindContactByName(pc, name);if (pos -1){printf(联系人不存在\n);return;}else{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); }//排序联系人信息 void SortContact(struct Contact* pc) {if (pc-sz 0){printf(通讯录为空无法排序\n);return;}int i 0;int j 0;struct PeoInfo tmp;for (i 0; i pc-sz - 1; i){int flag 1;for (j 0; j pc-sz - i - 1; j){if (strcmp(pc-data[j].name, pc-data[j 1].name) 0){tmp pc-data[j];pc-data[j] pc-data[j 1];pc-data[j 1] tmp;flag 0;}}if (flag 1){return;}}printf(排序成功\n); }//保存信息 void SaveContact(struct Contact* pc) {//1.打开文件FILE* pf fopen(contact.txt, wb);if (pf NULL){perror(SaveContact:fopen);return;}//2.写数据int i 0;for (i 0; i pc-sz; i){fwrite((pc-data[i]), sizeof(struct PeoInfo), 1, pf);}//3.关闭文件fclose(pf);pf NULL; }3.contact.h #pragma once #include stdio.h #include stdlib.h #include string.h#define NAME_MAX 20 #define SEX_MAX 20 #define TELE_MAX 20 #define ADDR_MAX 20 #define DEFAULT_SZ 3struct PeoInfo {char name[NAME_MAX];//姓名int age; //年龄char sex[SEX_MAX]; //性别char tele[TELE_MAX];//电话char addr[ADDR_MAX];//住址 };struct Contact {struct PeoInfo* data;//能够动态存储联系人的信息int sz; //记录当前联系人的个数int capacity; //记录当前通讯录的容量 };//初始化通讯录 void InitContact(struct Contact* pc);//添加联系人信息 void AddContact(struct Contact* pc);//销毁通讯录信息 void DistroyContact(struct Contact* pc);//显示联系人信息 void ShowContact(struct Contact* pc);//删除联系人信息 void DelContact(struct Contact* pc);//查找联系人信息 void SearchContact(struct Contact* pc);//修改联系人信息 void ModifyContact(struct Contact* pc);//排序联系人信息 void SortContact(struct Contact* pc);//加载有效信息到通讯录中 void LoadContact(struct Contact* pc);//保存信息 void SaveContact(struct Contact* pc);#四、演示效果 没有联系人 存入联系人 查找联系人 修改联系人 显示联系人 排序联系人 退出通讯录
http://www.zqtcl.cn/news/240658/

相关文章:

  • 4a景区网站建设标准网站建设排名优化公司
  • 闲置服务器做网站简单做图网站
  • 网站建设制作软件叫啥网盟推广是什么
  • 常州市住房建设局网站大连设计网站的公司
  • 通用wap网站生成系统wordpress 安装旧版本
  • 做网站用的产品展示横幅手机app开发技术
  • 学校网站模板 中文版沈阳seo博客
  • seo策划方案整站优化服务
  • 灵芝产品网站建设方案wordpress登录开发
  • 企业网站软件开发部署php网站
  • 云服务器怎么搭建网站网站制作软件是什么
  • 网站建设的结尾官网网站设计
  • 网站开发网页超链接路径如何用dw修改wordpress的首页
  • 龙岗开发公司网站建设简述网站的制作流程
  • 杭州手机建站模板尤溪建设局网站
  • 北京手机网站设计报价网站建设计划表
  • php做的网站如何该样式如何卸载安装wordpress
  • 建设网站公司哪家性价比高最新推广注册app拿佣金
  • 丽水网站建设公司排名wordpress 去掉图片链接
  • 以下属于网站页面设计的原则有2345网址下载
  • 为网站的特色功能设计各种模板温州网页模板建站
  • 广州微网站建设企业网站建设网站优化推广
  • 大连模板网建站项目网络的关键路径
  • 迅雷黄冈网站推广软件徐州模板自助建站
  • 怎么做不占CPU的网站修改wordpress的登陆地址
  • 网站制作毕业设计论文软件ui设计培训机构
  • 物业网站模板哪里建设网站
  • 达州城乡建设网站手机网站 方案
  • 平台兼职网站开发许昌做网站优化
  • 婴幼儿用品网站开发意义基因网站开发