C语言学习之编写宿舍人员信息管理系统

  • 添加人员信息:
void insert_people(dorm_t *my_dorm){
    
    

    if(N == my_dorm->count){
    
    

        printf("6人宿舍已满员,添加失败\n");
        return;
    }

    scanf("%d%s%s%d",&(my_dorm->p[my_dorm->count].num),
        
        my_dorm->p[my_dorm->count].name,my_dorm->p[my_dorm->count].gender,
        &(my_dorm->p[my_dorm->count].age));
    
    my_dorm->count++;
    printf("该人员的信息添加成功\n");

    return;

}
  • 删除人员信息:
void delete_people(dorm_t *my_dorm){
    
    


    printf("请输入要删除人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    for(int i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

            for(int j = i; j < my_dorm->count-1;j++){
    
    

                my_dorm->p[j] = my_dorm->p[j+1];

            }
            my_dorm->count--;
            return;

        }
        
     }

     printf("该人员的信息不存在,删除失败\n");
     return;

}
  • 查询人员信息:
void search_people(dorm_t *my_dorm){
    
    

    printf("请输入要查询人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    int i = 0;

    for(i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

               break;
            }
           
    }

    if(i < my_dorm->count){
    
    

        printf("此人的基本信息>>%-4d%-10s%-10s%-4d\n",my_dorm->p[i].num,
        
        my_dorm->p[i].name,my_dorm->p[i].gender,
        my_dorm->p[i].age);

    } else if (i == my_dorm->count){
    
    

         printf("该人员的信息不存在,查询失败\n");
 
    }
    
    return;

}
  • 修改人员信息:
void modify_people(dorm_t *my_dorm){
    
    

    printf("请输入要修改人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    int i = 0;

    for( i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

               break;
            }
           
    }

    if(i < my_dorm->count){
    
    

        printf("请输入此人员所要修改的基本信息>>");
        scanf("%s%s%d",my_dorm->p[i].name,my_dorm->p[i].gender,
        &(my_dorm->p[i].age));
    

    } else if (i == my_dorm->count){
    
    

         printf("该人员的信息不存在,修改失败\n");
 
    }
    
    return;
}

  • 按照床位号排序:
void sort_people(dorm_t *my_dorm){
    
    

    for(int i = 0; i < my_dorm->count-1; i++){
    
    


        for(int j = 0; j < my_dorm->count-1-i; j++){
    
    

            if(my_dorm->p[j].num > my_dorm->p[j+1].num){
    
    

                peo_t temp = my_dorm->p[j];

                my_dorm->p[j] = my_dorm->p[j+1];

                my_dorm->p[j+1] = temp;


            }

        }
    }

    printf("排序完成\n");
    return;
}
  • 遍历人员信息:
void print_people(dorm_t *my_dorm){
    
    

     for(int i = 0; i < my_dorm->count; i++){
    
    

        printf("%-4d%-10s%-10s%-4d\n",my_dorm->p[i].num,
        
        my_dorm->p[i].name,my_dorm->p[i].gender,
        my_dorm->p[i].age);

     }


}
  • main.c:
#include "dorm.h"

int main(int argc, char const *argv[])
{
    
    

    dorm_t my_dorm;

    memset(&my_dorm,0,sizeof(my_dorm));
    int ch = 0;
    while (1)
    {
    
    
        print_menu();
        scanf("%d",&ch);
        switch(ch){
    
    

            case 1:
                insert_people(&my_dorm);
                break;
            case 2:
                delete_people(&my_dorm);
                break;

            case 3:
                search_people(&my_dorm);
                break;
            
            case 4:
                modify_people(&my_dorm);
                break;

            case 5:
                sort_people(&my_dorm);
                break;    

        }
        if (6 == ch){
    
    

            break;
        }
        print_people(&my_dorm);
    }

    printf("欢迎下次使用宿舍人员信息管理系统\n");
    
    return 0;
}

  • dorm.h:
#ifndef __DORM_H__
#define __DORM_H__

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

#define N 6  //宿舍容量

typedef struct _People
{
    
    
    int num;
    char name[20];
    char gender[5];
    int age;
}peo_t;

typedef struct _Dorm{
    
    

    peo_t p[N];
    int count;


}dorm_t;

void print_menu();
void print_people(dorm_t *my_dorm);
void insert_people(dorm_t *my_dorm);
void delete_people(dorm_t *my_dorm);
void search_people(dorm_t *my_dorm);
void modify_people(dorm_t *my_dorm);
void sort_people(dorm_t *my_dorm);


#endif
  • dorm.c:
#include "dorm.h"

void print_menu(){
    
    

    puts("------------------------------------------------");

    printf("1.添加人员信息\n");
    printf("2.删除人员信息\n");
    printf("3.查询人员信息\n");
    printf("4.修改人员信息\n");
    printf("5.按照床位号排序\n");
    printf("6.退出宿舍人员信息登记系统\n");

    puts("------------------------------------------------");

    printf("请输入您的选择>>");

}


void print_people(dorm_t *my_dorm){
    
    

     for(int i = 0; i < my_dorm->count; i++){
    
    

        printf("%-4d%-10s%-10s%-4d\n",my_dorm->p[i].num,
        
        my_dorm->p[i].name,my_dorm->p[i].gender,
        my_dorm->p[i].age);

     }


}

void insert_people(dorm_t *my_dorm){
    
    

    if(N == my_dorm->count){
    
    

        printf("6人宿舍已满员,添加失败\n");
        return;
    }

    scanf("%d%s%s%d",&(my_dorm->p[my_dorm->count].num),
        
        my_dorm->p[my_dorm->count].name,my_dorm->p[my_dorm->count].gender,
        &(my_dorm->p[my_dorm->count].age));
    
    my_dorm->count++;
    printf("该人员的信息添加成功\n");

    return;

}

void delete_people(dorm_t *my_dorm){
    
    


    printf("请输入要删除人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    for(int i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

            for(int j = i; j < my_dorm->count-1;j++){
    
    

                my_dorm->p[j] = my_dorm->p[j+1];

            }
            my_dorm->count--;
            return;

        }
        
     }

     printf("该人员的信息不存在,删除失败\n");
     return;

}

void search_people(dorm_t *my_dorm){
    
    

    printf("请输入要查询人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    int i = 0;

    for(i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

               break;
            }
           
    }

    if(i < my_dorm->count){
    
    

        printf("此人的基本信息>>%-4d%-10s%-10s%-4d\n",my_dorm->p[i].num,
        
        my_dorm->p[i].name,my_dorm->p[i].gender,
        my_dorm->p[i].age);

    } else if (i == my_dorm->count){
    
    

         printf("该人员的信息不存在,查询失败\n");
 
    }
    
    return;

}

void modify_people(dorm_t *my_dorm){
    
    

    printf("请输入要修改人员的床号>>");

    int input_num = 0;

    scanf("%d",&input_num);

    int i = 0;

    for( i = 0; i < my_dorm->count; i++){
    
    

        if(input_num == my_dorm->p[i].num){
    
    

               break;
            }
           
    }

    if(i < my_dorm->count){
    
    

        printf("请输入此人员所要修改的基本信息>>");
        scanf("%s%s%d",my_dorm->p[i].name,my_dorm->p[i].gender,
        &(my_dorm->p[i].age));
    

    } else if (i == my_dorm->count){
    
    

         printf("该人员的信息不存在,修改失败\n");
 
    }
    
    return;
}


void sort_people(dorm_t *my_dorm){
    
    

    for(int i = 0; i < my_dorm->count-1; i++){
    
    


        for(int j = 0; j < my_dorm->count-1-i; j++){
    
    

            if(my_dorm->p[j].num > my_dorm->p[j+1].num){
    
    

                peo_t temp = my_dorm->p[j];

                my_dorm->p[j] = my_dorm->p[j+1];

                my_dorm->p[j+1] = temp;


            }

        }
    }

    printf("排序完成\n");
    return;
}

  • 运行结果:
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
1 Q M 16
该人员的信息添加成功
1   Q         M         16  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
6 W M 21
该人员的信息添加成功
1   Q         M         16  
6   W         M         21  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
5 E M 20
该人员的信息添加成功
1   Q         M         16  
6   W         M         21  
5   E         M         20  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
4 A M 23
该人员的信息添加成功
1   Q         M         16  
6   W         M         21  
5   E         M         20  
4   A         M         23  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
3 S M 22
该人员的信息添加成功
1   Q         M         16  
6   W         M         21  
5   E         M         20  
4   A         M         23  
3   S         M         22  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>1
2 D M 18
该人员的信息添加成功
1   Q         M         16  
6   W         M         21  
5   E         M         20  
4   A         M         23  
3   S         M         22  
2   D         M         18  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>5
排序完成
1   Q         M         16  
2   D         M         18  
3   S         M         22  
4   A         M         23  
5   E         M         20  
6   W         M         21  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>2
请输入要删除人员的床号>>4
1   Q         M         16  
2   D         M         18  
3   S         M         22  
5   E         M         20  
6   W         M         21  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>3
请输入要查询人员的床号>>6
此人的基本信息>>6   W         M         21  
1   Q         M         16  
2   D         M         18  
3   S         M         22  
5   E         M         20  
6   W         M         21  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>4
请输入要修改人员的床号>>1
请输入此人员所要修改的基本信息>>Q M 19
1   Q         M         19  
2   D         M         18  
3   S         M         22  
5   E         M         20  
6   W         M         21  
------------------------------------------------
1.添加人员信息
2.删除人员信息
3.查询人员信息
4.修改人员信息
5.按照床位号排序
6.退出宿舍人员信息登记系统
------------------------------------------------
请输入您的选择>>6
欢迎下次使用宿舍人员信息管理系统

猜你喜欢

转载自blog.csdn.net/qq_41878292/article/details/132526145