项目名称:学生通讯录管理系统
功能:添加,删除,修改,打印通讯录
采用结构:链表
#include#include #include 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("n"); 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("联系人添加成功n"); } void print(Stu *pfind){ printf("编号:%dn",pfind->no); printf("姓名:%sn",pfind->name); printf("电话:%sn",pfind->tel); printf("分组:%sn",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("你要删除的联系人不存在n"); } else{ pfind1->next=pfind2->next; free(pfind2); pfind2=NULL; printf("删除成功!n"); } } void display(Stu *head){ Stu *pfind=head->next; while(pfind!=NULL){ printf("编号:%dn",pfind->no); printf("姓名:%sn",pfind->name); printf("电话:%sn",pfind->tel); printf("分组:%sn",pfind->group); printf("n"); pfind=pfind->next; } } void menu(){ printf("******欢迎使用通讯录******n"); printf("*******1.添加联系人*******n"); printf("*******2.查找联系人*******n"); printf("*******3.删除联系人*******n"); printf("*******4.修改联系人*******n"); printf("*******5.显示通讯录*******n"); printf("*******6.退出通讯录*******n"); printf("n"); 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("查无此联系人n"); } } 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("修改成功!n"); break; } pfind=pfind->next; } if(pfind==NULL){ printf("查无此联系人!n"); } }
该程序只是一个简单的初步程序,仅仅具备部分基本功能。



