最全【C语言】学生考勤管理系统_c语言学生考勤系统,2024年最新整理出大数据开发逆向系列学习进阶视频

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取


#### 排序系统


![在这里插入图片描述](https://img-blog.csdnimg.cn/0d53ffdb52c042ccbca855137a2aeb17.png)


运行结果:  
 ![请添加图片描述](https://img-blog.csdnimg.cn/e28e9f7ab69645fa91aa03aeaf339dbc.jpeg)  
 ✅代码来咯~



void Order(struct Student *PArr)
{
int op;
struct Student temp;
printf(“<1>学号升序 <2>姓名升序 <3>打卡次数降序\n”);
scanf(“%d”,&op);
if(op1)
{
//将学生信息按学号排序
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].num>PArr[j+1].num)
{temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;}
}
}
}
//将学生信息按姓名排序
else
if(op
2)
{
void StudentNameAsc(struct Student *PArr);
{
struct Student temp;
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].name[0]>PArr[j+1].name[0])
{
temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;
}
}
}
}

}
//将学生信息按打卡次数排序
else
{
struct Student temp;
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].num1<PArr[j+1].num1)
{
temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;
}
}
}
}
Output(PArr);
}


#### 数据统计


![在这里插入图片描述](https://img-blog.csdnimg.cn/d38444d0363f4622a9986b3090033d1c.png)  
 ✅代码来啦~



//数据统计
void studentsta(struct Student *PArr)
{
printf(“请输入应打卡次数:\n”);
int num2;
scanf(“%d”, &num2);
for(int i=0;i<numCount;i++)
{
if (num2>PArr[i].num1)
printf(“%s没有打卡%d次\n”, PArr[i].name,num2-PArr[i].num1);

}
Output(PArr);

}


### 4 系统全部代码



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义一个学生类型的结构体
struct Student
{
char name[25]; //名字
int age; //年龄
int num; //学号
int c; //班级
float date; //日期
int num1; //打卡次数
};
void PrintfStudentFunction();
//学生的人数
int numCount = 0;
//申请空间的容量
int count = 0;
//得到学生人数
int Num();
//定义一个输入函数 用来输入学生的信息
struct Student *Input(struct Student *pArr, int len);
//输出信息方法
void Output(struct Student *pArr);
//删除信息
void Delete(struct Student *PArr);
//查找信息
void Search(struct Student *PArr);
//修改学生信息
void Change(struct Student *PArr);
//添加学生信息
struct Student *Add(struct Student *PArr);
//排序
void Order(struct Student * PArr);
//统计学生数据
void studentsta(struct Student *PArr);
int main()
{
struct Student *pArr = NULL;
struct Student *P = NULL;
printf(“\n");
printf("
\n”);
printf(“\n");
printf(“欢迎来到考勤系统\n”);
printf("
\n”);
printf(“\n");
printf("
\n”);
printf(“…请按任意键进入考勤系统 <( ̄︶ ̄)↗[GO!]\n”);
getchar();
system(“cls”);
PrintfStudentFunction();
while (1)
{
printf(“请选择操作的命令:\n”);
int item, num;
scanf(“%d”, &item);
switch (item)
{
case 1:
//录入信息
{
system(“cls”);
num = Num();
P = Input(pArr, num);
}
break;
case 2:
//输出学生信息
{
system(“cls”);
Output§;
}
break;
case 3:
//删除学生信息
{
system(“cls”);
Delete§;
}
break;
case 4:
//修改学生信息
{
system(“cls”);
Change§;
}
break;
case 5:
//查询学生信息
{
system(“cls”);
Search§;
}
break;
case 6:
//添加学生信息
{
system(“cls”);
P = Add§;
}
break;
case 7:
//排序
{
system(“cls”);
Order§;
}
break;
//数据统计
case 8:
{
system(“cls”);
studentsta§;
}break;
case 9:
//退出系统
{
//程序结束
system(“cls”);
exit(0);
}
break;
default:
printf(“用户输入错误,请重新输入\n”);
break;
}
}

return 1;

}

void PrintfStudentFunction()
{

printf("-------------------------------------------------\n");
printf("-----------------学生管理系统--------------------\n");
printf("-----------------1.录入学生信息------------------\n");
printf("-----------------2.输出学生信息------------------\n");
printf("-----------------3.删除学生信息------------------\n");
printf("-----------------4.修改学生信息------------------\n");
printf("-----------------5.查询学生信息------------------\n");
printf("-----------------6.添加学生信息------------------\n");
printf("-----------------7.排序(姓名、学号、打卡次数)--\n");
printf("-----------------8.考勤数据统计------------------\n");
printf("-----------------9.退出系统------o( ̄ヘ ̄o#)----\n");

}
//得到学生人数
int Num()
{

int num;
printf("请输入要录入学生的人数\n");
scanf("%d", &num);
return num;

}

struct Student *Input(struct Student *pArr, int len)
{
//录入学生信息
count = len;
//开辟存储空间
pArr = (struct Student *)malloc(sizeof(struct Student) * len);
for (int i = 0; i < len; i++)
{
//当前学生人数+1
numCount++;
printf(“请输入第%d个学生的名字:\n”, i + 1);
scanf(“%s”, pArr[i].name);
printf(“请输入第%d个学生的年龄\n”, i + 1);
scanf(“%d”, &pArr[i].age);
printf(“请输入第%d个学生的学号\n”, i + 1);
scanf(“%d”, &pArr[i].num);
printf(“请输入第%d个学生的班级\n”,i+1);
scanf(“%d”,&pArr[i].c);
printf(“请输入第%d个学生的打卡时间\n”, i + 1);
scanf(“%f”, &pArr[i].date);
printf(“请输入第%d个同学的打卡次数\n”,i+1);
scanf(“%d”,&pArr[i].num1);
}
printf(“学生信息录入完毕!!!\n”);
system(“cls”);
PrintfStudentFunction();
return pArr;
}
//输出学生信息
void Output(struct Student *pArr)
{
printf(“姓名\t年龄\t学号\t班级\t打卡时间\t打卡次数\n”);
for (int i = 0; i < numCount; i++)
{
printf(“%s\t%d\t%d\t%d\t%.2f\t%10d\n”, pArr[i].name, pArr[i].age, pArr[i].num,
pArr[i].c,pArr[i].date, pArr[i].num1);
}
PrintfStudentFunction();
}

//删除信息
void Delete(struct Student *PArr)
{
char name[25];
int num;
printf(“请输入你要删除数据的名字\n”);
scanf(“%s”, name);
for (int i = 0; i < numCount; i++)
{
if (strcmp(PArr[i].name, name) == 0)
{
num = i;
break;
}
}
//num = 1;
for (int i = num; i < numCount - 1; i++)
{
PArr[i] = PArr[i + 1];
}
numCount–;
Output(PArr);
}

//查找信息
void Search(struct Student *pArr)
{
printf(“请输入要查找学生的名字\n”);
char name[25];
scanf(“%s”, name);
int num;
int i;
for (i = 0; i < numCount; i++)
{
if (strcmp(pArr[i].name, name) == 0)
{
printf(“%s\t%d\t%d\t%d\t%f\t%d\n”,pArr[i].name, pArr[i].age, pArr[i].num,pArr[i].c,pArr[i].date, pArr[i].num1);
break;
}
}

if (i == numCount)
{
    printf("对不起没有你要查找的数据\n");
}


PrintfStudentFunction();

}

//修改学生信息
void Change(struct Student *PArr)
{
char name[25];
printf(“请输入你要修改学生的名字:\n”);
scanf(“%s”, name);
int num = 0;
int i = 0;
for (i = 0; i < numCount; i++)
{
if (strcmp(PArr[i].name, name) == 0)
{
num = i;
break;
}
}
if (num == i)
{
printf(“请输入学生的名字:\n”);
scanf(“%s”, PArr[num].name);
printf(“请输入学生的年龄:\n”);
scanf(“%d”, &PArr[num].age);
printf(“请输入学生的学号:\n”);
scanf(“%d”, &PArr[num].num);
printf(“请输入学生的班级\n”);
scanf(“%f”, &PArr[num].c);
printf(“请输入学生的打卡时间\n”);
scanf(“%f”, &PArr[num].date);
printf(“请输入学生的打卡次数\n”);
scanf(“%f”, &PArr[num].num1);

}
else
{
    printf("对不起没有要修改的学生信息");
}
PrintfStudentFunction();

}

//添加学生信息
struct Student *Add(struct Student *PArr)
{
printf(“请输入要添加的人数\n”);
int num;
scanf(“%d”, &num);
if (numCount + num > count)
{
struct Student *p = NULL;
p = PArr;
PArr = (struct Student *)malloc(sizeof(struct Student) * (numCount + num));
count = numCount + num;
for (int i = 0; i < numCount; i++)
{
PArr[i] = p[i];
}
}
for (int i = 0; i < num; i++)
{
printf(“请输入第%d个添加学生的名字:\n”, i + 1);
scanf(“%s”, PArr[numCount].name);
printf(“请输入第%d个添加学生的年龄:\n”, i + 1);
scanf(“%d”, &PArr[numCount].age);
printf(“请输入第%d个添加学生的学号:\n”, i + 1);
scanf(“%d”, &PArr[numCount].num);
printf(“请输入第%d个添加学生的班级:\n”, i + 1);
scanf(“%f”, &PArr[numCount].c);
printf(“请输入第%d个添加学生的打卡时间:\n”, i + 1);
scanf(“%f”, &PArr[numCount].date);
printf(“请输入第%d个添加学生的打卡次数:\n”, i + 1);
scanf(“%f”, &PArr[numCount].num1);
numCount++;
}
printf(“数据添加成功”);
PrintfStudentFunction();
return PArr;
}
void Order(struct Student *PArr)
{
int op;
struct Student temp;
printf(“<1>学号升序 <2>姓名升序 <3>打卡次数降序\n”);
scanf(“%d”,&op);
if(op1)
{
//将学生信息按学号排序
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].num>PArr[j+1].num)
{temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;}
}
}
}
//将学生信息按姓名排序
else
if(op
2)
{
void StudentNameAsc(struct Student *PArr);
{
struct Student temp;
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].name[0]>PArr[j+1].name[0])
{
temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;
}
}
}
}
}
//将学生信息按打卡次数排序
else
{
struct Student temp;
for(int i=0;i<numCount-1;i++)
{
for(int j=0;j<numCount-i-1;j++)
{
if(PArr[j].num1<PArr[j+1].num1)
{
temp=PArr[j];
PArr[j]=PArr[j+1];
PArr[j+1]=temp;
}
}
}
}
Output(PArr);
}

//数据统计
void studentsta(struct Student *PArr)
{
printf(“请输入应打卡次数:\n”);
int num2;
scanf(“%d”, &num2);
for(int i=0;i<numCount;i++)
{
if (num2>PArr[i].num1)
printf(“%s没有打卡%d次\n”, PArr[i].name,num2-PArr[i].num1);

}
Output(PArr);

}


## 结束语🥇



> 
> 以上就是用C制作学生考勤管理系统  
>  大家的支持就是我创作的动力💖💖💖
> 
> 
> 


![在这里插入图片描述](https://img-blog.csdnimg.cn/8fecf3b836aa4834964a6b3ce9716046.png)



![img](https://img-blog.csdnimg.cn/img_convert/cb8db3fe9f37e8facfcc3faeb7cdf157.png)
![img](https://img-blog.csdnimg.cn/img_convert/4e41362d83fd7eae1d70f190e1abb124.png)
![img](https://img-blog.csdnimg.cn/img_convert/51ea6dcfc5b8fefc403b27d4918f0a09.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

t(PArr);
}

结束语🥇

以上就是用C制作学生考勤管理系统
大家的支持就是我创作的动力💖💖💖

在这里插入图片描述

[外链图片转存中…(img-J0JrX3zk-1715471872796)]
[外链图片转存中…(img-XoJHQbBG-1715471872796)]
[外链图片转存中…(img-vgWsOClx-1715471872796)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值