c语言运动会成绩管理程序_第1页
c语言运动会成绩管理程序_第2页
c语言运动会成绩管理程序_第3页
c语言运动会成绩管理程序_第4页
c语言运动会成绩管理程序_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

kok电子竞技:文档简介

c语言运动会成绩管理程序PAGEPAGE22数据结构程序课程设计kok电子竞技题目:运动会成绩管理班级:xxxxx学号:xxxxxxx姓名:xxx指导教师:xxxc语言运动会成绩管理程序全文共1页,当前为第1页。2011c语言运动会成绩管理程序全文共1页,当前为第1页。目录一、前言………………1二、问题描述 3三、设计及实现要点 41、程序结构体定义 42、程序总体设计 43、程序的函数设计 54、界面的设计 65、程序运行的流程图 6四、源程序 8五、运行程序以及测试程序 211、初始化数据的测试 212、按键测试 213、功能测试 214、运行测试 22六、不足之处 22七、小结 22c语言运动会成绩管理程序全文共2页,当前为第2页。八、参考文献 22c语言运动会成绩管理程序全文共2页,当前为第2页。一、前言随着中国加入WTO,意味着我国要在同一个网络平台上参与国际竞争,同世界接轨.这对我们既是一个机遇,也是一个挑战.信息技术也渗透到生活中的各个领域。无论是教育,卫生,还是政治,经济无不折射出信息技术的影子。当然体育也不会例外。尤其在2008年的奥运会中计算机技术更是发挥的淋漓尽致。信息的传输愈加快捷,这也使得人类的生活节奏加快。人们为了赶上时代的脚步,总在不停的吸收新的信息。为了适应这种快捷奏的生活,因此,一些简便快捷的应用软件如雨后春笋般出现在人们的视线里。这些软件让人们在处理数据信息时,不但提高了速度,也提高了效率。为人们带来了方便。经过一个学期对《数据结构》这门课程的学习,以及平时自己做的相应的程序设计题。为了将自己的所学知识学以致用,同时也为了提高自己的编程水平,培养用计算机解决实际问题的能力。本kok电子竞技将推出一款对运动会成绩管理的程序。它将为我们在筹办完运动会后,让我们对分数的统计和计算,以及最终结果的查询提供方便。数据结构作为计算机专业基础课,该课程的目标就是使学生学会如何从问题出发,分析数据,构造求解问题的数据结构和算法,培养学生有一定进行较复杂程序设计的能力。二、问题描述运动会成绩管理系统是对运动会最终得分进行处理的程序。它包含对各个学校总分数、男子总分和女子总分的计算;分别按学校总分、男子总分和女子总分排序输出;还有按学校查询和按运动项目查询;以及当某项目成绩输入有误时,进行修改和更正等一些操作。程序还有一些可供选择功能。完全的人性化,每一步都有相应的提示,让人们知道该做什么。程序还有存入文件中,也可去文件中查看成绩。现在要求在VC环境下运行。基本功能:按学校编号排序输出;按学校总分排序输出;按学校男子总分排序输出;按学校女子总分排序输出;查询某个学校成绩;查询某个项目成绩;按项目修改成绩;c语言运动会成绩管理程序全文共3页,当前为第3页。输入学校成绩;c语言运动会成绩管理程序全文共3页,当前为第3页。退出程序;三、设计及实现要点1、程序结构体定义项目结构体:structpro{ intz; stringname;//项目名称 intsnum1[4]; //前3名学校的编号 intsnum[6]; //前5名学校的编号}p[21];学校结构体:structschool{intnum;stringname;//学校名称intscore;//学校总分intmale;//男子总分intfemale;//女子总分}sch[21];2、程序总体设计本程序主要包括四大模块:输入输出模块、数据处理模块、查询模块和程序结束模块。输入输出模块的主要功能是接收键盘传来的信息,将信息存入相应的结构体里,等待信息的处理。将处理好的数据按各种形式输出并显示在屏幕上;数据处理模块主要的功能是将接收来的数据进行处理,将数据进行计算和整理好,并再存入结构体中;查询模块的主要功能是按照用户的要求以某种方式将处理好的数据显示在屏幕上;程序结束模块主要功能是调用结束显示系统,结束程序。c语言运动会成绩管理程序全文共4页,当前为第4页。c语言运动会成绩管理程序全文共4页,当前为第4页。运动会成绩管理系统的整体结构:主循环控制模块主循环控制模块数据输入模块信息查询模块程序结束模块数据处理模块数据输出模块c语言运动会成绩管理程序全文共5页,当前为第5页。3、程序的函数设计c语言运动会成绩管理程序全文共5页,当前为第5页。函数原型函数功能函数处理描述voidmain()主函数全局控制程序的运行voidinput()录入信息按提示输入运动会的成绩voidmenu()菜单面板显示功能菜单以便选择voidbianhao()编号排序按学校的编号排序输出voidzongfentongji()总分排序按学校的总分排序输出voidmalezongfen()男子总分排序按学校的男子总分排序输出voidfemalezongfen()女子总分排序按学校的女子总分排序输出voidchaxunsch()查询学校信息按提示查询学校的分数和名次viodchaxunxiangmu()查询项目信息查询任意项目的得主和相关信息voidxiugaixiangmuchengji()修改项目成绩按照项目来修改成绩voidprint(inti)输出显示系统被各个排序输出函数调用voidThank()结束显示系统程序结束时显示的内容使用的函数及其功能使用的函数及其功能4、界面的设计系统使用基本语言输入输出函数处理该程序。在输入完基本的录入信息后,用户可通过菜单面板来选择功能来运行程序。菜单共提供了八种功能以便选择选择,分为排序、查询和修改功能。其菜单面板如下:c语言运动会成绩管理程序全文共6页,当前为第6页。c语言运动会成绩管理程序全文共6页,当前为第6页。5、程序运行的流程图c语言运动会成绩管理程序全文共7页,当前为第7页。开始c语言运动会成绩管理程序全文共7页,当前为第7页。开始主菜单按学校编号排序输出按学校总分排序输出按学校男子总分排序输出按学校女子总分排序输出查询某个学校成绩查询某个项目成绩按项目修改成绩退出输入学校成绩结束四、源程序#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//表示项目的结构体{ intz; charname[10];//项目名称 intsnum1[4]; //前3名学校的编号 intsnum[6]; //前5名学校的编号}p[21];structschool//表示学校的结构体{intnum;charname[10];//学校名称intscore;//学校总分intmale;//男子总分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运动会成绩管理系统\n");printf("\n请输入学校数目(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("输入数据有误,请重新输入:\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("输入男子项目数[1_20]和女子项目数[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("输入数据有误,请重新输入:\n");}for(i=1;i<=m+w;i++){ printf("输入第%d项目个的名称:\n",i);scanf("%s",p[i].name); printf("请选择该项目设立的奖项数(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("输入数据有误,请重新输入:\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("输入数据有误,请重新输入:\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:\\运动会分数总分表.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);}//总分函数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("输入数据有误,请重新输入:");}printf("该学校相关信息:\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("输入数据有误,请重新输入:");} 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("输入数据有误,请重新输入:\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个项目设立的奖项数(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("输入数据有误,请重新输入:\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("输入数据有误,请重新输入:\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]; } }}//程序结束显示系统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[]={"运","动","会","成","绩","管","理","系","统"}; 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("*****欢迎使用运动会成绩管理系统*****\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");}//主函数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();getchar(); break;case'0': chars1[5]={'n'}; system("cls"); printf("你确定要退出系统?Y/N:\n"); scanf("%s",s); if(strcmp(s,s1)) { system("cls"); Thank(); Sleep(500); exit(0); } else { system("cls");c语言运动会成绩管理程序全文共20页,当前为第20页。 menu();c语言运动会成绩管理程序全文共20页,当前为第20页。 getchar(); }}}}五、运行程序以及测试程序程序的基本功能在前面已经大概的说了,分为八个功能。在录入完数据后,就可逐一的对其功能进行测试了。在使用程序时可以看出它的操作是比较简单的,因此它的测试也比较简单。主要的测试有:程序的界面是否按照设想绘制而成、设置的功能是否实现、系统能否正常结束等1、初始化数据的测试在程序开始前,需要输入一些数据。在输入数据时,会有相应的提示,提示中也有对输入数据进行限制的范围。你可在输入数据时,输入该范围之外的数据来进行测试。查看程序是否能做出正确的判断,是否还能正确的运行。2、按键测试2.按学校总分排序输出3.按学校男生总分排序输出4.按学校女生总分排序输出5.查询某个学校成绩6.查询某个项目成绩0.退出程序按任意键继续看以上按键是否能实现相应的功能3、功能测试c语言运动会成绩管理程序全文共21页,当前为第21页。在录入完数据时,程序将显示其菜单面板,程序的菜单面板中共有8种功能可供选择。功能分别由1—8进行控制。你可分别输入1—8对程序功能进行测试,看是否达到功能的要求,是否存在程序不能正常运行的问题。c语言运动会成绩管理程序全文共21页,当前为第21页。4、运行测试反复运行几次,查看运行结果是否正确,是否和自己预想的相符。进行错误输入故意输入一些有问题的数据,看程序是否能自己发现问题。六、不足之处该程序不能实现将存入文件的信息直接调用,使得每次运行时都需要输入信息,给工作者带来了些许不便。程序的界面也太简单,不美观,没有给人视觉上的享受。对于一些隐性输入数据错误程序不能及时发现。而且,由于学生实力有限,程序还不够成熟,还存在一些问题不能被发现,程序也不够完善。七、小结经过这一、两个月的设计和对相关资料的收集。让我清楚的感到随着网络科技的不断发展和网络的广泛应用,使我们的生活离不开它了。网络它以自己的独特的优点征服了我们。在21世纪,随着人们对信息的需求量的不断增涨,管理方面的工作量也会越来越大。并且其工作将是一件十分烦琐和非常容易出错的事情,这使人们对信息的处理能力需求更高。在这样的情况下有一个实用的运动会成绩管理系统是有其必然性的。,运动会成绩管理类型的程序不断涌现和成绩管理要求的不断提高,如果能做出一个完善的运动会成绩管理系统就使管理方面的工作量减少很多。在这次的设计中虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。八、参考文献[1]颜晖.C语言程序设计.北京:高等教育出kok电子竞技社,2008.[2]陈建新.数据结构.武汉大学出kok电子竞技社,2008c语言运动会成绩管理程序全文共22页,当前为第22页。[3]严蔚敏吴伟民.数据结构(c语言kok电子竞技).清华大学出kok电子竞技社2010c语言运动会成绩管理程序全文共22页,当前为第22页。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论