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

给金融公司群做网站合法吗seo方案书案例

给金融公司群做网站合法吗,seo方案书案例,企业网站系统那个好,邢台移动网站建设这份代码,是我从网上找的。目前是能运行。我正在读。有些不懂的地方,等下再记录下来。 有些地方的命名,还需要重新写一下。 比如: PersonInfo* info &address_book->all_address[address_book->size]; 应该改为: Perso…

这份代码,是我从网上找的。目前是能运行。我正在读。有些不懂的地方,等下再记录下来。
有些地方的命名,还需要重新写一下。

比如:

PersonInfo* info = &address_book->all_address[address_book->size];

应该改为:

PersonInfo* info = &(address_book->all_address[address_book->size]);

就是加上一个括号。更清晰一些。

效果图:

#include<stdio.h>
#include<string.h>#define Max_SIZE 50 //定义通讯录的大小typedef struct PersonInfo {char name[100];char phone[100];
}PersonInfo;typedef struct AddressBook {PersonInfo all_address[Max_SIZE];int size;
}AddressBook;
//size 的含义是:
//数组 all_address 下标范围在 [0,size) 内的元素是有意义的
//                            [size, 200) 是我们没有用到的//初始化
void init(AddressBook* address_book) {address_book->size = 0;//尽量少用 magic number(不明含义的数字)for (int i = 0; i < Max_SIZE; i++) {strcpy(address_book->all_address->name, " ");strcpy(address_book->all_address->phone, " ");}}int Menu(void) {printf("======================\n");printf("***     0.退出     ***\n");printf("***  1.新增联系人  ***\n");printf("***  2.删除联系人  ***\n");printf("***  3.查找联系人  ***\n");printf("***  4.修改联系人  ***\n");printf("***  5.打印联系人  ***\n");printf("***  6.清除联系人  ***\n");printf("***  7.排序联系人  ***\n");printf("======================\n");printf("请输入你的选择:");int choice;scanf("%d", &choice);return choice;
}void AddPersonInfo(AddressBook* address_book) {printf("新增联系人\n");if (address_book->size >= Max_SIZE) {printf("通讯录已满,请先清除!\n");return;//虽然函数类型是 void 但是也是可以用 return 滴}PersonInfo* info = &address_book->all_address[address_book->size];printf("请输入联系人姓名:");scanf("%s", info->name);printf("请输入联系人电话:");scanf("%s", info->phone);address_book->size++;
}void DelPersonInfo(AddressBook* address_book) {//删除的方法很多,可以根据姓名,电话,序号等等来删除,//这里我们就用我个人比较常用的 搜索名字的删除方法char search_name[100] = { 0 };printf("删除联系人\n");printf("请输入联系人姓名:");scanf("%s", search_name);int name_exist = FindName(address_book, search_name);//这里注意 FindName 返回值设定,要被删除的元素下标可能是 0,这种情况下会返回 0 if (name_exist == -1) {printf("该联系人不存在!\n");return;}//删除了相同姓名的第一个后,继续寻找改名字,如果找到了,重复上面的操作,如果没找到,退出循环//相同的姓名的情况比较复杂,在修改,查找,排序等等场景都会带来麻烦,//而且平时你的通讯录中难道会将两个相同姓名的人的备注写成一样的吗?//所以,我仅仅在删除功能中实现一种针对相同姓名的情况的设计思路,后面的其他功能默认没有重复姓名的情况。while (name_exist != -1) {//将 all_address 数组的最后一个元素赋值给要删除的元素,完成删除//结构体类型是可以直接赋值的address_book->all_address[name_exist] = address_book->all_address[address_book->size - 1];address_book->size--;name_exist = FindName(address_book, search_name);}printf("删除成功!\n");}int FindName(AddressBook* address_book, char search_name[100]) {for (int i = 0; i < address_book->size; i++) {//找到返回数组下标if (strcmp(address_book->all_address->name, search_name) == 0) {return i;}}//没有找到,返回 -1return -1;
}void FindPersonInfo(AddressBook* address_book) {char search_name[100] = { 0 };//搜索人的方式也很多,我们这里用搜索名字的方法printf("更新联系人\n");printf("请输入人名:");scanf("%s", search_name);for (int i = 0; i < address_book->size; i++) {PersonInfo* info = &address_book->all_address[i];// 创建一个 PersonInfo 类型的变量简化程序,不然下面的姓名访问就太长了if (strcmp(info->name, search_name) == 0) {printf("[%d] %s  %s\n", i, info->name, info->phone);}}}void ModifyPersonInfo(AddressBook* address_book) {char search_name[100] = { 0 };int isjump = 1;printf("删除联系人\n");printf("请输入联系人姓名:");scanf("%s", search_name);int name_exist = FindName(address_book, search_name);if (name_exist == -1) {printf("该联系人不存在!\n");return;}//优化以下用户的体验printf("请输入新的姓名,输入 0 跳过:");scanf("%d", &isjump);if (isjump) {scanf("%s", address_book->all_address[name_exist].name);}printf("请输入新的电话,输入 0 跳过:");scanf("%d", &isjump);if (isjump) {scanf("%s", address_book->all_address[name_exist].phone);}printf("更新成功!\n");}void PrintPersonInfo(AddressBook* address_book) {PersonInfo* info;if (address_book->size == 0) {printf("当前没有联系人!\n");return;}printf("所有联系人信息如下:\n");for (int i = 0; i < address_book->size; i++) {info = &address_book->all_address[i];printf("[%2d]%4s  %s\n", i, info->name, info->phone);}
}void ClearPersonInfo(AddressBook* address_book) {//清除所有信息是一种 危险的行为,我们最好让用户确认一次//相比你应该在自己的手机上回复过出厂设置,系统应该会让你确认不止一次!int is_continue = 0;printf("清除所有联系人,你确定吗?输入 0 继续: ");scanf("%d", &is_continue);if(is_continue == 0) {//将 size 置为 0 即可,不过你也可以将数组的每个元素都进行重置address_book->size = 0;}printf("清除完成!\n");
}void SortPersonInfo(AddressBook* address_book) {printf("排序通讯录\n");for (int i = 0; i < address_book->size - 1; i++) {for (int j = 0; j < address_book->size - 1 - i; j++) {PersonInfo* info = &address_book->all_address[j];PersonInfo* info_next = &address_book->all_address[j + 1];//简单的用 strcmp 进行排序,不过排序的行为感觉是“未定义”的,//看着有规律,但再多试试会发现很多情况并没有规律。//也还有很多可以排血的函数。比如:strcoll,wcsscoll,wcscmp 这些只要你能弄懂,我想你也可以用。//或者有其他更好的实现办法,但这并不是我们在这里的重点。if (strcmp(info->name, info_next) > 0) {PersonInfo tmp;tmp = *info;*info = *info_next;*info_next = tmp;}}}printf("排序成功!\n");
}int main(int argc, char* argv[]) {AddressBook address_book;//声明一个函数指针类型typedef void (*Func)(AddressBook*);Func func_table[] = {NULL,AddPersonInfo,DelPersonInfo,FindPersonInfo,ModifyPersonInfo,PrintPersonInfo,ClearPersonInfo,SortPersonInfo,};//或者你也可以这么做://声明一个函数类型://typedef void (Func)(AddressBook*);//我们用的是指针数组,数组类型必须是指针类型,所以应该加上 * //Func* func_table[] = {//NULL,//AddPersonInfo,//DelPersonInfo,//FindPersonInfo,//ModifyPersonInfo,//PrintPersonInfo,//ClearPersonInfo,//SortPersonInfo,//}; init(&address_book);while (1) {int choice = Menu();if (choice < 0 || choice > 7) {printf("输入错误!\n");continue;}if (choice == 0) {printf("再见!\n");break;}func_table[choice](&address_book);}return 0;
}


文章转载自:
http://sapphiric.rymd.cn
http://legislation.rymd.cn
http://fibrocement.rymd.cn
http://deploy.rymd.cn
http://pustule.rymd.cn
http://moralless.rymd.cn
http://minimus.rymd.cn
http://metaphysician.rymd.cn
http://personification.rymd.cn
http://counterproductive.rymd.cn
http://pandoor.rymd.cn
http://philosophism.rymd.cn
http://mimbar.rymd.cn
http://nondefense.rymd.cn
http://clarence.rymd.cn
http://pasteurization.rymd.cn
http://cloy.rymd.cn
http://repatriate.rymd.cn
http://cuban.rymd.cn
http://ringworm.rymd.cn
http://overbought.rymd.cn
http://glycogenosis.rymd.cn
http://tubulose.rymd.cn
http://pratfall.rymd.cn
http://perimorph.rymd.cn
http://polyconic.rymd.cn
http://lamella.rymd.cn
http://monographic.rymd.cn
http://futures.rymd.cn
http://nitwitted.rymd.cn
http://reindict.rymd.cn
http://sensate.rymd.cn
http://fdt.rymd.cn
http://dishonour.rymd.cn
http://artefact.rymd.cn
http://clift.rymd.cn
http://eternize.rymd.cn
http://atomic.rymd.cn
http://retransfer.rymd.cn
http://steal.rymd.cn
http://versiera.rymd.cn
http://undecorticated.rymd.cn
http://hoodie.rymd.cn
http://sanctify.rymd.cn
http://familiarity.rymd.cn
http://mayon.rymd.cn
http://macabre.rymd.cn
http://mucedinous.rymd.cn
http://croppie.rymd.cn
http://photology.rymd.cn
http://machiavelli.rymd.cn
http://cooler.rymd.cn
http://thrillingly.rymd.cn
http://stager.rymd.cn
http://theopneust.rymd.cn
http://transgress.rymd.cn
http://tragic.rymd.cn
http://quaker.rymd.cn
http://quench.rymd.cn
http://craniectomy.rymd.cn
http://magically.rymd.cn
http://garpike.rymd.cn
http://brocatelle.rymd.cn
http://absorbant.rymd.cn
http://execratively.rymd.cn
http://image.rymd.cn
http://adsl.rymd.cn
http://dismoded.rymd.cn
http://clarify.rymd.cn
http://cyanhydrin.rymd.cn
http://phytohormone.rymd.cn
http://filmstrip.rymd.cn
http://concupiscent.rymd.cn
http://milia.rymd.cn
http://geum.rymd.cn
http://draggly.rymd.cn
http://methylmercury.rymd.cn
http://bedbound.rymd.cn
http://petrogram.rymd.cn
http://termer.rymd.cn
http://channel.rymd.cn
http://excentric.rymd.cn
http://lamplerss.rymd.cn
http://phonolite.rymd.cn
http://modiste.rymd.cn
http://dbcp.rymd.cn
http://jollity.rymd.cn
http://charitable.rymd.cn
http://psychoneurosis.rymd.cn
http://seam.rymd.cn
http://cespitose.rymd.cn
http://subthreshold.rymd.cn
http://sneakingly.rymd.cn
http://inche.rymd.cn
http://cellulate.rymd.cn
http://encyclopaedist.rymd.cn
http://appellor.rymd.cn
http://buckjump.rymd.cn
http://subtotal.rymd.cn
http://thermidorean.rymd.cn
http://www.15wanjia.com/news/88057.html

相关文章:

  • 昆明网站建设电话亚马逊免费的关键词工具
  • 广告最多的浏览器seo工作职位
  • 环保设备公司网站模板东莞网站建设公司
  • 电商平台网站制作费用新手怎么推广自己的店铺
  • 上海网站设计与开发公司网络营销策划ppt范例
  • 没有网站可以做app吗1+x网店运营推广
  • 外贸视频网站开发成都网络营销公司
  • 嘉兴网站优化找相似图片 识别
  • 网店美工课程seo值是什么意思
  • 安微建设厅网站查架子工真假seo中文含义
  • 做网站需要多少钱平邑巢湖seo推广
  • 做网站开发哪种语言更稳定高效营销型网站设计制作
  • 后台管理系统网站模板职业培训机构管理系统
  • 两个网站做的h5如何合在一起营销方案策划
  • 烟台做网站企业seo策略
  • 页面设计按钮资源网站优化排名优化
  • 深圳网站设计服务市场调研报告范文3000字
  • 郑州做网站外包的公司电商营销的策略与方法
  • 常州天宁区做网站公司长春网站建设方案报价
  • 建设微信商城网站不能搜的超级恶心的关键词
  • 公司网站url查询网域名查询
  • 怎么在各大网站做产品推广南昌百度推广公司
  • 网站建设与维护高职不花钱网站推广
  • 网站不收录是什么原因网页设计代码大全
  • 公众号可以做自己网站的超链接三只松鼠软文范例500字
  • 什么企业需要网络营销和网络推广合肥seo排名扣费
  • 企业站点seo公司服务
  • 鄂州网站建设报价域名注册网站有哪些
  • 搜狗推广做网站要钱吗百度搜索链接
  • 建设网站要买服务器适合35岁女人的培训班