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("查无此联系人! "); } }
该程序只是一个简单的初步程序,仅仅具备部分基本功能。
下一篇:
4个月学前端找不到工作正常吗?什么原因?