成绩统计分析系统--学生信息维护:主要完成进入系统后的学生信息录输出各门课程的平均成绩、最高分、入及在操作过程中需要的学生信息添加;管理员能够按照不同需求(各科成绩、平均成绩、加权平均成绩)进行查询;

该博客介绍了使用C语言开发的成绩统计分析系统,包括学生信息录入、查询、排序和成绩分析等功能。系统能按课程成绩、平均成绩等条件排序,并进行详细的成绩统计,如平均分、最高分等。此外,还支持学生信息的动态维护和按学号、姓名的查询。
摘要由CSDN通过智能技术生成

成绩统计分析系统

源代码github地址

Score_System.git

一、要求

问题描述:
给出n个学生的m门课程的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计分析,并打印统计表。
基本要求:
1、 通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。
2、 对文件input.dat中的数据进行处理,要求具有如下功能:
i. 按各门课程成绩排序,并生成相应的文件输出。
ii. 计算每人的平均成绩,按平均成绩排序,并生成文件。
iii. 求出各门课程的平均成绩、最高分、最低分、不及格人数、6069分人数、7079分人数、80~89分人数、90分以上人数。
iv. 根据姓名或学号查询某人的各门课成绩,重名情况也能处理。
3、 界面美观。
测试数据
学号 姓名 数学 英语 计算机

001 王放 78 77 90
002 张强 89 67 88
003 李浩 56 66 78
004 黄鹂兵 89 86 85
005 李浩 67 88 76
006 陈利风 45 54 67
007 尚晓 78 76 70

4 选做内容 对各科成绩设置不同的权值。

二、系统功介绍

在这里插入图片描述
系统功能包括学生信息维护,登录,查询,排序,成绩分析具体说明如下:

  1. 学生信息维护:主要完成进入系统后的学生信息录入及在操作过程中需要的学生信息添加。
  2. 登录:用户登录,只有登录成功的用户才能使用本系统功能
  3. 查询:管理员能够按照不同信息(学号、姓名)进行查询。
  4. 排序:管理员能够按照不同需求(各科成绩、平均成绩、加权平均成绩)进行查询
  5. 成绩分析:输出各门课程的平均成绩、最高分、最低分、不及格人数、6069分人数、7079分人数、80~89分人数、90分以上人数。
三、数据结构设计

学生对象:

struct STUDENT	
{
   
	int studentNo; //学号
	char name[20]; //姓名
	float scores[3];//各科成绩
	float ravg_score; //加权后的平均成绩
	float avg_score; //不加权的平均成绩
};

四、系统实现(关键代码)
1、系统首页

用户未登录时可进入的首页,在首页可以进行用户的登录

while (1)
	{
   
		printf("\n\n                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
		printf("                    $请输入管理员账号:       $\n");
		printf("                     ");
		scanf("%d", &account);
		printf("                    $请输入密码:             $\n");
		printf("                     ");
		scanf("%d", &pass);
		printf("\n                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n");
		if (account == 111 && pass == 123)
		{
   
			break;
		}
		else
		{
   
			printf("                    输入信息有误请重新输入!\n");
		}
	}
2、系统录入学生

输入学生人数及调用函数部分:

	STUDENT stu[MAX];
	float rat[3];
	printf("\n\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
	printf("                    $请输入学生人数(小于100)                      $\n                    ");
	scanf("%d", &n);
	printf("\n                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n");
	input(stu, n, m);
	input_ratios(rat);
	getAvgScore(stu, rat, n, m);
	write(stu, n, "input.data");

输入每个学生信息的关键代码为:

for (i = 0; i < n; i++)
	{
   
		printf("                    输入第%d个学生的信息:\n",i+1);
		printf("                    学号:\n                    ");
		scanf("%d", &students[i].studentNo);
		printf("                    姓名:\n                    ");
		scanf("%s", &students[i].name);
		for ( j = 0; j < m; j++)
		{
   
			printf("                    第%d科成绩:\n                    ", j + 1);
			scanf("%f", &students[i].scores[j]</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值