基于结构体的学生信息管理系统

基于结构体的学生信息管理系统

任务要求
关任务:编写一个基于结构体得学生成绩信息管理系统。主要功能如下:
1.用结构体存放所有数据。
2.每个功能都用函数实现。
3.输入10个学生的学号和三门课程的成绩。
4.计算每个学生的总分。
5.按总分从高到低排序。
6.加上名次一列。
7.输出最后的二维表格样式的成绩,含学号、三门课成绩、总分、名次。
请填写五个函数完成相应功能的实现。其中:
input_data(STU s[]):输入原始数据函数。参数作用:
STU s[]:用来存放10个学生信息的结构体数组。
calculate(STU s[]):计算总分函数。参数作用:
STU s[]: 用于计算总分的学生信息结构体数组。
sort_total(STU s[]):根据总分降序排序函数。参数作用:
STU s[]: 用于总分排序的学生信息结构体数组。
add_rank(STU s[]):增加名次列函数。参数作用:
STU s[]: 用于添加名次的学生信息结构体数组(已排序)。
print_data(STU s[]):输出二维表格样式成绩的函数。参数作用:
STU s[]: 待打印输出的学生信息结构体数组。
相关知识相关知识略编程要求请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写学生信息管理系统的小程序。测试说明平台会对你编写的代码进行测试:
测试输入:
201901 78 95 67
201902 67 65 87
201903 78 73 62
201904 70 71 60
201905 59 61 65
201906 73 90 72
201907 68 63 79
201908 55 68 71
201909 69 53 60
201910 89 95 90
预期输出: 注意:输出每一列占15个字符,且为左对齐。
#include<stdio.h>
typedef struct{
int no;
float sc[3];
float total;
int rank;
}STU;

void input_data(STU s[])
{

for(int i=0;i<10;i++)
{
scanf("%d%f%f%f",&s[i].no,&s[i].sc[0],&s[i].sc[1],&s[i].sc[2]);
}

}

void calculate(STU s[])
{

float total=0;
for(int i=0;i<10;i++)
{

	s[i].total=s[i].sc[0]+s[i].sc[1]+s[i].sc[2];

}
}

void sort_total(STU s[])
{
int k=0;
STU temp;

for(int j=0;j<9;j++)
{
k=j;
for(int i=j+1;i<10;i++)
{
if(s[k].total<s[i].total)
{
temp=s[k];
s[k]=s[i];
s[i]=temp;
}
}
}

}

void add_rank(STU s[])
{

for(int i=0;i<10;i++){
s[i].rank=i+1;
}
/********** End **********/
}

void print_data(STU s[])
{
printf(“学号: 语文: 数学: 英语: 总分: 名次:\n”);
for(int i=0;i<10;i++)
{
printf("%-15.1d%-15.1f%-15.1f%-15.1f%-15.1f%d\n",
s[i].no,s[i].sc[0],s[i].sc[1],s[i].sc[2],s[i].total,s[i].rank);
}

}

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于结构数组的学生信息管理系统主要利用结构和数组的特性来实现对学生信息管理。这个系统可以实现学生信息的录入、查询、删除、修改等功能。 首先,我们需要定义一个结构来表示学生信息。在这个例子中,结构包含了学生的姓名、年龄、地址和联系电话等信息。 接下来,我们可以使用一个结构数组来存储多个学生信息。通过这个结构数组,我们可以方便地对学生信息进行增删改查等操作。 系统的初始化函数可以用来初始化学生信息表,可以将结构数组中的元素个数设置为0。这样,开始时学生信息表中就没有存储任何学生信息。 添加函数可以用来向学生信息表中添加新的学生信息。通过接受用户输入的学生信息,将其添加到结构数组中,并更新学生信息表中的元素个数。 查询函数可以通过输入学生姓名来查找学生信息表中是否存在该学生信息。通过遍历结构数组,逐一比较学生姓名,可以判断是否存在该学生信息。 删除函数可以通过输入学生姓名来删除学生信息表中对应的学生信息。通过查找函数确定该学生信息的位置,然后将其删除,并更新学生信息表中的元素个数。 排序函数可以对学生信息表中的学生信息按照一定的规则进行排序,比如按照学生姓名的字母顺序进行排序。 修改函数可以通过输入学生姓名来修改学生信息表中对应的学生信息。通过查找函数确定该学生信息的位置,然后对其进行修改。 清空函数可以将学生信息表中的所有学生信息都清空,即将结构数组中的元素个数设置为0。 综上所述,基于结构数组的学生信息管理系统可以实现学生信息的录入、查询、删除、修改、排序和清空等功能。这个系统可以较为方便地管理学生信息,适用于小规模的学生信息管理需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值