C语言简单的学生通讯录管理系统,已调试完美运行

项目名称:学生通讯录管理系统

功能:添加,删除,修改,打印通讯录

采用结构:链表

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct Student
{
    int no;
	char name[20];
	char tel[20];
	char group[20];
	struct Student *next; 
}Stu;
void createlist(Stu *head);
void add(Stu *head);
void del(Stu *hea);
void print(Stu *head);
void find(Stu *head);
void display(Stu *head);
void change(Stu *head);
void menu();

int main(){
 	menu();
 	Stu *head;
 	createlist(head);
    int a=0;
 	while(1){
 		scanf("%d",&a);
 		switch(a){
 		case 1:add(head);break;
 		case 2:find(head);break;
 		case 3:del(head);break;
 		case 4:change(head);break;
		case 5:display(head);break;
		case 6:exit(0);
 		}
		printf("请输入需要进行的操作:");	
 	}
	return 0;
}

void createlist(Stu *head){
	head=(Stu*)malloc(sizeof(Stu));
	if(!head){
		printf("头结点分配失败"); 
	}
	return;
}
void add(Stu *head){
	Stu *pfind=head;
	Stu *pnew=NULL;
	
	
	pnew=(Stu*)malloc(sizeof(Stu));
	printf("请输入编号:");scanf("%d",&pnew->no);
	printf("请输入姓名:");scanf("%s",pnew->name);
	printf("请输入电话:");scanf("%s",pnew->tel);
	printf("请输入分组:");scanf("%s",pnew->group);
	printf("
");
    while(pfind->next!=NULL){
	pfind=pfind->next;
				}
	pnew->next=NULL;
	pfind->next=pnew;
//		for(pfind=head;pfind!=NULL;pfind=pfind->next){
//			if(pfind->no==pnew->no){
//				printf("编号重复,请重新输入编号:");
//				scanf("%d",&pnew->no); 
//			}
//		}
	printf("联系人添加成功
"); 
}
void print(Stu *pfind){
		printf("编号:%d
",pfind->no);
		printf("姓名:%s
",pfind->name);
		printf("电话:%s
",pfind->tel);
		printf("分组:%s
",pfind->group);
}
void del(Stu *head){
	Stu *pfind1=head;
	Stu *pfind2=head->next;
	int a=0;
	printf("请输入需要删除联系人的编号:");
	scanf("%d",&a);
	while(pfind2!=NULL){
		if(pfind2->no==a){
			break;
		}
		else { 
		pfind1=pfind1->next;
		pfind2=pfind2->next;
		}
	} 
	if(pfind2==NULL){
				printf("你要删除的联系人不存在
"); 
			}
			else{
				pfind1->next=pfind2->next;
			     free(pfind2);
			     pfind2=NULL;
			     printf("删除成功!
"); 
			}
}
void display(Stu *head){
	Stu *pfind=head->next;
	while(pfind!=NULL){
				printf("编号:%d
",pfind->no);
				printf("姓名:%s
",pfind->name);
				printf("电话:%s
",pfind->tel);
				printf("分组:%s
",pfind->group);
				printf("
");
		pfind=pfind->next;

	}
	
}
void menu(){
	printf("******欢迎使用通讯录******
");
	printf("*******1.添加联系人*******
");
	printf("*******2.查找联系人*******
"); 
	printf("*******3.删除联系人*******
");
	printf("*******4.修改联系人*******
");
	printf("*******5.显示通讯录*******
");
	printf("*******6.退出通讯录*******
");
	printf("
");
	printf("请选择您要进行的操作:");
	
}
void find(Stu *head){
	Stu *pfind=head;
	int a=0;
	printf("请输入需要查找的编号:");
	scanf("%d",&a);
	while(pfind!=NULL){
		if(pfind->no==a){
			print(pfind);
			break;
		}
		pfind=pfind->next;
	}
	if(pfind==NULL){
		printf("查无此联系人
");
		 
	}
}
void change(Stu *head){
	Stu *pfind=head;
		int a=0;
		printf("请输入需要修改的编号:");
		scanf("%d",&a);
		while(pfind!=NULL){
			if(pfind->no==a){
					printf("请输入编号:");scanf("%d",&pfind->no);
					printf("请输入姓名:");scanf("%s",pfind->name);
					printf("请输入电话:");scanf("%s",pfind->tel);
					printf("请输入分组:");scanf("%s",pfind->group);
					printf("修改成功!
"); 
				break;
			}
			pfind=pfind->next;
		}
		if(pfind==NULL){
			printf("查无此联系人!
"); 
		}
		
}

该程序只是一个简单的初步程序,仅仅具备部分基本功能。

经验分享 程序员 微信小程序 职场和发展