【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
2015-11-30 21:09
1046 查看
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<string.h> #define NAME_MAX 10 #define SEX_MAX 3 #define AGE_MAX 100 #define TEL_MAX 15 #define ADDR_MAX 20 #define PEOPLE_MAX 1000 typedef struct LINK { char name[NAME_MAX]; char sex[SEX_MAX]; int age; char tel[TEL_MAX]; char addr[ADDR_MAX]; }linkman; typedef struct PEOPLE { int num; linkman count[1000]; }*people; int search(people cou, char *name) { int i = 0; for (; i < cou->num; i++) { if (strcmp(name, (cou->count[i]).name) == 0) return i; } return -1; } void add_linkman(people cou)//添加联系人 { if (cou->num == 1000) { printf("该通讯录已满,无法录入信息!\n"); } printf("please input name>:\n"); scanf("%s", (cou->count[cou->num]).name); printf("please input the sex>:\n"); scanf("%s", (cou->count[cou->num]).sex); printf("please input the age>:\n"); scanf("%d", &(cou->count[cou->num]).age); printf("please input the telephone>:\n"); scanf("%s", (cou->count[cou->num]).tel); printf("please input the address>:\n"); scanf("%s", (cou->count[cou->num]).addr); cou->num++; } void delete_linkman(people cou)//删除联系人 { char name[NAME_MAX]; int i = 0; if (cou->num == 0) { printf("该通讯录已空,无法删除信息!\n"); return; } printf("请输入要删除人的名字>:"); scanf("%s", &name); printf("\n"); int ret = search(cou, name); if (ret == -1) { printf("此人不存在,删除失败!\n"); } else { for (i = ret; i < cou->num; i++) { cou->count[i] = cou->count[i + 1]; } cou->num--; } } void find_linkman(people cou)//查找联系人 { char name[NAME_MAX]; int i = 0; printf("请输入要查找人的名字>:"); scanf("%s", name); if (cou->num == 0) { printf("当前为空表,查找失败!\n"); return; } int ret = search(cou, name); if (ret != -1) { printf("%s\t%s\t%d\t%s\t%s\n", (cou->count[ret]).name, (cou->count[ret]).sex, (cou->count[ret]).age, (cou->count[ret]).tel, (cou->count[ret]).addr); } else { printf("此联系人不存在,查找失败!\n"); } } void change_linkman(people cou)//修改指定人信息 { char name[NAME_MAX]; int i = 0; printf("请输入要修改人的名字>:"); scanf("%s", name); if (cou->num == 0) { printf("当前为空表,查找失败!\n"); return; } int ret = search(cou, name); if (ret != -1) { printf("please input name again>:\n"); scanf("%s", (cou->count[ret]).name); printf("please input the sex>:\n"); scanf("%s", (cou->count[ret]).sex); printf("please input the age>:\n"); scanf("%d", &(cou->count[ret]).age); printf("please input the telephone>:\n"); scanf("%s", (cou->count[ret]).tel); printf("please input the address>:\n"); scanf("%s", (cou->count[ret]).addr); } } void display_linkman(people cou)//显示所有联系人 { int i = 0; if (cou->num == 0) { printf("当前为空表,显示失败!\n"); return; } for (i = 0; i < cou->num; i++) { printf("%s\t%s\t%d\t%s\t%s", (cou->count[i]).name, (cou->count[i]).sex, (cou->count[i]).age, (cou->count[i]).tel, (cou->count[i]).addr); printf("\n"); } } void empty_linkman(people cou)//清空所有联系人 { cou->num = 0; } struct stu { char name[15]; }; void name_sort(people cou)//按名字顺序排序所有人 { int i = 0; int j = 0; if (cou->num == 0) { printf("当前为空表,排序失败!\n"); return; } for (i = 0; i < cou->num - 1; i++) { for (j = 0; j < cou->num - i - 1; j++) { if (strcmp(cou->count[j].name, (cou->count[j + 1]).name)>0) { linkman tmp = cou->count[j]; cou->count[j] = cou->count[j + 1]; cou->count[j + 1] = tmp; } } } } void menu() { printf("************************************\n"); printf("**********1.添加联系人信息**********\n"); printf("********2.删除指定联系人信息********\n"); printf("********3.查找指定联系人信息********\n"); printf("********4.修改指定联系人信息********\n"); printf("********5.显示所有联系人信息********\n"); printf("********6.清空所有联系人************\n"); printf("*******7.以名字排序所有联系人*******\n"); printf("***************0 退出***************\n"); printf("************************************\n"); } int main() { int opp = 1; struct PEOPLE cou; cou.num = 0; while (opp) { menu(); printf("请选择>:"); scanf("%d", &opp); switch (opp) { case 0: exit(EXIT_FAILURE); break; case 1: add_linkman(&cou); break; case 2: delete_linkman(&cou); break; case 3: find_linkman(&cou); break; case 4: change_linkman(&cou); break; case 5: display_linkman(&cou); break; case 6: empty_linkman(&cou); break; default: { printf("输入有误,请重新输入>:\n"); break; } } } system("pause"); return 0; }如下图(部分截图):
相关文章推荐
- IE右键菜单被修改
- 独门绝技修改注册表
- 注册表编辑器的注册表修改
- 三、注册表的的修改
- 给IE加个参数 永远不怕IE主页被修改
- “百度与站长”更新:关于网站收录,删除,seo等
- 常见的注册表修改大全第1/3页
- 用vbs删除某些类型文件和磁盘空间报告的脚本
- Redis中实现查找某个值的范围
- QQ聊天记录删除了怎么恢复简单方法
- vbs删除注册表项的代码
- 迅速删除非法文件名的批处理代码
- 通过批处理实现删除运行、查找等处的历史记录的代码
- Shell中删除某些文件外所有文件的3个方法
- 删除文件提示文件正在被另一个人或程序使用的解决方法
- 关于.LDB文件 .ldb文件的产生 .ldb文件的删除方法
- asp 合并记录集并删除的sql语句
- SQLite 入门教程二 SQLite的创建、修改、删除表
- SQLserver 数据库危险存储过程删除与恢复方法
- sql自增长设置与删除的深入分析