用C语言实现电话簿程序

用C语言利用结构体编写一个电话簿程序,包含新建与查找两大功能,联系人信息保存于txt文件中。


#include <stdio.h>
#include <string.h>

struct Friends{
	char Name[20];
	char TEL[30];
	char sex[10];
	char email[20];
	char address[20];
	char birth[20];
};

void newone();
void Find();
void FindforName();
void FindforTEL();
void outputit(struct Friends *p);
void deleteOne();
void change();

int main(){
	int s = 1;
	int i=1;
	printf("                              *** 通讯录 ***                       \n");
	while(i){
		printf("-------------------------------------------------------------------------------\n");
		printf("1-新建联系人\n");
		printf("2-查找联系人\n");
		printf("-------------------------------------------------------------------------------\n");
		printf("请选择功能(输入相应功能对应的数字即可):");
		scanf("%d",&s);
		switch(s){
		case 1:newone();break;
		case 2:Find();break;
		}
		printf("要继续操作通讯录吗(继续请输入1,离开请输入0)?");
		scanf("%d",&i);
	}
	return 0;
}

void newone(){
	struct Friends x;
	FILE *fp;
	fp=fopen("e:\\通讯录.txt","ab");
	printf("请输入姓名:");
	scanf("%s",&x.Name);
	printf("请输入手机号码:");
	scanf("%s",&x.TEL);
	printf("请输入电子信箱:");
	scanf("%s",&x.email);
	printf("输入家庭住址:");
	scanf("%s",&x.address);
	printf("输入性别(female或者male):");
	scanf("%s",&x.sex);
	printf("输入生日(请以例如“2014/5/15”的格式输入):");
	scanf("%s",&x.birth);
	fwrite(&x,sizeof(x),1,fp);
	fclose(fp);
}

void Find(){
	int a = 1;
	printf("-------------------------------------------------------------------------------\n");
	printf("1-按姓名查找\n");
	printf("2-按电话号码查找\n");
	printf("-------------------------------------------------------------------------------\n");
	printf("请选择功能(输入相应功能对应的数字即可):");
	scanf("%d",&a);
	switch(a){
	case 1:FindforName();break;
	case 2:FindforTEL();break;
	}
}

void FindforName(){
	char b[20];
	struct Friends x;
	printf("请输入姓名:");
	scanf("%s",&b);
	FILE *fp;
	fp=fopen("e:\\通讯录.txt","rb");
	while(!feof(fp)){
		fread(&x,sizeof(x),1,fp);
		if(strcmp(b,x.Name)==0)
		 {
			 outputit(&x);
			 break;
		 }
	}
	fclose(fp);
}

void FindforTEL(){
	char c[30];
	struct Friends x;
	printf("请输入电话号码:");
	scanf("%s",&c);
	FILE *fp;
	fp=fopen("e:\\通讯录.txt","rb");
	while(!feof(fp)){
		fread(&x,sizeof(x),1,fp);
		if(strcmp(c,x.TEL)==0)
		 {
			  outputit(&x);
			  break;
		 }
	}
	fclose(fp);
}

void outputit(struct Friends *p){
	printf("-------------------------------------------------------------------------------\n");
	printf("姓名:%s\n",p->Name);
	printf("电话号码:%s\n",p->TEL);
	printf("性别:%s\n",p->sex);
	printf("电子邮件地址:%s\n",p->email);
	printf("住址:%s\n",p->address);
	printf("生日:%s\n",p->birth);
	printf("-------------------------------------------------------------------------------\n");
}

void deleteOne(){
	printf("请输入要删除的电话");
}

删除与修改功能还没来得及写~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值