C语言课程设计---通讯录
来源:互联网 发布:autodesk公司软件 编辑:程序博客网 时间:2024/04/27 07:38
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct person
{
char score; /*编号*/
char name[10]; /*姓名*/
char num[15]; /*号码*/
char email[20]; /*邮箱*/
char age[8]; /*年龄*/
char adds[20]; /*住址*/
}per;
int menu_select1()
{
char c;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t|----------------------------------|\n");
printf("\t\t| -------*****通讯录*****--------- |\n");
printf("\t\t| ┌——————--┐ |\n");
printf("\t\t| │ 1. 添加记录 │ |\n");
printf("\t\t| │ 2. 显示记录 │ |\n");
printf("\t\t| │ 3. 删除记录 │ |\n");
printf("\t\t| │ 4. 查询记录 │ |\n");
printf("\t\t| │ 5. 修改记录 │ |\n");
printf("\t\t| │ 0. 退出程序 │ |\n");
printf("\t\t| └———————┘ |\n");
printf("\t\t|----------------------------------|\n\n");
printf("\t\t 请您选择(0-5):[ ]\b\b");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');/*读入字符c,若c不属于‘0’~‘3‘,重复以上操作,直至读入的满足在’0‘~’3‘的范围内,然后将字符转为数字返回*/
}
int menu_select2()
{
char c;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t|----------------------------------|\n");
printf("\t\t| -------*****通讯录*****--------- |\n");
printf("\t\t| ┌——————--┐ |\n");
printf("\t\t| │ 1. 显示记录 │ |\n");
printf("\t\t| │ 2. 查询记录 │ |\n");
printf("\t\t| │ 0. 退出程序 │ |\n");
printf("\t\t| └———————┘ |\n");
printf("\t\t|----------------------------------|\n\n");
printf("\t\t 请您选择(0-2):[ ]\b\b");
c=getchar();
}while(c<'0'||c>'2');
return(c-'0'); /*读入字符c,若c不属于‘0’~‘2‘,重复以上操作,直至读入的满足在’0‘~’2‘的范围内,然后将字符转为数字返回*/
}
Input()
{
FILE *fp;
int flag;
if((fp=fopen("D:\\address.txt","ab"))==NULL)
{
printf("\nCan not open the address file!");
getchar();
exit(1);
}
do
{
printf("\t 编号:");
scanf("\t%d",&per.score);
printf("\t 姓名:");
scanf("\t%s",per.name);
printf("\t 年龄:");
scanf("\t%s",per.age);
printf("\t 电话号码:");
scanf("\t%s",per.num);
printf("\t 通讯住址:"); scanf("\t%s",per.adds);
printf("\t 电子邮箱:");
scanf("\t%s",per.email);
fwrite(&per,sizeof(per),1,fp);
printf("继续添加?(1/0):[ ]\b\b");
scanf("%d",&flag);
}while(flag);
fclose(fp);
}
void Display()
{
FILE *fp;
if((fp=fopen("D:\\address.txt","rb"))==NULL)
{
printf("\nCan not open the address file!");
getchar();
exit(1);
}
while(fread(&per,sizeof(per),1,fp)==1)
{
printf("--------------------------------------------------\n");
printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");/*格式*/
printf("---------------------------------------------------\n");
printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per.score,per.name,per.age,per.num,per.adds,per.email);
printf("\t-----------------------------------------------------------\n");
}
fclose(fp);
system("pause");/*按任意键继续*/
}
Delete()
{
FILE *fp1,*fp2;
char s[20];
char temp[20];
int flag;
int fla;
do
{
if((fp1=fopen("D:\\address.txt","rb"))==NULL)
{
printf("\tCan not open the address file!");
getchar();
exit(1);
}
if((fp2=fopen("D:\\temp.txt","wb"))==NULL)
{
printf("\tCan not creat the tmep file!");
getchar();
exit(1);
}
printf("\t 请输入想删除记录中的名字:");
fflush(stdin);
scanf("%s",&s);
flag=0 ;
while(fread(&per,sizeof(per),1,fp1)==1)
{
if(strcmp(s,per.name)==0)
{
printf("--------------------------------------------------\n");
printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");/*格式*/
printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per.score,per.name,per.age,per.num,per.adds,per.email);
printf("\t-----------------------------------------------------------\n");
flag=1;
continue;
}
fwrite(&per,sizeof(per),1,fp2);
}
fclose(fp1);
fclose(fp2);
if(flag==1)
{
printf("\t\t\t 已经成功删除!\n");
remove("D:\\address.txt");
rename("D:\\temp.txt","D:\\address.txt");
}
else
{
printf("\t 通讯录中没有此人!\n");
}
printf("继续删除?(1/0):[ ]\b\b");
scanf("%d",&fla);
}while(fla);
}
void Search()
{
FILE *fp;
int m;
int flag;
if((fp=fopen("D:\\address.txt","rb"))==NULL)
{
printf("\tCan not open the inform file!");
getchar();
exit(1);
}
do
{
rewind(fp);/*将文件指针重新指向一个流的开头。*/
printf("\t\n 请选择查询方式:\n");
printf("\t┌——————┐\n");
printf("\t│1------姓名 │\n");
printf("\t│2------电话 │\n");
printf("\t│3------地址 │\n");
printf("\t└——————┘\n");
printf("请选择:[ ]\b\b");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3&&m!=4)
{
printf("输入错误,请重新选择:");
scanf("%d",&m);
}
if(m==1)
{
char s[20];
int flag=0;
printf("\t 请输入想查询的姓名:");
scanf("\t%s",&s);
while(fread(&per,sizeof(per),1,fp)==1)
if(strcmp(s,per.name)==0)
{
flag=1;
printf("\t 此人编号: %d\n",per.score);
printf("\t 此人年龄: %s\n",per.age);
printf("\t 电话号码: %s\n",per.num);
printf("\t 通讯地址: %s\n",per.adds);
printf("\t 电子邮箱: %s\n",per.email);
break;
}
if(flag==1)
printf("found!");
else
{
printf("\t通讯录中没有此人!\n");
}
}
if(m==2)
{
char s[20];
printf("\t 请输入想查询的电话:");
scanf("\t%s",&s);
while(fread(&per,sizeof(per),1,fp)==1)
if(strcmp(s,per.num)==0)
{
printf("\t 此人编号: %d\n",per.score);
printf("\t 此人姓名: %s\n",per.name);
printf("\t 此人年龄: %s\n",per.age);
printf("\t 通讯地址: %s\n",per.adds);
printf("\t 电子邮箱: %s\n",per.email);
}
if(flag==1)
printf("found!");
else
{
printf("\t通讯录中没有此人!\n");
}
}
if(m==3)
{
char s[20];
printf("\t 请输入想查询的地址:");
scanf("\t%s",&s);
while(fread(&per,sizeof(per),1,fp)==1)
if(strcmp(s,per.adds)==0)
{
printf("\t 此人编号: %d\n",per.score);
printf("\t 此人姓名: %s\n",per.name);
printf("\t 此人年龄: %s\n",per.age);
printf("\t 电话号码: %s\n",per.num);
printf("\t 电子邮箱: %s\n",per.email);
}
if(flag==1)
printf("found!");
else
{
printf("\t通讯录中没有此人!\n");
}
}
printf("继续查询?(1/0):[ ]\b\b");
scanf("%d",&flag);
}while(flag);
fclose(fp);
}
void Modify()
{
FILE * fp1,* fp2;
char s[20];
int flag=0;
int fla;
do
{
if((fp1=fopen("D:\\address.txt","rb"))==NULL)
{
printf("\tCan not open the address file!");
getchar();
exit(1);
}
if((fp2=fopen("D:\\temp.txt","wb"))==NULL)
{
printf("\tCan not open the temp file!");
getchar();
exit(1);
}
printf("\t 请输入想修改的记录中的名字:");
scanf("%s",&s);
flag=0;
while(fread(&per,sizeof(per),1,fp1)==1)
{
if(strcmp(s,per.name)==0)
{
printf("\t 编号:");
scanf("\t%d",&per.score);
printf("\t 姓名:");
scanf("\t%s",per.name);
printf("\t 年龄:");
scanf("\t%s",per.age);
printf("\t 电话号码:");
scanf("\t%s",per.num);
printf("\t 通讯住址:");
scanf("\t%s",per.adds);
printf("\t 电子邮箱:");
scanf("\t%s",per.email);
flag=1;
}
fwrite(&per,sizeof(per),1,fp2);
}
fclose(fp1);
fclose(fp2);
if(flag==1)
{
printf("\t修改成功!\n");
remove("D:\\address.txt");
rename("D:\\temp.txt","D:\\address.txt");
}
else
{
printf("\t 通讯录中没有此人!\n");
}
printf("继续添加?(1/0):[ ]\b\b");
scanf("%d",&fla);
}while(fla);
}
void mima()
{
int mima,m,n=50;
system("COLOR 0a");
printf("\n\n");
printf("\t ____________________________________________________________\n");
printf("\t|************************************************************|\n");
printf("\t|************************************************************|\n");
printf("\t|** __________________ **|\n");
printf("\t|** | | **|\n");
printf("\t|** | 通讯录管理系统 | **|\n");
printf("\t|** |__________________| **|\n");
printf("\t|** **|\n");
printf("\t|** **|\n");
printf("\t|** **|\n");
printf("\t|** **|\n");
printf("\t|************************************************************|\n");
printf("\t|***********************************************姬巧春制作***|\n");
printf("\t|************************************************************|\n");
printf("\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("\t\n请根据您的职位选择:[ ]\b\b\n");
printf("\t┌——————-┐\n");
printf("\t│1------管理员│\n");
printf("\t│2------用户 │\n");
printf("\t└——————-┘\n");
printf("请选择:");
scanf("%d",&m);
while(m!=1&&m!=2)
{
printf("输入错误,请重新选择:[ ]\b\b");
scanf("%d",&m);
}
if(m==1)
{
printf("请输入五位数字密码:");
for(;;)
{
scanf("%d",&mima);
if (mima==12345)
break;
else
printf("密码错误,请重新输入\n");
}
for(;;)
{
switch(menu_select1())
{
case 1:
printf("\n\t 添加记录到通讯录\n");
Input();
break;
case 2:
printf("\n\t\t\t 通讯录记录表\n");
Display();
break;
case 3:
printf("\n\t 从通讯录中删除记录\n");
Delete();
system("pause");
printf("\t");
break; /*删除记录*/
case 4:
printf("\n\t 在通讯录中查找记录\n");
Search();
printf("\t");
system("pause");
break;
case 5:
printf("\n\t 修改通讯录中的记录\n");
Modify();
printf("\t");
system("pause");
break;
case 0:
printf("\n\t\t 谢谢使用,再见!\n");
printf("\n\t\t");
exit(0);
}
}
system("cls");
}
if(m==2)
{
for(;;)
{
switch(menu_select2())
{
case 1:
printf("\n\t\t\t 通讯录记录表\n");
Display();
break;
case 2:
printf("\n\t 在通讯录中查找记录\n");
Search();
printf("\t");
system("pause");
break;
case 0:
printf("\n\t\t 谢谢使用,再见!\n");
printf("\n\t\t");
exit(0);
}
}
}
system("cls");
}
void main()
{
mima();
}
- C语言课程设计---通讯录
- C语言课程设计--学生通讯录1.0
- c语言 数据结构 课程设计 通讯录制作
- C语言课程设计通讯录链表实现
- 通讯录管理系统C语言课程设计
- 数据结构课程设计——通讯录系统设计(C语言)
- C 语言课程设计 最终答辩版 学生通讯录管理系统
- 数据结构课程设计--通讯录管理(C语言实现)
- C语言课程设计任务书
- C语言课程设计
- C语言课程设计
- C语言课程设计
- c语言课程设计
- c语言课程设计
- c语言课程设计
- c语言课程设计笔记
- C语言课程设计
- C语言课程设计
- 使用alarm和setjmp实现超时控制
- iOS内存管理
- 本地通知
- 使用Vitamio打造自己的Android万能播放器
- Binary Search Tree 二叉搜索树 C++
- C语言课程设计---通讯录
- i2c架构
- 周鸿祎:如何成为一名优秀的产品经理?
- STRUTS2总结
- Android点击MENU弹出的退出按钮退出系统方法及拦截MENU弹出菜单方法
- 模板方法模式
- 【Android开发学习32】BroadcastReceiver之电源管理
- c语言实验
- struts2+spring3整合配置文件实例