C/C++ 毕业生就业管理系统(源码 + 详解)

作者:Linux猿

简介:CSDN博客专家,华为云享专家,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

关注专栏:C/C++课程设计100例 优质好文持续更新中……

欢迎小伙伴们点赞、收藏⭐、留言


目录

一、主要功能需求

二、主要设计思路

三、功能实现

3.1 毕业生信息录入

3.2 按姓名查询毕业生信息

3.3 按学号查询毕业生信息

3.4 毕业生去向统计

四、总结


C/C++ 毕业生就业管理系统(源码 + 详解)_第1张图片

本篇文章主要对毕业生就业管理系统进行详细的讲解,包括对功能需求、设计思路、主要功能实现等的讲解。

一、主要功能需求

(1)支持毕业生信息的录入;

(2)支持按照姓名查询毕业生信息;

(3)支持按照学号查询毕业生信息;

(4)支持毕业生去向统计;

(5)支持毕业生信息写入文件;

(6)支持毕业生信息从文件中读取等;

二、主要设计思路

毕业生就业管理系统的主要流程图如下所示。

C/C++ 毕业生就业管理系统(源码 + 详解)_第2张图片 图1 流程图

 如上图所示,展示了主要的功能。首先,程序开始后会显示主界面,显示录入毕业生信息、按姓名查询毕业生信息、按学号查询毕业生信息、毕业去向统计以及退出等,然后,根据用户输入的参数进入具体的功能,执行完具体功能后,输入 Q 返回主界面。

主界面如下所示。

C/C++ 毕业生就业管理系统(源码 + 详解)_第3张图片 图2 程序主界面

三、功能实现

主要功能实现包括:毕业生信息录入、按姓名查询毕业生信息、按学号查询毕业生信息和毕业生去向统计,下面来分别详细介绍。

3.1 毕业生信息录入

首先,提示用户输入需要采集的信息,包括:学号、姓名、班级、专业、就业单位名称、性质、地点等。然后将数据存储起来,主要代码实现如下所示。

void addInfo()
{
    while (true) {
        system("cls");
        int m = n;
        int x = sx, y = sy;
        getCoord(x, ++y); printf("请输入学号:");
        scanf("%s", stu[m].id);
        getCoord(x, ++y); printf("请输入姓名:");
        scanf("%s", stu[m].name);
        getCoord(x, ++y); printf("请输入班级:");
        scanf("%s", stu[m].className);
        getCoord(x, ++y); printf("请输入专业:");
        scanf("%s", stu[m].major);
        getCoord(x, ++y); printf("请输入就业单位名称:");
        scanf("%s", stu[m].company);
        getCoord(x, ++y); printf("请输入性质:");
        scanf("%s", stu[m].type);
        getCoord(x, ++y); printf("请输入地点:");
        scanf("%s", stu[m].path);
        n++;
        y += 2;
        char ch = ' ';
        while (ch != 'Q' && ch != 'Y') {
            getCoord(x, y); printf("继续添加输入 Y, 退出输入 Q:");
            scanf("%c", &ch);
        }
        if (ch == 'Q') {
            break;
        }
    }
    writeData();
}

如上代码所示,首先采集需要的信息,然后通过函数 writeData 写入数据。

3.2 按姓名查询毕业生信息

按姓名查询毕业生信息时,先提示用户输入将要查询毕业生的姓名,然后根据姓名查询对应信息并进行输出,代码实现如下所示。

void searchByName()
{
    system("cls");
    int x = sx, y = sy;

    getCoord(x, ++y); printf("请输入姓名:");
    char str[30];
    scanf("%s", str);
    int num = search(1, str);
    if (num == -1) {
        getCoord(x, ++y); printf("未查询到信息!");
    } else {
        print(num, x, ++y); y += 8;
    }

    returnMenu(x, ++y);
}

如上代码所示,首先输入姓名,然后,查询对应信息并输出。

3.3 按学号查询毕业生信息

按学号查询毕业生信息时,首先,输入将要查询毕业生的学号,然后根据学号查询信息并进行输出,代码实现如下所示。


void searchById()
{
    system("cls");
    int x = sx, y = sy;

    getCoord(x, ++y); printf("请输入学号:");
    char str[30];
    scanf("%s", str);
    int num = search(1, str);
    if (num == -1) {
        getCoord(x, ++y); printf("未查询到信息!");
    } else {
        print(num, x, ++y); y += 8;
    }

    returnMenu(x, ++y);
}

如上代码所示,首先通过 str 存储学号,然后查询对应毕业生信息并进行输出,如果未查询到,则输出“未查询到信息”。

3.4 毕业生去向统计

毕业生去向统计包括统计相同单位的学生、统计同一城市的信息、统计同一性质的单位,代码实现如下所示。

void graduateStatics()
{
    system("cls");
    int x = sx, y = sy;
    if (n == 0) {
        getCoord(x, ++y); printf("没有学生信息!");
    } else {
        // 统计相同单位的学生
        bubbleSort(1);
        char str[LEN] = "nullnullnull";
        for (int i = 0; i < n; ++i) {
            if (!strcmp(str, stu[i].company)) {
                print(i, x, ++y); y += 8;
            } else {
                strcpy(str, stu[i].company);
                getCoord(x, ++y); printf("毕业单位为 %s 的同学有:", stu[i].company);
                print(i, x, ++y); y += 8;
            }
        }

        // 统计同一城市的信息
        bubbleSort(2);
        char str1[LEN] = "nullnullnull";
        for (int i = 0; i < n; ++i) {
            if (!strcmp(str1, stu[i].major)) {
                print(i, x, ++y); y += 8;
            } else {
                strcpy(str1, stu[i].major);
                getCoord(x, ++y); printf("就业城市为 %s 的同学有:", stu[i].major);
                print(i, x, ++y); y += 8;
            }
        }
        // 统计同一性质的单位
        bubbleSort(3);
        char str2[LEN] = "nullnullnull";
        for (int i = 0; i < n; ++i) {
            if (!strcmp(str2, stu[i].type)) {
                print(i, x, ++y); y += 8;
            } else {
                strcpy(str2, stu[i].type);
                getCoord(x, ++y); printf("单位性质为 %s 的同学有:", stu[i].type);
                print(i, x, ++y); y += 8;
            }
        }

    }

    returnMenu(x, ++y);
}

如上述代码所示,分别展示了统计相同单位的学生、统计同一城市的信息、统计同一性质的单位的信息。

四、总结

本篇文章实现了毕业生就业管理系统,主要是对毕业生信息的录入和查询,另外实现了通过文件存储毕业生信息,并对毕业生的信息进行了统计分析。

  订阅专栏「C/C++/Java课程设计100例」后可获取源码


感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言,感谢大家的一路支持!猿哥将持续输出「优质文章回馈大家!


你可能感兴趣的:(C/C++面试通关集锦,C/C++毕业生就业管理系统,C/C++大作业,毕业生就业管理系统)