當前位置:首頁 » 成績查詢 » c程序設計學生成績排名

c程序設計學生成績排名

發布時間: 2021-03-15 05:31:13

⑴ 如何用c語言設計一個成績排名系統

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student{
int id;
char name[10];
int age;
char sex[10];
char birthady[20];
int tel;
char nativeplace[50];
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n請輸入學號:");
scanf("%d",&st[i].id);
fflush(stdin);
printf("\n請輸入姓名:");
gets(st[i].name);
printf("\n") ;
printf("請輸入年齡:");
scanf("%d",&st[i].age);
fflush(stdin);
printf("\n請輸入姓別:");
gets(st[i].sex);
fflush(stdin);
printf("\n請輸入生日:");
gets(st[i].birthady);
printf("\n請輸入電話:");
scanf("%d",&st[i].tel);
fflush(stdin);
printf("\n請輸入籍貫:");
gets(st[i].nativeplace);
printf("\n是否繼續輸入另外一個學生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);

}

void xianshi()
{
int j;
printf("\t學號\t姓名\t年齡\t性別\t生日\t\t電話\t籍貫\n");
for(j=0;j<i;j++)
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}

void paixu() //按年齡從大到小排序函數
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(st[k].age<st[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序後輸出
}

void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n請輸入想查找的學生姓名:");
fflush(stdin);
gets(name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的學生在第%d個位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t沒有找到這個學生!!!\n");
else
{
printf("\t學號\t姓名\t年齡\t性別\t生日\t\t電話\t籍貫\n");
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);
}
printf("\n是否查找另一個學生的信息?(y/n)");
fflush(stdin);
b=getchar();

}while(b=='y');

}

void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n請輸入要刪除的學生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}

for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t沒有找到這個學生!!!\n");

else
{
i--;
xianshi();
}

printf("\n是否繼續刪除另一個學生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');

}

void charu()
{
shuru();
paixu();

}

void main() //主函數
{
int change;
do{
system("cls");
printf("============================學生信息管理系統===================================\n");
printf("\t\t一: 輸入學生信息\n");
printf("\t\t二: 顯示學生信息\n");
printf("\t\t三: 查找學生信息\n");
printf("\t\t四: 刪除學生信息\n");
printf("\t\t五: 插入學生信息\n");
printf("\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t請輸入功能選項:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}

⑵ 用C語言設計一個學生成績統計程序,

要求輸入10個學生5門功課的成績,分別用子函數求出:(1)每個學生的平均分;(2)每門功課的平均分;(3)找出最高分所對應的學生和功課。
#include<stdio.h>
#include<stdlib.h>
structstudent
{
doublescore[5];
}s[10];
voidavg()
{
printf(" ");
doublesum;
for(inti=0;i<10;i++)
{
sum=0;
printf("第%d位學生的平均分數是:",i+1);
for(intj=0;j<5;j++)
sum+=s[i].score[j];
printf("%.2lf ",sum/5);
}
printf(" ");
return;
}
voidtavg()
{
printf(" ");
doublesum;
for(intj=0;j<5;j++)
{
sum=0;
for(inti=0;i<10;i++)
sum+=s[i].score[j];
printf("第%d門功課的平均分是:%.2lf ",j+1,sum/10);
}
return;
}
voidmaxsc()
{
printf(" ");
doublemax=-1;
inti,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
if(max<s[i].score[j])
{
max=s[i].score[j];
}
}
printf("最高分是:%.2lf分,對應學生與功課如下: ",max);
for(i=0;i<10;i++)
{
for(intj=0;j<5;j++)
if(max==s[i].score[j])
{
printf("第%d位學生的第%d門成績 ",i+1,j+1);
}
}
printf(" ");
}
intmain()
{
inti,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
printf("輸入第%d位學生的第%d門功課的成績:",i+1,j+1);
scanf("%lf",&s[i].score[j]);
printf(" ");
}
printf(" ");

}
printf("學生平均分數情況: ");
avg();//每個學生的平均分
printf("功課平均分數情況: ");
tavg();//每門功課的平均分
printf("最高分數即對應學生功課: ");
maxsc();//最高分對應的學生和功課
system("PAUSE");
return0;
}

⑶ 急求程序:c程序設計 學生成績排名 數組 冒泡發

#include<stdio.h>

int main()
{
int a[12]={0}, b[12], x, i, j, t;

for(i=0; i<10; i++)
{/*讀入十個學生的成績*/
scanf("%d", &a[i]);
}

/*冒泡排序*/
for(i=0; i<10; i++)
{
for(j=0; j<i; j++)
{
if(a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}

/*讀入一個新的成績並且插入*/
scanf("%d", &x);

/*找到插入點*/
for(i=0; i<10 && a[i] > x; i++);

/*把後面的數向後移動*/
for(j=9; j>=i; j--)
a[j+1] = a[j];
a[i] = x;

/*把數反序存入b數組*/

for(i=10, j=0; i>=0; i--, j++)
b[j] = a[i];

for(i=0; i<11; i++)
printf("%d ", b[i]);
printf("\n");

return 0;
}

⑷ c語言程序設計 學生成績排序系統

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define MAX 200
void dis_menu();
void load_score();
void sort_english();
void sort_math();
void sort_c();
void sort_num();
void display();
typedef struct
{
char name[20];
int num;
float math;
float english;
float c;
}Stu;
Stu stu[MAX];
int num=0;
bool tag=true;
bool Tag=false;
void main()
{
dis_menu();
}
void dis_menu()
{
int i=0;
char ch;
do{
printf("******** *歡迎使用學生成績排序系統* ********** ******\n");
printf("****** ****輸入要進行的操作****** ******* ***** *\n");
printf("**** ******1:按數學成績排序********** **** ***** **\n");
printf("** ********2: 按英語成績排序***** * ***** ***\n");
printf("* *********3:按C語言成績排序***** * ************ **\n");
printf("*** *******4:按學生學號排序****** ***** ***** *\n");
printf("***** *****5:載入學生成績**** ********* *****\n");
printf("******* ***0:退出系統********* ************** ***\n");
fflush(stdin);
scanf("%d",&i);
switch(i)
{
case 1:
if(!Tag) { printf("先載入學生成績!\n"); break; }
sort_math();
printf("是否列印排序後學生成績:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 2:
if(!Tag) { printf("先載入學生成績!\n"); break; }
sort_english();
printf("是否列印排序後學生成績:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 3:
if(!Tag) { printf("先載入學生成績!\n"); break; }
sort_c();
printf("是否列印排序後學生成績:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 4:
if(!Tag) { printf("先載入學生成績!\n"); break; }
sort_num();
printf("是否列印排序後學生成績:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
case 5:
load_score();
Tag=true;
printf("是否列印載入後的學生成績:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
default:
printf("感謝使用本系統!\n");
system("exit");
exit(0);
}
printf("是否繼續?(Y or N)\n");
fflush(stdin);
ch=getchar();
system("cls");
}while(ch=='Y'||ch=='y');

}

void load_score()
{
int i;
printf("輸入學生人數\n");
scanf("%d",&num);
printf("學生學號 姓名 數學成績 英語成績 C語言成績 \n");
for(i=0;i<MAX&&i<num;i++)
scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,&stu[i].c);
if(i>MAX)
printf("輸入人數有誤!");
}

void display()
{
int i=0;
if(tag)
{
printf("名次\t學號\t姓名\t數學\t英語\tC語言\n");
for(i=0;i<num;i++)
printf("%d\t%d\t%s\t%.2f\t%.2f\t%.2f\n",i+1,stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);
}
else
{
printf("學號\t姓名\t數學\t英語\tC語言\n");
for(;i<num;i++)
printf("%d\t%s\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);

}
}

void sort_math()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].math<=stu[j].math)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

void sort_english()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].english<=stu[j].english)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

void sort_c()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].c<=stu[j].c)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
void sort_num()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].num>=stu[j].num)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

剛寫的,希望對你有用,考試順利!

⑸ c語言程序設計 成績排序

BiThrTree bt = NULL;
CreateBTree(bt);//生成一棵二杈排序樹(輸入單個字元,以#結束)
InOrderPrint_1(bt); //中序遍歷輸出結點(遞歸)
cout << endl;
BiThrTree BT = InOrderThreading(bt);//中序遍歷二杈樹,並將其中序線索化
InOrderTraverse_Thr(BT);//中序遍歷線索二杈樹的非遞歸演算法, T 指向頭結點
system("PAUSE");
return EXIT_SUCCESS;
}
void InOrderTraverse_Thr(BiThrTree T)//中序遍歷線索二杈樹的非遞歸演算法, T 指向頭結點
{
BiThrTree p = T->lchild; //p指向根結點
while (p != T) //空樹或遍歷結束時,p == T
{

⑹ 求學生成績排名C程序

#include <stdio.h>
void main()
{
int a[11];
int i,j,t;
int m;
void inv(int x[],int p);
printf("請輸入10個學生的成績:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("學生成績從高到低排序為:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
printf("再輸入一個學生的成績:\n");
scanf("%d",&m);
for(i=0;i<10;i++)
if(m>a[i])break;
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=m;
printf("插入一個學生之後學生成績排序為:\n");
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
inv(a,11);
printf("成績從低到高排序為:\n");
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
}

void inv(int x[],int p)
{
int t,i,j,q=(p-1)/2;
for(i=0;i<=q;i++)
{
j=p-1-i;
t=x[i];
x[i]=x[j];
x[j]=t;
}
return;
}

⑺ C語言實訓-根據條件進行學生成績排名

1.
void sort(int a[10]){
for(int i=1; i<10; i++){
for(int j=i; j>=1; j--){
if(a[j]>a[j-1]){
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
2.
sort(int a[],int n){
for(int i=1; i<n; i++){
for(int j=i; j>=1; j--){
if(a[j]>a[j-1]){
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
3.
void sort(int a[],int n, char style){
for(int i=1; i<n; i++){
for(int j=i; j>=1; j--){
if(style == 'a'){
if(a[j] < a[j-1]){
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}else(style == 'd'){
if(a[j] > a[j-1]){
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
4.
這里用的是插入排序演算法,你可以上網找找插入排序的流程圖,知識點怎麼說?循環算不?

⑻ C語言編程序對學生成績排名

#include int main(){ float score = 0f; printf("請輸入成績:\n"); scanf("%f", &score); switch ((int)score / 10) { case 10: case 9: printf("優秀\n"); break; case 8: printf("良好\n"); break; case 7: printf("中等回\n"); break; case 6: printf("及格答\n"); break; default : printf("不及格\n"); break; } return 0;}

⑼ 用C語言設計一個學生成績統計系統

// Note:Your choice is C++ IDE
#include <iostream>
#include <string>
using namespace std;
//N代表科目數,M代表人數
#define N 2
#define M 3

class student
{public:
float score[N];
string name;
float average;
float total;
int rank;

student();
void inscore();
void calav();
void caltt();
void show();

};

void student::inscore()
{
int i;
cout<<"輸入姓名:";
cin>>name;
cout<<"輸入成績:";
for(i=0;i<N;i++)
{
cin>>score[i];
}
caltt();
calav();

}

void student::calav()
{
average=total/N;
}

void student::caltt()
{
int i;
for(i=0;i<N;i++)
total+=score[i];
}

void student::show()
{
int i;
cout<<rank<<" "<<name<<" ";
for(i=0;i<N;i++)
cout<<score[i]<<" ";

cout<<endl;
}

void setrank(student sys[M])
{
int i,j;
student tmp=sys[0];

for(i=0;i<M-1;i++)
{
for(j=i+1;j<M;j++)
if(sys[j].average>sys[i].average)
{
tmp=sys[j];
sys[j]=sys[i];
sys[i]=tmp;
}
sys[i].rank=i+1;
}
sys[i].rank=i+1;
}

void findsc(student sys[M])
{
string n;
int i;
cout<<"請輸入查詢的名字:";
cin>>n;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(i=0;i<M;i++)
if(sys[i].name==n)
{

sys[i].show();
}
}

void findrank(student sys[M])
{
string n;
int i;
cout<<"請輸入查詢的名字:";
cin>>n;
for(i=0;i<M;i++)
if(sys[i].name==n) cout<<sys[i].rank;

}

void find10(student sys[M])
{
int j;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<10;j++)
sys[j].show();
}

void findgrade(student sys[M])
{
int i,j;
cout<<"1.>=85 2.>=75 3.>=60 4.<60"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 2:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average>=75 && sys[j].average<85) sys[j].show();

}
break;
case 3:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 4:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average<60) sys[j].show();

}
break;

}

}

void findbad(student sys[M])
{
int i,j,k;
for(i=0;i<M;i++)
{
k=0;

cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<N;j++)
{
if(sys[i].score[j]<60) k++;
if(k==3)
}
}
}

void pub(student sys[M])
{
int i;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(i=0;i<M;i++)
sys[i].show();
}

int main()
{
student st[M];
int i,j;

while(1)
{
cout<<
"-------------------------------\n"<<
"1.輸入成績\n"<<
"2.查詢任一學生成績\n"<<
"3.查詢任一學生排名\n"<<
"4.查詢前十的學生\n"<<
"5.查詢成績級別的情況\n"<<
"6.查詢三門不及格的學生\n"<<
"7.按成績高低,順序輸入所有學生\n"<<
"-------------------------------"<<endl;
cin>>i;
switch(i)
{
case 1:
for(j=0;j<M;j++)
{
cout<<"輸入第"<<j+1<<"個學生的成績"<<endl;
st[j].inscore();
};
setrank(st);
break;

case 2:findsc(st);system("pause");break;
case 3:findrank(st);system("pause");break;
case 4:find10(st);system("pause");break;
case 5:findgrade(st);system("pause");break;
case 6:findbad(st);system("pause");break;
case 7:pub(st);system("pause");break;
}

}

return 0;
}

熱點內容
武漢大學學生會輔導員寄語 發布: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