通讯录系统1.0 普通版(Windows Linux /C)

Linux系统下vim编译的:如用Windows系统 须修改一点东西
#include <getch.h> 换成#include <conio.h> 因为里面使用了 getch()
#include <unistd.h> 加个这个 因为用了usleep函数 延迟显示 还需要修改show_msg函数中ulseep改为sleep(sce) Windows下没有usleep 只有sleep 一个是微秒级别的 一个是秒级别的
里面所有的system(“clear”) 都需要换成system(“cls”) Linux下与Windows下刷新不一样 无法识别
试了一下 修改以上内容这样就可以运行了 若有其他问题可以评论提出

Linux 版本

#include <stdio.h>//xiaoyk
#include <stdlib.h>
#include <getch.h>		//换成#include <conio.h>    因为里面使用了 getch()
#include <string.h>
						//#include <unistd.h>  加个这个 因为用了usleep函数 延迟显示
static int count = 0;		//有效人数数量
static char name[100][20];	//姓名
static char sex[100];		//性别
static char tel[100][12];	//电话
//打印提示信息
void show_msg(const char* msg,float sec)
{
	printf("%s",msg);
	
	fflush(stdout);//如果msg没有换行得手动刷新

	usleep(sec*1000000);
}

//添加联系人
void add(void)
{
	if(count >= 100)
	{
		puts("系统正在升级,请等候....");
		return;
	} 
	int i = 0;
	while(sex[i]) i++;
	printf("--- 添加信息---\n");
	printf("姓名:");
	scanf("%s",name[i]);
	printf("性别:");
	scanf(" %c",sex+i);
	printf("电话:");
	scanf("%s",tel[i]);
	count++;
	show_msg("添加联系人成功!",1);
}

//删除联系人
void del(void)
{
	char a[20];
	system("clear");
	printf("输入删除人姓名:");	
	scanf("%s",a);
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			if( strcmp(name[i],a) == 0 )
			{
				sex[i]=0;
				count-=1;
				show_msg("删除成功",1.5);
				return;
			}
		}
	}
	show_msg("没有找到对应联系人",1);
	return;
}

//修改联系人
void modify(void)
{
	char a[20];
	system("clear");	
	printf("输入修改人姓名:");	
	scanf("%s",a);
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			if( strcmp(name[i],a) == 0 )
			{
				system("clear");
				printf("-------旧信息-------\n");
				printf("姓名:%s 性别:%c 号码:%s\n",name[i],sex[i],tel[i]);
				printf("-----修改信息中-----\n");
				printf("姓名 性别 电话:\n");
				scanf("%s %c %s",name[i],sex+i,tel[i]);
				show_msg("-----修改成功-----",1.5);
				return;
			}
		}
	}
	show_msg("没有找到对应修改联系人",1);
	return;
	
}

//查询联系人
void find(void)
{
	char a[20];
	int x=1;
	system("clear");
	printf("输入查询的关键字:");
	scanf("%s",a);
	system("clear");
	
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0)
		{
			if(strstr(name[i],a) || strstr(tel[i],a) )
			{
				x=0;
				printf("姓名:%s 性别:%c 号码:%s\n",name[i],sex[i],tel[i]);
			}
		}
	}
	if(x==1)
	{
		show_msg("未找到信息,即将返回主页...",1.5);
		return ;
	}
	else
	{
		printf("按q返回:");
		while(1)
			if(getch()=='q') return ;
	}

}

//遍历通讯录
void list(void)
{
	system("clear");
	if(count<=0) 
	{
		show_msg("联系人列表为空 2秒后返回主页...",2);
		return ;
	}
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			printf("姓名:%s\n性别:%s\n号码:%s\n",name[i],'w'==sex[i]?"女":"男",tel[i]);
			printf("\n");
		}
	}
	printf("按q返回:");
	while(1)
		if(getch()=='q') return ;
}

//显示菜单
char menu(void)
{
	system("clear");
	puts("*****欢迎使用小渝通讯录*****");
	puts("1、添加联系人");
	puts("2、删除联系人");
	puts("3、修改联系人");
	puts("4、查询联系人");
	puts("5、遍历联系人");
	puts("6、退出通讯录");
	puts("----------------------------");
	printf("请输入指令:");
	char cmd = getch();
	printf("%c\n",cmd);
	return cmd;
}

int main(int argc,const char* argv[])
{
	while(1)
	{
		//显示目录
		switch(menu())
		{
			case '1':add();		break;	
			case '2':del();		break;	
			case '3':modify();	break;	
			case '4':find();	break;	
			case '5':list();	break;	
			case '6':return 0;	
		}
	}
}//xiaoyk

Windows版本

#include <stdio.h>//xiaoyk
#include <stdlib.h>
#include <conio.h>   
#include <string.h>
#include <unistd.h>  
static int count = 0;		//有效人数数量
static char name[100][20];	//姓名
static char sex[100];		//性别
static char tel[100][12];	//电话
//打印提示信息
void show_msg(const char* msg,float sec)
{
	printf("%s",msg);
	
	fflush(stdout);//如果msg没有换行得手动刷新

	sleep(sec*2);
}

//添加联系人
void add(void)
{
	if(count >= 100)
	{
		puts("系统正在升级,请等候....");
		return;
	} 
	int i = 0;
	while(sex[i]) i++;
	printf("--- 添加信息---\n");
	printf("姓名:");
	scanf("%s",name[i]);
	printf("性别:");
	scanf(" %c",sex+i);
	printf("电话:");
	scanf("%s",tel[i]);
	count++;
	show_msg("添加联系人成功!",1);
}

//删除联系人
void del(void)
{
	char a[20];
	system("cls");
	printf("输入删除人姓名:");	
	scanf("%s",a);
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			if( strcmp(name[i],a) == 0 )
			{
				sex[i]=0;
				count-=1;
				show_msg("删除成功",1);
				return;
			}
		}
	}
	show_msg("没有找到对应联系人",1);
	return;
}

//修改联系人
void modify(void)
{
	char a[20];
	system("cls");	
	printf("输入修改人姓名:");	
	scanf("%s",a);
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			if( strcmp(name[i],a) == 0 )
			{
				system("cls");
				printf("-------旧信息-------\n");
				printf("姓名:%s 性别:%c 号码:%s\n",name[i],sex[i],tel[i]);
				printf("-----修改信息中-----\n");
				printf("姓名 性别 电话:\n");
				scanf("%s %c %s",name[i],sex+i,tel[i]);
				show_msg("-----修改成功-----",1.5);
				return;
			}
		}
	}
	show_msg("没有找到对应修改联系人",1);
	return;
	
}

//查询联系人
void find(void)
{
	char a[20];
	int x=1;
	system("cls");
	printf("输入查询的关键字:");
	scanf("%s",a);
	system("cls");
	
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0)
		{
			if(strstr(name[i],a) || strstr(tel[i],a) )
			{
				x=0;
				printf("姓名:%s 性别:%c 号码:%s\n",name[i],sex[i],tel[i]);
			}
		}
	}
	if(x==1)
	{
		show_msg("未找到信息,即将返回主页...",1);
		return ;
	}
	else
	{
		printf("按q返回:");
		while(1)
			if(getch()=='q') return ;
	}

}

//遍历通讯录
void list(void)
{
	system("cls");
	if(count<=0) 
	{
		show_msg("联系人列表为空 1秒后返回主页...",1);
		return ;
	}
	for(int i=0;i<100;i++)
	{
		if(sex[i]!=0) 
		{
			printf("姓名:%s\n性别:%s\n号码:%s\n",name[i],'w'==sex[i]?"女":"男",tel[i]);
			printf("\n");
		}
	}
	printf("按q返回:");
	while(1)
		if(getch()=='q') return ;
}

//显示菜单
char menu(void)
{
	system("cls");
	puts("*****欢迎使用小渝通讯录*****");
	puts("1、添加联系人");
	puts("2、删除联系人");
	puts("3、修改联系人");
	puts("4、查询联系人");
	puts("5、遍历联系人");
	puts("6、退出通讯录");
	puts("----------------------------");
	printf("请输入指令:");
	char cmd = getch();
	printf("%c\n",cmd);
	return cmd;
}

int main(int argc,const char* argv[])
{
	while(1)
	{
		//显示目录
		switch(menu())
		{
			case '1':add();		break;	
			case '2':del();		break;	
			case '3':modify();	break;	
			case '4':find();	break;	
			case '5':list();	break;	
			case '6':return 0;	
		}
	}
}//xiaoyk


©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页