c語言運動會成績管理程序_第1頁
c語言運動會成績管理程序_第2頁
c語言運動會成績管理程序_第3頁
c語言運動會成績管理程序_第4頁
c語言運動會成績管理程序_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

c語言運動會成績管理程序PAGEPAGE22數(shù)據(jù)結(jié)構(gòu)程序課程設計報告題目:運動會成績管理班級:xxxxx學號:xxxxxxx姓名:xxx指導教師:xxxc語言運動會成績管理程序全文共1頁,當前為第1頁。2011c語言運動會成績管理程序全文共1頁,當前為第1頁。目錄一、前言………………1二、問題描述 3三、設計及實現(xiàn)要點 41、程序結(jié)構(gòu)體定義 42、程序總體設計 43、程序的函數(shù)設計 54、界面的設計 65、程序運行的流程圖 6四、源程序 8五、運行程序以及測試程序 211、初始化數(shù)據(jù)的測試 212、按鍵測試 213、功能測試 214、運行測試 22六、不足之處 22七、小結(jié) 22c語言運動會成績管理程序全文共2頁,當前為第2頁。八、參考文獻 22c語言運動會成績管理程序全文共2頁,當前為第2頁。一、前言隨著中國加入WTO,意味著我國要在同一個網(wǎng)絡平臺上參與國際競爭,同世界接軌.這對我們既是一個機遇,也是一個挑戰(zhàn).信息技術(shù)也滲透到生活中的各個領域。無論是教育,衛(wèi)生,還是政治,經(jīng)濟無不折射出信息技術(shù)的影子。當然體育也不會例外。尤其在2008年的奧運會中計算機技術(shù)更是發(fā)揮的淋漓盡致。信息的傳輸愈加快捷,這也使得人類的生活節(jié)奏加快。人們?yōu)榱粟s上時代的腳步,總在不停的吸收新的信息。為了適應這種快捷奏的生活,因此,一些簡便快捷的應用軟件如雨后春筍般出現(xiàn)在人們的視線里。這些軟件讓人們在處理數(shù)據(jù)信息時,不但提高了速度,也提高了效率。為人們帶來了方便。經(jīng)過一個學期對《數(shù)據(jù)結(jié)構(gòu)》這門課程的學習,以及平時自己做的相應的程序設計題。為了將自己的所學知識學以致用,同時也為了提高自己的編程水平,培養(yǎng)用計算機解決實際問題的能力。本報告將推出一款對運動會成績管理的程序。它將為我們在籌辦完運動會后,讓我們對分數(shù)的統(tǒng)計和計算,以及最終結(jié)果的查詢提供方便。數(shù)據(jù)結(jié)構(gòu)作為計算機專業(yè)基礎課,該課程的目標就是使學生學會如何從問題出發(fā),分析數(shù)據(jù),構(gòu)造求解問題的數(shù)據(jù)結(jié)構(gòu)和算法,培養(yǎng)學生有一定進行較復雜程序設計的能力。二、問題描述運動會成績管理系統(tǒng)是對運動會最終得分進行處理的程序。它包含對各個學校總分數(shù)、男子總分和女子總分的計算;分別按學??偡?、男子總分和女子總分排序輸出;還有按學校查詢和按運動項目查詢;以及當某項目成績輸入有誤時,進行修改和更正等一些操作。程序還有一些可供選擇功能。完全的人性化,每一步都有相應的提示,讓人們知道該做什么。程序還有存入文件中,也可去文件中查看成績?,F(xiàn)在要求在VC環(huán)境下運行?;竟δ埽喊磳W校編號排序輸出;按學??偡峙判蜉敵觯话磳W校男子總分排序輸出;按學校女子總分排序輸出;查詢某個學校成績;查詢某個項目成績;按項目修改成績;c語言運動會成績管理程序全文共3頁,當前為第3頁。輸入學校成績;c語言運動會成績管理程序全文共3頁,當前為第3頁。退出程序;三、設計及實現(xiàn)要點1、程序結(jié)構(gòu)體定義項目結(jié)構(gòu)體:structpro{ intz; stringname;//項目名稱 intsnum1[4]; //前3名學校的編號 intsnum[6]; //前5名學校的編號}p[21];學校結(jié)構(gòu)體:structschool{intnum;stringname;//學校名稱intscore;//學??偡謎ntmale;//男子總分intfemale;//女子總分}sch[21];2、程序總體設計本程序主要包括四大模塊:輸入輸出模塊、數(shù)據(jù)處理模塊、查詢模塊和程序結(jié)束模塊。輸入輸出模塊的主要功能是接收鍵盤傳來的信息,將信息存入相應的結(jié)構(gòu)體里,等待信息的處理。將處理好的數(shù)據(jù)按各種形式輸出并顯示在屏幕上;數(shù)據(jù)處理模塊主要的功能是將接收來的數(shù)據(jù)進行處理,將數(shù)據(jù)進行計算和整理好,并再存入結(jié)構(gòu)體中;查詢模塊的主要功能是按照用戶的要求以某種方式將處理好的數(shù)據(jù)顯示在屏幕上;程序結(jié)束模塊主要功能是調(diào)用結(jié)束顯示系統(tǒng),結(jié)束程序。c語言運動會成績管理程序全文共4頁,當前為第4頁。c語言運動會成績管理程序全文共4頁,當前為第4頁。運動會成績管理系統(tǒng)的整體結(jié)構(gòu):主循環(huán)控制模塊主循環(huán)控制模塊數(shù)據(jù)輸入模塊信息查詢模塊程序結(jié)束模塊數(shù)據(jù)處理模塊數(shù)據(jù)輸出模塊c語言運動會成績管理程序全文共5頁,當前為第5頁。3、程序的函數(shù)設計c語言運動會成績管理程序全文共5頁,當前為第5頁。函數(shù)原型函數(shù)功能函數(shù)處理描述voidmain()主函數(shù)全局控制程序的運行voidinput()錄入信息按提示輸入運動會的成績voidmenu()菜單面板顯示功能菜單以便選擇voidbianhao()編號排序按學校的編號排序輸出voidzongfentongji()總分排序按學校的總分排序輸出voidmalezongfen()男子總分排序按學校的男子總分排序輸出voidfemalezongfen()女子總分排序按學校的女子總分排序輸出voidchaxunsch()查詢學校信息按提示查詢學校的分數(shù)和名次viodchaxunxiangmu()查詢項目信息查詢?nèi)我忭椖康牡弥骱拖嚓P(guān)信息voidxiugaixiangmuchengji()修改項目成績按照項目來修改成績voidprint(inti)輸出顯示系統(tǒng)被各個排序輸出函數(shù)調(diào)用voidThank()結(jié)束顯示系統(tǒng)程序結(jié)束時顯示的內(nèi)容使用的函數(shù)及其功能使用的函數(shù)及其功能4、界面的設計系統(tǒng)使用基本語言輸入輸出函數(shù)處理該程序。在輸入完基本的錄入信息后,用戶可通過菜單面板來選擇功能來運行程序。菜單共提供了八種功能以便選擇選擇,分為排序、查詢和修改功能。其菜單面板如下:c語言運動會成績管理程序全文共6頁,當前為第6頁。c語言運動會成績管理程序全文共6頁,當前為第6頁。5、程序運行的流程圖c語言運動會成績管理程序全文共7頁,當前為第7頁。開始c語言運動會成績管理程序全文共7頁,當前為第7頁。開始主菜單按學校編號排序輸出按學??偡峙判蜉敵霭磳W校男子總分排序輸出按學校女子總分排序輸出查詢某個學校成績查詢某個項目成績按項目修改成績退出輸入學校成績結(jié)束四、源程序#include"stdafx.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>#include<stdio.h>#include<stdlib.h>#include<windows.h>usingnamespacestd;intn;//n個學校intm;//m個男子項目intw;//w個女子項目structpro//表示項目的結(jié)構(gòu)體{ intz; charname[10];//項目名稱 intsnum1[4]; //前3名學校的編號 intsnum[6]; //前5名學校的編號}p[21];structschool//表示學校的結(jié)構(gòu)體{intnum;charname[10];//學校名稱intscore;//學??偡謎ntmale;//男子總分intfemale;//女子總分}sch[21];inta[101][101];intinteger[3]={5,3,2};intintegral[5]={7,5,3,2,1};//評分標準設置voidinput()//錄入信息{inti,j,y,x;printf("*******************************************************\n");printf("\n\t\t運動會成績管理系統(tǒng)\n");printf("\n請輸入學校數(shù)目(5<=n<=20):\n");y=0;c語言運動會成績管理程序全文共8頁,當前為第8頁。while(1)c語言運動會成績管理程序全文共8頁,當前為第8頁。{scanf("%d",&n);if(n>=5&&n<=20) y=1;if(y) break;else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n");}for(i=1;i<=n;i++){ printf("輸入第%d個學校的名稱:\n",i);cin>>sch[i].name;sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf("輸入男子項目數(shù)[1_20]和女子項目數(shù)[1_20]:\n");y=0;while(1){scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1) y=1;if(y) break;else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n");}for(i=1;i<=m+w;i++){ printf("輸入第%d項目個的名稱:\n",i);scanf("%s",p[i].name); printf("請選擇該項目設立的獎項數(shù)(3或5項):\n"); y=0; while(1) { scanf("%d",&p[i].z); if(p[i].z==3||p[i].z==5) y=1; if(y)c語言運動會成績管理程序全文共9頁,當前為第9頁。 break;c語言運動會成績管理程序全文共9頁,當前為第9頁。 else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n"); } printf("輸入第%d個項目的前%d名的學校編號:\n",i,p[i].z);for(j=1;j<=p[i].z;j++){ y=0;while(1){ scanf("%d",&x);if(x>=1&&x<=n) y=1;if(y) break;else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n");} if(p[i].z==3) { p[i].snum1[j]=x; sch[x].score+=integer[j-1]; if(i<=m) sch[x].male+=integer[j-1]; else sch[x].female+=integer[j-1]; } else { p[i].snum[j]=x; sch[x].score+=integral[j-1]; if(i<=m) sch[x].male+=integral[j-1]; else sch[x].female+=integral[j-1]; }}}ofstreamoutfile1("c:\\運動會分數(shù)總分表.txt",ios::out);if(!outfile1){cerr<<"openerror!"<<endl;c語言運動會成績管理程序全文共10頁,當前為第10頁。}c語言運動會成績管理程序全文共10頁,當前為第10頁。outfile1<<"編號學校名稱總分男子總分女子總分\n"<<endl;for(i=1;i<=n;i++)//i<=sch[i]outfile1<<sch[i].num<<setw(8)<<sch[i].name<<setw(12)<<sch[i].score<<setw(12)<<sch[i].male<<setw(12)<<sch[i].female<<endl;outfile1.close();}voidprint(inti){cout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9) <<sch[i].male<<setw(10)<<sch[i].female<<endl;}//按編號排序voidbianhao(){inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].num>sch[j].num){ t=sch[i];sch[i]=sch[j];sch[j]=t; }}printf("\n按編號排列:\n");printf("編號學校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)print(i);}//總分函數(shù)voidzongfentongji()//按學??偡峙判騵inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].score<sch[j].score){c語言運動會成績管理程序全文共11頁,當前為第11頁。 t=sch[i];sch[i]=sch[j];sch[j]=t;c語言運動會成績管理程序全文共11頁,當前為第11頁。}}printf("\n按學校總分排列:\n");printf("編號學校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)cout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9) <<sch[i].male<<setw(10)<<sch[i].female<<endl;}//按學校男總分排序voidmalezongfen(){inti,j;schoolt;for(i=1;i<n;i++){ for(j=i;j<=n;j++) if(sch[i].male<sch[j].male) { t=sch[i];sch[i]=sch[j];sch[j]=t; } }printf("\n按學校男子總分排列:\n");printf("編號學校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)print(i);ofstreamoutfile1("c:\\運動會男子總分排序表.txt",ios::out);if(!outfile1){ cerr<<"openerror!"<<endl;}outfile1<<"編號學校名稱總分男子總分女子總分\n"<<endl;for(i=1;i<=n;i++)//i<=sch[i]outfile1<<sch[i].num<<setw(8)<<sch[i].name<<setw(12)<<sch[i].score<<setw(12)<<sch[i].male<<setw(12)<<sch[i].female<<endl;outfile1.close();}//按學校女總分排序voidfemalezongfen(){inti,j;c語言運動會成績管理程序全文共12頁,當前為第12頁。schoolt;c語言運動會成績管理程序全文共12頁,當前為第12頁。for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].female<sch[j].female){ t=sch[i];sch[i]=sch[j];sch[j]=t; }}printf("\n按學校女子總分排列:\n");printf("\n編號學校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)print(i); printf("\n");ofstreamoutfile1("c:\\運動會女子總分排序表.txt",ios::out);if(!outfile1){ cerr<<"openerror!"<<endl;}outfile1<<"編號學校名稱總分男子總分女子總分\n"<<endl;for(i=1;i<=n;i++)//i<=sch[i]outfile1<<sch[i].num<<setw(8)<<sch[i].name<<setw(12)<<sch[i].score<<setw(12)<<sch[i].male<<setw(12)<<sch[i].female<<endl;outfile1.close();}//查詢學校信息voidchaxunsch(){ inti,y,s;printf("輸入需要查詢的學校編號:\n");y=0;while(1){ scanf("%d",&s);if(s>=1&&s<=n) y=1;if(y) break;else printf("輸入數(shù)據(jù)有誤,請重新輸入:");}printf("該學校相關(guān)信息:\n");c語言運動會成績管理程序全文共13頁,當前為第13頁。printf("\n編號學校名稱總分男子總分女子總分\n");c語言運動會成績管理程序全文共13頁,當前為第13頁。for(i=1;i<=n;i++){ if(sch[i].num==s){ print(i);break;}}cout<<endl;}//查詢項目信息voidchaxunxiangmu(){inti,y,s;printf("輸入需要查詢的項目編號:\n");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=m+w) y=1;if(y) break;else printf("輸入數(shù)據(jù)有誤,請重新輸入:");} if(p[s].z==3) { printf("前3名學校編號及名稱為:\n"); printf("名次\t編號\t學校名稱\n"); for(i=1;i<=3;i++) cout<<i<<setw(12)<<p[s].snum1[i]<<setw(12)<<sch[p[s].snum1[i]].name<<endl; cout<<endl; } else { printf("前5名學校編號及名稱為:\n"); printf("名次\t編號\t學校名稱\n"); for(i=1;i<=5;i++) cout<<i<<setw(12)<<p[s].snum[i]<<setw(12)<<sch[p[s].snum[i]].name<<endl; cout<<endl; }c語言運動會成績管理程序全文共14頁,當前為第14頁。}c語言運動會成績管理程序全文共14頁,當前為第14頁。//按項目修改成績voidxiugaixiangmuchengji(){ inti,j,k,x,y; printf("輸入需要修改的項目編號:\n"); y=0; while(1) { scanf("%d",&k); if(k<=m+w&&k>0) y=1; if(y) break; else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n"); } if(p[k].z==3) { for(i=1;i<=p[k].z;i++) { if(k<=m) { sch[p[k].snum1[i]].score=sch[p[k].snum1[i]].score-integer[i-1]; sch[p[k].snum1[i]].male=sch[p[k].snum1[i]].male-integer[i-1]; } else { sch[p[k].snum1[i]].score=sch[p[k].snum1[i]].score-integer[i-1]; sch[p[k].snum1[i]].female=sch[p[k].snum1[i]].female-integer[i-1]; } } } else { for(i=1;i<=p[k].z;i++) { if(k<=m) { sch[p[k].snum[i]].score=sch[p[k].snum[i]].score-integral[i-1]; sch[p[k].snum[i]].male=sch[p[k].snum[i]].male-integral[i-1]; } elsec語言運動會成績管理程序全文共15頁,當前為第15頁。 {c語言運動會成績管理程序全文共15頁,當前為第15頁。 sch[p[k].snum[i]].score=sch[p[k].snum[i]].score-integral[i-1]; sch[p[k].snum[i]].female=sch[p[k].snum[i]].female-integral[i-1]; } } } printf("輸入第%d個項目設立的獎項數(shù)(3或5項):\n",k); y=0; while(1) { scanf("%d",&p[k].z); if(p[k].z==3||p[k].z==5) y=1; if(y) break; else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n"); } printf("輸入第%d個項目的前%d名的學校編號:\n",k,p[k].z); for(j=1;j<=p[k].z;j++) { y=0; while(1) { scanf("%d",&x); if(x>=1&&x<=n) y=1; if(y) break; else printf("輸入數(shù)據(jù)有誤,請重新輸入:\n"); } if(p[k].z==3) { p[k].snum1[j]=x; sch[x].score+=integer[j-1]; if(k<=m) sch[x].male+=integer[j-1]; else sch[x].female+=integer[j-1]; } else {c語言運動會成績管理程序全文共16頁,當前為第16頁。 p[k].snum[j]=x;c語言運動會成績管理程序全文共16頁,當前為第16頁。 sch[x].score+=integral[j-1]; if(k<=m) sch[x].male+=integral[j-1]; else sch[x].female+=integral[j-1]; } }}//程序結(jié)束顯示系統(tǒng)voidThank(){ inti; char*thank1[]={"謝","謝","使","用"}; for(i=0;i<4;i++) { printf("%s",thank1[i]); Sleep(300); } char*thank2[]={"【","K","u","n","z","a","i","e","r","】"}; for(i=0;i<10;i++) { printf("%s",thank2[i]); Sleep(100); } char*thank3[]={"運","動","會","成","績","管","理","系","統(tǒng)"}; for(i=0;i<9;i++) { printf("%s",thank3[i]); Sleep(300); } printf("\n"); char*thank4[]={"B","y","e","--","B","y","e","^_^"}; for(i=0;i<8;i++) { printf("%s",thank4[i]); Sleep(100); } cout<<endl; Sleep(500);}c語言運動會成績管理程序全文共17頁,當前為第17頁。c語言運動會成績管理程序全文共17頁,當前為第17頁。//菜單面板voidmenu(){ printf("*****歡迎使用運動會成績管理系統(tǒng)*****\n"); printf("\t│1.按學校編號排序輸出│\n"); printf("\t│2.按學??偡峙判蜉敵雯n"); printf("\t│3.按學校男生總分排序輸出│\n"); printf("\t│4.按學校女生總分排序輸出│\n"); printf("\t│5.查詢某個學校成績│\n"); printf("\t│6.查詢某個項目成績│\n"); printf("\t│7.按項目修改成績│\n"); printf("\t│8.輸入學校成績│\n"); printf("\t│0.退出程序│\n");printf("選擇您需要的操作(選擇序號):\n");}//主函數(shù)voidmain(){ chars[5]; constM=30; menu();charchoose;boolflag;while(flag){ choose=getchar();switch(choose){ case'1': system("cls"); printf("你選擇的是按學校編號排序輸出功能!\n"); system("pause"); system("cls"); bianhao(); system("pause"); system("cls"); menu();getchar();break; case'2': system("cls"); printf("你選擇的是按學??偡峙判蜉敵龉δ?!\n");c語言運動會成績管理程序全文共18頁,當前為第18頁。 system("pause");c語言運動會成績管理程序全文共18頁,當前為第18頁。 system("cls"); zongfentongji(); system("pause"); system("cls");menu();getchar(); break;case'3': system("cls"); printf("你選擇的是按學校男生總分排序輸出功能!\n"); system("pause"); system("cls"); malezongfen(); system("pause"); system("cls");menu();getchar(); break;case'4': system("cls"); printf("你選擇的是按學校女生總分排序輸出功能!\n"); system("pause"); system("cls"); femalezongfen(); system("pause"); system("cls");menu();getchar(); break;case'5': system("cls"); printf("你選擇的是查詢某個學校成績!\n"); system("pause"); system("cls"); chaxunsch(); system("pause"); system("cls");menu();getchar(); break;case'6': system("cls"); printf("你選擇的是查詢某個項目成績!\n");c語言運動會成績管理程序全文共19頁,當前為第19頁。 system("pause");c語言運動會成績管理程序全文共19頁,當前為第19頁。 system("cls"); chaxunxiangmu(); system("pause"); system("cls");menu();getchar(); break; case'7': system("cls"); printf("你選擇的是按項目修改成績功能!\n"); system("pause"); system("cls"); xiugaixiangmuchengji(); system("pause"); system("cls"); menu();getchar();break; case'8': system("cls"); system("pause"); system("cls"); input(); system("pause"); system("cls");menu();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論