資源簡介
運動會比賽計分系統
要求:初始化輸入:N-參賽學校總數,M-男子競賽項目數,W-女子競賽項目數
各項目名次取法有如下幾種:
取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
取前3名:第一名得分5,第二名得分3,第三名得分2;
功能要求:
(1)系統以菜單方式工作
(2)由程序提醒用戶填寫比賽結果,輸入各項目獲獎運動員信息。
(3)所有信息記錄完畢后,用戶可以查詢各個學校的比賽成績
(4)查看參賽學校信息和比賽項目信息等。
(要求:1.源文件采用多文件的工程結構2.數據存儲采用文件形式3.標準的C輸入輸出4.功能完善,適當的注釋,5.關于文件的內容需要自學)
代碼片段和文件信息
/*
21.?運動會比賽計分系統
要求:初始化輸入:N-參賽學校總數,M-男子競賽項目數,W-女子競賽項目數
各項目名次取法有如下幾種:
取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
取前3名:第一名得分5,第二名得分3,第三名得分2;
功能要求:
(1)系統以菜單方式工作
(2)由程序提醒用戶填寫比賽結果,輸入各項目獲獎運動員信息。
(3)所有信息記錄完畢后,用戶可以查詢各個學校的比賽成績
(4)查看參賽學校信息和比賽項目信息等。
(要求:1.源文件采用多文件的工程結構2.數據存儲采用文件形式3.標準的C輸入輸出4.功能完善,適當的注釋,5.關于文件的內容需要自學)
*/
#include
#include
#include?
#include?
#include?
#define?n?2 //學校數目??
#define?m?1 //男子項目數目?
#define?w?1 //女子項目數目
#define?null?0
struct?itemnode{?
int?itemnum; //項目編號
????int?top; //取名次的數目
????int?range[5]; //名次
????int?mark[5]; //分數
int?ncnum[10];
????char?name[8];
}; //定義項目結點的類型
struct?headnode{
int?schoolnum; //學校編號
????int?score; //學校總分
????int?mscore; //男團體總分
????int?wscore; //女團體總分
????itemnode?c[m+w]; //項目數組
}; //定義頭結點類型
headnode?h[n]; //定義一個頭結點數組
void?inputinformation()??//輸入信息,建立系統
{??
int?ijksu;
char?ch;?????????????????????????????????????
????for(i=0;i ????{???
h[i].score=0;
????????h[i].mscore=0;
????????h[i].wscore=0; //初始化頭結點
printf(“====參賽學校編號:“);
????????scanf(“%d“&h[i].schoolnum);????//輸入頭結點信息
????????for(j=0;j {??
printf(“????參賽項目編號:“);
????????????scanf(“%d“&h[i].c[j].itemnum);
????printf(“????取前3名or前5名:“);
????????????scanf(“%d“&h[i].c[j].top);
????????????printf(“????所取名次數量:“);
scanf(“%d“&k);
// scanf(“%d“&h[i].c[j].ncnum[u]);//輸入項目信息
// u++;
????????????for(s=0;s {???
????????????????h[i].c[j].range[s]=0;
h[i].c[j].mark[s]=0; //初始化排名和分數
printf(“????所獲得的名次:“);
????????????????scanf(“%d“&h[i].c[j].range[s]);???//輸入所獲名次信息
????????????????printf(“????該運動員姓名:“);
getchar(ch);
gets(h[i].c[j].name);
????????????????if(h[i].c[j].top==3)
????????????????switch(h[i].c[j].range[s])
????????????????{?
???????????????????case?0:?h[i].c[j].mark[s]=0;?break;
???????????????????case?1:?h[i].c[j].mark[s]=5;?break;
???????????????????case?2:?h[i].c[j].mark[s]=3;?break;
???????????????????case?3:?h[i].c[j].mark[s]=2;?break;
????????????????}
????????????????else
????????????????switch(h[i].c[j].range[s])
{?
??????????????????case?0:?h[i].c[j].mark[s]=0;?break;
??????????????????case?1:?h[i].c[j].mark[s]=7;?break;
??????????????????case?2:?h[i].c[j].mark[s]=5;?break;
??????????????????case?3:?h[i].c[j].mark[s]=3;?break;
??????????????????case?4:?h[i].c[j].mark[s]=2;?break;
??????????????????case?5:?h[i].c[j].mark[s]=1;?break;
?????????????????}
?????????????????h[i].score=h[i].score+h[i].c[j].mark[s];?//按取前三名還是取前五名分別記分
?????????????????if(j<=m-1)
?????????????????????h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子項目(取前三名)則記到男子分數里面去
?????????????????else
?????????????????????h[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子項目(取前五名)則記到女子項目里面去
}
????printf(“\n“);
????????}
????}
for(i=0;i {
printf(“\n\n*****學校編號:%d“h[i].schoolnum);
for(j=0;j {
printf
- 上一篇:Windows課程設計報告與源碼
- 下一篇:C語言編寫班費管理系統
評論
共有 條評論