当前位置:首页 » 成绩查询 » 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