C语言期末大作业-学生成绩管理系统(完整源码+设计报告)_c语言大作业学生成绩管理系统(1)

img
img

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

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

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

C语言期末大作业15个(附源码)成绩管理系统、图书馆管理系统、学生打卡系统、超市信息管理系统、学生考勤系统、职工信息管理系统源码、歌曲信息管理系统、超市收款系统等等

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(struct Student)
struct Student 
{
	int clas;
	int num;
	char name[20];
	char cou[20];
	int score;
	struct Student \*next;
};

struct Student \*creat(void)
{
	struct Student \*head;
	struct Student \*p1,\*p2;
	int n=0;
	printf("班级 学号 姓名 课程 得分(输入0 0 0 0 0结束):\n");
	p1=p2=(struct Student\*)malloc(LEN);
	scanf("%d%d%s%s%d",&p1->clas,&p1->num,p1->name,p1->cou,&p1->score);
	head=NULL;
	while(p1->num!=0)
	{
		n=n+1;
		if(n==1)head=p1;
		else p2->next=p1;
		p2=p1;
		p1=(struct Student\*)malloc(LEN);
		scanf("%d%d%s%s%d",&p1->clas,&p1->num,p1->name,p1->cou,&p1->score);
	}
	p2->next=NULL;
	return(head);
}

void shuchu(struct Student \*pt)
{
	printf("\n");
	printf("班级 学号 姓名 课程 得分:\n");
	while (pt!=NULL)
	{
	printf("%-5d%-5d%-5s%-5s%-5d\n",pt->clas,pt->num,pt->name,pt->cou,pt->score);
	pt=pt->next;
	}
	printf("\n");
}

void add(struct Student \*pt)
{
	struct Student \*p1,\*p2,\*head;
	head=pt;
	printf("请输出你要添加的学生信息:\n");
	while(pt->next!=NULL)
	{
		pt=pt->next;	
	}
	p1=p2=pt;
	printf("班级 学号 姓名 课程 得分(输入0 0 0 0 0结束):\n");
	do
	{
		p1=(struct Student\*)malloc(LEN);
		scanf("%d%d%s%s%d",&p1->clas,&p1->num,p1->name,p1->cou,&p1->score);
		p2->next=p1;
		p2=p1;
	}while(p1->num!=0);
	p2->next=NULL;
	shuchu(head);	
}

void del(struct Student \*pt)
{
	int n;	
	printf("请输入你要删除的学生的学号:\n");
	scanf("%d",&n);
	if(n==pt->num)
	{
		pt->next=pt->next->next;
		printf("已删除学生信息\n");
	}
	while(n!=(pt->next)->num)
	{
		pt=pt->next;
	}
	pt->next=pt->next->next;
	printf("已删除学生信息\n");
	printf("\n");
}


void order(struct Student \*pt)
{
	struct Student \*first,\*t,\*p,\*q;

	first=pt->next;
	pt->next=NULL;
	while(first!=NULL)
	{
		for(t=first,q=pt;((q!=NULL)&&(q->score<t->score));p=q,q=q->next);
		first = first->next;
		if(q==pt)
			pt=t;
		else
			p->next=t;
		t->next=q;
	}
	shuchu(pt);
}


void max(struct Student \*pt)
{
	struct Student \*max;
	max=pt;
	while(pt->next!=NULL)
	{
		if((max->score)<(pt->next->score))
		{
			max=pt->next;
		}
			pt=pt->next;
	}
	printf("\n");
	printf("班级 学号 姓名 课程 得分:\n");
	printf("%-5d%-5d%-5s%-5s%-5d\n",max->clas,max->num,max->name,max->cou,max->score);
	printf("\n");
}

void min(struct Student \*pt)
{
	struct Student \*min;
	min=pt;
	while(pt->next!=NULL)
	{
		if((min->score)>(pt->next->score))
		{
			min=pt->next;
		}
		pt=pt->next;
	}
	printf("\n");
	
	printf("班级 学号 姓名 课程 得分:\n");
	
	printf("%-5d%-5d%-5s%-5s%-5d\n",min->clas,min->num,min->name,min->cou,min->score);
	printf("\n");
}

void aver(struct Student \*pt)
{
	int n=0;
	float aver,sum=0.0;
	while(pt!=NULL)
	{
		sum+=pt->score;
		n++;
		pt=pt->next;
	}
	aver=(float)sum/n;
	printf("\n");
	printf("平均分:%f\n",aver);
	printf("\n");
}

void jigelv(struct Student \*pt)
{
	int n=0;
	float jigelv=0.0,s=0.0;
	while(pt!=NULL)	
	{
		if((pt->score)>=60)
		{
			n++;
		}
		s++;
		pt=pt->next;
	}
	jigelv=n/s\*100;
	printf("\n");
	printf("及格率:百分之%f",jigelv);
	printf("\n");
}

void search(struct Student \*pt)
{
	void num(struct Student \*pt);
	void name(struct Student \*pt);
	void cou(struct Student \*pt);
	int n;
	printf("\n");
	printf("请输入你要查询学生的 1 学号 2 姓名 3 课程名:\n");
	scanf("%d",&n);
	switch(n)
	{
	case 1:num(pt);break;
	case 2:name(pt);break;
	case 3:cou(pt);break;
	default:printf("error!\n");
	}
}

void num(struct Student \*pt)
{
	int n;
	printf("\n");
	printf("请输入你要查询学生的学号:\n");
	scanf("%d",&n);
	while(pt->num!=n)
	{
		pt=pt->next;
	}
	printf("班级 学号 姓名 课程 得分:\n");
	printf("\n");
	printf("%-5d%-5d%-5s%-5s%-5d\n",pt->clas,pt->num,pt->name,pt->cou,pt->score);
}

void name(struct Student \*pt)
{
	char name[20];
	scanf("%s",name);
	printf("\n");
	printf("请输入你要查询学生的姓名:\n");
	while(strcmp(pt->name,name)!=0)
	{
		pt=pt->next;
	}
	printf("班级 学号 姓名 课程 得分:\n");
	printf("\n");
	printf("%-5d%-5d%-5s%-5s%-5d\n",pt->clas,pt->num,pt->name,pt->cou,pt->score);
}

void cou(struct Student \*pt)
{
	char cou[20];
	scanf("%s",cou);
	printf("\n");
	printf("请输入你要查询学生的课程名:\n");
	while(strcmp(pt->cou,cou)!=0)
	{
		pt=pt->next;
	}
	printf("班级 学号 姓名 课程 得分:\n");
	
	printf("\n");
	
	printf("%-5d%-5d%-5s%-5s%-5d\n",pt->clas,pt->num,pt->name,pt->cou,pt->score);
}

void save(struct Student \*pt)
{
	FILE \*fp;
	if((fp=fopen("D:\\student information.txt","w"))==NULL)
	{
		printf("can't open file!\n");
		exit(0);
	}
	while(pt!=NULL)
	{
		if(fwrite(pt,sizeof(struct Student),1,fp)!=1)
			printf("file write error\n");
		pt=pt->next;
	}
	printf("存储完成\n");
	fclose(fp);
}



**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/431bf3ca5658ef014fedb3f025af9def.png)
![img](https://img-blog.csdnimg.cn/img_convert/6aadd9df4eb8b453904f6e03aed53be7.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

...(img-EzT32VLz-1715866881500)]
[外链图片转存中...(img-HWDLyUxC-1715866881500)]

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值