⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 通讯录程序.txt

📁 简单的通讯录 程序 能实现简单的管理功能
💻 TXT
字号:
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define M 50
struct person //定义数据结构
{
	char name[10];
	char phone[12];
	char address[30];
}p[M];
FILE *fp;   //调用函数
int n;
void add()  //添加记录
{
	person p[M];
    char c;
	cout<<"请输入添加信息:"<<endl;
	do                                       //当输入Y/y时执行本操作
	{
	   cout<<"姓名 :";
	   cin>>p[n].name;
	   cout<<"电话 :";
	   cin>>p[n].phone;
	   cout<<"地址 :";
	   cin>>p[n].address;
	   n++;                                              //记录数加1
	   cout<<"是否继续输入?(y继续,其他退出)"<<endl;    //判断是否继续输入信息
	   cin>>c;
	   cout<<endl;
	}while(c=='y'||c=='Y');
		cout<<"成功输入!"<<endl;
}

void find()   //查找记录
{
	person p[M];
	int i;
	char s[12];
	cout<<"输入要查找人姓名:"<<endl;                          //输出提示       
	cin>>s;
	for(i=0;i<n;i++)
	{
		if(strcmp(s,p[i].name)==0)                   //比较是否相同
		{
			cout<<"找到!"<<endl;                                
		    cout<<"     姓名    电话     地址"<<endl;        //找到则输出找到的信息
		    cout<<p[i].name<<"/t"<<p[i].phone <<"/t"<<p[i].address <<endl;
		}
		else
			cout<<"没找到!"<<endl;
	}
}
int dele()    //删除记录
{
	person p[M];
	int i,j;
	int m=0;
	char s[12];                                    //要删除记录的姓名
	cout<< "输入要删除人姓名:";
	cin>>s;
	for(i=0;i<n;i++)                               //是否存在该被删除人
	{
		if(strcmp(s,p[i].name)==0)                  
        return i;
	}
	return i;
	if(i>n-1)                                        //如果i>n-1超过了数组的长度
		cout<<"没有要删除的人!"<<endl;
	else
	{
		cout<<" 姓名    电话     地址"<<endl;                    //输出找到的信息
		cout<<p[i].name<<"/t"<<p[i].phone <<"/t"<<p[i].address <<endl;
		cout<<"是否确认删除?"<<endl;
		cin>>m;
        if(m==1)
		{
			for(j=i+i;j<n;j++)                      //删除该记录,实际后续记录前移
			{
          strcpy(p[j-1].name,p[j].name);            //将后一条记录的姓名拷贝到前一条
	      strcpy(p[j-1].phone,p[j].phone);          //将后一条记录的电话拷贝到前一条
	      strcpy(p[j-1].address,p[j].address);      //将后一条记录的地址拷贝到前一条
			}
			n--;                                     //记录数减1 
		}
	}
	return n;                                       //返回记录数
}

void list()    //显示记录
{
	person p[M];
	int i;
	cout<<"显示所有记录信息:"<<endl;                   //输出提示
	cout<<"姓名    电话     地址"<<endl;
	for(i=0;i<n;i++)                                  //输出所有记录信息
	{
		cout<<p[i].name<<"/t"<<p[i].phone<<"/t"<<p[i].address<<endl;
	}
}
   

void load(char filename[])     //定义读取文件中数据的函数
{                                                 
	int n=0;                                                    //学生个数n
	if((fp=fopen(filename,"rb"))==NULL)                    //判断文件是否存在
	{
		cout<<"文件不存在!"<<endl;     
	    return;                                                  //文件不存在,返回主函数
	}
	do                                                          //读取数据
	{
		if(fread(&p[n],sizeof(struct person),1,fp)!=1)       //判断读取是否成功
		{
			if(feof(fp)) return;                      //若读取结束,返回主函数
			cout<<"读取出错!"<<endl;              //读取出错 
		}
		n++;                                          //n学生人数加1
	}while(1);                                              
	fclose(fp);                                //关闭文件  
}


void save(char filename[])  //保存数据
{                                                 
	int i;
	if((fp=fopen(filename,"wb"))==NULL)       //判断文件是否存在                              
	{
		cout<<"文件不存在!"<<endl;
	    return;  
	}
	else                                             //保存数据                             
	{
		for(i=0;i<n;i++)
			if(fwrite(&p[i],sizeof(struct person),1,fp)!=1)   //判断数据保存是否成功 
				cout<<"读取出错!"<<endl;
			fclose(fp);                         //关闭文件
	}
} 

void newfile()    //新建文件   
{
	char filename[15];                                
	cout<<"请输入文件名:";       
	cin>>filename;                             
	fp=fopen(filename,"wb+");         
	cout<<"成功新建文件!"<<endl;
	fclose(fp);                           //关闭文件
	
}

void main()
{
	
	int c;
	cout<<"                **********************************************       "<<endl;
	cout<<"              *               欢迎进入通讯录程序               *     "<<endl;
        cout<<"            *                                                    *   "<<endl;
	cout<<"          *        作者:卢、郑        软件6班         04/12/28    * "<<endl;
	cout<<"         ************************************************************"<<endl;
	while(c<0||c>5){
	cout<<"         *****************************菜单***************************"<<endl;
	cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 1:新建 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 2:添加 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 3:查找 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 4:删除 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 5:显示 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
	cout<<"         *                      **** 0:退出 ****                    *"<<endl;
        cout<<"         *                                                          *"<<endl;
        cout<<"         ************************************************************"<<endl;
	cout<<"请选择:";
	cin>>c;
	switch(c)
	{
	case '1':
    	newfile();
     	break;
	case '2':
		add();
		break;
	case '3':
		find();
		break;
    case '4':
		dele();
		break;
	case '5':
		list();
		break;
    case '0':
		exit(0);
	}
	}return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -