已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学华清学院大作业(论文)西安建筑科技大学大作业设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、大作业题目 纸牌游戏二、本次大作业应达到的目的编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些? 三、本次大作业任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 数据对象:ji=0,bi-1,i=1,2,n,d= aj1j2jn|n(0)称为数组的维数,bi是数组第i维的长度, ji是数组第i维的下标, aj1j2jnelemset数据关系:r=r1,r2,rnri=|0jkbk-1,1kn且ki, 0jibk-2, aj1jijn,aj1,ji+1,jnd,i=2,n要求:输出最后正面向上的牌四、应收集的资料及主要参考文献: 1 严蔚敏.数据结构 c语言.清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3数据结构.高教出版社 4 李春保.数据结构习题.清华大学出版社5 严蔚敏.数据结构习题.清华大学出版社6 王立柱.c语言与数据结构.清华大学出版社7 李春葆.数据结构(c语言篇)习题与解析.清华大学出版社89/datastructure/index.html10/course_ware/data_structure/web/main.htm11/class/index.asp?classid=912/press/html/booklist/book/a0764.htm13http:/007./datastru.html五、审核批准意见教研室主任(签字) 西安建筑科技大学大作业设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、大作业题目 运动会分数统计二、本次大作业应达到的目的参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20) 三、本次大作业任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分;3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形。四、应收集的资料及主要参考文献: 1 严蔚敏.数据结构 c语言.清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3数据结构.高教出版社 4 李春保.数据结构习题.清华大学出版社5 严蔚敏.数据结构习题.清华大学出版社6 王立柱.c语言与数据结构.清华大学出版社7 李春葆.数据结构(c语言篇)习题与解析.清华大学出版社89/datastructure/index.html10/course_ware/data_structure/web/main.htm11/class/index.asp?classid=9 五、审核批准意见教研室主任(签字) 目 录摘要 (5)1 需求分析 (6) 1.1纸牌游戏 (6) 1.2运动会分数统计 (6)2 概要设计 (6) 2.1 纸牌游戏 (6) 2.1.1 数据类型分类 (6)2.1.2系统功能的实现 (6)2.1.3 系统整体流程图 (7) 2.2运动会分数统计 (7) 2.2.1 数据类型分类 (7)2.2.2系统功能的实现 (8)2.2.3 系统整体流程图 (8)3 详细设计 (9) 3.1 纸牌游戏 (9)3.1.1添加纸牌游戏流图 (9) 添加输出正面朝上模块 (10)添加纸牌游戏函数实现 (11)3.2运动会分数统计 (12)3.2.1添加运动会分数统计住流程图流程图 (12)添加成员函数介绍模块 (13)添加学校代码查询某个项目的情况模块 (14)添加项目代号查询取得成绩的学校模块(14)添加统计各学校总分模块 (15)运动会分数统计函数实现 (16)4 调试分析 (24)4.1 纸牌游戏调试分析 (24) 4.2 运动会分数统计调试分析 (25)5 总结 (30)参考文献 (32)摘 要 今日,我们的地球信息化,网络化,结构化的发展模式已经成为主流,对于如何办好一届属于二十一世纪的高科技绿色环保的奥运会,我们持之以恒的努力!在传统的统计分数的方式上加入大量的先进技术设备,使其成为一届前无古人的充满现代气息的奥林匹克运动会!在高度信息化的前提下,我们利用最基础计算机通用语言c语言对程序进行调试,使得其功能更加完善,以求达到预期的效果!此外,在编辑程序的过程中,我们利用循环链表实现对程序的循环功能!趁这次程序设计课程掌握了程序设计,其任务是纸牌游戏设计与运动会分数统计设计,并且对其进行程序调试。关键词:信息化,先进,c语言,掌握 1 需求分析1.1纸牌游戏: 编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?1.2 运动会分统计: 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n0)称为数组的维数,bi是数组第i维的长度, ji是数组第i维的下标, aj1j2jnelemset数据关系:r=r1,r2,rnri=|0jkbk-1,1kn且ki, 0jibk-2, aj1jijn,aj1,ji+1,jnd,i=2,n2.1.2系统功能的实现操作结果:对纸牌进行翻转 adt sqlist本程序包含两个模块:(1) 主程序模块void main()定义一个二叉树;for(i=1;i=52;i+) l.ri.num=i;l.ri.visit=0;/用0来记正面(2) 纸牌翻转模块翻转纸牌各模块之间的调用关系如下:主程序模块纸牌翻转模块2.1.3系统整体流程图图2-1-3系统整体流程图2.2运动会分数统计2.2.1 数据类型分类该程序是针对运动会分数统计管理的一个简单系统包含运动会信息输入、成绩查询、学校成绩查询等功能,使用模块化编程设计void xxbh( ) 、void xxzf( )、void malezf( )、 void femalezf( )、void cxsch( )、 void cxxm( )6个函数完成实验要求的各项功能。2.2.2系统功能的实现1、学校编号排序模块:用于对学校编号排列输出,可以用void xxbh( )函数实现功能。2、按学校总分排序模块:用于对学校总分排列输出,可以用void xxzf ( )函数实现功能。3、按学校男总分排序模块:用于对学校男子总分排列输出,可以用void malezf( )函数实现功能。 4、按学校女总分排序模块:用于对学校女子总分排列输出,可以用void fexxnf( )函数实现功能。5、查询某个学校成绩模块:用于查询某个学校的比赛成绩信息输出,可以用void cxsch( )函数完成此功能。 6、查询某个项目成绩模块:用于查询某个学校的比赛成绩信息输出,可以用void cxxm( )函数完成此功能2.2.3 系统整体流程图开始输入相关信息(学校信息和项目信息)判断输入信息是否正确输入前三名信息统计学校总分按编号排序输出按总分排序输出按男子总分排序输出按女子总分排序输出结束图2-2-3 系统整体流程图3 详细设计3.1纸牌游戏 3.1.1添加纸牌游戏流程图图3-1-1纸牌游戏主流程图添加输出正面朝上模块图3-1-1-1输出正面朝上流程图添加纸牌游戏函数实现#include #include #include int main() int aa53, k=2, i,j ; for(i=1;i53;i+) aai=i ; for(i=2;i53;i+) for(j=k;j53;j+) if(j%k=0) if(aaj=0) aaj=j ; else aaj=0 ; k=k+1 ; printf( 最后正面向上的纸牌编号为: n); for(i=1;i53;i+) if(aai=0)continue ; printf(%4d,aai); printf(nnn);printf(请按任意键退出程序!); getch(); 3.2运动会分数统计3.2.1添加运动会分数统计主流程图图3-2-1运动会分数统计主流程图添加成员函数介绍模块3-2-1-1添加成员函数介绍流程图添加学校代码查询某个项目的情况模块3-2-1-2添加学校代码查询某个项目的情况流程图添加项目代号查询取得成绩的学校模块项目代号查询取得成绩的学校流程图添加统计各学校总分模块在统计学校总分和各学校男女项目总分时,在统计男(女)项目总分时只需要确定下是否是男(女)子项目,如果是就加,判断方法就是男子项目代号小于等于男子项目数而女子项目则大于男子项目数。3-2-1-4添加统计各学校总分流程图运动会分数统计函数实现#include#include#includeusing namespace std;int n; /n个学校int m; /m个男子项目int w; /w个女子项目struct pro /表示项目的结构体string name; /项目名称int snum6; /前5名学校的编号p21;struct school /表示学校的结构体int num;string name; /学校名称int score; /学校总分int male; /男子总分int female; /女子总分sch21;int a101101;int integral5=7,5,3,2,1;/*函数原型void input();void print(int i);void xxbh();/*按编号排序void xxzf();/*按学校总分排序void malezf();/*/按学校男总分排序void femalezf();/*/按学校女总分排序void cxsch();/*/查询学校信息void cxxm();/*查询项目信息void solve();int main()input();solve();return 0;void input()int i,j,y,x;printf(*请输入学校数目*n);y=0;while(1) scanf(%d,&n); if(n=1&n=20)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);for(i=1;; schi.score=0; schi.female=0; schi.male=0; schi.num=i;printf(*输入男子项目数和女子项目数*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;; printf(*输入第%d个项目的前5名的学校编号*n,i); for(j=1;j=1&x=20)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n); pi.snumj=x; schx.score+=integralj-1; if(i=m)schx.male+=integralj-1; else schx.female+=integralj-1; void print(int i)coutschi.numsetw(13)setw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl;void xxbh()/*按编号排序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 xxzf()/*按学校总分排序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+) print(i);void malezf()/*/按学校男总分排序int i,j;school 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);void femalezf()/*/按学校女总分排序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);for(i=1;i=n;i+) print(i);cout=1&s=n)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);printf(*此该学校全部信息*n);printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) if(schi.num=s) print(i); break; cout=1&s=n)y=1; if(y)break; else printf(*您的输入有误,请重新输入!*n);*前5名学校编号及名称为:*endl;printf(名次 编号 学校名称n);for(i=1;i=5;i+) cout i ps.snumisetw(12)sch ps.snumi .nameendl;coutendl;void solve()int z;while(1) printf(nnnn); printf( n); printf( 欢迎进入运动会分数统计系统 n); printf(n); printf( 1.按学校编号排序输出 n); printf( 2.按学校总分排序输出 n); printf( 3.按学校男总分排序输出 n); printf( 4.按学校女总分排序输出 n); printf( 5.查询某个学校成绩 n); printf( 6.查询某个项目成绩 n); printf( 7.安全退出系统 n); printf(n); printf(请选择(1-7)进行操作:); scanf(%d,&z); if(z=1)xxbh(); if(z=2)xxzf(); if(z=3)malezf(); if(z=4)femalezf(); if(z=5)cxsch(); if(z=6)cxxm(); if(z=7)break;4 调试分析4.1纸牌游戏调试分析运行中出现的部分错误图4-1-1运行中出现的错误解决方法:在函数前面加入头文件#include 。程序功能运行结果展示图4-1-2程序功能运行结果4.2运动会分数统计调试分析运行中出现的部分错误图4-2-1运行中出现的错误解决方法:在第45至53行每个函数声明后加“;”。 (1)学校信息录入运行结果图4-2-2学校信息录入运行结果(2)按学校编号排列运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国地质科学院地质研究所公开招聘应届毕业生2人高频重点提升(共500题)附带答案详解
- 2025中国储备粮管理集团限公司招聘800人高频重点提升(共500题)附带答案详解
- 2025中化学交通建设集团限公司校园招聘60人高频重点提升(共500题)附带答案详解
- 2025下半年黑龙江东北农业大学人才招聘拟聘用高频重点提升(共500题)附带答案详解
- 2025下半年贵州省关岭自治县事业单位招聘28人历年高频重点提升(共500题)附带答案详解
- 2025下半年江苏无锡市梁溪区事业单位招聘36人高频重点提升(共500题)附带答案详解
- 2025下半年安徽池州市市直事业单位招聘(四)高频重点提升(共500题)附带答案详解
- 2025下半年四川绵阳涪城区事业单位招聘66人高频重点提升(共500题)附带答案详解
- 2025下半年事业单位联考青海招聘历年高频重点提升(共500题)附带答案详解
- 2025上海交通学校事业单位招聘4人历年高频重点提升(共500题)附带答案详解
- 安置帮教业务培训
- 天津市部分重点中学高一上学期期末考试数学试卷及答案(共四套)
- 镇江市2023-2024学年九年级上学期期末英语试卷(含答案解析)
- 医院禁毒行动方案
- 学生公寓物业服务方案投标方案(技术方案)
- 水上交通安全生产培训
- 加强老旧小区物业管理的思考
- 超声影像学基础
- 仓库温湿度分布验证报告
- 【A科技公司员工招聘问题调查研究及优化策略13000字(论文)】
- 土地整治投标方案(完整技术标)
评论
0/150
提交评论