當前位置:首頁 » 考試成績 » 總分從高到低的順序將學生成績重新排序

總分從高到低的順序將學生成績重新排序

發布時間: 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