简单停车场项目 和 通讯录V3.0(保存文件操作)

停车场:

头文件:

#ifndef _parking_h
#define _parking_h
#include<stdio.h>
#include<stdlib.h>

#define SUCCESS 1111
#define FAILURE 2222
#define TRUE    3333 //没什么用QAQ
#define FALSE   4444 //同上

#define SIZE_1   3 //停车场先只停3辆车玩玩
#define SIZE_2   9 //候车场先只等9辆车也是玩玩
/*	停车场结构体
	作者:张琦
	时间:18.8.13 / 19:00
*/
struct ParkingStark
{
	int *num;
	long *time_1;
	long *time_2;
	int top;
};

typedef struct ParkingStark PS; //命名为PS

/*	空栈结构体
	作者:张琦
	时间:18.8.13 / 19:00
*/
struct EmptyStack
{
	int *num;
	long *time_1;
	long *time_2;
	int top;
};

typedef struct EmptyStack ES; //命名为ES

/*  候车场队列
	作者:张琦
	时间:18.8.13 / 19:01
*/
struct WaitingYard
{
	int *num;
	long *time_1;
	int front;
	int rear;
};

typedef struct WaitingYard WY; //命名为WY

//定义三个结构体指针。
PS *car_parking;
ES *car_exchange;
WY *car_waiting;

//全局申明 停车场初始化
int ParkingStackInit(PS **p);

//全局申明 空栈初始化
int EmptyStackInit(ES **e);

//全局申明 候车场初始化
int WaitingYardInit(WY** w);

//主界面
void mainmenu();

//停车场停车
int ParkingStackPush(PS *p);

//候车场停车
int WaitingYardPush(WY* w,PS* p);

//出车
int POP(PS *p, ES *e, WY *w );

//停车场的遍历
int ParkingStackTraverse(PS *p );

//候车场的遍历
int WaitingYardTraverse(WY* w );

//候车场车辆计数
int WaitingYardNumber(WY *w);

//按车牌号搜索
int Search( PS *p, WY *w );

#endif

功能函数:

#include"parking.h"
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>

int ParkingStackInit(PS **p)
{
	(*p) = (PS*)malloc(sizeof(PS));
	
	if( NULL == (*p) )
	{
		return FAILURE;
	}
	
	(*p) -> top = -1;
	
	// num
	(*p) ->num = (int*)malloc(sizeof(int)*SIZE_1);

	if( NULL == ((*p)->num) )
	{
		return FAILURE;
	}
	
	//time1
	(*p)->time_1 = (long int*)malloc(sizeof(long int)*SIZE_1);
	if( NULL == ((*p)->time_1) )
	{
		return FAILURE;
	}
	
	//time2
	(*p)->time_2 = (long int*)malloc(sizeof(long int)*SIZE_1);
	if( NULL == ((*p)->time_2) )
	{
		return FAILURE;
	}
	
	return SUCCESS;
}

int EmptyStackInit(ES **e)
{
	(*e) = (ES*)malloc(sizeof(ES));
	
	if( NULL == (*e) )
	{
		return FAILURE;
	}
	
	(*e) -> top = -1;
	
	// num
	(*e) ->num = (int*)malloc(sizeof(int)*SIZE_1);

	if( NULL == ((*e)->num) )
	{
		return FAILURE;
	}
	
	//time1
	(*e)->time_1 = (long int*)malloc(sizeof(long int)*SIZE_1);
	if( NULL == ((*e)->time_1) )
	{
		return FAILURE;
	}
	
	//time2
	(*e)->time_2 = (long int*)malloc(sizeof(long int)*SIZE_1);
	if( NULL == ((*e)->time_2) )
	{
		return FAILURE;
	}
	
	return SUCCESS;
}

int WaitingYardInit(WY** w)
{
	(*w) = (WY*)malloc(sizeof(WY));
	if( NULL == (*w))
	{
		return FAILURE;
	}
	
	(*w)->num = (int*)malloc(sizeof(int)*SIZE_2);
	if( NULL == ((*w)->num) )
	{
		return FAILURE;
	}
	
	(*w)->time_1 = (long int*)malloc(sizeof(long int)*SIZE_2);
	if( NULL == ((*w)->time_1))
	{
		return FAILURE;
	}
	
	(*w)->front = (*w)->rear = 0;
	
	return SUCCESS;
}

void mainmenu()
{
	
	printf("*****************************************************************\n");
	printf("*****************************************************************\n");
	printf("**                         welcome!                       *******\n");
	printf("*****************************************************************\n");
	printf("**                     TIPs:请选择功能 :                   ******\n");
	printf("**              1.录入车辆信息            2.记录出车信息    *****\n");
	printf("**              3.查看停车场中车辆信息    4.查看候车场中信息 ****\n");
	printf("**              5.正在等待入场的车辆数目  6.按车牌查询车辆信息***\n");
	printf("**                        7.退出使用                           **\n");
	printf("*****************************************************************\n");
	printf("*****************************************************************\n");
	
}

/*	
	功能:往停车场里停车
	作者:张琦
	时间:18.8.13 / 19:45
*/
int ParkingStackPush(PS *p)
{
	int choice;//用于做选择
	int choice_2;
	
	if( NULL == p ) //入参判断
	{
		return FAILURE;
	}
	
	while( p->top < SIZE_1 )
	{
		if( p->top == SIZE_1 - 1 )
		{
			printf("停车场已满!\n");
			printf("是否要登记车辆进入候车场中?\n选择: 1(是) , 2(否)\n");
			scanf("%d",&choice);
			if( 1 == choice )
			{
				WaitingYardPush( car_waiting , car_parking );
			}
			else
			{
				break;
			}
		}
		else
		{
			printf("请输入车牌号码:\n");
			scanf("%d",&p->num[p->top + 1]);
			
			//设置进入停车场的时间
			time_t t_in;
			time (&t_in); 
			//获取进入时间
			char *t_get = (char*)malloc(sizeof(char)*64);
			t_get = ctime ( &t_in );
			p->time_1[p->top + 1] = t_in;
			
			printf("此车牌照为%d,进入的时间为:%s\n",p->num[p->top + 1],t_get);
			
			p->top ++;
			
			printf("是否继续停车?\n请选择: 1(是) , 2(否)\n");
			scanf("%d",&choice_2);
			
			if( 1 == choice_2 )
			{
				continue;
			}
			else if ( 2 == choice_2 )
			{
				break;
			}
			else
			{
				printf("ERROR!\n");
			}
		}
	}
	return SUCCESS;
}

/*	
	功能:往候车场里停车
	作者:张琦
	时间:18.8.13 / 19:48
*/
int WaitingYardPush(WY* w,PS* p)
{
	int choice; //用于做选择
	
	if( NULL == w || NULL == p ) // 入参判断
	{
		return FAILURE;
	}
	
	while( p->top >= SIZE_1 - 1 )
	{
		printf("请输入进入候车区的牌照:\n");
		scanf("%d",&w->num[w->rear]);
		
		//设置进入候车场的时间
		time_t t_in;
		time(&t_in);
		
		//获取进入候车场的时间
		long t = t_in;
		char *t_get = (char*)malloc(sizeof(char)*64);
		t_get = ctime( &t_in );
		w->time_1[w->rear] = t;
		
		printf("牌照为:%d的车辆进入候车区,时间为%s\n",w->num[w->rear],t_get);
		w->rear ++;
		
		printf("是否继续入车?\n选择: 1(是) ,2(否)\n");
		scanf("%d",&choice);
		
		if( 2 == choice )
		{
			break;
		}
		
		else if( 1 == choice )
		{
			continue;
		}
		
		else
		{
			printf("ERROR!\n");
		}
	}
return SUCCESS;
}

/*	
	功能:出车
	作者:张琦
	时间: 18.8.13 / 20:51
*/
int POP(PS *p, ES *e, WY *w )
{
	
	int choice;
	
	//入参判断
	if( NULL == p || NULL == e || NULL == w )
	{
		return FAILURE;
	}
	
	//用于存放需要出停车场的车牌号
	int code;

	//用于判断是否找到
	int find = 0;
	
	printf("请输入需要出停车场的车牌号:\n");
	scanf("%d",&code);
	
	int k = 0;
	int i = 0;
	
	while(  (p->top) > -1 )
	{
		if( p->num[p->top] == code )
		{
			if( p->top == -1 )
			{
				return FAILURE;
			}
			
			time_t t_in;
			time(&t_in);
			
			//用于标记离开停车场的时间
			p->time_2[0] = t_in;
			char *t_get;
			//用于获取离开停车场的时间
			t_get = ctime( &t_in );
			
			printf("车牌号为:%d的车辆\n在%s时出场,在停车场中停留了%.2f分钟\n",
			p->num[p->top],t_get,( difftime(p->time_2[0],p->time_1[p->top]) ) / 60);
			
			p->top --;
			find += 1;
			
			break;
		}
		
		e->num[e->top + 1] = p->num[p->top];
		e->time_1[e->top + 1] = p->time_1[p->top];
		e->time_2[e->top + 1] = p->time_2[p->top];
		
		p->top --;
		e->top ++;
		k++;	
	}
	
	if( 0 == find )
	{
		printf("查无此车\n");
	}
	
	while( (e->top) > -1 )
	{
		p->num[p->top + 1] = e->num[e->top];
		p->time_1[p->top + 1] = e->time_1[e->top];
		p->time_2[p->top + 1] = e->time_2[e->top];
		
		e->top --;
		p->top ++;
	}
	
	//如果停车场没有满时 从候车场转车进停车场
	while( (p->top) < (SIZE_1 - 1) )
	{
		if( (p->top) > (SIZE_1 - 1) )
		{
			return FAILURE;
			break;
		}
		
		//如果候车场没有车辆时
		if( w->front == w->rear )
		{
			break;
		}	
		
		printf("是否有车辆将要进入停车场?\n 1.(是) , 2(否) \n");
		scanf("%d",&choice);
		
		if( 1 == choice )
		{
			ParkingStackPush(car_parking);
		}
		
		else if( 2 == choice )
		{
			break;
		}
		
		else
		{
			printf("ERROR!\n");
		}
		
		i = w->num[w->front];
		w->front = ( w->front + 1 ) % 100;
			
	}
	
return SUCCESS;
}

/*	
	功能:停车场的遍历
	作者:张琦
	时间:18.8.13 / 21: 07
*/
int ParkingStackTraverse( PS *p )
{
	if( NULL == p )
	{
		return FAILURE;
	}
	
	//判断一下停车场里是否有车
	if( p->top == -1 )
	{
		printf("空的停车场!\n");
	}
	
	int i;
	while( i < p->top + 1 )
	{
		printf("车牌号为:%d 进场的时间为%s\n",p->num[i],ctime(&(p->time_1[i])));
		i++;
	}
	
	return SUCCESS;
}

/*
	功能:候车场的遍历
	作者:张琦
	时间:18.8.13 / 21: 21
*/
int WaitingYardTraverse(WY *w)
{
	if( w->rear == w->front )
	{
		printf("候车场查无车辆!\n");
	}
	
	if( NULL == w )
	{
		return FAILURE;
	}
	
	int i ;
	i = ( w->rear - w->front + 100 ) % 100;
	
	int j;
	j = w->front;
	while( j < w->rear )
	{
		printf("候车场的车辆信息为:\n");
		printf("车牌号:%d 进场时间: %s\n",w->num[j],ctime(& (w->time_1[j])));
		j++;
	}
	
	return SUCCESS;
}

/*	
	功能:候车场数量计数
	作者:张琦
	时间:18.8.14 / 8:48
*/
int WaitingYardNumber(WY *w)
{
	if( NULL == w )
	{
		return FAILURE;
	}
	
	//如果候车场没有车辆时
	if( w->front == w->rear )
	{
		printf("候车场里没有车辆!\n");
	}
	
	int count;
	
	count = ( w->rear - w->front + 100 ) % 100;
	printf("候车场一共有%d辆车\n",count);
	
	return SUCCESS;
}

/*
	功能:按车牌号查询车辆
	作者:张琦
	时间:18.8.14 / 10:53
*/
int Search( PS *p, WY *w )
{
	if( NULL == p || NULL == w )
	{
		return FAILURE;
	}
	
	int num;
	printf("请输入你要搜寻的车牌号\n");
	scanf("%d",&num);
	
	int count;
	int i = 0;
	
	while( i < p->top + 1)
	{
		if( p-> top == -1 )
		{
			printf("停车场为空\n");
			sleep(1);
			return FAILURE;
		}
		
		if( num == p->num[i] )
		{
			printf("已在停车场中找到此车\n");
			printf("车牌号为:%d 进场的时间为%s\n",p->num[i],ctime(&(p->time_1[i])));
			count ++;
			i++;
			break;
		}
		else
		{
			printf("停车场中没有这辆车\n");
			break;
		}
	}
	
	int j = 0;
	while( j < w->rear )
	{
		if( w->front == w->rear )
		{
			printf("候车场为空\n");
			sleep(1);
			return FAILURE;
		}
		
		if( num == w->num[j] )
		{
			printf("已在候车场找到此车\n");
			printf("车牌号:%d 进场时间: %s\n",w->num[j],ctime(& (w->time_1[j])));
			count ++;
			j++;
			break;
		}
		else
		{
			printf("候车场中没有这辆车\n");
			break;
		}
	}

return SUCCESS;
}

主函数:

#include"parking.h"
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int ret;
	int choice;

	//停车场初始化
	ret = ParkingStackInit(&car_parking);
	if( FAILURE == ret )
	{
		printf("parkingstack init failure!\n");
	}
	else if ( SUCCESS == ret )
	{
		printf("parkingstack init success!\n");
	}
	
	//空栈初始化
	ret = EmptyStackInit(&car_exchange);
	if( FAILURE == ret )
	{
		printf("emptystack init failure!\n");
	}
	else if ( SUCCESS == ret )
	{
		printf("emptystack init success!\n");
	}
	
	//候车场初始化
	ret = WaitingYardInit(&car_waiting);
	if( FAILURE == ret )
	{
		printf("waitingyard init failure!\n");
	}
	else if( SUCCESS == ret )
	{
		printf("waitingyard init success!\n");
	}
	
	system("clear");
	
	while(1)
	{
	
		mainmenu();	
	
		printf("请输入你要选择的功能: ");
		scanf("%d",&choice);
		
		switch(choice)
		{
			case 1:
				system("clear");
				ret = ParkingStackPush(car_parking);
				if( FAILURE == ret )
				{
					printf("录入信息失败!\n");
				}
				else if( SUCCESS == ret )
				{
					printf("成功录入信息!\n");
				}
				break;
				
			case 2:
				system("clear");
				ret = POP(car_parking,car_exchange,car_waiting);
				if( FAILURE == ret )
				{
					printf("出车失败了!\n");
				} 
				else if( SUCCESS == ret )
				{
					printf("成功!\n");
				}
				break;
				
			case 3:
			    system("clear");
				ret = ParkingStackTraverse(car_parking);
				if( FAILURE == ret )
				{
					printf("查看失败了!\n");
				}
				else if( SUCCESS == ret )
				{
					printf("查看车辆信息成功!\n");
				}
				break;
				
			case 4:
				system("clear");
				ret = WaitingYardTraverse(car_waiting);
				if( FAILURE == ret )
				{
					printf("查看候车信息失败了!\n");
				}
				else if( SUCCESS == ret )
				{
					printf("查看候车信息成功!\n");
				}
				break;
				
			case 5:
				system("clear");
				ret = WaitingYardNumber(car_waiting);
				if( FAILURE == ret )
				{
					printf("统计失败!\n");
				}
				else if( SUCCESS == ret )
				{
					printf("统计成功!\n");
				}
				break;
			
			case 6:
				system("clear");
				ret = Search(car_parking,car_waiting);
				if( SUCCESS == ret )
				{
				   printf("完成\n");
				}
				else if( FAILURE == ret )
				{
					printf("未完成\n");
				}
				break;
			   
			case 7:
				exit(0);
		}
	}
	return 0;
}

通讯录 v3.0

头文件:

#ifndef _addresslist_h
#define _addresslist_h
#define SUCCESS      1234
#define FAILURE      2345
#define SIZE         50
 
struct addresslist
{
	int num;
	char name[30];
	char sex[10];
	char tel[15];
	char address[30];
	
	struct addresslist *next;
};
 
typedef struct addresslist list;
 
int addresslistInit(list **l);
 
int print();
 
void menu();
 
int addinfo(list *l,int n);
 
int display(list *l);
 
int listdelete(list *l,int p,int *s_num,char *s_nam,char *s_sex,char *s_tel,char *s_add);
 
int listrevise(list *l);
 
int	listfind(list *l);

int addresslistsave(list *l);

int addresslistopen(list *l);
 
#endif

功能函数:

#include<stdio.h>
#include"addresslist.h"
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
 
void menu()
{
	//system("clear");
	printf("\n\n\n***************************\n");
	printf("1.显示通讯录        2.增加联系人 \n");
	printf("3.删除联系人        4.修改联系人 \n");
	printf("5.查找联系人        7.保存通讯录 \n");
	printf("8.读取通讯录 		9.退出       \n");
}
 
int addresslistInit(list **l)
{
	*l = (list*)malloc(sizeof(list)*1); 
	if( NULL == *l)
	{
		return FAILURE;
	}
	
	(*l)->next = NULL;
	return SUCCESS;
}
 
int addinfo(list *l,int n)
{
	list *p = l,*q;
	q = (list*)malloc(sizeof(list)*1);
	
	int k = 1;
	
	if( NULL == l)
	{
		return FAILURE;
	}
	while ( k < n && p != NULL)
	{
		p = p->next;
		k++;
	}
	
	if( k > n && NULL == p)
	{
		return FAILURE;
	}
	
	printf("plz input number:\n");
	int a;
	scanf("%d",&a);
	q ->num = a;
	
	printf("plz input name:(input 'bye' will quit )\n");
	char name[30]={0};
	scanf("%s",name);
	if( strcmp( name, "bye" ) == 0)
	{
		return 1;
	}
	else
	{	
		strcpy( q->name , name);
	}
	
	printf("plz input sex:\n");
	char sex[10]={0};
	scanf("%s",sex);
	strcpy(q->sex , sex);
	
	printf("plz input tel:\n");
	char tel[15]={0};
	scanf("%s",tel);
	strcpy(q->tel , tel);
	
	printf("plz input address:\n");
	char address[30]={0};
	scanf("%s",address);
	strcpy(q->address , address);
	
	q ->next = p->next;
	p ->next = q;
	
	return SUCCESS;
	
}
 
int display(list *l)
{
	if( NULL == l)
	{
		return FAILURE;
	}
	int s_sort;
	printf("请选择:\n按序号输出:1\n按姓名首字母输出:2\n");
	scanf("%d",&s_sort);
	list* q = l;
	if( 1 == s_sort )
	{
		while( q->next )
		{
			q = q->next;
			printf("序号:%d\n",q->num);
			printf("姓名:%s\n",q->name);
			printf("性别:%s\n",q->sex);
			printf("电话:%s\n",q->tel);
			printf("地址:%s\n",q->address);
			printf("\n");
		}
		printf("\n");
	return SUCCESS;
	}
	
	else if ( 2 == s_sort )
	{ 
		list *p = l;
		list *new_q = l;
		char sort_tmp[30] = {0};
		for( q = l; q != NULL ; q = q->next )
		{
			for( p = q->next; p != NULL ; p = p->next)
			{
				if( strncmp (q ->name,p ->name,10) > 0)
				{
					strcpy(sort_tmp , p ->name);
					strcpy(p ->name , q ->name);
					strcpy(q ->name , sort_tmp);
				}
			}
		}
		while( new_q->next )
		{
			new_q = new_q->next;
			printf("序号:%d\n",new_q->num);
			printf("姓名:%s\n",new_q->name);
			printf("性别:%s\n",new_q->sex);
			printf("电话:%s\n",new_q->tel);
			printf("地址:%s\n",new_q->address);
			printf("\n");
		}
		printf("\n");
	
	}
	return SUCCESS;
}
 
int listdelete(list *l,int p,int *s_num,char *s_nam,char *s_sex,char *s_tel,char *s_add)
{
	
	if( NULL == l)
	{
		return FAILURE;
	}
	
	int k = 1;
	list* q = l;
	list* n;//用于先保存要删除的指针地址
 
	while ( k < p  )
	{
		q = q->next;
		k++;
	}
	//循环结束时, k必然等于n
	if( k > p || NULL == q)
	{
		return FAILURE;
	}
	
	     n  = q -> next; //先把 要被删除的地址存入n
	    
		*s_num = n->num;
	    s_nam = n->name;
		s_sex = n->sex;
		s_tel = n->tel;
		s_add = n->address;
	
		q ->next = n -> next; //将指针指向下下个地址
		free ( n ) ;       //释放掉被删除原先的地址
 
	return SUCCESS;	
}
 
int	listrevise(list *l)
{
	if( NULL == l)
	{
		return FAILURE;
	}
	list *p = l;
	int i = 1,n;
	printf("请输入想要被修改的序号:\n");
	scanf("%d",&n);
	while( i < n+1 )
	{
		p = p ->next;
		i++;
	}
	
	if( NULL == p)
	{
		return FAILURE;
	}
	else
	{
		printf("姓名:\n");
		scanf("%s",p ->name);
		printf("性别:\n");
		
		scanf("%s",p ->sex);
		printf("电话:\n");
		
		scanf("%s",p ->tel);
		printf("地址:\n");
		
		scanf("%s",p ->address);
	}
	return SUCCESS;
}
 
int listfind(list *l)
{
	if( NULL == l )
	{
		return FAILURE;
	}
	
	printf("按姓名查找: 1\n按电话查找: 2\n按地址查找: 3\n");
	char s_tmp[30] = {0};
	list* q = l;
	int location = 0;
	
	int s_searchnumber;
	scanf("%d",&s_searchnumber);
	if( 1 == s_searchnumber )
	{
		printf("请输入一个姓名:\n");
		scanf("%s",s_tmp);
		while( q )
		{	
			q = q->next;
			location++;
			if ( strcmp(q->name,s_tmp) == 0 )
			{
				return location;
			}
			else
			{
				return FAILURE;
			}
		}
		//return FAILURE;
	}
	
	if( 2 == s_searchnumber )
	{
		printf("请输入一个电话:\n");
		scanf("%s",s_tmp);
		while( q )
		{	
			q = q->next;
			location++;
			if ( strcmp(q->tel,s_tmp) == 0 )
			{
				return location;
			}
			else
			{
				return FAILURE;
			}
		}
		//return FAILURE;
	}
	
	if( 3 == s_searchnumber)
	{
		printf("请输入一个地址:\n");
		scanf("%s",s_tmp);
		while( q )
		{	
			q = q->next;
			location++;
			if ( strcmp(q->address,s_tmp) == 0 )
			{
				return location;
			}
			else
			{
				return FAILURE;
			}
		}
		
	}
	return FAILURE;
}

int addresslistsave(list *l)
{
	FILE *fp = fopen("addresslist.txt","w+");
	if( NULL == fp )
	{
		perror("fopen");
		exit(1);
	}
	
	list *p = l;
	
	while( p->next )
	{
		p = p->next;
		fwrite( p, sizeof( *p ), 1, fp);
	}
	
	fseek( fp, 0, SEEK_SET);
	fclose( fp );
	
	return SUCCESS;
}

int addresslistopen(list *l)
{
	if( NULL == l )
	{
		return FAILURE;
	}
	
	list *p = l;
	
	FILE *fp;
	fp = fopen("addresslist.txt","r");
	if ( NULL == fp )
	{
		perror("fopen");
		exit(1);
	}
	
	int ret;
	
	while(1)
	{
		list *q = (list*)malloc(sizeof(list));
		ret = fread( q, sizeof(*q), 1, fp );
		if( -1 == ret )
		{
			perror("fread");
			exit(1);
		}
		
		if( 0 == ret )
		{
			break;
		}
		
		q->next = p->next;
		p->next = q;
		p = p->next;
	}
	
	//ftruncate(fp,0);
	fseek( fp, 0, SEEK_SET );
	fclose( fp );
	
	return SUCCESS;
}


主函数:

#include<stdio.h>
#include"addresslist.h"
#include<stdlib.h>
#include<unistd.h>

	/*
	void print()
    {
	list *q = head;
	printf("序号:%d\n",q->num);
	printf("姓名:%s\n",q->name);
	printf("性别:%s\n",q->sex);
	printf("电话:%s\n",q->tel);
	printf("地址:%s\n",q->address);
	printf("\n");
    }
    */
 
void welcome()
{
	system("clear");
	printf("\n\n\n******************************\n");
	printf("********欢迎打开通讯录***********\n");
	printf("*********************************\n");
	sleep(2);
}
 
 
int main()
{
	list *head = NULL;
	int c,ret,i;
	//int y = 2;
	
	int  d_p; 
	int  s_num;
	char s_nam[30] = {0};
	char s_sex[10]={0};
	char s_tel[15]={0};
	char s_add[30]={0};
	ret = addresslistInit(&head);
	if( ret == SUCCESS)
	{
		printf("Init success!\n");
	}
	else if( FAILURE == ret)
	{
		printf("Init failure!\n");
	}
	
	welcome();
	
	while (1)
	{
		menu();
		scanf("%d",&c);
		switch(c)
		{
			case 1:ret = display(head);
			       if( FAILURE == ret )
				   {
					   printf("display failure!\n");
				   }
				   if( SUCCESS == ret )
				   {
					   printf("display success!\n");
				   }
				   break;
			
			case 2:
			       for( i = 0; i < SIZE ; i++)
					{
						ret = addinfo(head,i+1);
						if( FAILURE == ret)
						{
							printf("insrt failure!\n");
						}
						else if ( SUCCESS == ret )
						{
							printf("insrt success!\n");
						}
                        else if ( 1 == ret )
                        {
                            break;    
                        }
					}
				break;
			
			case 3:    printf("请输入要删除的序号:\n");
						scanf("%d",&d_p);
						ret = listdelete(head,d_p,&s_num,s_nam,s_sex,s_tel,s_add);
						if( FAILURE == ret)
						{
							printf("detele failure!\n");
						}	
						else
						{
							printf("detele success!\n");
						}
						break;
			
			case 4: ret = listrevise(head);
					if( SUCCESS == ret )
					{
						printf("revise success!\n");
					}
					else if ( FAILURE	== ret )
					{
						printf("revise failure!\n");
					}
						break;
			
			case 5: ret = listfind(head);
					if( FAILURE == ret )
					{
						printf("not existed!\n");
					}
					else
					{
						printf("已找到!\n而且他的序号是 %d\n",ret);
					}
					
						break;
	    	case 7: ret = addresslistsave(head);
					if( SUCCESS == ret )
					{
						printf("保存成功!\n");
					}
					else if( FAILURE == ret )
					{
						printf("保存失败!\n");
					}
						break;
					
			case 8:ret = addresslistopen(head);
					if( SUCCESS == ret )
					{
						printf("打开成功!\n");
					}
					else if( FAILURE == ret )
					{
						printf("打开失败!\n");
					}
						break;
			
			case 9:
				    exit(0);		
		}	
	}
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41481342/article/details/81670859
今日推荐