c语言运动会成绩管理程序.doc

上传人:文库蛋蛋多 文档编号:2385011 上传时间:2023-02-17 格式:DOC 页数:22 大小:107KB
返回 下载 相关 举报
c语言运动会成绩管理程序.doc_第1页
第1页 / 共22页
c语言运动会成绩管理程序.doc_第2页
第2页 / 共22页
c语言运动会成绩管理程序.doc_第3页
第3页 / 共22页
c语言运动会成绩管理程序.doc_第4页
第4页 / 共22页
c语言运动会成绩管理程序.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《c语言运动会成绩管理程序.doc》由会员分享,可在线阅读,更多相关《c语言运动会成绩管理程序.doc(22页珍藏版)》请在三一办公上搜索。

1、数据结构程序课程设计报告题目:运动会成绩管理班级:xxxxx学号:xxxxxxx姓名:xxx指导教师:xxx2011年11月14日目录一、前言1二、问题描述3三、设计及实现要点41、程序结构体定义42、程序总体设计43、程序的函数设计54、界面的设计65、程序运行的流程图6四、源程序8五、运行程序以及测试程序211、初始化数据的测试212、按键测试213、功能测试214、运行测试22六、不足之处22七、小结22八、参考文献22一、前言随着中国加入WTO,意味着我国要在同一个网络平台上参与国际竞争,同世界接轨.这对我们既是一个机遇,也是一个挑战.信息技术也渗透到生活中的各个领域。无论是教育,卫生

2、,还是政治,经济无不折射出信息技术的影子。当然体育也不会例外。尤其在2008年的奥运会中计算机技术更是发挥的淋漓尽致。信息的传输愈加快捷,这也使得人类的生活节奏加快。人们为了赶上时代的脚步,总在不停的吸收新的信息。为了适应这种快捷奏的生活,因此,一些简便快捷的应用软件如雨后春笋般出现在人们的视线里。这些软件让人们在处理数据信息时,不但提高了速度,也提高了效率。为人们带来了方便。经过一个学期对数据结构这门课程的学习,以及平时自己做的相应的程序设计题。为了将自己的所学知识学以致用,同时也为了提高自己的编程水平,培养用计算机解决实际问题的能力。本报告将推出一款对运动会成绩管理的程序。它将为我们在筹办

3、完运动会后,让我们对分数的统计和计算,以及最终结果的查询提供方便。数据结构作为计算机专业基础课,该课程的目标就是使学生学会如何从问题出发,分析数据,构造求解问题的数据结构和算法,培养学生有一定进行较复杂程序设计的能力。二、问题描述运动会成绩管理系统是对运动会最终得分进行处理的程序。它包含对各个学校总分数、男子总分和女子总分的计算;分别按学校总分、男子总分和女子总分排序输出;还有按学校查询和按运动项目查询;以及当某项目成绩输入有误时,进行修改和更正等一些操作。程序还有一些可供选择功能。完全的人性化,每一步都有相应的提示,让人们知道该做什么。程序还有存入文件中,也可去文件中查看成绩。现在要求在VC

4、环境下运行。基本功能:1、 按学校编号排序输出;2、 按学校总分排序输出;3、 按学校男子总分排序输出;4、 按学校女子总分排序输出;5、 查询某个学校成绩;6、 查询某个项目成绩;7、 按项目修改成绩;8、 输入学校成绩;9、 退出程序;三、设计及实现要点1、程序结构体定义 项目结构体:struct pro int z;string name; /项目名称 int snum14;/前3名学校的编号int snum6;/前5名学校的编号 p21; 学校结构体:struct school int num; string name; /学校名称 int score; /学校总分 int male;

5、 /男子总分 int female; /女子总分 sch21;2、程序总体设计本程序主要包括四大模块:输入输出模块、数据处理模块、查询模块和程序结束模块。输入输出模块的主要功能是接收键盘传来的信息,将信息存入相应的结构体里,等待信息的处理。将处理好的数据按各种形式输出并显示在屏幕上;数据处理模块主要的功能是将接收来的数据进行处理,将数据进行计算和整理好,并再存入结构体中;查询模块的主要功能是按照用户的要求以某种方式将处理好的数据显示在屏幕上;程序结束模块主要功能是调用结束显示系统,结束程序。运动会成绩管理系统的整体结构:主循环控制模块数据输入模块信息查询模块程序结束模块数据处理模块数据输出模块

6、3、程序的函数设计函数原型函数功能函数处理描述void main()主函数全局控制程序的运行void input()录入信息按提示输入运动会的成绩void menu()菜单面板显示功能菜单以便选择void bianhao()编号排序按学校的编号排序输出void zongfentongji()总分排序按学校的总分排序输出void malezongfen()男子总分排序按学校的男子总分排序输出void femalezongfen()女子总分排序按学校的女子总分排序输出void chaxunsch()查询学校信息按提示查询学校的分数和名次viod chaxunxiangmu()查询项目信息查询任意项

7、目的得主和相关信息void xiugaixiangmuchengji()修改项目成绩按照项目来修改成绩void print(int i)输出显示系统被各个排序输出函数调用void Thank()结束显示系统程序结束时显示的内容使用的函数及其功能4、界面的设计系统使用基本语言输入输出函数处理该程序。在输入完基本的录入信息后,用户可通过菜单面板来选择功能来运行程序。菜单共提供了八种功能以便选择选择,分为排序、查询和修改功能。其菜单面板如下:5、程序运行的流程图开始主菜单按学校编号排序输出按学校总分排序输出按学校男子总分排序输出按学校女子总分排序输出查询某个学校成绩查询某个项目成绩按项目修改成绩退出

8、输入学校成绩结束四、源程序#include stdafx.h#include #include #include #include#include #include #include using namespace std; int n; /n个学校 int m; /m个男子项目 int w; /w个女子项目 struct pro /表示项目的结构体 int z;char name10; /项目名称 int snum14;/前3名学校的编号int snum6;/前5名学校的编号 p21; struct school /表示学校的结构体 int num; char name10; /学校名称 i

9、nt score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; int a101101; int integer3=5,3,2;int integral5=7,5,3,2,1; /评分标准设置void input() /录入信息 int i,j,y,x; printf(*n); printf(ntt运动会成绩管理系统n); printf(n请输入学校数目(5=n=5&n=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:n); for(i=1;ischi.name; schi.score=0; schi.

10、female=0; schi.male=0; schi.num=i; printf(输入男子项目数1_20和女子项目数1_20:n); y=0; while(1) scanf(%d%d,&m,&w); if(m=1&w=1)y=1; if(y)break; else printf(输入数据有误,请重新输入:n); for(i=1;i=m+w;i+) printf(输入第%d项目个的名称:n,i); scanf(%s,pi.name); printf(请选择该项目设立的奖项数(3或5项):n);y=0;while(1)scanf(%d,&pi.z);if(pi.z=3|pi.z=5)y=1;if

11、(y)break;elseprintf(输入数据有误,请重新输入:n);printf(输入第%d个项目的前%d名的学校编号:n,i,pi.z); for(j=1;j=1&x=n)y=1; if(y)break; else printf(输入数据有误,请重新输入:n); if(pi.z=3)pi.snum1j=x;schx.score+=integerj-1;if(i=m)schx.male+=integerj-1; else schx.female+=integerj-1; elsepi.snumj=x;schx.score+=integralj-1;if(i=m)schx.male+=int

12、egralj-1; else schx.female+=integralj-1; ofstream outfile1(c:运动会分数总分表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1编号 学校名称 总分 男子总分 女子总分nendl; for(i=1;i=n;i+)/i=schi outfile1schi.numsetw(8)schi.namesetw(12)schi.score setw(12)schi.malesetw(12)schi.femaleendl; outfile1.close(); void print(

13、int i) coutschi.numsetw(13)schi.namesetw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl; /按编号排序void bianhao() int i,j; school t; for(i=1;in;i+) for(j=i;jschj.num) t=schi;schi=schj;schj=t; printf(n按编号排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); /总分函数void zongfentongji() /按学校总

14、分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.scoreschj.score) t=schi;schi=schj;schj=t; printf(n按学校总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) coutschi.numsetw(13)schi.namesetw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl; /按学校男总分排序 void malezongfen() int i,j; sch

15、ool t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.maleschj.male) t=schi;schi=schj;schj=t; printf(n按学校男子总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); ofstream outfile1(c:运动会男子总分排序表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1编号 学校名称 总分 男子总分 女子总分nendl; for(i=1;i=n;i+)/i=s

16、chi outfile1schi.numsetw(8)schi.namesetw(12)schi.score setw(12)schi.malesetw(12)schi.femaleendl; outfile1.close(); /按学校女总分排序 void femalezongfen() int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.femaleschj.female) t=schi;schi=schj;schj=t; printf(n按学校女子总分排列:n); printf(n编号 学校名称 总分 男子总分 女子总分n)

17、; for(i=1;i=n;i+) print(i); printf(n); ofstream outfile1(c:运动会女子总分排序表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1编号 学校名称 总分 男子总分 女子总分nendl; for(i=1;i=n;i+)/i=schi outfile1schi.numsetw(8)schi.namesetw(12)schi.score setw(12)schi.malesetw(12)schi.female=1&s=n)y=1; if(y)break; else printf

18、(输入数据有误,请重新输入:); printf(该学校相关信息:n); printf(n编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) if(schi.num=s) print(i); break; cout=1&s=m+w) y=1; if(y) break; else printf(输入数据有误,请重新输入:); if(ps.z=3)printf(前3名学校编号及名称为:n);printf(名次t 编号t 学校名称n); for(i=1;i=3;i+) coutisetw(12)ps.snum1isetw(12)sch ps.snum1i .nameendl

19、; coutendl; elseprintf(前5名学校编号及名称为:n);printf(名次t 编号t 学校名称n); for(i=1;i=5;i+) coutisetw(12)ps.snumisetw(12)sch ps.snumi .nameendl; coutendl;/按项目修改成绩void xiugaixiangmuchengji()int i,j,k,x,y;printf(输入需要修改的项目编号:n);y=0;while(1)scanf(%d,&k);if(k0)y=1;if(y)break;elseprintf(输入数据有误,请重新输入:n);if(pk.z=3)for(i=1

20、;i=pk.z;i+)if(k=m)schpk.snum1i.score=schpk.snum1i.score-integeri-1;schpk.snum1i.male=schpk.snum1i.male-integeri-1;elseschpk.snum1i.score=schpk.snum1i.score-integeri-1;schpk.snum1i.female=schpk.snum1i.female-integeri-1;elsefor(i=1;i=pk.z;i+)if(k=m)schpk.snumi.score=schpk.snumi.score-integrali-1;schpk

21、.snumi.male=schpk.snumi.male-integrali-1;elseschpk.snumi.score=schpk.snumi.score-integrali-1;schpk.snumi.female=schpk.snumi.female-integrali-1;printf(输入第%d个项目设立的奖项数(3或5项):n,k);y=0;while(1)scanf(%d,&pk.z);if(pk.z=3|pk.z=5)y=1;if(y)break;elseprintf(输入数据有误,请重新输入:n);printf(输入第%d个项目的前%d名的学校编号:n,k,pk.z);f

22、or(j=1;j=1&x=n)y=1; if(y)break; else printf(输入数据有误,请重新输入:n); if(pk.z=3)pk.snum1j=x;schx.score+=integerj-1;if(k=m)schx.male+=integerj-1; else schx.female+=integerj-1; elsepk.snumj=x;schx.score+=integralj-1;if(k=m)schx.male+=integralj-1; else schx.female+=integralj-1;/程序结束显示系统void Thank() int i; char

23、*thank1=谢,谢,使,用; for(i=0;i4;i+) printf(%s,thank1i); Sleep(300); char *thank2=【,K,u,n,z,a,i,e,r,】; for(i=0;i10;i+) printf(%s,thank2i); Sleep(100); char *thank3=运,动,会,成,绩,管,理,系,统; for(i=0;i9;i+) printf(%s,thank3i); Sleep(300); printf(n);char *thank4=B,y,e,-,B,y,e,_; for(i=0;i8;i+) printf(%s,thank4i);

24、Sleep(100); coutendl;Sleep(500); /菜单面板void menu()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(选择您

25、需要的操作(选择序号):n); / 主函数void main() char s5;const M=30; menu(); char choose; bool flag; 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(你选择的是按学校总分

26、排序输出功能!n);system(pause);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(p

27、ause);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);system(pause);system(cls);chaxunxiangm

28、u();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();br

29、eak; case 0:char s15=n;system(cls);printf(你确定要退出系统?Y/N:n);scanf(%s,s);if(strcmp(s,s1)system(cls);Thank();Sleep(500);exit(0);elsesystem(cls);menu();getchar(); 五、运行程序以及测试程序程序的基本功能在前面已经大概的说了,分为八个功能。在录入完数据后,就可逐一的对其功能进行测试了。在使用程序时可以看出它的操作是比较简单的,因此它的测试也比较简单。主要的测试有:程序的界面是否按照设想绘制而成、设置的功能是否实现、系统能否正常结束等1、初始化数据的测试在程序开始前,需要输入一些数据。在输入数据时,会有相应的提示,提示中也有对输入数据进行限制的范围。你可在输入数据时,输入该范围之外的数据来进行测试。查看程序是否能做出正确的判断,是否还能正确的运行。2、按键测试1.按学校编号排序输出2.按学校总分排序输出 3.按学校男生总分排序输出 4.按学校女生总分排序输出 5.查询某个学校成绩 6.查询某个项目成绩 7.按项目修改成绩8.输入学校成绩0.退出程序按任意键继续看以上按键是否能实现相应的功能3、功能测试在录入完数据时,程序将显示其菜单面板,程序的菜单面板中共

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号