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

📄 linklist.cpp

📁 航空订票信息系统很好的一个用C篇的,希望大家下载交流
💻 CPP
字号:
#include"LinkList.h"

void Logon(LinkList L)
{
	char name[20];
	ElemType p;
	int i=1;
    puts("     \n\t=========================================================\n");
	puts("                        〓〓〓 通讯录管理系统 〓〓〓\n  ");

	puts("                        ※  Copyright ☆ XieGang  ※  \n ");
	puts("     \t=========================================================\n");
    puts("                        〓〓〓 通讯录登录界面 〓〓〓\n");
	puts("     \t=========================================================\n");
	printf("                       用户名(测试用户:admin):");
	
	scanf("%s",name);
	fflush(stdin);
	printf("\n正在登录...\n");
	
	Load(L);
	
	while(!Search(L,name,p)&&i<=3)
	{
     printf("\n用户名不存在!请重新输入:");
	 scanf("%s",name);
	 fflush(stdin);
	 i++;
	}

	if(i>3)
	{
		printf("\n输入次数过限!系统将退出 ...");
		getchar();
		exit(1);
	}

  else
  {
	printf("                                登录成功!");
    printf("\n欢迎你的登录!\n\n你的信息如下:\n",p.name);
	puts("=========================");
	printf("姓  名 :%s\n",p.name);
	printf("\n街  道 :%s\n",p.street);		
	printf("\n城  市 :%s\n",p.city);		
	printf("\n邮  编 :%s\n",p.eip);		
	printf("\n国  家 :%s\n",p.state);
	puts("=========================");
	printf("\n按 Enter 继续....");
	getchar();
	
	}
}

int Load(LinkList &L)
{
    LinkList p;	
	char ch;
	L=(LinkList)malloc(LEN);
	L->next=NULL;
	L->length=0;
	
	
	FILE *fp;
	if((fp=fopen("通讯簿.txt","r"))==NULL)
	{
		printf("文件打开失败!");
		 exit(1);
	}
  
	ch=fgetc(fp);
	while(ch!=10)
	{
	ch=fgetc(fp);
	}
	while(!feof(fp))
		{
		p=(LinkList)malloc(LEN);		
        fgetc(fp);
		fscanf(fp,"%s",p->data.name);
		fscanf(fp,"%s",p->data.street);
		fscanf(fp,"%s",p->data.city);
		fscanf(fp,"%s",p->data.eip);
		fscanf(fp,"%s",p->data.state);

			
    	p->next=L->next;L->next=p;
		L->length++;

		}

	fclose(fp);
/////////////////////////////////
	return OK;
}



//----------------------------------基础操作------------------//////


void Init(LinkList &L,int n){
 //   LinkList p;	
	
	L=(LinkList)malloc(LEN);
	L->next=NULL;
	L->length=0;

/*  
   
		p=(LinkList)malloc(LEN);
        p->data.id=1;
		printf("请依次输入姓名:");
		scanf("%s",p->data.name);
		printf("请依次输入街道:");
		scanf("%s",p->data.street);
		printf("请依次输入城市:");
		scanf("%s",p->data.city);
		printf("请依次输入邮编:");
		scanf("%s",p->data.eip);
		printf("请依次输入国家:");
		scanf("%s",p->data.state);

    	p->next=L->next;
		L->next=p;
		L->length=1;

 

  strcpy(&p->data.name[20],"谢刚");
	    strcpy(&p->data.street[30],"南京信息工程大学"); 
		strcpy(&p->data.city[20],"南京\0");
		strcpy(&p->data.eip[10],"210044");
		strcpy(&p->data.state[20], "中华人民共和国\0");
		

		p->next=L->next;L->next=p;

        L->length++;*/	
		
	//ShowList(L);//////////////////
//	Save(p);
}

int Enter(LinkList &L,int i){
	LinkList p,s;
	int j=0;
	s=L;
	while(s&&j<i-1)
	{
		s=s->next;
		++j;
	}
	if(!s||j>i-1)
	{
		printf("该用户不存在!\n");
		exit(1);
	}
	   printf("\n请输入用户信息:\n");
		p=(LinkList)malloc(LEN);
        puts("=========================");
		printf("\n请输入用户姓名:");
		scanf("%s",&p->data.name);
		printf("\n请输入所在街道:");
		scanf("%s",&p->data.street);
		printf("\n请输入所在城市:");
		scanf("%s",&p->data.city);
		printf("\n请输入地区邮编:");
		scanf("%s",&p->data.eip);
		printf("\n请输入所在国家:");
		scanf("%s",&p->data.state);
        puts("=========================");
    	p->next=s->next;s->next=p;
		L->length++;
//		Save(L);
	return OK;
	
}

int Delete(LinkList &L,int j){

	LinkList p,q;
	p=L;
	int i=1;
	while(i<j){
		p=p->next;
		++i;
	}
	if(!(p->next)||i>j) return ERROR;
	q=p->next;
	p->next=q->next;
    free(q);
	L->length--;
	return OK;
}





int Search(LinkList L,char name[20],ElemType &e){
	LinkList p;
	int j=1;
	p=L;
	while(p)
	  {
		if(!strcmp(p->data.name,name))
		{
		e=p->data;	
		return (j-1);		
		}
		else
		{
	     p=p->next;
	      ++j;  
		}		  
	  }
 return 0;
} 


	
void showList(LinkList L){
	LinkList p;
	int i=1;
	printf("\n所有的用户信息如下:\n");
	p=L->next;

	printf("\n                           ※ 通讯簿 ※\n");
	printf("-----------------------------------------------------------------\n");
    puts("编号  姓名       街道            城市        邮编       国家");
	printf("-----------------------------------------------------------------\n");

		while(p!=NULL)
		{
		printf(" %-2d ",i);
     	printf("  %-10s %-15s %-10s  %-10s %-10s\n",p->data.name,p->data.street,p->data.city,p->data.eip,p->data.state);		
		p=p->next;
        i++;
		}
	printf("-----------------------------------------------------------------\n");	
}
	
void userSearch(LinkList L){
	char name[20];
	int i=1;
	ElemType p;
    printf("请输入查询的用户名:");
	scanf("%s",name);
	fflush(stdin);
	Load(L);
  	while(!Search(L,name,p)&&i<=3)
	{
     printf("\n该用户不存在!请重新输入:");
	 scanf("%s",name);
	 fflush(stdin);
	 i++;
	}

	if(i>3)
	{
		printf("\n查询次数过限!系统将退出 ...");
		getchar();
		exit(1);
	}

  else
  {
    printf("\n 用户信息如下:\n",p.name);
	puts("=========================");
	printf(" 姓  名 :%s\n",p.name);
	printf("\n 街  道 :%s\n",p.street);		
	printf("\n 城  市 :%s\n",p.city);		
	printf("\n 邮  编 :%s\n",p.eip);		
	printf("\n 国  家 :%s\n",p.state);
	puts("=========================");

	
	}
}




int Save(LinkList L)
{
	LinkList p;
	FILE *fp;
    
	p=L->next;
	if((fp=fopen("通讯簿.txt","w"))==NULL)
	{
		printf("文件打开失败!\n");
		 exit(1);
	}
	fprintf(fp,"      姓名           街道      城市      邮编       国家");   
	while(p!=NULL)
		{
		fprintf(fp,"\n%10s%15s%10s%10s%10s",p->data.name,p->data.street,p->data.city,p->data.eip,p->data.state);
		p=p->next;
		}
	fclose(fp);
	printf("\n文件通讯簿.txt保存成功!\n");
	fflush(stdin);
	return 0;
}

int userInsert(LinkList &L)
{
	int i;
	Load(L);
	showList(L);
	printf("\n请选择插入点编号:");
	scanf("%d",&i);
	fflush(stdin);
	if(Enter(L,i))
	{
		printf("\n用户插入成功!\n");
		showList(L);
		fflush(stdin);
		printf("\n是否保存文件?(Y/N): ");
	    char ch=getchar();
	    if(ch=='Y'||ch=='y')
		{
		 Save(L);
		 return OK;
		}
		else
		  exit(0);
	}
    else
	{
		printf("\n用户插入失败!\n");
		exit(0);
		return ERROR;
	}
}


int userDelete(LinkList &L)
{
	int i;
	Load(L);
	showList(L);
	printf("\n请选择要删除用户的编号:");
	scanf("%d",&i);
	fflush(stdin);
	if(Delete(L,i))
	{
		printf("\n用户删除成功!\n");
		showList(L);

    	printf("\n是否保存文件?(Y/N): ");
	    char ch=getchar();
	    if(ch=='Y'||ch=='y')
		{
		 Save(L);
		 return OK;
		}
		else
		  exit(0);
	}
    else
	{
		printf("用户删除失败!\n");
		exit(0);
		return ERROR;
	}
}

void userShow(LinkList &L){
	Load(L);
	showList(L);
}


int Menu(){
	int choice;
	puts("     \n\t=========================================================\n");
	puts("                        〓〓〓 通讯录管理系统 〓〓〓\n  ");

	puts("                        ※  Copyright ☆ XieGang  ※  \n ");
	puts("     \t=========================================================\n");
	printf("     \t\t\t0-------------本系统信息\n\n");
	printf("     \t\t\t1-------------所有联系人\n\n");
	printf("     \t\t\t2-------------查找联系人\n\n");
	printf("     \t\t\t3-------------添加联系人\n\n");
	printf("     \t\t\t4-------------删除联系人\n\n");
	printf("     \t\t\t5-------------退出本系统\n\n");
	puts("     \t==========================================================\n");
	printf("\t\t\t\t请选择: ");
	scanf("%d",&choice);
	fflush(stdin);
	return choice;
}

        
void SystemInfo(){
	FILE *fp;
	if(!(fp=fopen("系统信息.txt","r")))
	{
		puts("说明文件丢失!");
			return ;
	}
	puts("\n\n\n\n");
	puts("--------------------------------------------------------------------------------");
	puts("                          〓〓〓 系统信息 〓〓〓\n  ");
	puts("--------------------------------------------------------------------------------");	
	while(!feof(fp))
		putchar(fgetc(fp));
	
	putchar(10);
	puts("--------------------------------------------------------------------------------\n\n");
}



⌨️ 快捷键说明

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