C语言实现通讯录管理系统
2017-09-24 10:49
543 查看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define Len sizeof(struct Node)
void add();//添加函数
void print();//打印函数
void chaxun();//查询函数
void del();//删除函数
void save(struct Node node[]);//保存函数
void menu();//菜单函数
void exit();//退出函数
//定义一个结构的属性
struct Node
{
char name[20];
char sex[4];
char emp[20];
char number[20];
char adds[20];
char emil[20];
char QQ[20];
}node[50];
int n = 0;
void menu()
{
printf("============欢迎使用通讯录系统==============\n");
printf(" 1.添加记录\n");
printf(" 2.显示记录\n");
printf(" 3.按名删除\n");
printf(" 4.按名查询\n");
printf(" 5.全部保存\n");
printf(" 6.退出系统\n");
printf("=============================================\n");
printf("请选择操作数:(1~6)");
int num;
scanf("%d", &num);
switch (num)
{
case 1:
add();
break;
case 2:
print();
break;
case 3:
del();
break;
case 4:
chaxun();
break;
case 5:
save(node);
break;
case 6:
exit();
break;
}
}
void exit()
{
printf("欢迎使用本系统!再见! (按任意键退出!)");
getch();
exit(0);
}
void del()
{
FILE *fp;
FILE *fp1;
char name[20];
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
printf("请输入要删除的名字;");
scanf("%s", &name);
int count = 0;
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
if (strcmp(name, node[i].name) == 0)
{
count = i;
}
}
for (int i = count; i < 50; i++)
{
memcpy(&node[i], &node[i + 1],Len);
}
fclose(fp);
fp1 = fopen("通讯录系统.txt", "w");
for (int i=0; i < 3; i++)
{
fprintf(fp1, "\n%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
fclose(fp1);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void chaxun()
{
int n=0;
FILE *fp;
char name[20];
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
printf("请输入要查询的名字;");
scanf("%s", &name);
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
if (strcmp(name, node[i].name) == 0)
{
printf("找到了!\n");
printf("信息是:%s %s %s %s %s %s %s", node[i].name, node[i].sex,node[i].emp,node[i].number,node[i].adds,
node[i].emil,node[i].QQ);
}
n++;
}
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void add()
{
int num = 0;
printf("请输入名字 性别 单位 电话 地址 邮箱 QQ(中间用空格隔开)\n");
scanf("%s %s %s %s %s %s %s", &node
.name, &node
.sex, &node
.emp, &node
.number, &node
.adds, &node
.emil,&node
.QQ);
printf("添加成功!");
n++;
printf("是否继续添加? (1)是 (2)否");
scanf("%d", &num);
while(num==1)
{
printf("请输入名字 性别 单位 电话 地址 邮箱 QQ(中间用空格隔开)\n");
scanf("%s %s %s %s %s %s %s", &node
.name, &node
.sex, &node
.emp, &node
.number, &node
.adds, &node
.emil, &node
.QQ);
printf("添加成功!");
n++;
printf("是否继续添加? (1)是 (2)否");
scanf("%d", &num);
}
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void save(struct Node node[])
{
FILE *fp;
if ((fp = fopen("通讯录系统.txt", "a")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
for (int i = 0; i < n; i++)
{
fprintf(fp, "\n%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
printf("保存成功!\n");
n = 0;
fclose(fp);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void print()
{
FILE *fp;
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
printf("%s %s %s %s %s %s %s\n", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
fclose(fp);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
int main()
{
menu();
system("pause");
}
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define Len sizeof(struct Node)
void add();//添加函数
void print();//打印函数
void chaxun();//查询函数
void del();//删除函数
void save(struct Node node[]);//保存函数
void menu();//菜单函数
void exit();//退出函数
//定义一个结构的属性
struct Node
{
char name[20];
char sex[4];
char emp[20];
char number[20];
char adds[20];
char emil[20];
char QQ[20];
}node[50];
int n = 0;
void menu()
{
printf("============欢迎使用通讯录系统==============\n");
printf(" 1.添加记录\n");
printf(" 2.显示记录\n");
printf(" 3.按名删除\n");
printf(" 4.按名查询\n");
printf(" 5.全部保存\n");
printf(" 6.退出系统\n");
printf("=============================================\n");
printf("请选择操作数:(1~6)");
int num;
scanf("%d", &num);
switch (num)
{
case 1:
add();
break;
case 2:
print();
break;
case 3:
del();
break;
case 4:
chaxun();
break;
case 5:
save(node);
break;
case 6:
exit();
break;
}
}
void exit()
{
printf("欢迎使用本系统!再见! (按任意键退出!)");
getch();
exit(0);
}
void del()
{
FILE *fp;
FILE *fp1;
char name[20];
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
printf("请输入要删除的名字;");
scanf("%s", &name);
int count = 0;
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
if (strcmp(name, node[i].name) == 0)
{
count = i;
}
}
for (int i = count; i < 50; i++)
{
memcpy(&node[i], &node[i + 1],Len);
}
fclose(fp);
fp1 = fopen("通讯录系统.txt", "w");
for (int i=0; i < 3; i++)
{
fprintf(fp1, "\n%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
fclose(fp1);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void chaxun()
{
int n=0;
FILE *fp;
char name[20];
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
printf("请输入要查询的名字;");
scanf("%s", &name);
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
if (strcmp(name, node[i].name) == 0)
{
printf("找到了!\n");
printf("信息是:%s %s %s %s %s %s %s", node[i].name, node[i].sex,node[i].emp,node[i].number,node[i].adds,
node[i].emil,node[i].QQ);
}
n++;
}
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void add()
{
int num = 0;
printf("请输入名字 性别 单位 电话 地址 邮箱 QQ(中间用空格隔开)\n");
scanf("%s %s %s %s %s %s %s", &node
.name, &node
.sex, &node
.emp, &node
.number, &node
.adds, &node
.emil,&node
.QQ);
printf("添加成功!");
n++;
printf("是否继续添加? (1)是 (2)否");
scanf("%d", &num);
while(num==1)
{
printf("请输入名字 性别 单位 电话 地址 邮箱 QQ(中间用空格隔开)\n");
scanf("%s %s %s %s %s %s %s", &node
.name, &node
.sex, &node
.emp, &node
.number, &node
.adds, &node
.emil, &node
.QQ);
printf("添加成功!");
n++;
printf("是否继续添加? (1)是 (2)否");
scanf("%d", &num);
}
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void save(struct Node node[])
{
FILE *fp;
if ((fp = fopen("通讯录系统.txt", "a")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
for (int i = 0; i < n; i++)
{
fprintf(fp, "\n%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
printf("保存成功!\n");
n = 0;
fclose(fp);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
void print()
{
FILE *fp;
if ((fp = fopen("通讯录系统.txt", "rb")) == NULL)
{
printf("打开文件失败!");
exit(1);
}
for (int i = 0; i < 50; i++)
{
if (feof(fp))
{
break;
}
fscanf(fp, "%s %s %s %s %s %s %s", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
printf("%s %s %s %s %s %s %s\n", node[i].name, node[i].sex, node[i].emp, node[i].number, node[i].adds,
node[i].emil, node[i].QQ);
}
fclose(fp);
int num2;
printf("是否返回主菜单? (1)是 (2)否");
scanf("%d", &num2);
if (num2 == 1)
{
menu();
}
else
{
return;
}
}
int main()
{
menu();
system("pause");
}
相关文章推荐
- 【C语言】通讯录管理系统(容量可变)
- [置顶] c语言文件读取 学生成绩管理系统的设计与实现
- C语言通讯录管理系统
- 学生成绩管理系统C语言代码实现
- C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(二) ---学生信息管理系统
- 用线性表编写通讯录管理系统 实现添加,查询,修改,删除功能
- 学生成绩管理系统课程设计(C语言,链表实现)
- C语言实现---学生成绩管理系统
- 嵌入式 二叉树实现通讯录管理系统
- c语言实现的简单的员工工资管理系统
- C语言实现学生成绩管理系统
- 数据结构课程设计-通讯录管理系统的设计与实现
- C语言实现一个学生信息管理系统
- C语言实现简单学生成绩管理系统
- C语言通讯录管理系统
- C语言实现学生信息管理系统
- C语言链表实现的简易学生成绩管理系统
- 数据结构课程设计--通讯录管理(C语言实现)
- c语言实现学生档案管理系统
- 用C语言写的一个控制台界面的通讯录管理系统