1、2.2.1定义数据类型 本程序首先定义了两个结构体作为项目和分数的存储媒介,一是项目结构体,定义了项目名称,前五名学校编号,二是学校结构体,定义了学校编号、学校姓名、学校总分、男子总分、女子总分。定义如下:【1】【2】项目结构体struct pro /表示项目的结构体 string name; /项目名称 int snum6; /前5名学校的编号 p21; 学校结构体struct school /表示学校的结构体 int num; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21;2.2.2主函数及其流程图定义主函数
2、main()和一系列的功能函数,只有通过这些函数才可实现程序的功能。每次使用都会调用菜单函数。主函数主要是利用for循环语句和while循环语句对数据进行处理。35 图 2 主函数流程图2.2.3输入函数及其流程图 否 是图 3 输入函数流程图2.2.4功能函数流程图图 4 按编号排列流程图图 5 输入查询项目编号流程图 图 6 按学校总分排列流程图图 6 按学校总分排列流程图2.3源程序:#includeiostreamstringiomanipfstreamusing namespace std;int n; /n个学校 int m; /m个男子项目 int w; /w个女子项目 stri
3、ng name; int num;int integral5=7,5,3,2,1;/前五名得分 void input() int i,j,y,x;printf(输入学校数目:);y=0;while(1) scanf(%d,&n);if(n=1&n=20)y=1;if(y)break;else printf(输入数据有误,请重新输入: for(i=1;ischi.name;schi.score=0;schi.female=0;schi.male=0;schi.num=i;输入男子项目数和女子项目数:%d%dm,&w);if(mw=1)y=1;=m+w;输入第%d个项目的名称:nfor(i=0;=
4、(m+w);scanf (%dsnschi.name );输入第%d个项目的前5名的学校编号:for(j=1;jxpi.snumj=x;schx.score+=integralj-1;if(ischj.num) t=schi;schi=schj;schj=t;n按编号排列:编号 学校名称 总分 男子总分 女子总分nprint(i);void zongfen() /按学校总分排序 for(j=i;if(schi.scoreschj.score) n按学校总分排列:ofstream fout;fout.open(运动会分数统计.txtprintf(,i,t,schi.score,schi,schj
5、); fout.close();void malezf() /按学校男总分排序 int i,j;if(schi.maleschj.male) n按学校男子总分排列:void femalezf() /按学校女总分排序 if(schi.females=n)y=1;该学校相关信息:if(schi.num=s) break;void cxxm() /查询项目信息 输入需要查询的项目编号:前5名学校编号及名称为:名次 编号 学校名称n%d,%d,%cn,i,y,s);void solve() /菜单函数 int z;n选择您需要的操作(选择序号):1.按学校编号排序输出n2.按学校总分排序输出n3.按学
6、校男总分排序输出n4.按学校女总分排序输出n5.查询某个学校成绩n6.查询某个项目成绩n7.结束nnz);if(z=1)bianhao();if(z=2)zongfen();if(z=3)malezf();if(z=4)femalezf();if(z=5)cxsch();if(z=6)cxxm();if(z=7)break;int main() /主函数input();solve();return 0;3. 设计结果与分析3.1运行程序将源程序编译、链接后生成可执行文件,运行该文件会看到如图7所示的提示信息,输入9后按回车,根据提示输入信息,如图所示:图 7 输入参加运动会的学校数目和名称的界
7、面运行程序时,首先调用input()函数,该函数主要是利用for循环输入各个参加运动会的学校的名称。3.2 增加信息输入如上信息,按回车,并根据提示输入运动会的项目个数和名称以及各个项目前5名的学校编号,出现如下的界面: 图 8 输入运动会的项目个数和名称以及各个项目前5名的学校编号的界面 输入后系统调用input()函数,并提示输入第n个项目的名称,回车提示输入获得本项目前五名的学校编号,先利用if 语句判断是否满足条件,再利用for 循环语句输入相关的信息。3.3功能操作 3.3.1输入完毕按回车,出现菜单函数界面 图 9 菜单函数界面 输入信息结束后按回车,出现菜单函数界面,此时系统调用
8、solve()函数,该函数主要是利用printf语句输出,其结图所示。3.3.2按学校编号顺序输出 图 10 按学校编号顺序输出界面 在输入1按回车后,结果如图所示。该部分调用bianhao()函数对学校排序,主要利用for循环语句嵌套的选择法来进行排序,用for 循环语句输出结果。3.3.3按学校总分排序输出 图 11 按学校总分排序界面 本部分调用zongfen()函数对各学校的总分数排序,在输入2后按回车出现如图界面。主要是利用for循环语句嵌套的选择法来进行排序,用for循环语句输出结果。3.3.4按学校男总分排序输出 图 12 按学校男子总分排序界面 本部分调用malezf()函数对
9、各学校的女子分数排序,在输入3后按回车出现如图界面。3.3.5按学校女总分排序输出图 13 按学校女子总分排序界面 本部分调用femalezf()函数对各学校的女子分数排序,在输入2后按回车出现如图界面。主要是利用for循环语句双层嵌套的选择法来进行排序,用for循环语句输出结果。3.3.6查询学校编号为3的相关信息和分数 图 14 查询某学校的分数 本部分调用cxsch()函数对某学校的分数查询,输入5按回车后,出现提示信息“输入需要查询的学校编号:”根据提示输入3,按回车后,结果如图所示。该部分利用while循环语句可以实现多次查询,并利用if语句判断是否满足条件,满足则执行输出结果语句,
10、否则提示错误信息。3.3.7查询项目编号为6的运动项目信息和前五名学校排名 图 15 查询某项目成绩界面 本部分调用cxxm()函数对某项目的分数排序,输入6按回车后,出现提示信息“输入需要查询的项目编号:”,根据提示输入6,按回车后,结果如图所示。该部分利用while循环语句可以实现多次查询,并利用if语句判断是否满足条件,满足则执行输出结果语句,否则提示错误信息3.3.8退出程序 图 16 退出程序界面 输入7按回车后,结果如图所示,此时函数执行break语句,出现“Press any key to continue” 提示信息,结束程序。四、设计体会经过这学期对C语言的学习,我们学习了理
11、论知识,了解了C语言程序设计的思想和方法,这些知识都为我们的下一步学习打下了坚实的基础。本次课程设计,我的题目是运动会分数统计系统,通过这几天的上网查找资料和编译运行,我发现自己在各个方面还有很多不足,希望经过这次的实践后,不断学习,努力充实自己,开拓眼界,转换思维,不断提升自身能力,具有更好的编程能力。在本次的课程设计中,遇见的最大的问题是对程序的编译和运行,还有一些知识不是很熟练。而且由于是第一次接触这样长而且复杂的程序,在开始时有些胆怯,担心自己会完成不好,但经过一周时间的上网查找和翻阅资料,终于完成了课程设计。通过此次课程设计,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够
12、的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力,增强了自己的动手能力,使自己的实践能力得到提高,同时也意识到自己的不足,需要在今后的道路上不断地的学习来充实自己。五、参考文献1梁建武、陈英 Visual C+程序设计实验指导与实训M. 中国水利水电出版社,2006.7 173-1782李岚,李莉,金一宁. C语言程序设计与上机指导M. 北京: 清华电子工业出版社, 2005.5 1982023苏小红, 陈惠鹏, 温东新,李秀坤教程M北京:电子工业出版社,2004.1(3)123-1334梁翎、李爱齐 C语言程序设计实用技巧与程序实例J 计算机科学报 1996.5 126-1355王敬华,林 萍, 陈 静. C语言程序设计教程M. 北京:清华大学出版社, 2005.10 1846胡玲洁 VC+编程技术与技巧研究J 电脑编程技巧与维护报 2009年第16期 198-2037林秋申 C/C+的编程风格与强壮性的探讨J 莆田学院学报 2002年第3期 142-148
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1