運動會分數統計 資料結構課程設計

2021-07-25 05:44:12 字數 4083 閱讀 3896

參加運動會有n個學校,學校編號為1……n。比賽分成m個男子專案,和w個女子專案。專案編號為男子1……m,女子m+1……m+w。不同的專案取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)

經過兩天的艱苦奮戰,我終於完成了這項工作,排錯和輸入等方面做了很多改進,使用者輸入的時候會有很大的容錯和拍錯空間。

第二次選擇1的時候就可以輸入0--x(x=20-【已經錄入的學校個數】)不再是5了

**如下:

注意:文章可能會出現 intint  file 重複的情況 如果出現了  直接改為 int  file 即可  這是網頁的問題 

有問題qq群:1037814669

目錄如下:

excel實戰技巧精粹:excel模板大全1000例

# include //程式介面函式jiemian()有控制台寬度高度設定**(第190行左右)

# include # define n 12 //大學和專案名稱的長度=漢字個數*sizeof(char)

# define m 20 //大學的數量

# define q 20 //專案的數量

# define h 5 //調整每一行輸出的學校或專案數量 現在一行輸出5個

# define min(a,b) (a)

const char wenjian="out.bin";//檔名

typedef struct link

aa,*aa;

typedef struct head

head;

char ***[3]= ;

int power[5]= ,}; //積分

char ss[5]= ;

int gainchar(char a,int min,int max); //輸入字串的位元組範圍[min,max]

int gainint(int *p,int a,int b);//輸入int *p直至滿足[a,b]輸入結束,並返回*p的位數

int bf(char a,char b);//bf演算法 a為主串,b為被檢驗的串`返回b在a中的第乙個下標 若無返回0

void record(char school[n+1],char game[n+1],int b,head *temp);//記錄資料最重要的乙個函式,a為專案陣列,b為記錄,c為學校,temp結構體

int jiemian();//使用者顯示介面

int jianyan(char b,int t);//檢驗b是否符合實際,t=0檢驗當前字串是否全為漢字 t=1檢驗學校,t=2檢驗比賽 檢驗符合返回0

void xuanzepai(head *temp,int select);//選擇排序

/*下面是檢查用的陣列 用在jianyan 函式中*/

char key[3]= ;

char school[5]= ;

char program[3]= ;

int du(head *head)

}fread(head,sizeof(head), 1, fp);

fclose(fp);

// free(fp);

return 0;

}int xie(head *head)

int main()

,*head=&sg;

int i,j,k,select,choice,now,next;

if(du(head))

doprintf("\n");

}printf("\n");}}

else if(select==6)

printf("\n\n");}}

else //儲存檔案

}if(xie(head))return 0;

du(head);}}

printf("\n請按任意鍵繼續…\n");

getchar();

}while(select!=8);

return 0;

}int bf(char a,char b)//bf演算法 a為主串,b為被檢驗的串`返回b在a中的第乙個下標 若無返回0

int gainint(int *p,int a,int b)//輸入int *p直至滿足[a,b]輸入結束,並返回*p的值

while((temp->power[i])==4); //只錄入3和5

}while(pan); //當輸入不滿足要求時重新輸入

system("cls");

for(k=0; k***[i]],temp->power[i]);

for(j=0; jpower[i]; j++) //每次錄入的專案個數=temp->power[i]

while(pan);

choice=power[(temp->power[i])/4][j];

man=temp->***[i];

(temp->spot+cun)->gram[man][i]=choice;//把choice積分存入第cun個學校的第i個專案 的gram[man][i]裡

(temp->spot+cun)->gram[2][i]+=choice;//修改第cun個學校的該專案總分

(temp->spot+cun)->sum[man]+=choice;//修改第cun個學校的m男女團體總積分

(temp->spot+cun)->sum[2]+=choice;//修改學校的總積分}}

b[1]+=q-scope[1][1];//修改錄入的專案的總數量

}int jianyan(char b,int t)//檢驗b是否符合實際,t=1檢驗學校,t=2檢驗比賽

if(t==1)//檢驗學校的名稱

if(!d)return printf("學校名稱太奇葩!");

}if(t==2)//檢驗比賽的名稱

if(!d)return printf("專案名稱太奇葩!");

}return 0;//沒問題返回0

}void xuanzepai(head *temp,int select)//選擇排序

; n=temp->b[0];

printf("公升序請按0 降序請按1:");

gainint(&b,0,1);

for(i=0; ispot+i)->sum[select];

}printf("%s排名如下\t《以第%d列分數為準》:\n\n",ss[select],select+1);

for(i=0; ischool[0][k]:school[0][j]xuexiao[j],(temp->spot+j)->sum[0],(temp->spot+j)->sum[1],(temp->spot+j)->sum[2]);}}

複製** 直接執行即可:

/*資料結構結業課程設計*/

/*  參加運動會有n個學校,學校編號為1……n。比賽分成m個男子專案,和w個女子專案。專案編號為男子1……m,女子m+1……m+w。不同的專案取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)

【基本要求】

(1)可以輸入各個專案的前三名或前五名的成績;

(2)能統計各學校總分,

(3)可以按學校編號或名稱、學校總分、男女團體總分排序輸出;

(4)可以按學校編號查詢學校某個專案的情況;可以按專案編號查詢取得前三或前五名的學校。

(5)儲存結構自選,但要求運動會的相關資料存入並能隨時查詢

(6)規定:輸入資料形式和範圍:可以輸入學校的名稱,運動專案的名稱

(7)輸出形式:有中文提示,各學校分數為整形

詳解資料結構課程設計 運動會分數統計

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 vo...

資料結構 運動會分數統計

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...