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

怎么做网站申请广告天津中小企业建设网站

怎么做网站申请广告,天津中小企业建设网站,酒店局域网网络规划与设计,dz网站自己做的模板放在哪里这份代码#xff0c;是我从网上找的。目前是能运行。我正在读。有些不懂的地方#xff0c;等下再记录下来。 有些地方的命名#xff0c;还需要重新写一下。 比如: PersonInfo* info address_book-all_address[address_book-size]; 应该改为#xff1a; Perso…这份代码是我从网上找的。目前是能运行。我正在读。有些不懂的地方等下再记录下来。 有些地方的命名还需要重新写一下。 比如: PersonInfo* info address_book-all_address[address_book-size]; 应该改为 PersonInfo* info (address_book-all_address[address_book-size]); 就是加上一个括号。更清晰一些。 效果图: #includestdio.h #includestring.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://www.hkea.cn/news/14562506/

相关文章:

  • 做国外零售做什么网站医生咨询在线24小时免费
  • 做五金行业的外贸网站在线装修设计师咨询
  • 申请网站域名要多少钱什么是优化问题
  • 坪山网站建设设计网站项目的推广
  • 做电影网站需要空间吗网站建设基本流程信息技术
  • 源码猫网站建设ym361seo的主要工作内容
  • 南沙区网站建设中铁建设团门户网登录入口
  • 网站建设的内容是什么企业信息系统英文
  • 西海岸城市建设局网站网站建设社团活动宗旨
  • 举报网站建设运行汇报软件工程师级别
  • 国外网站谷歌seo推广公司做网站都咨询哪些问题
  • wordpress资讯网站模板图库网站模板
  • 从化区建设局网站石家庄现状
  • 福建网站建设科技有限公司网站流量怎么做
  • wap网站登陆系统电脑网络服务在哪里
  • 网站板块怎么做网站优化课程培训
  • 济宁网站开发招聘wordpress配置教程
  • 房产网站如何做微信公众号买卖平台
  • 常熟做网站的公司北京最新消息今天新闻
  • 北京网站关键词优化wordpress做简单的商城
  • 大连网站建设 选领超科技国外做滑板网站
  • 建立企业网站的技能绵阳低价网站建设
  • 做网站推广费用典型的四大综合门户网站
  • 网站添加定位怎么做免费站长统计工具
  • 江苏国泰做的网站案例wordpress 被镜像
  • 红色大气网络公司企业网站源码_适合广告设计济南专业的网站建设公司
  • 猪八戒网站做设计兼职流程网站推广排名
  • 腾讯域名怎么做网站360网站建设基本情况
  • 厦门市网站建设公司网站域名多少钱
  • 建站之星建出来的网站如何上传如何查一个网站的备案信息