資源描述:
《投票評選十佳運動員》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、十佳運動員評選活動一、功能要求某市體委與電視臺聯(lián)合舉辦十佳運動員有獎評選活動,具體說明如下(1)體委組織有關(guān)人士評出了如表1所示的20個候選人名單運動員編號運動員姓名運動員編號運動員姓名(2)電視臺在網(wǎng)上設(shè)立了投票站供市民投票,以便用計算機進行統(tǒng)計和核對。選票格式如表2所示選票編號0000001投票人姓名投票人地址擬選運動員編號選票號為7位數(shù)字,有效的運動員編號是01~20(3)計算機統(tǒng)計的具體任務(wù)是①統(tǒng)計出各候選人的得票數(shù),并根據(jù)得票數(shù)排定名次,選出十佳人員②根據(jù)命中率選出10個獲獎的參選者,并排定名次命中率=命中分+次序分命中分:選中十佳中的一個即得10分,選
2、中n個得n╳10分(不考慮次序)次序分:選票中的第一個運動員與十佳中的第一名相符(簡稱選中第一名)得9分選中第二名得8分,……,選中第十名的0分(4)編寫出完成以上統(tǒng)計任務(wù)的程序具體要求如下1候選人數(shù)據(jù)和選票數(shù)據(jù)應(yīng)以文本文件的方式分別存放在兩個文件中,選票中參選的地址可以不考慮2程序中,對選票數(shù)據(jù)要求采用結(jié)構(gòu)體作數(shù)據(jù)結(jié)構(gòu)3程序除能完成統(tǒng)計功能外,應(yīng)具有核對選票數(shù)據(jù)的功能,并且每一功能的實現(xiàn)要用選擇菜單的方式進行(使用簡單的文本菜單),菜單包含以下幾項a.統(tǒng)計b.核對選票c.退出4各個功能以及相對獨立的任務(wù)要求編寫成獨立的函數(shù),主函數(shù)只用于管理菜單和織調(diào)用個功能函數(shù)
3、5統(tǒng)計結(jié)果除在屏幕顯示外,還要求輸出到文件中最好用上鏈表#include#include#include#include#include#include/*存儲運動員信息的文件*/#defineDATA1"data1.txt"/*存儲選票信息的文件*/#defineDATA2"data2.txt"typedefstructsportsman{intnumber;charname[21];inttickets;structsportsman*next;
4、}sportsman;typedefstructticket{charticknum[8];charvotername[21];charvoteraddr[51];intsportsman;intscores;structticket*next;}ticket;intSIZE1,SIZE2;sportsman*head1,*tail1;ticket*head2,*tail2;voidinit();voidcleanup();voidcreate();voidprocess();sportsman*sortlist1();ticket*sortlist2();voi
5、dshowdetail();voidshowtop10();voidclearlist();voidinit(){SIZE1=sizeof(sportsman);SIZE2=sizeof(ticket);head1=tail1=(sportsman*)malloc(SIZE1);head2=tail2=(ticket*)malloc(SIZE2);memset(head1,0,SIZE1);memset(head2,0,SIZE2);}voidcreate(){FILE*infile=fopen(DATA1,"r");if(infile==NULL){printf
6、("無法打開文件1");cleanup();exit(1);}while(1){charnm[21];intnum;memset(nm,0,21);num=0;fscanf(infile,"%d",&num);if(num==0)break;sportsman*node=(sportsman*)malloc(SIZE1);node->number=num;node->tickets=0;fscanf(infile,"%s",node->name);tail1->next=node;tail1=node;}tail1->next=NULL;fclose(infi
7、le);infile=fopen(DATA2,"r");if(infile==NULL){printf("無法打開文件2");cleanup();exit(1);}while(1){charnum[8];memset(num,'