?? sports.txt
字號(hào):
#define M 20
#include <conio.h>
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int mm,m,w;
struct scorelist
{
int score;
char schoolnum[5];
int itemnum[5];
};
struct School
{
char schoolnum[5];
struct scorelist list[M];
int teamscore;
int mscore;
int gscore;
};
struct School school[M];
Sum(){
int i,j;
for(i=1;i<=mm;i++){
school[i].teamscore=0;
school[i].gscore=0;
school[i].mscore=0;
for(j=1;j<=m+w;j++){
school[i].teamscore+=school[i].list[j].score;
if(j==m) school[i].mscore= school[i].teamscore;
}
school[i].gscore= school[i].teamscore-school[i].mscore;
}
}
void sort_teamsore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].teamscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score){
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 學(xué)校編號(hào) 總分 \n ");
for(i=1;i<=mm;i++)
printf(" %7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void sort_mscore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].mscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score){
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 學(xué)校編號(hào) 男隊(duì)總分 \n ");
for(i=1;i<=mm;i++)
printf(" %7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void sort_gscore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].gscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score)
{
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 學(xué)校編號(hào) 女隊(duì)總分 \n ");
for(i=1;i<=mm;i++)
printf("%7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void Search_byschnum()
{
int i,j;
int snum;
printf(" 請(qǐng)輸入學(xué)校編號(hào): \n ");
printf(" --------------\n");
scanf(" %8d",&snum);
for(i=1;i<=mm;i++)
{
if(snum==atoi(school[i].schoolnum))
break;
}
if(i<=mm)
{
printf(" 學(xué)校編號(hào) 學(xué)校總分 男隊(duì)總分 女隊(duì)總分\n");
printf(" %7s%14d%19d%20d\n",school[i].schoolnum,
school[i].teamscore,school[i].mscore,school[i].gscore) ;
}
else
printf("未找到這學(xué)校\n");
}
void Search_item()
{
int i, j;
int ssnum,itemnu;
printf(" 請(qǐng)輸入學(xué)校編號(hào):\n");
printf(" --------------\n");
scanf(" %8d",&ssnum);
for(i=1;i<=mm;i++)
{
if(ssnum==atoi(school[i].schoolnum))
{
printf(" 請(qǐng)輸入項(xiàng)目編號(hào):\n ");
printf(" ---------------\n");
scanf(" %8d",&itemnu);
for(j=1;j<=m+w;j++)
{
if(itemnu==atoi(school[i].list[j].itemnum))
{
printf(" 這項(xiàng)目分?jǐn)?shù)是:") ;
printf("%d \n",school[i].list[j].score);
}
if(itemnu==atoi(school[i].list[j].itemnum))
break;
}
}
if(ssnum==atoi(school[i].schoolnum)) break;
}
}
void Search_head3()
{
int i,j,k;
int itemnu;
struct scorelist list1[M];
struct scorelist temp;
printf(" 請(qǐng)輸入項(xiàng)目編號(hào):\n");
printf(" ---------------\n");
scanf(" %7d",&itemnu);
for(i=1;i<=mm;i++)
for(j=1;j<=w+m;j++)
if(itemnu==atoi(school[i].list[j].itemnum))
{
list1[i].score=school[i].list[j].score;
for(k=0;k<=4;k++)
{
list1[i].schoolnum[k]=school[i].schoolnum[k];
list1[i].itemnum[k]=school[i].list[j].itemnum[k];
}
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<mm-1;j++)
if(list1[j-1].score<list1[j].score)
{
temp.score=list1[j-1].score;
for(k=0;k<=4;k++)
{
temp.schoolnum[k]=list1[j-1].schoolnum[k];
temp.itemnum[k]=list1[j-1].itemnum[k];
}
list1[j-1].score=list1[j].score;
for(k=0;k<=4;k++)
{
list1[j-1].schoolnum[k]=list1[j].schoolnum[k];
list1[j-1].itemnum[k]=list1[j].itemnum[k];
}
list1[j].score=temp.score;
for(k=0;k<=4;k++)
{
list1[j].schoolnum[k]=temp.schoolnum[k];
list1[j].itemnum[k]=temp.itemnum[k];
}
}
printf(" 這項(xiàng)目前三名的學(xué)校是 :\n");
printf(" 項(xiàng)目編號(hào) 學(xué)校編號(hào) 此項(xiàng)目分?jǐn)?shù)\n");
for(i=1;i<=3;i++)
printf("%17s%22s%21d\n", list1[i].itemnum,list1[i].schoolnum,list1[i].score);
}
int menu_select( )
{
int sn;
printf(" ===================================================\n");
printf(" * 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) *\n");
printf(" ===================================================\n");
printf(" * 1.輸出全部學(xué)校總分,男女團(tuán)隊(duì)總分 *\n");
printf(" * 2.按學(xué)校總分排序輸出 *\n");
printf(" * 3.按學(xué)校男隊(duì)分?jǐn)?shù)排序輸出 *\n");
printf(" * 4.按學(xué)校女隊(duì)分?jǐn)?shù)排序輸出 *\n");
printf(" * 5.按學(xué)校編號(hào)查找查詢某學(xué)校的分?jǐn)?shù)情況 *\n");
printf(" * 6.按學(xué)校編號(hào)查找查詢學(xué)校某項(xiàng)目分?jǐn)?shù) *\n");
printf(" * 7.按項(xiàng)目編號(hào)查詢獲得前三名的學(xué)校 *\n");
printf(" * 0.退出 *\n");
printf(" ===================================================\n");
printf(" 選擇 0-7:");
for( ; ; )
{
scanf("%d",&sn);
if (sn<0||sn>7)
printf("輸入錯(cuò)誤,請(qǐng)?jiān)?-7選擇: ");
else
break;
}
return sn;
}
main(){
FILE *f;
int i,j;
f=fopen("score.dat","r");
for(i=1;i<=3;i++){
if(i==1) fscanf(f,"%d",&mm);
if(i==2) fscanf(f,"%d",&m);
if(i==3) fscanf(f,"%d",&w);
}
for(i=1;i<=mm;i++)
{
fscanf(f,"%s",school[i].schoolnum);
for(j=1;j<=2*(w+m);j++)
{
if(j<=w+m)
fscanf(f,"%s",school[i].list[j].itemnum );
else
fscanf(f,"%d",&school[i].list[j-w-m].score );
}
}
fclose(f);
Sum();
for( ; ; ){
switch(menu_select( ) )
{
case 1:
printf(" =========================================\n");
printf(" * 1.輸出全部學(xué)校總分,男女團(tuán)隊(duì)總分 *\n");
printf(" =========================================\n");
printf(" 學(xué)校編號(hào) 學(xué)校總分 男隊(duì)總分 女隊(duì)總分\n");
for(i=1;i<=mm;i++)
printf(" %7s%14d%19d%20d\n",school[i].schoolnum,
school[i].teamscore,school[i].mscore,school[i].gscore) ;
break;
case 2:
printf(" =====================================\n");
printf(" * 按學(xué)校總分排序輸出 *\n");
printf(" =====================================\n");
sort_teamsore();
break;
case 3:
printf(" ================================================\n");
printf(" * 按學(xué)校男隊(duì)分?jǐn)?shù)排序輸出 *\n");
printf(" ================================================\n");
sort_mscore();
break;
case 4:
printf(" ================================================\n");
printf(" * 按學(xué)校女隊(duì)分?jǐn)?shù)排序輸出 *\n");
printf(" ================================================\n");
sort_gscore();
break;
case 5:
printf(" ================================================\n");
printf(" * 按學(xué)校編號(hào)查找查詢某學(xué)校的分?jǐn)?shù)情況 *\n");
printf(" ================================================\n");
Search_byschnum();
break;
case 6:
printf(" =============================================\n");
printf(" * 按學(xué)校編號(hào)查找查詢學(xué)校某項(xiàng)目分?jǐn)?shù) *\n");
printf(" ==============================================\n");
Search_item();
break;
case 7:
printf(" ============================================\n");
printf(" * 按項(xiàng)目編號(hào)查詢獲得前三名的學(xué)校 *\n");
printf(" ============================================\n");
Search_head3();
break;
case 0:
printf("good bye!\n");
return;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -