作者:Linux猿
简介:CSDN博客专家,华为云享专家,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
关注专栏:C/C++课程设计100例 优质好文持续更新中……
欢迎小伙伴们点赞、收藏⭐、留言
目录
一、主要功能需求
二、主要设计思路
三、功能实现
3.1 毕业生信息录入
3.2 按姓名查询毕业生信息
3.3 按学号查询毕业生信息
3.4 毕业生去向统计
四、总结
本篇文章主要对「毕业生就业管理系统」进行详细的讲解,包括对功能需求、设计思路、主要功能实现等的讲解。
(1)支持毕业生信息的录入;
(2)支持按照姓名查询毕业生信息;
(3)支持按照学号查询毕业生信息;
(4)支持毕业生去向统计;
(5)支持毕业生信息写入文件;
(6)支持毕业生信息从文件中读取等;
毕业生就业管理系统的主要流程图如下所示。
如上图所示,展示了主要的功能。首先,程序开始后会显示主界面,显示录入毕业生信息、按姓名查询毕业生信息、按学号查询毕业生信息、毕业去向统计以及退出等,然后,根据用户输入的参数进入具体的功能,执行完具体功能后,输入 Q 返回主界面。
主界面如下所示。
主要功能实现包括:毕业生信息录入、按姓名查询毕业生信息、按学号查询毕业生信息和毕业生去向统计,下面来分别详细介绍。
首先,提示用户输入需要采集的信息,包括:学号、姓名、班级、专业、就业单位名称、性质、地点等。然后将数据存储起来,主要代码实现如下所示。
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 写入数据。
按姓名查询毕业生信息时,先提示用户输入将要查询毕业生的姓名,然后根据姓名查询对应信息并进行输出,代码实现如下所示。
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);
}
如上代码所示,首先输入姓名,然后,查询对应信息并输出。
按学号查询毕业生信息时,首先,输入将要查询毕业生的学号,然后根据学号查询信息并进行输出,代码实现如下所示。
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 存储学号,然后查询对应毕业生信息并进行输出,如果未查询到,则输出“未查询到信息”。
毕业生去向统计包括统计相同单位的学生、统计同一城市的信息、统计同一性质的单位,代码实现如下所示。
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例」后可获取源码
感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言,感谢大家的一路支持!猿哥将持续输出「优质文章」回馈大家!