C语言实现一个简单的成绩管理系统

C语言实现一个简单的成绩管理系统

实验内容
假设收集到了一个班学生的所有成绩信息(不低于20人),要求用C语言编写一个简单的成绩管理系统,对学生个人信息进行管理,可进行录入、浏览、查询、修改、排序、统计等功能。信息内荣包括:(1)学生的学号(2)学生的姓名(3)学生的成绩(语文、数学、英语、计算机、课程平均分)。
1.录入、浏览功能:
按学号顺序录入学生信息(学号、姓名、语文、数学、英语、计算机)显示系统中的所有信息。
2.查询功能:
查询学号尾号为09的学生的所有信息并显示。
3.修改功能:
修改学号尾号为12的学生的成绩信息(任意两项即可),并显示该学生的全部信息。
4.排序功能:
按语文成绩的顺序,由高到低显示所有学生的信息。
5.统计功能:统计学生的平均成绩,并输出(学号、姓名、平均成绩)

#include<stdio.h>
#include<stdlib.h>
int n=5;
int no;
struct stu
{
	char name[20];
	int num;
	int chinese;
	int math;
	int english;
	int computer;
	float average;
}student[5];
//1.输入信息
void student_scanf(int n)
{
	for(int i=0;i<n;i++)
	{	printf("请输入第%d个学生的信息:\n",i+1);
		printf("学号  姓名  语文成绩  数学成绩 英语成绩  计算机成绩\n");
		scanf("%d%s%d%d%d%d",&student[i].num,&student[i].name,&student[i].chinese,&student[i].math,&student[i].english,&student[i].computer);
	    student[i].average=(student[i].chinese+student[i].math+student[i].english+student[i].computer)/4.0;			 
	}
 } 
void student_printf(int n)
{
	printf("学号  姓名  语文成绩  数学成绩  英语成绩  计算机成绩  平均成绩\n");
	for(int i=0;i<n;i++)
	{
		printf("%d\t%s\t%d\t%d\t%d\t%d\t%f\n",student[i].num,student[i].name,student[i].chinese,student[i].math,student[i].english,student[i].computer,student[i].average);
	 } 
}

void student_seek(int no)
{
    int j=0;
    for(int i=0;i<n;i++)
    {
        if (no==student[i].num)
        {
            j=1;      
            printf("学号:%d 姓名:%s 语文:%d 数学:%d 英语:%d计算机:%d 平均成绩;%f\n",student[i].num,
			student[i].name,student[i].chinese,student[i].math,student[i].english,student[i].computer,student[i].average);
            break;
        }
    }
    if(j==0) printf("查询的学号不存在!\n");
}
void student_alter(int no)
{

    for(int i=0;i<n;i++)
    {
        if (no==student[i].num)
        {
		
		printf("姓名:");
		scanf("%s",&student[i].name);
		printf("语文成绩:");
		scanf("%d",&student[i].chinese);
		printf("数学成绩:");
		scanf("%d",&student[i].math);
		printf("英语成绩:");
		scanf("%d",&student[i].english);
		printf("计算机成绩:");
		scanf("%d",&student[i].computer);
	    student[i].average=(student[i].chinese+student[i].math+student[i].english+student[i].computer)/4.0;	
		printf("修改后的信息为:");        
        printf("%d\t%s\t%d\t%d\t%d\t%d\t%f\n",student[i].num,student[i].name,student[i].chinese,
		student[i].math,student[i].english,student[i].computer,student[i].average);
        }
    }
}
void student_sort_chinese()
{
    for (int i = 0; i < n - 1; i++)
	{
            for (int j = 0; j < n - i - 1; j++)
	        {
                    if (student[j].chinese < student[j + 1].chinese) 
			{
                            stu temp = student[j];
                            student[j] = student[j + 1];
                            student[j + 1] = temp;
                        }

} 
}

}
void Statistics()
{
printf("学号\t姓名\t平均成绩\n");
	for(int i=0;i<n;i++)
	{
		printf("%d\t%s\t%f\n",student[i].num,student[i].name,student[i].average);
	 } 

} 
int main(){
	student_scanf(n);	
	student_printf(n);	
	printf("请输入要查询的学生的学号:");
	scanf("%d",&no);
	student_seek(no); 
	printf("请输入修改信息的学生的学号"); 
    scanf("%d",&no);
	student_alter(no);
	printf("按语文成绩从大到小排序:\n"); 
	student_sort_chinese() ;
	student_printf(n);
	printf("统计信息为:\n");
	Statistics();
	return 0; 
} 
  • 19
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值