欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计报告 运动会计分系统.docx

    • 资源ID:16400373       资源大小:21.93KB        全文页数:21页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告 运动会计分系统.docx

    1、数据结构课程设计报告 运动会计分系统 软 件 学 院 课程设计报告书 月 12 2010 年 1 设计时间 . 3 2 设计目的 . 3 3 设计任务 . 3 4 设计内容 . 3 4.1 需求分析 . 3 4.2 总体设计 . 4 4.3 详细设计 . 6 4.4 测试与分析 . 9 4.4.1 测试 . 8 4.4.2 分析 . 8 4.5 附录 . 9 5 总结与展望 . 14 5.1设计总结 . 14 5.2优化展望 . 10 参考文献 . 15 成绩评定 . 15 1 设计时间 2010-12-272 设计目的 1. 通过设计、编码、调试等各环节的训练,深刻理解、牢固掌握数据结构和算

    2、法设计 技术,掌握分析、解决实际问题的能力。 2. 综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,逐步 掌握软件开发的基本思想、方法和实现步骤,提高实际应用水平。 3. 初步树立正确的程序设计思想,培养分析问题、解决问题的能力,提高查询资料和撰 写书面文件的能力。3设计任务 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子 项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20) 设计程序达到以下要求

    3、: (1)产生各院系的成绩单,内容包括各院系取得的每项成绩的项目号、名次(成绩)、姓名和得分; (2)产生团体总分报表,内容包括院系编号、男子团体总分和团体总分。 4 设计内容 4.1需求分析 本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。应具备一定的实用性。 4.1.1功能实现 (1)记录功能。能记录一次运动会的所有项目信息,如其编号,名称,是男子项目还是女子项目,是取前三名还是前五名,以及取得名次的学校编号;能记录参加本次运动会的学校个数,以及学校的编号。并能添加,修改,删除其

    4、中的信息。 )查询功能。能根据项目编号查询在该项目上获得名次的学校编号,并按名次先2(后顺序输出;能根据学校编号和项目编号查询该学校在该项目上获得的名次以及得分情况。 (3)统计功能。能统计各个学校的总分,男子团体总分,女子团体总分。 4.1.2相关规定输入数据形式和范围:20以内的整数,也可以输入学校的名称,运动:项目的名称 4.1.3输出形式:有中文提示,各学校分数为整形。 4.1.4界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 4.2总体设计 4.2.1定义程序所用到的抽象变量及结构体 int n,m,w; struct Result /* 定义项目比

    5、赛结果名次列表元素结构体 */ int scnum; /* 学院编号*/ char name20; /* 姓名 */ int position; /* 名次 */ int score; /* 得分 */ ; struct Match /* 定义运动项目结构体 */ int matnum; /* 项目编号 */ int num; /* 项目名次个数 */ struct Result list5; /* 名次列表数组 */ ; struct SchoolList /* 定义学院成绩单元素 */ int matnum; /* 项目编号 */ int position; /* 名次 */ char n

    6、ame20; /* 姓名 */ int score; /* 得分 */ ; struct School /* 定义学院结构体 */ int scnum; /* 学院校号 */ struct SchoolList list50; /* 成绩单列表数组 */ int team; /* 团体总分 */ int mteam; /* 男子团体总分 */ int fteam; /* 女子团体总分 */ int num; /* 累加数 */ ; struct Match ma50; /* 定义运动项目结构数组 */ struct School sc20; int a,b; /* 项目编号,项目名次个数 */

    7、 4.2.2定义程序所用函数 void Input (int c) /* 输入比赛数据函数 */ void Index ( void ) /* 整理比赛数据函数 */ void Teamsco ( void ) /* 团体成绩计算函数 */ void Output ( int a ) /* 输出学院成绩列表函数 */ */ 输出团体报表函数/* ) void TeamOutput ( voidvoid MatchOutput ( int t ) /* 输出比赛项目名次列表函数 */ 4.2.3 各程序模块之间的层次(调用)关系 Main() Input() Index() Output() T

    8、eamOutput() Teamsco()图 4.3.1 模块层次关系 4.3详细设计 主函数主要流程为: 1输入学院个数n,并输入男子m和女子项目个数w; 2调用input函数对m+n个项目分别选择名次类型并录入学院,姓名和成绩; 3在程序后台调用index函数处理录入的数据; 4在程序后台调用teamsco函数将成绩汇总,计算团体总分。 5调用TeamOutput函数输出团体报表; 6调用Output函数按学院查看报表; 7调用MatchOutput函数按项目查看报表; 8选择继续录入、返回按学院查看报表或按项目查看报表; 9结束; 输入学 院个数 n,并输 TeamOuTeamsco()

    9、 入男子mInput() Index() ) tput() 和女子项目个数w; Output() MatchOu 结束继续录入、tput() 返回查看 函数调用图4.3.2 图开始 输入学院数n输入男子项目数m, 女子项目数w 输入男子项目数m 输出学院数n,比赛项目m+w个,男子项目m个,女子项目w个 输入已结束的项目编号c 和输入名次类型rank Input(c) Index() Teamsco() Teamoutput() 输入学院编号查询成绩列表c 输入项目编号查询成绩列表c 返回查看学院比赛如果继续输入,输入1.2,3 结果输入返回查看项目结果输入结束 图4.3.3 流程图 4.4测

    10、试与分析 4.4.1测试 1. 输入参加比赛的学院个数8,男子项目数2,女子项目数2。 2. 输入已结束的项目编号1,并选择前5名。(输出:项目1取前5名)。 3输入学院编号、姓名、得分。输入另一已结束项目编号2(输出:项目2取前3名)。 4输入另一已结束项目编号3,并选择前5名。(输出:项目3取前5名)。 5输入另一已结束项目编号4(输出:项目4取前3名)。 6输入0,系统输出报表。 7输入学院编号查询成绩列表(输入3)。系统产生报表。 8. 输入需要查询排名的项目编号(输入2)。系统产生报表。 9. 输入0完成 10.输入0结束 4.4.2分析 该程序运行时需要逐步按照提示输入和判断,做出

    11、与系统相悖的输入或选择将返回重新与机器互动。程序运行时比较慢,可能是因为有些函数的时间复杂度较高。 1. input函数只有一次循环,且循环次数由选择的名次类型来定。时间复杂度O(n). 2. index函数是将运动员得分按学院和性别汇总。最多用到3次循环嵌套。时间复杂度O(n3)。 程序运行较慢的原因可能在于此。 3. teamsco函数用于计算团体总分。时间复杂度O(n2)。 4. Output函数用于输出报表,循环一次,时间复杂度O(n)。 5. TeamOutput 和MatchOutput函数分别用于输出团体报表和项目报表。时间复杂度均为O(n)。 4.5 附录 源程序 #inclu

    12、de #include #include int n,m,w; /* 定义代表学院、男子项目、女子项目数量的变量 */ struct Result /* 定义项目比赛结果名次列表元素结构体 */ int scnum; /* 学院编号*/ char name20; /* 姓名 */ int position; /* 名次 */ int score; /* 得分 */ ; struct Match /* 定义运动项目结构体 */ int matnum; /* 项目编号 */ int num; /* 项目名次个数 */ struct Result list5; /* 名次列表数组 */ ; stru

    13、ct SchoolList /* 定义学院成绩单元素 */ int matnum; /* 项目编号 */ int position; /* 名次 */ char name20; /* 姓名 */ int score; /* 得分 */ ; struct School /* 定义学院结构体 */ int scnum; /* 学院校号 */ struct SchoolList list50; /* 成绩单列表数组 */ int team; /* 团体总分 */ int mteam; /* 男子团体总分 */ int fteam; /* 女子团体总分 */ int num; /* 累加数 */ ;

    14、struct Match ma50; /* 定义运动项目结构数组 */ struct School sc20; int a,b; /* 项目编号,项目名次个数 */ void Input (int c) /* 输入比赛数据函数 */ int i,a,rank; a=c; do */ 判断名次类型5:);/* 名输入5取前3,名输入3取前:选择名次类型牰湩晴尨 scanf(%d,&rank); if (rank=3) maa-1.num=3; if(rank=5) maa-1.num=5; else if(rank!=3&rank!=5) 牰湩晴尨输入错误,请重新); while (rank!=

    15、3&rank!=5); printf(第%d项:取前%d名,a,maa-1.num); for(i=0;imaa-1.num;i+) maa-1.listi.position=i+1; do printf(输入第%d名所在学院编号(1-%d):,i+1,n); scanf(%d,&maa-1.listi.scnum); if(maa-1.listi.scnumn) printf(错误!输入的编号应为1-%d之间!,n); /* 输出出错信息 */ while (maa-1.listi.scnumn); 牰湩晴尨请输入此项获奖运动员姓名:); scanf(%s,&maa-1.listi.name

    16、); 牰湩晴尨请输入该运动员得分); scanf(%d,&maa-1.listi.score); 牰湩晴尨该运动员得分为:%d,maa-1.listi.score); return; void Index ( void ) /* 整理比赛数据函数 */ int i,j,k,t; for(i=0;in;i+) sci.scnum=i+1; /* 初始化学院编号 */ sci.num=0; /* 初始化累加数 */ for(i=0;im+w;i+) /* 项目个数 */ for(j=0;jmai.num;j+) /* 项目名次 */ for(k=0;kn;k+) /* 学院编号 */ if(mai

    17、.listj.scnum=sck.scnum) /* scnum学院编号 */ sck.listsck.num.matnum=mai.matnum; /*matnum项目编号*/ sck.listsck.num.position=mai.listj.position; for(t=0;t20;t+) /* 学院编号 */ sck.listsck.num.namet=mai.listj.namet; sck.listsck.num.score=mai.listj.score; sck.num+; return; void Teamsco ( void ) /* 团体成绩计算函数 */ int i

    18、,j; for(i=0;in;i+) sci.team=0; sci.mteam=0; sci.fteam=0; /* 初始化 */ for(i=0;in;i+) for(j=0;jsci.num;j+) sci.team=sci.team+sci.listj.score; /* 团体总分成绩计算 */ if(sci.listj.matnum=m) sci.mteam=sci.mteam+sci.listj.score; /* 男子团体成绩计算 */ else sci.fteam=sci.fteam+sci.listj.score; /* 女子团体成绩计算 */ return; void Ou

    19、tput ( int a ) /* 输出学院成绩列表函数 */ int i; printf(成绩报表 学院编号:%dn,a); 牰湩晴尨比赛项目编号 名次 姓名 得分n); for(i=0;isca-1.num;i+) printf (m_x0010_d_x0010_sdn,sca-1.listi.matnum,sca-1.listi.position, sca-1.listi.name,sca-1.listi.score); return; void TeamOutput ( void ) /* 输出团体报表函数 */ int i; printf(团体成绩报表n); 牰湩晴尨学院编号 团体总

    20、分 男子团体总分 女子团体总分n); for(i=0;in;i+) printf(_x0010_dddn,sci.scnum,sci.team,sci.mteam,sci.fteam); return; void MatchOutput ( int t ) /* 输出比赛项目名次列表函数 */ int i; printf ( 项目名次列表 项目编号:%dn,t); printf ( 比赛项目编号 名次 获奖者姓名 获奖者所在学院编号 得分n); for ( i=0;imat-1.num;i+ ) printf( m_x0012_d_x0012_s_x0016_ddn,mat-1.matnum,

    21、mat-1.listi.position, mat-1.listi.name,mat-1.listi.scnum,mat-1.listi.score); return; void main ( void ) int i,c,t,k; /* c为项目编号 */ printf(n*运动会分数统计系统*n); 牰湩晴尨请根据提示进行操作); do printf( 请输入参加运动会的学院个数:(1-20) ); scanf(%d,&n); if( n20 ) /* 输出出错信息 */ !(1-20)n ); 请重新输入!输入的学院数目不正确printf( n while ( n20 ); do pri

    22、ntf(有多少个男子项目:(1-20); scanf(%d,&m); if ( m20 ) /* 输出出错信息 */ printf(输入的男子项目数目不正确!请重新输入!(1-30)n); while ( m20 ); do printf(有多少个女子项目:(1-20); scanf(%d,&w); if ( w20 ) /* 输出出错信息 */ printf ( 输入的女子项目数目不正确!请重新输入!(1-20)n ); while ( w20 ); printf (本次有%d个学院参加,共%d个比赛项目,男子项目%d个,女子项目%d个。n,n,m+w,m,w); SCANFDATA: /* 比赛数据输入定位点 */ 牰湩晴尨请输入比赛结果资料n); for(i=0;i0)&(c0)&(c0)&(t=m+w) MatchOutput(t); /* 调用输出项目排名列表函数 */ else printf ( n!错误!输入的数应为1


    注意事项

    本文(数据结构课程设计报告 运动会计分系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开