分享
分销 收藏 举报 申诉 / 30
播放页_导航下方通栏广告

类型C语言课程设计校际运动会管理系统地大版最简洁.doc

  • 上传人:w****g
  • 文档编号:3584219
  • 上传时间:2024-07-10
  • 格式:DOC
  • 页数:30
  • 大小:182.50KB
  • 下载积分:9 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 课程设计 校际 运动会 管理 系统 大版最 简洁
    资源描述:
    C语言课程设计校际运动会管理系统地大版最简洁 30 2020年4月19日 文档仅供参考 中 国 地 质 大 学 本科生课程论文封面 课程名称 C语言课程设计 教师姓名 。。 本科生姓名 ,, 本科生学号 。。 本科生专业 。。 所在院系 资源学院 类别: 本科生 日期: 。。。 课程设计评语 对课程论文的评语: 平时成绩: 课程论文成绩: 总 成 绩: 评阅人签名: 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。 目 录 课程设计评语 2 目 录 3 1.课程论文题目 4 2.程序设计思路 4 3.功能模块图 4 4.数据结构设计 6 5.算法设计 7 6.程序代码 10 7.程序运行结果 15 8.编程中遇到的困难及解决方法 17 9.总结心得及良好建议 18 10.致谢 18 课程论文题目 1.校际运动会管理系统 一、题目要求 (1)信息初始化 输入:N─参赛学校总数,M─男子竞赛项目数, W─女子竞赛项目数; 各项目名次取法有如下几种: 取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1; 取前3名:第一名得分5,第二名得分3,第三名得分2; 用户自定义:各名次权值由用户指定。 (2)提醒用户填写比赛结果,输入各项目获奖运动员信息。 (3)所有信息记录完毕后,用户能够查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。 2.程序设计思路 根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能因此应有显示、查找等操作。根据上面的需求分析,能够将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为 信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。 3.功能模块图 (每个功能模块都标注函数名称,如右图) 学校总数 男生项目数 信息输入 女生项目数 比赛结果录入 主函数 以学校检索 检索 以项目检索 以运动员检索 退出 4.数据结构设计 数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。比如学校结构体成员 #include<stdio.h> #include<stdlib.h> #include<string.h> #define A 100 int y=0,f=0,j,W,M,N,p[15],q[15]; struct student { char shool[20]; char name[20]; char item[20]; char sex; int mingci; int mark; }stu[A]; struct item { char name[20]; char sex; int mark; }it[A]; struct shool { char name[20]; char item[20]; int mark; }sho[A] { 5.算法设计 1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也能够写成函数。 显示一系列功能选项 输入n,判断n是否是1-4 N 根据n的值调用各功能模块函数 图2 主函数流程图 Y [程序] void main() {void menu(); menu(); } void menu() { void establish(),enter(),search(); int w1,n; do{ puts("\t\t*****************MENU********************"); puts("\n\n\t\t 1.输入信息\n"); puts("\t\t 2.输入比赛结果\n"); puts("\t\t 3.查询比赛信息\n"); puts("\t\t 4.退出\n"); puts("\n\t\t*****************************************"); puts("\n\n请选择:"); scanf("%d",&n);}while(0); switch(n) { case 1:establish();break; case 2:enter();break; case 3:search();break; case 4:exit(0); } }各功能模块设计 (1) 信息输入模块 一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存 信息输入 读入、显示参赛学校 读入、显示运动员 读入比赛项目 图3 信息输入模块流程图 void establish() { void zidingyi(); int h,r; extern N,M,W; y=1; printf("\n请输入学校数量:"); scanf("%d",&N); printf("\n请输入男运动员数量:"); scanf("%d",&M); printf("\n请输入女运动员数量"); scanf("%d",&W); printf("\n有三种权值取法,请选择:"); printf("\n\n\t1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分."); printf("\n\n\t2).第一名五分,第二名三分,第三名一分."); printf("\n\n\t3).由您自己定义."); printf("\n\n请输入编号(1--3):"); scanf("%d",&h); switch(h) {case 1:j=1;break; case 2:j=2;break; case 3:zidingyi(); } printf("设置成功\n按任意键会菜单");scanf("%d",&r); menu(); } (2) 结果录入模块 录入运动员比赛得分 图4 比赛结果录入模块流程图 分析计算各学校总分 void enter() { int t,r,i=0;extern j,y;char F,M; void mark(int j,int i); do { printf("\n请输入运动员的名字:");scanf("%s",&stu[i].name); printf("\n请输入运动员的学校:");scanf("%s",&stu[i].shool); printf("\n请输入运动员的项目:");scanf("%s",&stu[i].item); printf("\n请输入运动员的性别(m\w):\t");scanf("%s",&stu[i].sex); printf("\n请输入名次:");scanf("%d",&stu[i].mingci); mark(j,i); loop_2:printf("\n\n继续输入码?\t1).Yes\t2).No\t"); scanf("%d",&t); if(t==2)break; i++; }while(t==1);f=1; printf("输入成功\n请按任意键退出");scanf("%d",&r); menu(); } (3)查询信息模块 [分析] 查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。 6.程序代码 #include<stdio.h> #include<stdlib.h> #include<string.h> #define A 100 int y=0,f=0,j,W,M,N,p[15],q[15]; struct student { char shool[20]; char name[20]; char item[20]; char sex; int mingci; int mark; }stu[A]; struct item { char name[20]; char sex; int mark; }it[A]; struct shool { char name[20]; char item[20]; int mark; }sho[A]; void main() {void menu(); menu(); } void menu() { void establish(),enter(),search(); int w1,n; do{ puts("\t\t*****************MENU********************"); puts("\n\n\t\t 1.输入信息\n"); puts("\t\t 2.输入比赛结果\n"); puts("\t\t 3.查询比赛信息\n"); puts("\t\t 4.退出\n"); puts("\n\t\t*****************************************"); puts("\n\n请选择:"); scanf("%d",&n);}while(0); switch(n) { case 1:establish();break; case 2:enter();break; case 3:search();break; case 4:exit(0); } } void establish() { void zidingyi(); int h,r; extern N,M,W; y=1; printf("\n请输入学校数量:"); scanf("%d",&N); printf("\n请输入男运动员数量:"); scanf("%d",&M); printf("\n请输入女运动员数量"); scanf("%d",&W); printf("\n有三种权值取法,请选择:"); printf("\n\n\t1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分."); printf("\n\n\t2).第一名五分,第二名三分,第三名一分."); printf("\n\n\t3).由您自己定义."); printf("\n\n请输入编号(1--3):"); scanf("%d",&h); switch(h) {case 1:j=1;break; case 2:j=2;break; case 3:zidingyi(); } printf("设置成功\n按任意键会菜单");scanf("%d",&r); menu(); } void enter() { int t,r,i=0;extern j,y;char F,M; void mark(int j,int i); do { printf("\n请输入运动员的名字:");scanf("%s",&stu[i].name); printf("\n请输入运动员的学校:");scanf("%s",&stu[i].shool); printf("\n请输入运动员的项目:");scanf("%s",&stu[i].item); printf("\n请输入运动员的性别(m\w):\t");scanf("%s",&stu[i].sex); printf("\n请输入名次:");scanf("%d",&stu[i].mingci); mark(j,i); loop_2:printf("\n\n继续输入码?\t1).Yes\t2).No\t"); scanf("%d",&t); if(t==2)break; i++; }while(t==1);f=1; printf("输入成功\n请按任意键退出");scanf("%d",&r); menu(); } void search() { int r; void search_school(),search_item(); int e;char c;extern f; if(f==0) { printf("请先输入数据\n输入任意键退出..\n "); scanf("%s",&c); menu(); } loop:printf("\n请选择检索类型:\n\t1).以学校检索\n\t2).以项目检索\n\t3).退出\t"); scanf("%d",&e); switch(e) { case 1:search_school();{printf("输入成功\n请按任意键退出");scanf("%d",&r); menu();} case 2:search_item();{printf("输入成功\n请按任意键退出");scanf("%d",&r); menu();} case 3:menu(); } } void search_school() { void printf_one(),printf_face(),printf_sum(); int x,sum=0,w=0; struct student s; printf("\n请输入你要检索的学校名字:"); scanf("%s",&s.shool); printf_face(); for(x=0;x<A;x++) if(strcmp(s.shool,stu[x].shool)==0) { sum+=stu[x].mark; printf_one(x);w=1; } printf_sum(sum); if(w==0) {printf("\n\n*不存在此学校,请重新输入");search_school();} } void search_item() { void printf_one(),printf_face(),printf_sum(); int x,sum=0,w=0; struct student s; printf("\n请输入你要检索的项目名:"); scanf("%s",&s.item); printf_face(); for(x=0;x<A;x++) if(strcmp(s.item,stu[x].item)==0) { sum+=stu[x].mark; printf_one(x);w=1; } printf_sum(sum); if(w==0) { printf("\n\n*不存在此项目,请重新输入");search_item();} } void mark(int j,int i) { int g; extern p[15],q[15]; if(j==1) {if(stu[i].mingci==1)stu[i].mark=7; else if(stu[i].mingci==2)stu[i].mark=5; else if(stu[i].mingci==3)stu[i].mark=3; else if(stu[i].mingci==4)stu[i].mark=2; else if(stu[i].mingci==5)stu[i].mark=1; } if(j==2) { if(stu[i].mingci==1)stu[i].mark=5; else if(stu[i].mingci==2)stu[i].mark=3; else if(stu[i].mingci==3)stu[i].mark=1; } if(j==3) { for(g=0;g<15;g++)if(stu[i].mingci==p[g])stu[i].mark=q[g];} } void zidingyi() { static int p[15],q[15],a,b,j; for(a=0;a<15;a++) { printf("\n请输入要定义的名次:");scanf("%d",&p[a]); printf("\n请输入该名次的分值:");scanf("%d",&q[a]); loop:printf("\n你还要继续定义吗?1).Yes\t2).No");scanf("%d",&b); if(b==2)break; if(b!=1)goto loop; } j=3; } void printf_one(int x) { printf("\n%-20s%-20s%-20s%-5c%-9d%-5d",stu[x].shool,stu[x].name,stu[x].item,stu[x].sex,stu[x].mingci,stu[x].mark); } void printf_sum(int sum) { printf("\n\n总分数是:\t %d",sum); printf("\n学校总数是: \t%d",N); printf("\n项目总数是: \t%d\n",W+M); } void printf_face() { printf("\n\n学校名 运动员名 项目 性别 名次 分数"); }} } 7.程序运行结果【 (1) 主菜单函数 (2) 信息录入模块 (3) 查询子菜单 (4) 按学校名字查询信息 (5) 按项目查询项目信息 8.编程中遇到的困难及解决方法 在学习C语言时,最初使用的是Microsoft visual 6++计算机编程软件,但我们是使用C++Sourse File 编一个.c程序。而老师则要求我们使用工程的MFC AppWizad exe 编程。这是c++里的知识。尽管当时听老师讲c++与C语言有许多共同之处,但我们还是无从下手。后来老师把程序发该我们,让我们用.C的编程就好多了。 在编程的过程中,经常会在语句结束时少“;”或者把中文输入的引号输入文件,很难发现错误所在。 在编程题时也出现了一些编译中的问题。例如,在开始未加头文件#include<string.h>导致有许多未定义的errors;在输入字符串时用到“%S”,使功能无法输出。 由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又给它添加了很多功能。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,可是连接过程中就会报告出错。我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后再在头文件底下声明。 9.总结心得及良好建议 C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的培养。在实习过程中,我感觉到一点,程序是不能一气呵成的。至少一气呵成的程序不会尽善尽美。程序编写要一步一步的完成。首先,对于要编的程序要有一个总体思路。要明确想要什么。只要把思路理清楚了,程序就好编写了。把程序分割成几个块,即多个函数,一块一块的编写。然后将分散的函数用另外的函数连接起来或者用main函数连接。到这一步,程序也就初步编成了,之后便是调试,检查错误。最后我觉得还能够对于已经编写好的程序进行一些修改添加,使它更加人性化。优化程序的阶段是很重要的。 10.致谢 在C语言的实习过程中,让我巩固了C语言的基础知识,以前从来没有这样编过完整的程序,实习让我有这样的一个机会,自己独立编写程序。我觉得自己说学的东西不多,可是能够将它们运用出来。在实习过程中,首先我要感谢我的老师,一个是带我走进C语言大门的曹老师,因为她,我开始喜欢C语言,把所学知识掌握牢固。同时,在这次实习中,樊老师对我的帮助对我最难忘。题目本身是很简单的,在老师的教学风格影响下,我在编写完最初程序后,有自己添加了很多功能。在此,我要感谢她。最后,我还要感谢给我帮助的同学,在一些程序问题上,我和同学交流经验,学到了很多在书本上学不到的东西。 总之,我真诚的感谢在这次实习中给过我帮助的人!
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:C语言课程设计校际运动会管理系统地大版最简洁.doc
    链接地址:https://www.zixin.com.cn/doc/3584219.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork