C/C++单链表实现简易队员信息管理系统:添加、删除、查找、修改

本系统使用C/C++语言实现单链表,提供添加、删除、查找、修改队员信息的功能,并采用分文件编程方式,提高代码可读性和可维护性。

队员信息

每位队员的信息包括:

  • 编号
  • 姓名
  • 年龄
  • 电话号码

基本任务

  • 添加队员
  • 删除队员
  • 按照姓名(要处理重名问题)查找队员
  • 修改队员信息
  • 显示所有联系人信息

代码要求

  1. 建项目 分文件编写(三个)

    test.c			//测试程序……
    TeamMembers.c	//放功能函数的实现……
    TeamMembers.h	//放头文件、函数声明……
    
  2. 变量、函数名命名规范(驼峰命名法)

  3. 要有基本的功能选择界面内容

代码示例

TeamMembers.h

#ifndef TEAM_MEMBERS_H
#define TEAM_MEMBERS_H

typedef struct {
    int id;
    char name[20];
    int age;
    char phone[15];
} Member;

void addMember(Member *members, int *count);
void deleteMember(Member *members, int *count);
void searchMember(Member *members, int count);
void modifyMember(Member *members, int count);
void displayMembers(Member *members, int count);

#endif

TeamMembers.c

#include <stdio.h>
#include <string.h>
#include "TeamMembers.h"

void addMember(Member *members, int *count) {
    printf("Enter the member's information:\n");
    printf("ID: ");
    scanf("%d", &members[*count].id);
    printf("Name: ");
    scanf("%s", members[*count].name);
    printf("Age: ");
    scanf("%d", &members[*count].age);
    printf("Phone: ");
    scanf("%s", members[*count].phone);

    (*count)++;
    printf("Member added successfully!\n");
}

void deleteMember(Member *members, int *count) {
    int id, i, pos = -1;
    printf("Enter the ID of the member you want to delete: ");
    scanf("%d", &id);

    for (i = 0; i < *count; i++) {
        if (members[i].id == id) {
            pos = i;
            break;
        }
    }

    if (pos == -1) {
        printf("Member not found.\n");
    } else {
        for (i = pos; i < (*count) - 1; i++) {
            members[i] = members[i + 1];
        }
        (*count)--;
        printf("Member deleted successfully!\n");
    }
}

void searchMember(Member *members, int count) {
    char name[20];
    int i, found = 0;
    printf("Enter the name of the member you want to search: ");
    scanf("%s", name);

    printf("Members with the name 's':\n", name);
    for (i = 0; i < count; i++) {
        if (strcmp(members[i].name, name) == 0) {
            printf("ID: %d\n", members[i].id);
            printf("Name: %s\n", members[i].name);
            printf("Age: %d\n", members[i].age);
            printf("Phone: %s\n", members[i].phone);
            found = 1;
        }
    }

    if (!found) {
        printf("No members found.\n");
    }
}

void modifyMember(Member *members, int count) {
    int id, i;
    printf("Enter the ID of the member you want to modify: ");
    scanf("%d", &id);

    for (i = 0; i < count; i++) {
        if (members[i].id == id) {
            printf("Enter the new information of the member:\n");
            printf("Name: ");
            scanf("%s", members[i].name);
            printf("Age: ");
            scanf("%d", &members[i].age);
            printf("Phone: ");
            scanf("%s", members[i].phone);
            printf("Member modified successfully!\n");
            return;
        }
    }

    printf("Member not found.\n");
}

void displayMembers(Member *members, int count) {
    int i;
    printf("All members:\n");
    for (i = 0; i < count; i++) {
        printf("ID: %d\n", members[i].id);
        printf("Name: %s\n", members[i].name);
        printf("Age: %d\n", members[i].age);
        printf("Phone: %s\n", members[i].phone);
        printf("\n");
    }
}

test.c

#include <stdio.h>
#include "TeamMembers.h"

#define MAX_MEMBERS 100

int main() {
    Member members[MAX_MEMBERS];
    int count = 0;
    int choice;

    do {
        printf("=============== Team Member Management ===============
");
        printf("1. Add Member\n");
        printf("2. Delete Member\n");
        printf("3. Search Member\n");
        printf("4. Modify Member\n");
        printf("5. Display Members\n");
        printf("0. Exit\n");
        printf("======================================================\n");
        printf("Enter your choice: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                addMember(members, &count);
                break;
            case 2:
                deleteMember(members, &count);
                break;
            case 3:
                searchMember(members, count);
                break;
            case 4:
                modifyMember(members, count);
                break;
            case 5:
                displayMembers(members, count);
                break;
            case 0:
                printf("Exiting...\n");
                break;
            default:
                printf("Invalid choice. Please try again.\n");
        }
    } while (choice != 0);

    return 0;
}

说明

在此示例中,我们使用了一个Member结构体来表示每个队员的信息,包括编号、姓名、年龄和电话号码。TeamMembers.h中定义了各个功能函数的声明,TeamMembers.c中实现了这些功能函数,test.c中包含了一个简单的用户界面,通过输入选择执行不同的功能。可以根据需要添加更多的功能函数或进行其他修改。

注意:

  • 本示例代码使用的是数组,为了实现单链表,需要修改代码,使用指针和动态内存分配。
  • 该示例代码仅作为参考,具体的实现方式可以根据实际需求进行调整。

总结

本项目使用C/C++语言实现了一个简易的队员信息管理系统,并提供了添加、删除、查找、修改等基本功能。代码采用分文件编程方式,提高代码的可读性和可维护性。开发者可以根据实际需求对代码进行扩展和修改。

C/C++单链表实现简易队员信息管理系统:添加、删除、查找、修改

原文地址: https://www.cveoy.top/t/topic/iFK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录