通讯率系统简单实现

通讯录顺序表实现

简单易懂,适合初学人士。
结构体实现

typedef struct{
	char name[kongjian];
	char tel[kongjian];
}people;
typedef struct{
	people *elem;
	int listsize;
	int length;
}sqlist; 

主函数

int main()
{
	sqlist L;
	if(InitList(L)) cout<<"初始化成功\n";
	else return 0;
	cout<<"添加数据\n";
	InsertList(L);
	cout<<"添加数据成功\n";
	int p;	
	while(1)
	{
	   neum();
	   cout<<"请选择\n";
	   cin>>p;
		switch(p)
		{
			case 1:int i;
			        cout<<"在第几条插入\n";
			       cin>>i;
			       ListInsert(L,i);
			       cout<<"添加成功\n";
			       break;
			case 2:int j;
			       cout<<"删除第几个元素\n";
			       cin>>j;
			       ListDlete(L,j);
			       break;
			case 3:ChanseList(L);
			        break;
			case 4:cout<<"已退出";
			       exit(1);
		}
	}
	 
}

初始化部分

bool InitList(sqlist &L)
{
	L.elem=(people *) malloc (sqlist_size*sizeof(people));
	if(!L.elem) return false;
	L.length=0;
	L.listsize=sqlist_listsize;
	return true;
}

插入部分

bool ListInsert(sqlist &L,int i)
{
	if(i>L.length||L.length>L.listsize)
	return false;
	sqlist temp;
	temp.elem=(people *) malloc (sqlist_size*sizeof(people));
	if(!temp.elem) return false;
	for(int j=L.length;j>i-1;j--)
	{ 
		L.elem[j+1]=L.elem[j];
	}
	cout<<"姓名和电话\n";
	cin>>temp.elem->name;
	cin>>temp.elem->tel;
	L.elem[i]=*(temp.elem);
	L.length++;
	L.listsize--;
	LiatTraverse(L);
	return true;
}

删除部分

{
	if(i>L.length||L.length>L.listsize)
	return false;
	if(i<0) return false;
	for(;i<=L.length;i++)
	{
		L.elem[i]=L.elem[i+1];
	}
	L.length--;
	L.listsize++;
	LiatTraverse(L);
	return true;
}

更改部分

bool ChanseList(sqlist &L)
{
	LiatTraverse(L);
	cout<<"请输入要更改第几条记录\n";
	int i;
	cin>>i;
	if(i<0||i>L.length||L.length>L.listsize)
	{
		cout<<"更改失败\n";
		return false; 
	}
	sqlist temp;
	temp.elem=new people;
	if(!temp.elem)  return false;
	cout<<"请输入姓名和电话\n";
	cin>>temp.elem->name;
	cin>>temp.elem->tel;
	L.elem[i]=*(temp.elem);
	delete temp.elem;
	cout<<"更改成功\n"<<"当前元素为:\n";
	LiatTraverse(L);
	return true;
}

查看部分

void LiatTraverse(sqlist L)
{
	cout<<"共有元素"<

初始化添加函数

bool InsertList(sqlist &L)
{
	int i;
	sqlist temp;
	temp.elem=(people *) malloc (sqlist_size*sizeof(people));
	if(!temp.elem) return false;
	cout<<"添加几条数据\n";
	cin>>i;
	cout<<"添加姓名和电话\n";
	for(int j=1;j<=i;j++)
	{
		 
		cin>>temp.elem->name;
		cin>>temp.elem->tel;
		L.elem[j]=*(temp.elem);
		L.length++;
		L.listsize--;
	}
	return true;
}

你可能感兴趣的:(通讯录实现,c++,c语言)