C语言实现数据结构中的通讯录问题

#include<stdio.h>
#define maxSize 100
#include<string.h>
#include<malloc.h>
typedef struct studnent{
    char sno[10];
    char name[10];
    char phone[11];
    char classs[20];
    int age;
}ElemType; 
typedef struct{
    ElemType *elem;
    int length;
}SqList;
//初始化通讯录 
void Init_Student(SqList &sqlist){
//    sqlist.elem=new ElemType[maxSize];
    sqlist.elem=(ElemType *)malloc(sizeof(ElemType));
    if(!sqlist.elem){
        printf("分配空间失败!");
        return;
    }
    sqlist.length=0;
    printf("初始化成功!\n");
        printf("*********************************\n"); 
}
//输入联系人 
void inputStudnet(SqList &sqlist,int n){
    sqlist.length=n;
    printf("请输入你的联系人信息:\n");
    int i;
    for(i=0;i<n;i++){
        scanf("%s%s%s%s%d",&sqlist.elem[i].sno,&sqlist.elem[i].name,&sqlist.elem[i].phone,&sqlist.elem[i].classs,&sqlist.elem[i].age);
    }
    printf("*********************************\n"); 
}
//输出联系人
 void outStudnet(SqList &sqlist){
    printf("当前通讯录信息:\n");
    int i;
    for(i=0;i<sqlist.length;i++){
        printf("%s %s %s %s %d\n",sqlist.elem[i].sno,sqlist.elem[i].name,sqlist.elem[i].phone,sqlist.elem[i].classs,sqlist.elem[i].age);
    }
    printf("*********************************\n"); 
}
//插入联系人
void insertStudent(SqList &sqlist){
    printf("请输入新增联系人信息:\n");
    sqlist.length+=1;
    scanf("%s%s%s%s%d",&sqlist.elem[sqlist.length-1].sno,&sqlist.elem[sqlist.length-1].name,&sqlist.elem[sqlist.length-1].phone,&sqlist.elem[sqlist.length-1].classs,&sqlist.elem[sqlist.length-1].age);

//删除联系人
void deleteStudent(SqList &sqlist,char sno[]){
    int i,j;
    for(i=0;i<sqlist.length;i++){
        if(strcmp(sno,sqlist.elem[i].sno)==0){
            printf("%d",i);
            for(j=i;j<sqlist.length;j++){
                sqlist.elem[j]=sqlist.elem[j+1];
            }
            sqlist.length-=1;
            break;
        }
    }

//取值 
void getElem(SqList &sqlist,int i){
    if(i<1||i>sqlist.length) printf("查找失败\n");
    else printf("%s %s %s %s %d\n",sqlist.elem[i-1].sno,sqlist.elem[i-1].name,sqlist.elem[i-1].phone,sqlist.elem[i-1].classs,sqlist.elem[i-1].age);
}
//查找
void getindexElem(SqList &sqlist,char sno[]){
    int i,j;
    for(i=0;i<sqlist.length;i++){
        if(strcmp(sno,sqlist.elem[i].sno)==0){
            printf("%s %s %s %s %d\n",sqlist.elem[i].sno,sqlist.elem[i].name,sqlist.elem[i].phone,sqlist.elem[i].classs,sqlist.elem[i].age);
            return;
        }
    }
    printf("查找失败");
}
int main(){
    SqList sqlist;
    int end=1;
    int num;
    while(end){
        printf("请输入你要选择的操作:\n");
        printf("1-------初始化通讯录\n"); 
        printf("2-------输入联系人信息\n"); 
        printf("3-------输出通讯录列表\n");
        printf("4-------插入联系人\n");
        printf("5-------删除联系人\n");
        printf("6-------取值\n");
        printf("7-------查找\n");
        printf("0-------退出操作\n");
        scanf("%d",&num); 
        switch(num){
            case 1:Init_Student(sqlist);break;
            case 2:inputStudnet(sqlist,2);;break;
            case 3:outStudnet(sqlist);break;
            case 4:insertStudent(sqlist);break;
            case 5:
                printf("请输入你要删除的联系人的编号:\n");
                char sno[10];
                scanf("%s",sno);
                deleteStudent(sqlist,sno);break;
            case 6:
                 int i;
                 printf("请输入你要查找的位置:\n");
                 scanf("%d",&i);
                 getElem(sqlist,i);
                 break;
            case 7: 
                 char so[10];
                 printf("请输入你要查找联系人的编号:\n");
                 scanf("%s",so);
                 getindexElem(sqlist,so);
                 break;
            case 0:end=0;printf("您已停止操作!");break;
        }
    }
    
    return 0;

相关推荐

  1. C语言实现数据结构通讯录问题

    2024-03-20 16:16:02       17 阅读
  2. C语言——通讯录实现

    2024-03-20 16:16:02       15 阅读
  3. C语言——通讯录实现

    2024-03-20 16:16:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 16:16:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 16:16:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 16:16:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 16:16:02       20 阅读

热门阅读

  1. 【python】一些常用命令汇总(持续更新……)

    2024-03-20 16:16:02       23 阅读
  2. 第十四届蓝桥杯模拟赛(第三期)Excel表

    2024-03-20 16:16:02       20 阅读
  3. 【十五】【算法分析与设计】二分查询(3)

    2024-03-20 16:16:02       22 阅读
  4. Python实战:机器学习算法

    2024-03-20 16:16:02       14 阅读
  5. Redis RDB持久化与AOF 持久化详解

    2024-03-20 16:16:02       20 阅读