• 我的创作纪念日


    机缘

     

    1.进入博客的缘由

         最开始,很期待自己也可以像那些知识领域的博主一般,大放异彩;另外,也享受自己用心分享的知识可以帮助别人,我觉得帮助别人解决问题是一件很开心的事情,可以让自己身心愉悦。

        到后面,我发现每一次完成博客都需要对知识再次温习,总结出来成为文章需要把知识转换成自己的语言,一系列的操作使得自己对知识的掌握更加的牢固。

     


    收获

     

    1.在此之间,我也收获了很多的点赞,也很感谢佬们对我作品的认可。完成作品不仅是一次提升,在收到点赞的同时,更是对自己的认可,动力便源源不断的到来。

     

    2.在写博客的这些天来,也认识了许许多多不同领域的大佬。与他们的交流,认识到了更多的不足,与博客方面的知识和见解,可以弥补自己在一些方面的不足。

     

     

     


    日常

     

     

    1.其实需要每天都抽出一些时间来撰写博客,渐渐也成为我日常生活中的一些乐趣,成为了一种习惯,可以说是不写不行。

     

    2.在时间很紧凑的情况下,写博客可能会推迟一些,有些时候会把大致的框架写出来,先给自己一个思路。

     

     


    成就

     

    1.完成的通讯录代码,实现的各种功能。

    1. #define _CRT_SECURE_NO_WARNINGS 1
    2. #include
    3. #include
    4. #include
    5. #include
    6. #define NAME_MAX 20
    7. #define SEX_MAX 6
    8. #define TELE_MAX 20
    9. #define ADDR_MAX 20
    10. #define MAX 100
    11. typedef struct PeoInfo
    12. {
    13. char name[NAME_MAX];//姓名
    14. char sex[SEX_MAX];//性别
    15. int age;//年龄
    16. char tele[TELE_MAX];//电话
    17. char addr[ADDR_MAX];//地址
    18. }PeoInfo;
    19. typedef struct contact
    20. {
    21. PeoInfo data[MAX];//通讯录
    22. int sz;//记录通讯录的个数
    23. }contact;
    24. //函数的声明
    25. //初始化
    26. void InitContact(contact* pc);
    27. //添加用户信息
    28. void AddContact(contact* pc);
    29. //打印通讯录
    30. void ShowContact(contact* pc);
    31. //删除联系人
    32. void DelContact(contact* pc);
    33. //查找某个联系人
    34. void SearchContact(contact* pc);
    35. //修改联系人
    36. void ModifyContact(contact* pc);
    37. //联系人排序
    38. void SortContact(contact* pc);
    39. //函数功能的实现
    40. void InitContact(contact* pc)
    41. {
    42. assert(pc);
    43. memset(pc->data,0,sizeof(pc->data));
    44. pc->sz = 0;
    45. }
    46. void ShowContact(contact* pc)
    47. {
    48. assert(pc);
    49. if (pc->sz == 0)
    50. {
    51. printf("通讯录为空\n");
    52. return;
    53. }
    54. printf("%-10s %-5s %-10s %-15s %-10s\n","名字","性别","年龄","电话","住址");
    55. int i = 0;
    56. for (i=0;isz;i++)
    57. {
    58. printf("%-10s %-5s %-10d %-15s %-10s\n",
    59. pc->data[i].name, pc->data[i].sex, pc->data[i].age,
    60. pc->data[i].tele, pc->data[i].addr);
    61. }
    62. printf("\n");
    63. }
    64. void AddContact(contact* pc)
    65. {
    66. assert(pc);
    67. int adds;
    68. back:
    69. if (pc->sz == MAX)
    70. {
    71. printf("通讯录已满,存入信息失败\n");
    72. return;
    73. }
    74. printf("请输入姓名>:");
    75. scanf("%s", pc->data[pc->sz].name);
    76. printf("请输入性别>:");
    77. scanf("%s", pc->data[pc->sz].sex);
    78. printf("请输入年龄>:");
    79. scanf("%d", &(pc->data[pc->sz].age));
    80. printf("请输入电话>:");
    81. scanf("%s", pc->data[pc->sz].tele);
    82. printf("请输入住址>:");
    83. scanf("%s", pc->data[pc->sz].addr);
    84. pc->sz++;
    85. printf("信息添加成功\n");
    86. printf("是否继续添加联系人信息1/0:");
    87. scanf("%d",&adds);
    88. if (adds == 1)
    89. goto back;
    90. else
    91. {
    92. return;
    93. }
    94. }
    95. //查看某个联系人是否存在
    96. static int FindContact(contact* pc,char name[])
    97. {
    98. assert(pc);
    99. int i = 0;
    100. for (i=0;isz;i++)
    101. {
    102. if (strcmp(name, pc->data[i].name) == 0)
    103. return i;
    104. }
    105. return -1;
    106. }
    107. //删除联系人
    108. void DelContact(contact* pc)
    109. {
    110. assert(pc);
    111. if (pc->sz == 0)
    112. {
    113. printf("通讯录为空,删除失败\n");
    114. return;
    115. }
    116. printf("请输入你要删除的联系人:");
    117. char name[NAME_MAX];
    118. scanf("%s",name);
    119. int ret = FindContact(pc,name);
    120. if (ret == -1)
    121. {
    122. printf("联系人不存在,删除失败\n");
    123. return;
    124. }
    125. int i = 0;
    126. for (i=ret;isz-1;i++)
    127. {
    128. pc->data[i] = pc->data[i + 1];
    129. }
    130. pc->sz--;
    131. printf("删除联系人成功\n");
    132. }
    133. //查找联系人
    134. void SearchContact(contact* pc)
    135. {
    136. assert(pc);
    137. printf("请输入你要查找联系人的名字:");
    138. char name[NAME_MAX];
    139. scanf("%s", name);
    140. int ret = FindContact(pc, name);
    141. if (ret == -1)
    142. {
    143. printf("联系人不存在,查找失败\n");
    144. return;
    145. }
    146. printf("查找成功:\n");
    147. printf("%-10s %-5s %-10s %-15s %-10s\n", "名字", "性别", "年龄", "电话", "住址");
    148. printf("%-10s %-5s %-10d %-15s %-10s\n",
    149. pc->data[ret].name, pc->data[ret].sex, pc->data[ret].age,
    150. pc->data[ret].tele, pc->data[ret].addr);
    151. }
    152. //修改联系人
    153. void ModifyContact(contact* pc)
    154. {
    155. assert(pc);
    156. printf("请输入你要查找联系人的名字:");
    157. char name[NAME_MAX];
    158. scanf("%s", name);
    159. int ret = FindContact(pc, name);
    160. if (ret == -1)
    161. {
    162. printf("联系人不存在,修改失败\n");
    163. return;
    164. }
    165. printf("联系人存在:");
    166. printf("%-10s %-5s %-10d %-15s %-10s\n",
    167. pc->data[ret].name, pc->data[ret].sex, pc->data[ret].age,
    168. pc->data[ret].tele, pc->data[ret].addr);
    169. printf("请修改姓名>:");
    170. scanf("%s", pc->data[ret].name);
    171. printf("请修改性别>:");
    172. scanf("%s", pc->data[ret].sex);
    173. printf("请修改年龄>:");
    174. scanf("%d", &(pc->data[ret].age));
    175. printf("请修改电话>:");
    176. scanf("%s", pc->data[ret].tele);
    177. printf("请修改住址>:");
    178. scanf("%s", pc->data[ret].addr);
    179. printf("\n修改成功");
    180. }
    181. //分类菜单
    182. void menu2()
    183. {
    184. printf("*************************\n");
    185. printf("**** 1.名字 2.年龄 ****\n");
    186. printf("*************************\n");
    187. }
    188. //名字排序
    189. int qsort_cmp_name(const void* e1,const void* e2)
    190. {
    191. return strcmp((((contact*)e1)->data)->name, (((contact*)e2)->data)->name);
    192. }
    193. //年龄排序
    194. int qsort_cmp_age(const void* e1,const void* e2)
    195. {
    196. return (((contact*)e1)->data)->age - (((contact*)e2)->data)->age;
    197. }
    198. //联系人排序
    199. void SortContact(contact* pc)
    200. {
    201. int input2;
    202. menu2();
    203. printf("请选择排序方式:");
    204. scanf("%d",&input2);
    205. switch (input2)
    206. {
    207. case 1:qsort(pc->data, pc->sz, sizeof(pc->data[0]), qsort_cmp_name);break;
    208. case 2:qsort(pc->data, pc->sz, sizeof(pc->data[0]), qsort_cmp_age);break;
    209. defualt:printf("选择错误\n");
    210. break;
    211. }
    212. }
    213. //主函数及菜单
    214. void menu()
    215. {
    216. printf("********************************\n");
    217. printf("**** 1. add 2. del ****\n");
    218. printf("**** 3. search 4. modify ****\n");
    219. printf("**** 5. show 6. sort ****\n");
    220. printf("**** 0. exit ****\n");
    221. printf("********************************\n");
    222. }
    223. enum Option
    224. {
    225. EXIT,//退出
    226. ADD,//增加
    227. DEL,//删除联系人
    228. SEARCH,//查找联系人
    229. MODIFY,//修改指定联系人
    230. SHOW,//打印联系人
    231. SORT,//分类
    232. };
    233. int main()
    234. {
    235. contact con;
    236. InitContact(&con);
    237. int input;
    238. do
    239. {
    240. menu();
    241. printf("请输入你的选择>:");
    242. scanf("%d",&input);
    243. switch (input)
    244. {
    245. case ADD:AddContact(&con);
    246. break;
    247. case DEL:DelContact(&con);
    248. break;
    249. case SEARCH:SearchContact(&con);
    250. break;
    251. case MODIFY:ModifyContact(&con);
    252. break;
    253. case SHOW:ShowContact(&con);
    254. break;
    255. case SORT:SortContact(&con);
    256. break;
    257. case EXIT:printf("你已选择退出程序\n");
    258. break;
    259. default:printf("选择错误,请重新选择\n");
    260. break;
    261. }
    262. } while (input);
    263. return 0;
    264. }

     

     

     


    憧憬

     

    1.也希望自己以后在博客的发展也来越好,撰写的文章更上一层楼。

     

    2.成为某个领域的大佬博主

     

     

  • 相关阅读:
    骨传导麦克风+耳塞模式,打开飞利浦A7607的“隐藏功能”
    ES6 新特性:Class 的继承
    csdn 格式规范
    嵌入式面试/笔试C相关总结
    WPF动画
    Android学习笔记 7. ToolBar
    springboot医院预约挂号系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
    【PyTorch深度学习项目实战100例】—— 基于DenseNet121实现26个英文字母识别任务 | 第41例
    Quartz-cron时间设置
    仓库风格,数据库系统、黑板系统、超文本系统的概念以及应用
  • 原文地址:https://blog.csdn.net/2301_77053417/article/details/133879938