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

用什么做响应式网站ps的logo设计制作

用什么做响应式网站,ps的logo设计制作,wordpress多站点教程,北京城建道桥建设有限公司网站一. 增加需求 在学习了动态开辟内存之后 我们对于通讯录产生了新的需求 要求我们做出一个动态增长的版本 即 随着我们储存联系人的增加 储存的空间增加 要求 #xff1a; 1 初始空间为3 2 每次达到上限之后 扩容两个内存 二. 动手实施 我们首先要创建一个结构体 结构体…一. 增加需求 在学习了动态开辟内存之后 我们对于通讯录产生了新的需求 要求我们做出一个动态增长的版本 即 随着我们储存联系人的增加 储存的空间增加 要求 1 初始空间为3 2 每次达到上限之后 扩容两个内存 二. 动手实施  我们首先要创建一个结构体 结构体的代码暂定为这样子 typedef struct Contact {PeoInfo* date;//存放人的信息int sz;//当前已经放的信息个数int capacity;//当前通信录的最大容量 }Contact; 既然结构体改变了 那么我们的初始化也需要改变一下 void InitContact(Contact* pc) {assert(pc);pc-sz 0;PeoInfo* ptr (PeoInfo*)calloc(DEFAULT_SZ, sizeof(PeoInfo*));if (ptr NULL){perror(InitContact::calloc);return ;}pc-date ptr;pc-capacity DEFAULT_SZ; } 这样我们就初始化出来了 一块新的空间 那么这个时候我们开始设计增加联系人的功能 主要思路就是 如果联系人到了上线的话 那么realloc增容上线2 另外 上线也加上2 代码表示如下 void check_capacity(Contact* pc) {if (pc-sz pc-capacity){//增容PeoInfo* ptr (PeoInfo*)realloc(pc-date, (pc-capacity INC_SZ) * sizeof(PeoInfo));if (ptr NULL){perror(check_capacity::realloc);}elsepc-date ptr;pc-capacity INC_SZ;printf(增容成功\n);} } //动态版本 void AddContact(Contact* pc) {assert(pc);check_capacity(pc);//增加一个人的信息printf(请输入名字:);scanf(%s, pc-date[pc-sz].name);printf(请输入年龄:);scanf(%d, (pc-date[pc-sz].age));printf(请输入性别:);scanf(%s, pc-date[pc-sz].sex);printf(请输入地址:);scanf(%s, pc-date[pc-sz].addr);printf(请输入电话:);scanf(%s, pc-date[pc-sz].tele);pc-sz;} 代码显示效果如下 三. 回收空间 其他要修改的地方只是一个回收动态开辟的空间 防止内存泄漏 void DestroyContact(Contact* pc) {free(pc-date);pc-date NULL;pc-capacity 0;pc-sz 0;pc NULL; } 代码很简单 只需要这样子就好啦 四. 所有代码文件 1. 头文件 #includestdio.h #includeassert.h #includestring.h #includestdlib.h #includestdlib.h#define MAX 100 #define MAX_NEME 20 #define MAX_SEX 5 #define MAX_ADDR 30 #define MAX_TELE 12 #define DEFAULT_SZ 3 #define INC_SZ 2//人的信息 typedef struct PeoInfo {char name[MAX_NEME];int age;char sex[MAX_SEX];char addr[MAX_ADDR];char tele[MAX_TELE]; }PeoInfo; //静态版本 //typedef struct Contact //{ // PeoInfo date[MAX];//存放人的信息 // int sz;//当前已经放的信息个数 //}Contact; //动态版本 typedef struct Contact {PeoInfo* date;//存放人的信息int sz;//当前已经放的信息个数int capacity;//当前通信录的最大容量 }Contact; 2. 主函数文件 void memu() {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 }; void test() {int input 0;//创建通信录Contact con;//初始化通信录InitContact(con);do{memu();printf(请选择:);scanf(%d, input);switch (input){case ADD:AddContact(con);break;case DEL:DelContact(con);break;case SEARCH:SearchContact(con);break;case MODIFY:ModityContact(con);break;case SHOW:ShowContact(con);break;case SORT://SortContact(con);break;case EXIT:DestroyContact(con);printf(退出通信录\n);break;default:printf(选择错误请重新选择\n);break;}} while (input); } int main() {test();return 0; }3. 测试文件 #define _CRT_SECURE_NO_WARNINGS #includecontact.h //静态版本 //void InitContact(Contact* pc) //{ // assert(pc); // pc-sz 0; // memset(pc-date, 0, sizeof(pc-date)); //} //动态版本 void InitContact(Contact* pc) {assert(pc);pc-sz 0;PeoInfo* ptr (PeoInfo*)calloc(DEFAULT_SZ, sizeof(PeoInfo*));if (ptr NULL){perror(InitContact::calloc);return ;}pc-date ptr;pc-capacity DEFAULT_SZ; }//静态版本 //void AddContact(Contact* pc) //{ // assert(pc); // if (pc-sz MAX) // { // printf(通信录已满无法添加\n); // return ; // } // //增加一个人的信息 // printf(请输入名字:); // scanf(%s, pc-date[pc-sz].name); // printf(请输入年龄:); // scanf(%d, (pc-date[pc-sz].age)); // printf(请输入性别:); // scanf(%s, pc-date[pc-sz].sex); // printf(请输入地址:); // scanf(%s, pc-date[pc-sz].addr); // printf(请输入电话:); // scanf(%s, pc-date[pc-sz].tele); // pc-sz; // //}void check_capacity(Contact* pc) {if (pc-sz pc-capacity){//增容PeoInfo* ptr (PeoInfo*)realloc(pc-date, (pc-capacity INC_SZ) * sizeof(PeoInfo));if (ptr NULL){perror(check_capacity::realloc);}elsepc-date ptr;pc-capacity INC_SZ;printf(增容成功\n);} } //动态版本 void AddContact(Contact* pc) {assert(pc);check_capacity(pc);//增加一个人的信息printf(请输入名字:);scanf(%s, pc-date[pc-sz].name);printf(请输入年龄:);scanf(%d, (pc-date[pc-sz].age));printf(请输入性别:);scanf(%s, pc-date[pc-sz].sex);printf(请输入地址:);scanf(%s, pc-date[pc-sz].addr);printf(请输入电话:);scanf(%s, pc-date[pc-sz].tele);pc-sz;}void DestroyContact(Contact* pc) {free(pc-date);pc-date NULL;pc-capacity 0;pc-sz 0;pc NULL; }void ShowContact(const Contact* pc) {assert(pc);int i 0;printf(%-20s\t%-4s\t%-5s\t%-20s\t%-12s\n, 名字, 年龄, 性别, 地址, 电话);for (i 0; i pc-sz; i){printf(%-20s\t%-4d\t%-5s\t%-20s\t%-12s\n, pc-date[i].name,pc-date[i].age,pc-date[i].sex,pc-date[i].addr,pc-date[i].tele);} }int FindByName(Contact* pc, char name[]) {int i 0;for (i 0; i pc-sz; i){if (strcmp(pc-date[i].name, name) 0){return i;}}return -1; }void DelContact(Contact* pc) {assert(pc);int i 0;char name[MAX_NEME];if (pc-sz 0){printf(通讯录为空,无法删除\n);}printf(请输入要删除人的名字:);scanf(%s, name);int del 0;//找到删除人的名字int ret FindByName(pc, name);if (-1 ret){printf(要删除的人不存在\n);}//删除for (i ret; i pc-sz - 1; i){pc-date[i] pc-date[i 1];}pc-sz--;printf(删除成功\n); }void SearchContact(const Contact* pc) {char name[MAX_NEME] { 0 };printf(请输入查找人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (-1 pos){printf(查找人的信息不存在\n);return ;}//打印信息printf(%-20s\t%-4s\t%-5s\t%-20s\t%-12s\n, 名字, 年龄, 性别, 地址, 电话);printf(%-20s\t%-4d\t%-5s\t%-20s\t%-12s\n, pc-date[pos].name,pc-date[pos].age,pc-date[pos].sex,pc-date[pos].addr,pc-date[pos].tele);}void ModityContact(Contact* pc) {assert(pc);char name[MAX_NEME] { 0 };printf(请输入修改人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (-1 pos){printf(修改人的信息不存在\n);return;}//录入信息printf(请输入名字:);scanf(%s, pc-date[pos].name);printf(请输入年龄:);scanf(%d, (pc-date[pos].age));printf(请输入性别:);scanf(%s, pc-date[pos].sex);printf(请输入地址:);scanf(%s, pc-date[pos].addr);printf(请输入电话:);scanf(%s, pc-date[pos].tele);printf(修改完成\n); }//int cmp(void* a, void* b) //{ // Contact* p1 (Contact*)a; // Contact* p2 (Contact*)b; // return strcmp(p1-date-name, p2-date-name); //} // //void SortContact(Contact* pc) //{ // // qsort(pc, pc-sz, sizeof(Contact*), cmp); //} 以上便是本文所有内容如有错误请各位大佬不吝赐教感谢留言
http://www.w-s-a.com/news/227542/

相关文章:

  • 做企业销售分析的网站广州网站设计建设
  • 建站流程wordpress怎么开伪静态
  • 服务器不是自己的做违法网站videopro wordpress
  • 北京建网站的公司哪个比较好网站开通告知书
  • 网站负责人 主体负责人黑龙江 建设监理协会网站
  • 手机网站焦点图代码建设工程质量检测网站
  • 墙绘做网站推广有作用没html网页制作用什么软件
  • 企业做网站有用吗网站推广的常用方法有哪些?
  • 景安做网站教程互联网小程序开发
  • 桂林北站离阳朔多远贵州省建设厅住房和城乡建设官网二建考试
  • 浙江省建设厅 网站是多少wordpress淘宝客一键
  • 网站流量少怎么做5个不好的网站
  • 随州网站建设有限公司个人申请注册公司需要多少钱
  • 东莞做商城网站建设wordpress批量下载外链图片
  • 新网站建设运营年计划书仓山区建设局招标网站
  • 网站开发天津网站建设项目组织图
  • 网站开发认证考试石家庄高端网站开发
  • 网站建设第一步怎么弄站酷网页
  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置