关于用C语言写一个学生成绩表的任务,只求思路,不用代码。
已知某班50个学生考试了4门课程,要求实现下列功能:1.求每个人的平均成绩;2.统计平均成绩是优、良、中、及格、不及格的人数。具体的步骤,如定义一个什么数组用来存储信息之...
已知某班50个学生考试了4门课程,要求实现下列功能:
1.求每个人的平均成绩;
2.统计平均成绩是优、良、中、及格、不及格的人数。
具体的步骤,如定义一个什么数组用来存储信息之类的。求过程 展开
1.求每个人的平均成绩;
2.统计平均成绩是优、良、中、及格、不及格的人数。
具体的步骤,如定义一个什么数组用来存储信息之类的。求过程 展开
6个回答
展开全部
C的面向对象思想。一个结构体,包含信息。操作结构的函数(增删改查,最好是能给个遍历回调,学习回调机制。(统计人数这个就很简单了)),从文件读,写文件等。
比如
bool cmp(结构 学生,void *ctx)
{
int *n = (int *)ctx;
学生.成绩 > N? return ture: return false;
}
这样就可以在遍历中
void travel(学生,size,find优良,中,及格)ok
哎·····居然不相信我的···
我给你说,像遍历查找这种,最好的方法就是stl find_if这种,回调函数机制。
travel 其实就是一句话
while(stu->next != null)
{
if(cb(stu,ctx))
以何种形式返回数据
stu = stu->next;
}
这个最好用列表。不要用数组,因为人数不固定。而且增删改查效率低。
其次,定义如下宏
#define 优 “90-100”
#define 良 “80-90”
#define 中 “70-80”
#define 差 “60-70”还有不及格0-60
真的随便怎么找都很简单,而且实现了代码重用,高效等···哎一看你就是学生,不说什么了·但愿我的思路你能考虑一下··
比如
bool cmp(结构 学生,void *ctx)
{
int *n = (int *)ctx;
学生.成绩 > N? return ture: return false;
}
这样就可以在遍历中
void travel(学生,size,find优良,中,及格)ok
哎·····居然不相信我的···
我给你说,像遍历查找这种,最好的方法就是stl find_if这种,回调函数机制。
travel 其实就是一句话
while(stu->next != null)
{
if(cb(stu,ctx))
以何种形式返回数据
stu = stu->next;
}
这个最好用列表。不要用数组,因为人数不固定。而且增删改查效率低。
其次,定义如下宏
#define 优 “90-100”
#define 良 “80-90”
#define 中 “70-80”
#define 差 “60-70”还有不及格0-60
真的随便怎么找都很简单,而且实现了代码重用,高效等···哎一看你就是学生,不说什么了·但愿我的思路你能考虑一下··
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-01-16
展开全部
首先,定义一个学生结构体,包括学生学号、姓名、课程成绩数组(4个元素的浮点数数组)、平均成绩、总成绩和一个标识(标识优、良、中等);
其次,定义一个结构体数组,50个元素,也就是50个学生;并定义优、良、中等变量记录相应的人数;
再次,设定优、良、中等分数线,这个可以输入,也可以预先设定;
最后,计算每个人的平均成绩并判定优、良。中等,优、良、中等变量根据情况+1。
--------------------------------------
结构体数组成员根据情况设定,至少要有学生姓名(或学号)和课程成绩数组
其次,定义一个结构体数组,50个元素,也就是50个学生;并定义优、良、中等变量记录相应的人数;
再次,设定优、良、中等分数线,这个可以输入,也可以预先设定;
最后,计算每个人的平均成绩并判定优、良。中等,优、良、中等变量根据情况+1。
--------------------------------------
结构体数组成员根据情况设定,至少要有学生姓名(或学号)和课程成绩数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义: 数组a[50][4] //每个学生的4门成绩
定义: 数组b[50] //每个学生的平均成绩
定义: 数组c[5] //每种成绩的人数
写个for()把成绩录进去
1、求平均成绩
for(i=0,i<50,i++)
{
for(j=0,j<4,j++)
{
b[i]=b[i]+a[i][j]
}
b[i]=b[i]/4
}
2、求5种成绩的人数
for(i=0,i<50,i++)
{
if(b[i]>=90) c[0]=c[0]+1;
else if (b[i] >=70 c[1]=c[1]+1;
………………
}
就是这样
很长时间没写过了,可能有些语法不对,你看着改吧
定义: 数组b[50] //每个学生的平均成绩
定义: 数组c[5] //每种成绩的人数
写个for()把成绩录进去
1、求平均成绩
for(i=0,i<50,i++)
{
for(j=0,j<4,j++)
{
b[i]=b[i]+a[i][j]
}
b[i]=b[i]/4
}
2、求5种成绩的人数
for(i=0,i<50,i++)
{
if(b[i]>=90) c[0]=c[0]+1;
else if (b[i] >=70 c[1]=c[1]+1;
………………
}
就是这样
很长时间没写过了,可能有些语法不对,你看着改吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用链表去实现,比较好操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询