学生成绩管理系统V5.0

学生成绩管理系统V5.0某班最多有30人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。定义结构体类型,用结构体数组作函数参数,编程实现如下菜单驱动的学生成绩管理系统:1.录入每个学生的学号、姓名和各科考试成绩;2.计算每门课程的总分和平均分;3.计算每个学生的总分和平均分;4.按每个学生的总分由高到低排出名次表;5.按每个学生的总分由低到高排出...
摘要由CSDN通过智能技术生成

学生成绩管理系统V5.0

某班最多有30人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。定义结构体类型,用结构体数组作函数参数,编程实现如下菜单驱动的学生成绩管理系统:

1.录入每个学生的学号、姓名和各科考试成绩;

2.计算每门课程的总分和平均分;

3.计算每个学生的总分和平均分;

4.按每个学生的总分由高到低排出名次表;

5.按每个学生的总分由低到高排出名次表;

6.按学号由小到大排出成绩表;

7.按姓名的字典顺序排出成绩表;

8.按学号查询学生排名及其考试成绩;

9.按姓名查询学生排名及其考试成绩;

10.按优秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)5个类别,对每门课程分别统计每个类别的人数及所占的百分比;

11.输出每个学生的学号、姓名、各科考试成绩,以及每门课程的总分和平均分。

要求程序运行后先显示如下菜单,并提示用户输入选项,根据用户输入的选项执行相应的操作。

1.Append record

2.Caculate total and average score of every course

3.Caculate total and average score of every student

4.Sort in descending order by total score of every student

5.Sort in ascending order by total score of every student

6.Sort in ascending order by number

7.Sort in dictionary order by name

8.Search by number

9.Search by name

10.Statistic analysis for every course

11.List record

0.Exit

Please enter your choice:

实验目的:在掌握基本编程结构、函数的基础上,通过增加任务要求,熟悉结构体类型、结构体数组作函数参数、模块化程序设计方法,体会用结构体类型代替普通数组类型实现数据库管理的优越性。

思考:

1.参考教材上的例题,用动态单向链表代替结构体数组,编程实现;

2.在1的基础上,增加“删除记录”和“插入记录”的功能,体会动态链表与结构体数组的不同点和优缺点。

#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

struct student
{
   
	char student_num[13];
	char student_name[21];
	int math, english, physics;
	int total_score;
	double average_score;
	int rating;
};

//定义学生信息的数组
//定义三门课程的总成绩和平均成绩的数组
//定义学生人数
//定义纪录每门课程五个等级人数的数组
student a[31];
int course_total[3];
double course_average[3];
int n;
int math[5], English[5], physics[5];

//1.录入各位学生的信息
void Append_record()
{
   
	int i;
	cin >> n;
	for (i = 0; i < n; ++i)
	{
   
		scanf_s("%s %s %d %d %d", a[i].student_num, 13, a[i].student_name, 21, &a[i].math, &a[i].english, &a[i].physics);
	}
}

//2.计算各科目的总成绩和平均成绩
void Caclulate_course()
{
   
	int i;
	for (i = 0; i < 3; ++i)
	{
   
		course_total[i] = 0;
		course_average[i] = 0;
	}
	for (i = 0; i < n; ++i)
	{
   
		course_total[0] += a[i].math;
		course_total[1] += a[i].english;
		course_total[2] += a[i].physics;
	}
	for (i = 0; i < 3; ++i)
		course_average[i] = course_total[i] / (double)n;
	printf("math total score: %d\n", course_total[0]);
	printf("math average score: %.3lf\n", course_average[0]);
	printf("English total score: %d\n", course_total[1]);
	printf("English average score: %.3lf\n", course_average[1]);
	printf("physics total score: %d\n", course_total[2]);
	printf("physics average score: %.3lf\n", course_average[2]);
}

//3.计算每名学生的总成绩和平均成绩
void Caculate_student()
{
   
	int i;
	for (i = 0; i < n; ++i)
	{
   
		a[i].total_score = a[i].math + a[i].english + a[i].physics;
		a[i].average_score = a[i]
  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.基于数组的“学生信息管理系统” 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的结构体类型,包括:学号、姓名、专业、班级、3门成绩。N定义为符号常量,定义N名学生信息的结构体数组。 实验要求: main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用相应的函数。 功能: (1)定义函数Input:功能是可以从键盘输入任意个学生信息。 (2)定义函数Save:将输入的学生信息全部或者选择性的存入指定文件(如:输入5个学生信息,选择其中前3或者2个存入文件,或者全部存入文件)。 (3)定义函数Output:将某个学生信息格式化输出(学生信息从文件中读取,并且提供可选择的学号)。 (4)定义函数Fetch:从文件中随机读取某个学生的信息。 (5)定义函数Del:删除指定学号学生信息,并保存到原文件中。 (6)定义函数:实现输出所有学生信息的功能(包括学生的平均分和总分)。 (7)定义函数Max:求所有学生某门课程的最高分,并将此学生的分数以及学生姓名输出(注意:当有多名相同最高分数时,可将所有学生姓名输出)。 (8)定义函数Sort_select:对某个专业的学生,按总平均成绩由低到高进行简单选择排序。 (9)定义函数Sort_buble:对某个专业中某个班级的学生,按总平均成绩由高到低进行起泡排序。 (10)定义函数Sort_insert:对某个专业中某个班级的学生,按某门课程成绩由低到高进行直接插入排序。 (11)定义函数Search:实现某专业中某班级的成绩综合查找(如智能专业1班,总分240分以上同学)。 (12) 定义函数printmenu: 打印菜单 退出 2.基于链表的“学生信息管理系统” 实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。 实验要求: (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用相应的函数。 (2)定义函数CreateList:按学号由小到大,建立有序的链表。逆序输入 n 个学生信息(调用n次input),学号大的先输入,建立带头结点的单链表。 (3)定义函数Output:以指向某个学生结点的指针为参数,将学生信息格式化输出。 (4)定义函数Save:将某个学生信息存入文件。 (5)定义函数Fetch:从文件中随机读取某个学生的信息。 (6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指针。 (7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插入到链表中的相应位置,并保持此链表按学号的有序性。 (8)定义函数Delete_num:从链表中删除指定学号的学生。 (9)定义函数Search_major _subject_score:查找某个专业的、某门课程的成绩小于某个分数的学生,返回指向该学生结点的指针。 (10)定义函数Delete_ major _subject:从链表中删除某个专业的、某门课程的成绩小于某个分数的学生

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值