用c语言写一个通讯录(初级版)
来源:互联网 发布:米卡有软件 编辑:程序博客网 时间:2024/05/17 07:47
这是一个简单的通讯录(实现方案是初级版,并且只能在程序运行期间存在(没有写入文件))(以后还会写一个用动态内存分配+实现文件存储的版本)
代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<Windows.h>#pragma warning(disable:4996)struct address{ char name[20]; char sex[10]; int age; char phonen[15]; char site[40];}people[1000];int main(){ int i = 0;//用于计数 char m[20] = { 0 }; int option = 0; printf("### 这是一个通 讯 录^-^ ###\n"); while (1) { printf("###-----------------------------###\n"); printf("### 1.>查找指定联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 2.>修改指定联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 3.>删除指定联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 4.>添加指定联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 5.>显示所有联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 6.>删除所有联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 7.>排序所有联系人 ###\n"); printf("###-----------------------------###\n"); printf("### 8.>退出通讯录 ###\n"); printf("###-----------------------------###\n"); printf("\n请选择要进行的操作:>"); scanf("%d", &option); fflush(stdin); switch (option) { case 1: printf("\n\n\t输入要查找的姓名:>"); gets(m);//因为gets函数可以接收空格而scanf函数不可以 /* **这里使用了一个简单的遍历的算法,也可以封 **装一个函数,用更高效的查找算法实现 */ for (; i < 1000; i++) { if (strcmp(people[i].name, m) == 0) { printf("\n\t姓名:%s\n\t性别:%s\n\t年龄:%d\n\t电话:%s\n\t住址:%s\n", people[i].name,\ people[i].sex, people[i].age, people[i].phonen, people[i].site); break; } } if (1000==i) printf("\t没有找到该联系人!\n"); break; case 2: /* **这里实现的是一个基本方案,目前一次只能修改一项内容,并且要重新开始 **才可以修改另一项或者多项内容。以后会再次改进这里的功能! */ printf("\n\n\t请输入要修改的联系人姓名:>"); gets(m); for (i=0;i < 1000;i++) { if (strcmp(people[i].name, m) == 0) { int n = 0; printf("请选择要修改的信息:\n\t1.name\n\t2.sex\n\t3.age\n\t4.phone number\n\t5.site\n\t"); scanf("%d", &n); fflush(stdin); switch (n) { case 1: printf("请输入修改后的内容:"); char arr[20]; gets(arr); strcpy(people[i].name, arr); printf("修改成功!\n"); break; case 2: printf("\n\t请输入修改后的内容:"); gets(arr); strcpy(people[i].sex, arr); printf("修改成功!\n"); break; case 3: printf("\n\t请输入修改后的内容:"); scanf("%d", &people[i].age); fflush(stdin); printf("修改成功!\n"); break; case 4: printf("\n\t请输入修改后的内容:"); gets(arr); strcpy(people[i].phonen, arr); printf("修改成功!\n"); break; case 5: printf("\n\t请输入修改后的内容:"); gets(arr); strcpy(people[i].site, arr); printf("修改成功!\n"); break; } break; } } if (1000==i) printf("\t该联系人不存在!\n"); break; case 3: printf("\n\n\t请输入要删除的联系人姓名:>"); gets(m); for (i=0; i < 1000; i++) { if (strcmp(people[i].name, m) == 0) { strcpy(people[i].name, "\0"); strcpy(people[i].sex, "\0"); people[i].age = 0; strcpy(people[i].site, "\0"); strcpy(people[i].phonen, "\0"); printf("删除成功!\n"); break; } } if (1000 == i) printf("\t该联系人不存在!\n"); break; case 4: for (i=0;i < 1000; i++) { char num[20] = { 0 }; if (strcmp(people[i].name,num)==0) { printf("\n\n\t请输入要添加联系人的姓名:>"); char arr[20] = { 0 }; gets(arr); strcpy(people[i].name, arr); printf("\t请输入要添加联系人的性别:>"); gets(arr); strcpy(people[i].sex, arr); printf("\t请输入要添加联系人的年龄:>"); scanf("%d", &people[i].age); fflush(stdin); printf("\t请输入要添加联系人的电话号码:>"); gets(arr); strcpy(people[i].phonen, arr); printf("\t请输入要添加联系人的住址:>"); gets(arr); strcpy(people[i].site, arr); printf("\t添加成功!\n"); break; } } if (1000 == i) printf("添加失败,通讯录已满!\n"); break; case 5: for (i = 0;i < 1000; i++) { if (strcmp(people[i].name, m) != 0) { printf("\n\t姓名:%s\n\t性别:%s\n\t年龄:%d\n\t电话:%s\n\t住址:%s\n", people[i].name, \ people[i].sex, people[i].age, people[i].phonen, people[i].site); } } break; case 6: for (i = 0; i < 1000; i++) { if (strcmp(people[i].name, m) != 0) { strcpy(people[i].name, "\0"); strcpy(people[i].sex, "\0"); people[i].age = 0; strcpy(people[i].site, "\0"); strcpy(people[i].phonen, "\0"); } } if (1000 == i) printf("删除成功!\n"); break; case 7: //这块用qsort()给非空姓名数组排序即可 break; case 8: return 0; break; default: printf("输入错误!重新选择!"); break; }}system("pause");return 0;
}
阅读全文
1 0
- 用c语言写一个通讯录(初级版)
- C语言通讯录(初级版)
- 用C语言写一个简单的通讯录
- C语言用结构体写一个通讯录
- (C语言)自写通讯录
- c语言写的通讯录
- 用C语言实现一个通讯录
- 帮同学写的一个c语言的期末作业(班级通讯录)
- 【c语言】实现一个通讯录
- 通讯录(C语言)
- 通讯录(C语言)
- C语言写通讯录 链表版本
- C语言写通讯录 数据库版本
- 用C语言做的一个简单的通讯录
- 【C语言】通讯录代码(一个文件下实现)
- 【C语言】实现一个通讯录(一:静态的实现)
- 【C语言】实现一个通讯录(二:动态的实现)
- 【C语言】实现一个通讯录(三:加入文件读写)
- 自定义标签
- 探探
- 【数据结构】动态内存管理
- stm32f1/f2/f3/f4/l1的固件库下载
- 关于char[]类型的排序 和字符串在使用时可能char*更好用
- 用c语言写一个通讯录(初级版)
- 【JavaScript 】简介
- ch2-1
- Jni helloworld 图解
- 11月26
- 计算机体系结构与NASM入门
- cadence vmanager(六) vmanager的web功能
- prototype
- 判断平衡二叉树