概述
本文实例为大家分享了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("nnnnttt========================================"); printf("nntttttWelcome!n"); sleep(3); } void menu() { system("clear"); printf("nnt************************************************************************"); printf("nttttt请选择:"); printf("nttttt1.添加信息"); printf("nttttt2.查看信息"); printf("nttttt3.查找信息"); printf("nttttt4.删除信息"); printf("nttttt5.修改信息"); printf("nttttt6.退出"); printf("nt************************************************************************"); } /*添加信息*/ 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:%de[0mn", 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:%dn", 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:%dn", 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语言实现简易通讯录功能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复