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

网站加入购物车的代码wordpress 搜索的过程

网站加入购物车的代码,wordpress 搜索的过程,云搜索app官网,美工培训电商设计培训班开饭了#xff0c;之前写的通讯录#xff0c;是否会有人觉得申请1000人的空间是不是有点用不上呀#xff0c;怎么才能做到要多少申请多少个呢#xff1f;#xff1f;我们学完动态内存管理#xff0c;和文件的相关操作#xff0c;终于可以继续完善我们的通讯录了 船新版本… 开饭了之前写的通讯录是否会有人觉得申请1000人的空间是不是有点用不上呀怎么才能做到要多少申请多少个呢我们学完动态内存管理和文件的相关操作终于可以继续完善我们的通讯录了 船新版本 为了适应各个用户的体验8.18日系统升级请各位用户查看最新的安装包做出以下修改 1.为了不占用更多的空间通讯录容量满时进行扩容操作。 2.通讯录初始化会加载文件中的通讯录成员信息防止出现程序结束后通讯录销毁问题。 3.增加背景音乐功能用户在使用该通讯录时有更好的用户体验别人有的 咱们必须有 4.增加销毁通讯录功能。 5.增加将通讯录保存到文件功能。 静态版链接 通讯录静态版 通讯录结构体的修改 typedef struct pp {struct peoinfo *arr;int sz;int size;}pp;size:通讯录容量大小区别于sz(当前存了多少个人) 将struct peoinfo arr[1000]修改为struct peoinfo *arr 对arr指针指向的地方进行动态内存分配将分配好的地址放到arr中去 扩容函数 void Addbig(pp* p) {if (p-sz p-size){peoinfo* tmp (peoinfo*)realloc(p-arr, (p-size 2) * sizeof(peoinfo));if (tmp ! NULL){p-arr tmp;}p-size 2;printf(增容 2\n);} }当通讯录实际容纳的用户大小通讯录的当前容量时开始扩容使用realloc函数参数1要扩容空间的起始地址参数2扩容后总空间字节大小将开辟的空间首地址放到tmp指针变量中去如果扩容成功将扩容好的首地址放到p-arr指针里面去p-size 2每次增加两个容量大小 文件加载到通讯录函数 void Loadcontact(pp* p) {FILE* fpfopen(contact.txt, rb);if (fp NULL){perror(Loadcontact:);return;}peoinfo tmp { 0 };while (fread(tmp,sizeof(peoinfo),1,fp)){Addbig(p);p-arr[p-sz] tmp;p-sz;}fclose(fp);fp NULL; }用二进制读的方式打开文件如果未打开返回空指针给fp,然后打印出错误定义一个人信息的结构体变量使用fread函数参数1目标地址参数2一次读多少个字节这里读一个人信息结构体的字节参数3每次读几个这样结构体参数4从那里读文件指针返回值是每次读多少个人信息结构体如果小于参数30.则读完了读不到一个完整人的结构体.每次从文件中读取数据调用扩容函数防止读取数据大于总容量扩容函数会增加总容量大小每次将一个人的信息读到结构体tmp中将tmp里面的一个人信息赋值给p-arr[p-sz];然后当前存储的数目sz; 然后关闭文件将文件指针置空 初始化通讯录函数 void Initcontanct(pp* p) {/*p-sz 0;memset(p-arr, 0, sizeof(p-arr));*/p-sz 0;p-size SIZE;p-arr (peoinfo*)malloc(p-size * sizeof(peoinfo));if (p-arr NULL){perror( Initcontanct:malloc);return;}memset(p-arr, 0, p-size * sizeof(peoinfo));Loadcontact(p);}初始化通讯录没有存入信息p-sz0;开始通讯录的容量可以存三个人p-size SIZE;前面定义 SIZE 为3动态开辟三个人信息结构体大小的空间将开辟空间的首地址传给指针变量p-arr;如果传的为空指针则打印错误memset,内存操作函数将创建三个容量大小的数据置为0调用Loadcontact§;加载文件中的数据 保存进文件函数 void Savecontact(pp* p) {FILE* fp fopen(contact.txt, wb);if (fp NULL){perror(Savecontact:);return;}int i 0;for (i 0; i p-sz; i){fwrite(p-arri, sizeof(peoinfo), 1, fp);}fclose(fp);fp NULL;printf(保存成功\n); }以二进制写的方式打开文件打开失败返回空指针打印错误使用fwrite函数参数要写入文件的数据起始地址参数2每次写入的字节大小参数3每次写1个人信息结构体大小参数3写入文件的地址文件指针循环向文件中写入通讯录每个用户信息循环次数为p-sz,当前通讯录用户人数 通讯录销毁函数 void DestroyContanct(pp* p) {free(p-arr);p-arr NULL;p-size 0;p-sz 0;printf(销毁成功\n); }free释放动态申请的内存参数动态申请空间的地址指针置空 容量清0当前用户人数清0 背景音乐函数 头文件 #includewindows.h #includemmsystem.h//包含多媒体设备接口头文件 #pragma comment(lib,winmm.lib)//加载静态库函数实现 void bgm() { //打开音乐mciSendString(open ./music.MP3, 0, 0, 0);//后面参数不用管写0即可//播放音乐mciSendString(play ./music.MP3, 0, 0, 0);//后面参数不用管 }注意上面路径是相对./文件名.文件类型./是在当前目录下也可以使用绝对路径不能出现空格文件类型最好用大写使用qq音乐下载好音乐点击主菜单音频转码转成MP3格式 使用其他的音乐软件播放不出来qq音乐打钱 将音频文件放到当前目录下在vs中找到解决方案右击鼠标找到在文件资源管理器中打开文件夹放到图示位置即可 使用绝对路径复制上面的复制路径D:\C-code\1\elementary-stage-of-c-language\通讯录动态加文件\通讯录动态加文件\music.mp3将反斜杠改成双反‘或者/也行。 如果出现以下错误 调试找到调试属性 高级-字符集 使用多字节字符集就ok了 #源码展示 contanct.h #pragma once #define _CRT_SECURE_NO_WARNINGS #includewindows.h#includemmsystem.h//包含多媒体设备接口头文件 #includestdio.h #include string.h #include stdlib.h #pragma comment(lib,winmm.lib)//加载静态库 #define MAX_NAME 20 #define MAX_SEX 6 #define MAX_TEL 12 #define MAX_ADDR 20 #define SIZE 3 enum opion {EXIT,ADD,DEL,SEARCH,MODIFY,SORT,PRINT,SAVE,MUSIC,DESTROY }; typedef struct peoinfo {char name[MAX_NAME];char sex[MAX_SEX];int age;char tel[MAX_TEL];char addr[MAX_ADDR];}peoinfo;typedef struct pp {struct peoinfo *arr;int sz;int size;}pp; void Initcontanct(pp* p); void Addcontanct(pp* p); void Printcontanct(pp* p); void Delcontanct(pp* p); void findcontanct(pp* p); void modifycontanct(pp* p); void Sortcontanct(pp* p); void Addbig(pp* p); void Loadcontact(pp* p); void Savecontact(pp* p); void bgm(); void DestroyContanct(pp* p);contanct.c #includecontanct.h //#includewindows.h #includegraphics.h//包含图形库头文件 //#includemmsystem.h//包含多媒体设备接口头文件 //#pragma comment(lib,winmm.lib)//加载静态库 void DestroyContanct(pp* p) {free(p-arr);p-arr NULL;p-size 0;p-sz 0;printf(销毁成功\n); } void Addbig(pp* p) {if (p-sz p-size){peoinfo* tmp (peoinfo*)realloc(p-arr, (p-size 2) * sizeof(peoinfo));if (tmp ! NULL){p-arr tmp;}p-size 2;printf(增容 2\n);} } void Loadcontact(pp* p) {FILE* fpfopen(contact.txt, r);if (fp NULL){perror(Loadcontact:);return;}peoinfo tmp { 0 };while (fread(tmp,sizeof(peoinfo),1,fp)){Addbig(p);p-arr[p-sz] tmp;p-sz;}fclose(fp);fp NULL; } void Savecontact(pp* p) {FILE* fp fopen(contact.txt, wb);if (fp NULL){perror(Savecontact:);return;}int i 0;for (i 0; i p-sz; i){fwrite(p-arri, sizeof(peoinfo), 1, fp);}fclose(fp);fp NULL;printf(保存成功\n); } void Initcontanct(pp* p) {/*p-sz 0;memset(p-arr, 0, sizeof(p-arr));*/p-sz 0;p-size SIZE;p-arr (peoinfo*)malloc(p-size * sizeof(peoinfo));if (p-arr NULL){perror( Initcontanct:malloc);return;}memset(p-arr, 0, p-size * sizeof(peoinfo));Loadcontact(p);}void Addcontanct(pp* p) {Addbig(p);printf(请输入姓名\n);scanf(%s, p-arr[p-sz].name);printf(请输入性别\n);scanf(%s, p-arr[p-sz].sex);printf(请输入年龄\n);scanf(%d, (p-arr[p-sz].age));printf(请输入电话\n);scanf(%s, p-arr[p-sz].tel);printf(请输入地址\n);scanf(%s, p-arr[p-sz].addr);p-sz;printf(录入成功\n);} void Printcontanct(pp* p) {int i 0;printf(******************************************************\n);printf(%-10s %-5s %-5s %-12s %-20s\n, 姓名, 性别, 年龄, 电话, 地址);printf(******************************************************\n);for (i 0; i p-sz; i){printf(%-10s %-5s %-5d %-12s %-20s\n, p-arr[i].name, p-arr[i].sex, p-arr[i].age, p-arr[i].tel, p-arr[i].addr);printf(******************************************************\n);} } int find(pp* p, char name[]) {int i 0;for (int i 0; i p-sz; i){if (!strcmp(p-arr[i].name, name))return i;}return -1; } void Delcontanct(pp* p) {char name[MAX_NAME];printf(请输入要删除朋友的名字\n);scanf(%s, name);if (find(p, name) -1){printf(查无此人\n);}else{int k find(p, name);for (int j k; j p-sz - 1; j){p-arr[j] p-arr[j 1];}p-sz--;printf(删除成功\n);} } void findcontanct(pp* p) {char name[MAX_NAME];if (p-sz 0){printf(通讯录为空\n);return;}printf(请输入要查找朋友的名字\n);scanf(%s, name);if (find(p, name) -1){printf(查无此人\n);}else{int k find(p, name);printf(******************************************************\n);printf(%-10s %-5s %-5s %-12s %-20s\n, 姓名, 性别, 年龄, 电话, 地址);printf(%-10s %-5s %-5d %-12s %-20s\n, p-arr[k].name, p-arr[k].sex, p-arr[k].age, p-arr[k].tel, p-arr[k].addr);printf(******************************************************\n);} } void modifycontanct(pp* p) {char name[MAX_NAME];printf(请输入修改朋友的名字\n);scanf(%s, name);if (find(p, name) -1){printf(查无此人\n);}else{int k find(p, name);printf(请输入要修改朋友的信息\n);printf(修改性别-);scanf(%s, p-arr[k].sex);printf(修改年龄-);scanf(%d, (p-arr[k].age));printf(修改电话-);scanf(%s, p-arr[k].tel);printf(修改地址-);scanf(%s, p-arr[k].addr);printf(修改成功\n);} } int int_cmp_age(const void* p1, const void* p2)//按年龄比较 {return ((struct peoinfo*)p1)-age - ((struct peoinfo*)p2)-age; } void Sortcontanct(pp* p) {qsort(p-arr, p-sz, sizeof(peoinfo), int_cmp_age);printf(按年龄排序成功快去打印吧\n); } void bgm() { //打开音乐mciSendString(open ./music.MP3, 0, 0, 0);//后面参数不用管//播放音乐mciSendString(play ./music.MP3, 0, 0, 0);//后面参数不用管 }test.c #includecontanct.h void menu() {printf(#######################################\n);printf(#********* 1.add ***************#\n);printf(#********* 2.del ***************#\n);printf(#********* 3.search ***************#\n);printf(#********* 4.modify ***************#\n);printf(#********* 5.sort ***************#\n);printf(#********* 6.print ***************#\n);printf(#********* 7.save ***************#\n);printf(#********* 8.music ***************#\n);printf(#********* 9.Destroy***************#\n);printf(########## 0.exit ################\n);} void test() {pp pro;Initcontanct(pro);int input;do {menu();scanf_s(%d, input);switch (input){case ADD:Addcontanct(pro);break;case DEL:Delcontanct(pro);break;case SEARCH:findcontanct(pro);break;case MODIFY:modifycontanct(pro);break;case SORT:Sortcontanct(pro);break;case PRINT:Printcontanct(pro);break;case SAVE:Savecontact(pro);break;case MUSIC:bgm();break;case DESTROY:DestroyContanct(pro);break;case EXIT:printf(退出通讯录\n);break;default:printf(输入错误请重新输入\n);break;}} while (input); }void main() {test();}总结 使用动态内存管理以及文件操作优化了静态通讯录不足加上了背景音乐如果对你有帮助的话请一键三连谢谢大家了
http://www.w-s-a.com/news/261017/

相关文章:

  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢
  • 做新闻类网站还有市场吗东莞黄页网广告
  • 地方网站做外卖专业做互联网招聘的网站有哪些
  • 网站推广公司兴田德润紧急网页升级紧急通知
  • 厦门做网站哪家强企业网站网页设计的步骤
  • 普拓网站建设济南行业网站建设
  • 燕郊 网站开发网站里的地图定位怎么做
  • 门户网站建设招标互联网创业项目概述
  • 用什么做网站比较好市场调研公司是做什么的
  • 电商网站充值消费系统绍兴网站优化
  • 深圳网站建设公司联虚拟币交易网站开发
  • 专业网站设计建设公司抖音代运营公司排名前十强
  • 做网站架构肃北蒙古族自治县建设局网站
  • 推广网站怎么建经济研究院网站建设方案
  • 网站建设商家淘宝客自建网站做还是用微信qq做
  • django做网站效率高吗涉县移动网站建设报价
  • 做外贸网站注册什么邮箱能够做渗透的网站
  • 购物网站 怎么做织梦网站会员功能
  • 北京市网站开发公司郑州联通网站备案
  • 温岭专业营销型网站建设地址wordpress小程序怎么不用认证审核
  • 网站建设主体设计要求微信公众号缴费
  • 网站建设的税率WordPress多用户建站
  • 专业门户网站的规划与建设网络培训
  • 东莞汽车总站停止营业crm管理系统在线使用