C语言实现简易通讯录功能
更新时间:2020年6月29日 08:24 点击:1443
本文实例为大家分享了C语言实现简易通讯录的具体代码,供大家参考,具体内容如下
这两天用C语言编写了一个简易版通讯录(学生信息管理) ,大致功能有添加信息,查看信息(自动按姓名排序,printf输出带颜色字体),查找信息(按姓名查找),删除信息(输入姓名删除相关信息),修改信息(输入修改人的名字,可选择修改其任意信息)和退出 。
#include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 100 typedef struct student STU; int person = 0; struct student { char name[10]; int num; int age; }; void welcome() { system("clear"); printf("\n\n\n\n\t\t\t========================================"); printf("\n\n\t\t\t\t\tWelcome!\n"); sleep(3); } void menu() { system("clear"); printf("\n\n\t************************************************************************"); printf("\n\t\t\t\t\t请选择:"); printf("\n\t\t\t\t\t1.添加信息"); printf("\n\t\t\t\t\t2.查看信息"); printf("\n\t\t\t\t\t3.查找信息"); printf("\n\t\t\t\t\t4.删除信息"); printf("\n\t\t\t\t\t5.修改信息"); printf("\n\t\t\t\t\t6.退出"); printf("\n\t************************************************************************"); } /*添加信息*/ void AddInfo(STU *s[]) { system("clear"); printf("姓名 学号 年龄\n"); printf("------------------------\n"); printf("请输入信息:(bye结束添加)\n"); while(1) { s[person] = (STU*)malloc(sizeof(STU)); if(NULL == s[person]) { printf("malloc failure!\n"); } scanf("%s", s[person]->name); if(!strcmp(s[person]->name, "bye")) { break; } scanf("%d%d", &s[person]->num, &s[person]->age); getchar(); person++; } } /*查看信息(按姓名排序)*/ void ShowAll(STU *s[]) { system("clear"); int i, j; STU *q[1] = {0}; q[0] = (STU *)malloc(sizeof(STU)); printf("information:\n"); for(i = 0; i < person; i++) { for(j = 0; j < person - 1 - i; j++) { if(strcmp(s[j]->name, s[j + 1]->name) > 0) { q[0] = s[j]; s[j] = s[j + 1]; s[j + 1] = q[0]; } } } for(i = 0; i < person; i++) { printf("\e[1;35mname:%s, num:%d, age:%d\e[0m\n", s[i]->name, s[i]->num, s[i]->age); } sleep(3); getchar(); } /*查找信息*/ void Search_name(char *name, STU *s[]) { int i, n = 0; for(i = 0; i < person; i++) { if(strcmp(name, s[i]->name) == 0) { n++; printf("name:%s, num:%d, age:%d\n", s[i]->name, s[i]->num, s[i]->age); } } if(n == 0) { printf("不存在!\n"); } } void SearchInfo(STU *s[]) { system("clear"); char *name = (char *)malloc(sizeof(char)); printf("请输入要查找的人的名字:\n"); scanf("%s", name); Search_name(name, s); } /*删除信息*/ void DeleteInfo(STU *s[]) { system("clear"); int i, n = 0, j; char del_name[10]; printf("请输入要删除的人的名字:\n"); scanf("%s", del_name); getchar(); getchar(); for(i = 0; i < person; i++) { if(strcmp(del_name, s[i]->name) == 0) { n++; free(s[i]); for(j = i; j < person - 1; j++) { strcpy(s[j]->name, s[j + 1]->name); s[j]->num = s[j + 1]->num; s[j]->age = s[j + 1]->age; } person--; } } if(n == 0) { printf("要删除的人不存在!\n"); } else { printf("删除成功!\n"); } } /*修改信息*/ void Change_name(char *name, STU *s[]) { int i, n = 0, choice; char *new_name = (char *)malloc(sizeof(char)); int new_num, new_age; for(i = 0; i < person; i++) { if(strcmp(name, s[i]->name) == 0) { n++; printf("该学生的信息如下:"); printf("name:%s, num:%d, age:%d\n", s[i]->name, s[i]->num, s[i]->age); printf("----------------------------\n"); printf("请选择要修改的内容(1.name 2.num 3.age):\n"); scanf("%d", &choice); switch(choice) { case 1: printf("请输入新的名字:\n"); scanf("%s", new_name); strcpy(s[i]->name, new_name); break; case 2: printf("请输入新的学号:\n"); scanf("%d", &new_num); s[i]->num = new_num; break; case 3: printf("请输入新的年龄:\n"); scanf("%d", &new_age); s[i]->age = new_age; break; } } } if(n == 0) { printf("不存在!\n"); } } void ChangeInfo(STU *s[]) { system("clear"); char *name = (char *)malloc(sizeof(char)); printf("请输入要修改的人的名字:\n"); scanf("%s", name); Change_name(name, s); } int main() { struct student *s[SIZE] = {0}; int choice; welcome(); while(1) { menu(); printf("\nPlease input choice:"); scanf("%d", &choice); switch(choice) { case 1: AddInfo(s); break; case 2: ShowAll(s); break; case 3: SearchInfo(s); break; case 4: DeleteInfo(s); break; case 5: ChangeInfo(s); break; case 6: exit(0); break; } } return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
上一篇: C语言实现简单电子通讯录
下一篇: C语言实现贪吃蛇游戏(单人版)
相关文章
- 这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-23
- 本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
- 这篇文章主要介绍了详解如何将c语言文件打包成exe可执行程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-25
- 这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
- 这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下...2020-04-25
详解C语言中的rename()函数和remove()函数的使用方法
这篇文章主要介绍了详解C语言中的rename()函数和remove()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了C语言中求和、计算平均值、方差和标准差的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-10
- 本篇文章主要讲解C语言 基本语法,这里提供简单的示例和代码来详细讲解C语言的基本语法,开始学习C语言的朋友可以看一下,希望能够给你带来帮助...2021-09-18
- 这篇文章主要介绍了C语言中send()函数和sendto()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
- 今天小编就为大家分享一篇C语言实现从文件读入一个3*3数组,并计算每行的平均值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了利用aotu.js实现微信自动添加通讯录中的联系人,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-28
- 这篇文章主要介绍了C语言中memcpy 函数的用法详解的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了使用C语言操作文件的基本函数整理,包括创建和打开以及关闭文件的操作方法,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C语言中查找字符在字符串中出现的位置的方法,分别是strchr()函数和strrchr()函数的使用,需要的朋友可以参考下...2020-04-25
- 很多同学在学习c语言的时候是不是会碰到a++和++a都有甚么作用啊。今天我们就来探讨下...2020-04-25
- 这篇文章主要为大家详细介绍了原生JS实现微信通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-19
- 这篇文章主要对C语言中const关键字的用法进行了详细的分析介绍,需要的朋友可以参考下...2020-04-25
- 下面小编就为大家带来一篇C语言实现时间戳转日期的算法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了C语言之整数划分问题(递归法)实例代码的相关资料,需要的朋友可以参考下...2020-04-25