当前位置:首页 » 考试成绩 » 总分从高到低的顺序将学生成绩重新排序

总分从高到低的顺序将学生成绩重新排序

发布时间: 2020-12-07 05:10:58

Ⅰ C#,编写一个控制台程序项目,输入若干个学生的英语和数学成绩,求出总分,并按照总分从高到低排序。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Four__week { class Program { static void Main(string[] args) { Student stu =new Student(); Console.Write("请输入学生的姓名:"); string name = Console.ReadLine(); Console.Write("请输入学生的语文成绩:"); double Chinese = double.Parse(Console.ReadLine()); Console.Write("请输入学生的数学成绩:"); double Math = double.Parse(Console.ReadLine()); Console.Write("请输入学生的英语成绩:"); double English = double.Parse(Console.ReadLine()); stu.set_name(name); stu.set_Math(Math); stu.set_English(English); stu.set_Chinese(Chinese); double sun = stu.sum_score(); double average = stu.average_score(); Console.WriteLine("该学生的总成绩为:{0}",sun); Console.WriteLine("该学生的平均成绩为:{0}",average); Console.ReadKey(true); } } class Student { public string name; public double Chinese; public double Math; public double English; public Student(string name, double Chinese, double Math, double English) { name = ""; Chinese = 0; Math = 0; English = 0; } public Student() { name = ""; Chinese = 0; Math = 0; English = 0; } public void input_data() { Console.WriteLine("姓名 语文 数学 英语"); Console.WriteLine("{0} {1} {2} {3}", name, Chinese, Math, English); } public void set_name(string name1) { name = name1; } public void set_Chinese(double Chinese1) { Chinese = Chinese1; } public void set_Math(double Math1) { Math = Math1; } public void set_English(double English1) { English = English1; } public double sum_score() { double sum = Chinese + Math + English; return sum; } public double average_score() { double average = sum_score() / 3; return average; } } }

Ⅱ 编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生

#include<iostream.h>
struct
std
//定义学生结构体,包含学好number,成绩score,名次mc
{
int
number;
int
score;
int
mc;
};
#define
N
100
int
main()
{
int
i,j,max,num;
static
int
t=1;
struct
std
stent[N],temp;
cin>>max;
for(i=0;i<max;i++)
{
cin>>stent[i].number;
cin>>stent[i].score;
}
for(i=0;i<max-1;i++)
//冒泡法排序,从高分到低分
{
for(j=0;j<max-i;j++)
if(stent[j].score<stent[j+1].score)
{
temp=stent[j];
stent[j]=stent[j+1];
stent[j+1]=temp;
}
}
for(i=0;i<max-1;i++)
//通过前面的冒泡法排序,已知成绩从高到低排序,就可以确定学生的名次,成绩相同,名次相同,否侧加一
{
if(stent[i].score>stent[i+1].score)
{
stent[i].mc=t++;
stent[i+1].mc=t;
}
else
if(stent[i].score=stent[i+1].score)
{
stent[i].mc=t;
stent[max-1].mc=t;
}
}
cout<<"
成绩
"<<"
学号
"<<"
名次
"<<endl;
for(i=0;i<max;i++)
cout<<"
"<<stent[i].score<<"
"<<
stent[i].number<<"
"<<stent[i].mc<<endl;
cout<<"******************************************************************************"<<endl;
for(i=1;i<=stent[max-1].mc;i++)
//输出相同名次的人数和学号,同名次的学号输出在同一行中,一行最多输出10个学号
{
num=0;
for(j=i-1;j<=max-1;j++)
{
if(i==stent[j].mc)
{
num++;
cout<<stent[j].number<<"
";
}
if(0==num%10)
cout<<endl;
}
cout<<"第"<<i<<"名有:"<<num<<"个"<<endl;
}
return
0;
}

Ⅲ excel里面如何将学生成绩按照学生的“学校名称”进行从高到低排序,当遇到总分一样的则按姓氏排序。

先将学校名称用自定义序列制定,然后可以直接进行排序,第一关键字为学校,第二关键字是成绩,第三关键字是姓氏。

Ⅳ 按总分从高到低的顺序将学生成绩重新排序(不包括标题行及学科平均分)

int i,j,t
for(j=0;j<人数;j++)
for(i=0;i<人数-j;i++)
if(a[i]<a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=a[i];
}
思路是这样,冒版泡权法

Ⅳ c语言编程,输入学生成绩记录表重的信息。再按从高到低的排序输出,并计算总分

#include<stdio.h>

structStudent{
intnum;
charname[10];
intgrade;
};

voidmain(){
voidinput(structStudentstu[],intn);//函数声明//
voidorder(structStudentstu[],intn);
intsum(structStudentstu[],intn);
structStudentstu[10];
input(stu,10);
order(stu,10);
printf("Sum=%d ",sum(stu,10));
}

voidinput(structStudentstu[],intn){
inti;
printf("请输入各学生的信息:学号、姓名、成绩: ");
for(i=0;i<n;i++)
scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].grade);
}

voidorder(structStudentstu[],intn){
inti,j;
structStudenttemp;
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(stu[i].grade<stu[j].grade){
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
}

intsum(structStudentstu[],intn){
inti,sum=0;
for(i=0;i<n;++i)
sum+=stu[i].grade;
returnsum;
}

Ⅵ 用函数的调用编程:输入n个学生的m门成绩,并按总分由高到低将名字排序

第一步:抽象出算法数据结构。首先学生总数是n,而每个学生拥有m个成绩,即对应一个n中的i,有m个数据与之对应。因此可以得到结论,采用二维数组来储存n个学生m门成绩。按照总分排序,即将每个i对应的m门成绩加起来进行排序即可。
第二步:具体算法(c语言伪代码)
#include <stdio.h>
#include <stdlib.h>
#define MaxVertexNum 100

void order(int num[][],int n,in m)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=2;j<m;j++)
{
num[i][1]=num[i][1]+num[i][j]
}
}

int temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(num[0][1]<num[i][1])
{
num[0][1]= num[i][1];
}
}

}
}
int main(int argc, char *argv[])
{
int n,m,i,j;
printf("请输入学生的个数n和成绩门数m,用空格分开\n");
scanf("%d %d",&n,&m);
int scores[n-1][m];
//输入成绩
for(i=0;i<n;i++){
printf("请输入第%d个学生的成绩:\n",i);
scores[i][0]=i;
for(j=1;j<m;j++)
{
scanf("%d",&scores[i][j]);
}
}
//开始排序
system("PAUSE");
return 0;
}

Ⅶ 2.自编程序: 从键盘输入某班学生某门课的成绩(假定人数最多为40人),将分数从高到低顺序进行排序输出。

这道题很简单,简单的快排即可
//我这里使用的是noip允许使用c++库文件qsort快排,work为qsort函数的自定义函专数部分
//我的程序先属输入 n(n个人),再输入n个数字,最后从大到小顺序输出
#include<iostream>
using namespace std;
const int N=41;
int a[N],n;
int work(const void *x,const void *y)
{
if(*(int *)x<*(int *)y)return 1;
else return -1;
}
int main(void)
{
int i,j,k;
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
qsort(a+1,n,sizeof(int),work);
for(i=1;i<=n;i++)cout<<a[i]<<' ';
system("pause");
return 0;
}

Ⅷ (一)学生成绩排名 采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规

1.form里有复一个FpSpread控件,单击第2列的单元制格,此单元格就进入待输入的状态。
2.我搞了半天也没弄明白怎么才能实现单击就能待输入,于是只能改变做法。可是双击单元格的时候,我又取不到这个单元格的Text,因为我不会确定这个单元格。求确定此单元格的方法。

Ⅸ 用数组方式输入 N 个学生的成绩,求总分和平均分进行从高到低的排序

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cout << "输入学生来个数:自";
cin >> n;
int a[10000];
cout << "输入每个学生成绩:";
for (int i = 0; i < n; i++) cin >> a[i];
sort(a, a+n);
double sum = 0;
for (int i = 0; i < n; i++) sum += a[i];
cout << "平均成绩为:" << sum / n << endl;
cout << "成绩从高到低为:" << endl;
for (int i = n-1; i >= 0; i--) cout << a[i] << " ";
cout << endl;
}

Ⅹ C语言 学生成绩排序 按学生的序号输入 n 名学生的成绩,按照分数由高到低的顺序输出学生的名次、序号和成绩

#include<stdio.h>
#include<malloc.h>
typedefstructstudent
{
intid;
intscore;
structstudent*next;
}STU;
intstuIndex;

voidinputStuInfo(STU*stuHead);//输入学生信息
voidorderStuInfo(STU*stuHead);//按照分数高到低顺序重组链表
voidprintStuInfo(STU*stuHead,intflag);//打印学生信息。参数flag=0:正常打印链表信息。flag!=0:打印排序后的名次信息
intmain()
{
STU*stuHead=(STU*)malloc(sizeof(STU));
stuHead->next=NULL;
stuIndex=1;
inputStuInfo(stuHead);
printf("--打印原始输入的链表!-- ");
printStuInfo(stuHead,0);
printf("--开始按分数降序排列!-- ");
orderStuInfo(stuHead);
printf("--链表按降序重组完成!-- ");
printf("--打印降序排序的链表!-- ");
printStuInfo(stuHead,1);
return0;
}
voidorderStuInfo(STU*stuHead)
{
STU*stuSave1=NULL,*stuSave2=NULL,stuSave3;
stuSave1=stuHead;
while(stuSave1->next!=NULL)//冒泡排序
{
stuSave2=stuSave1->next;
while(stuSave2->next!=NULL)
{
if(stuSave1->next->score<stuSave2->next->score)//交换成员值,保留原链表指针值
{
stuSave3=*(stuSave1->next);
stuSave1->next->id=stuSave2->next->id;
stuSave1->next->score=stuSave2->next->score;
stuSave2->next->id=stuSave3.id;
stuSave2->next->score=stuSave3.score;
}
stuSave2=stuSave2->next;
}
stuSave1=stuSave1->next;
}
}
voidprintStuInfo(STU*stuHead,intflag)
{
inti=1;
while(stuHead->next!=NULL)
{
if(flag==0)
printf("学生%d,成绩%d ",stuHead->next->id,stuHead->next->score);
else
printf("第%d名,学生%d,成绩%d ",i++,stuHead->next->id,stuHead->next->score);
stuHead=stuHead->next;
}
}
voidinputStuInfo(STU*stuHead)
{
intscore;
STU*stuNew=NULL,*stuTail=NULL;
while(1)
{
printf("输入学生%d的成绩:(输入负数结束输入)",stuIndex);
scanf("%d",&score);
if(score<0)
break;
stuNew=(STU*)malloc(sizeof(STU));
stuNew->score=score;
stuNew->id=stuIndex;
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
stuIndex++;
}
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919