#include #include #include #include#include #define schnum 6 // school 個數
#define pronum 6// project 個數
#define n 3 //前n名
#define m 5 //前m名
void intzoom(int a, int b);
void screen();
void schoolman();
void schoolwomen();
void backup();
void integral(int intergalgrade[pronum]);
void bubble_sort();
void mao(int n);
void transition(int intergalgrade[pronum]);
void printf(int bb);
void first_rank();
void calibrate();
void ask_for(int k, int intergalgrade[pronum]);
void allgrade(int intergalgrade[pronum]);
typedef struct//每個學校派一名參加比賽
sch;//學校結構體 專案school
typedef struct
pro;//學校結構體 專案
sch school[schnum];
pro project[pronum];
void intzoom(int a,int b) //初始化結構體中的結構資料 }}
//顯示屏專案
void screen()
int main()
; //各個學校的積分成績的儲存
intzoom(schnum,pronum);
screen();
printf("請輸入以下資訊:\n");
calibrate();
printf("資訊錄入完成!\n");
printf("正在進行學校專案成績的錄入:\n");
for (int i = 0; i < schnum; i++)
bubble_sort();
transition(intergalgrade);
integral(intergalgrade);
backup();
mao(schnum);
rt: screen(); // goto語句製造再次迴圈
printf("請進行你的操作:\n");
int a = 0;
int b = 0;
int d = 0;
char c = '0';
int k1 = 0;
int k2 = 0;
scanf("%d", &a);
switch (a)
break;
case 3:
printf("正在進行操作:%d.\n", a);
printf("選擇小操作項:\n");
scanf("%d", &d);
switch (d)
break;
case 4:
printf("正在進行操作:%d.\n", a);
allgrade(intergalgrade);
break;
case 5:
printf("正在進行操作:%d.\n", a);
exit(0);
default:
printf("選擇操作錯誤!!!\n");
} printf("如果想繼續執行操作:enter,輸入其他的字元可結束操作。");
getchar();
scanf("%c", &c);
if (c == '\n')
else
return 0;
} //學校名字校準以及運動專案校準
void calibrate()
printf("正在進行運動專案編碼校準……\n");
for (int j = 0; j < pronum; j++)
else
scanf("%s", project[j].proname); }}
//男子專案的成績錄入
void schoolman()
printf("現在你正在進行學校:%s 編碼:%d:男子專案錄入\n",school[a].schname ,a);
for (int m = 0; m < (pronum/2); m++)
printf("錄入成功!\n"); }}
//女子專案的成績錄入
void schoolwomen()
printf("現在你正在進行學校:%s 編碼:%d:女子專案錄入\n", school[a].schname, a);
for (int m = (pronum/2); m < pronum; m++)
printf("錄入成功!\n"); }}
//氣泡排序法 排出成績的大小 排出初始資料的排名 進行連帶同步名次排名 讓高的分數先浮上來
void bubble_sort()
}} }
}//名次轉化成積分成績
void transition(int intergalgrade[pronum])
} }}//學校積分計算
void integral(int intergalgrade[pronum])
for (int c = 0; c < (pronum / 2); c++) // 男總積分
for (int d = (pronum / 2); d < pronum; d++) // 女總積分
}}//原資料備份
void backup() //backup
}
// 反向氣泡排序
void mao(int n)
if (school[j].cboygrade < school[j + 1].cboygrade)
if (school[j].cgirlgrade < school[j + 1].cgirlgrade)
} }}
//各個專案前五名輸出
void first_rank()
printf("第%d名,積分為%d分,學校:%s 編號為%d。\n",num,rankgrade ,school[school[i].rank[j]].schname,school[i].rank[j]);
num++;
} }}//每個學校各個專案的積分輸出
void printf(int bb)
printf("\n");
printf("男子專案總成績:\n");
for (int i = 0; i < schnum; i++)
printf("\n");
printf("女子專案總成績:\n");
for (int i = 0; i < schnum; i++)
break;
case 3:
for (int i = 0; i < schnum; i++)
break; }}
//查詢系統
void ask_for(int k,int intergalgrade[pronum])
}} }
else
}} }
}//全部顯示
void allgrade(int intergalgrade[pronum])
else
sleep(4000);
for (int n = 0; n < schnum; n++) }
fclose(fp);
}
運動會分數統計 資料結構課程設計
參加運動會有n個學校,學校編號為1 n。比賽分成m個男子專案,和w個女子專案。專案編號為男子1 m,女子m 1 m w。不同的專案取前五名或前三名積分 取前五名的積分分別為 7 5 3 2 1,前三名的積分分別為 5 3 2 哪些取前五名或前三名由學生自己設定。m 20,n 20 經過兩天的艱苦奮戰...
資料結構 運動會分數統計
include include include include using namespace std int n n個學校 int m m個男子專案 int w w個女子專案 struct pro 表示專案的結構體 p 21 struct school 表示學校的結構體 sch 21 int qi...
資料結構習題集之運動會分數統計
運動會分數統計 include include include typedef struct scorescore typedef struct matchmatch,event typedef struct recordrecord typedef struct schoolschool,scho...