#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
int id[25],ch[25];
int luru();
int order();
int zw();
int suiji();
int main()
{
printf("學生座位管理系統\n");
printf("按學號錄入學生成績----1\n");
printf("查看學生分數排名------2\n");
printf("按排名座位示意圖------3\n");
printf("隨機排座位示意圖------4\n");
printf("退出系統--------------0\n");
printf("\n按相應的數字鍵操作\n");
int n;
scanf("%d",&n);
while(1)
{
if(n==1) luru();
else if(n==2) {
order(); }
else if(n==3) zw();
else if(n==4) suiji();
else if(n==0) {break;};
system("pause");
system("cls");
printf("按學號錄入學生成績----1\n");
printf("查看學生分數排名------2\n");
printf("按排名座位示意圖------3\n");
printf("隨機排座位示意圖------4\n");
printf("退出系統--------------0\n");
printf("\n按相應的數字鍵操作\n");
printf("請選擇你需要的操作:");
scanf("%d",&n);
}
return 0;
}
int luru()
{
int i;
printf("請輸入25名同學的學號和成績\n");
for(i=0;i<=24;i++)
{
printf("請輸入學號:");
scanf("%d",&id[i]);
printf(" 成績:");
scanf("%d",&ch[i]);
}
return 0;
}
//函數名 order
//功能 按名次輸出
//需要參數 不
//需要返回值 不
int order()
{
int t1,t2,i,j;
for(i=0;i<=23;i++)
{
for(j=i+1;j<=24;j++)
{
if(ch[i]<ch[j])
{
t1=ch[i];
ch[i]=ch[j];
ch[j]=t1;
t2=id[i];
id[i]=id[j];
id[j]=t2;
}
}
}
printf("排名 學號 成績\n");
int i1;
for(i1=0;i1<=24;i1++)
{
printf("%2d %2d %d\n",i1+1,id[i1],ch[i1]);
}
return 0;
}
//函數名 zw
//功能 按分數名次排座
//需要參數 不
//需要返回值 不
int zw()
{
int i;
int hang,lie;
printf("按分數名次排座\n");
i=0;
for(hang=1;hang<=5;hang++)
{
for(lie=1;lie<=5;lie++)
{
printf("第%2d名:學號%2d ",25-i,id[i]);
i++;
}
printf("\n");
}
return 0;
}
//函數名 suiji
//功能 隨機排座位
//需要參數 不
//需要返回值 不
int suiji()
{
srand(time(NULL));
int hang,lie,i,j,n,m;
int a[25],b[26]={0};
m=rand()%25+1;
a[0]=m;
b[m]=1;
for(i=1;i<=24;i++)
{
do
{
m=rand()%25+1;
}
while(b[m]!=0);
b[m]=1;
a[i]=m;
}
i=0;
for(hang=1;hang<=5;hang++)
{
for(lie=1;lie<=5;lie++)
{
printf("學號:%2d ",a[i]);
i++;
}
printf("\n");
}
return 0;
}