收藏 分销(赏)

校际运动会管理系统---副本.doc

上传人:丰**** 文档编号:4816188 上传时间:2024-10-13 格式:DOC 页数:13 大小:77KB 下载积分:8 金币
下载 相关 举报
校际运动会管理系统---副本.doc_第1页
第1页 / 共13页
校际运动会管理系统---副本.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
广 东 工 业 大 学 C语言程序设计报告 课程名称 C语言程序设计 学生姓名 伍鹏辉 学生学号 3115001128 学生专业 电气工程及其自动化 学生班级 15级(4)班 所在院系 自动化学院 指导教师 孟安波 日期 2015 年 12 月 12 日 1.课程论文题目:校际运动会管理系统 要求: 完成校际运动会成绩管理功能,包括输入项目及参赛成绩,输入参赛学校,统计各校成绩并排序。 各项目名次取法有如下几种: 取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1; 取前3名:第1名得分5,第2名得分3,第3名得分2;用户自定义分数选择,并有查错功能(名次靠前的得分要高于名次靠后的得分) 2.设计思路 (1)信息初始化 输入:N─参赛学校总数,M─男子竞赛项目数, W─女子竞赛项目数; 各项目名次取法有如下几种: 取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用户自定义:各名次权值由用户指定。 (2)提醒用户填写比赛结果,输入各项目获奖运动员信息。 (3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。 3.算法设计流程图 1.主函数设计 提供输入、功能处理和输出部分的函数调用,其中各功能模块用菜单方式选择,另外菜单部分也可以写成函数。显示一系列功能选项 输入n,判断n是否是1-4 N 根据n的值调用各功能模块函数 图1 主函数流程图 Y 2. 各功能模块设计 (1) 信息输入模块 一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存 信息输入 读入、显示参赛学校 读入、显示运动员 读入比赛项目 图2.1 信息输入模块流程图 (2) 结果录入模块 录入运动员比赛得分 图2.2 比赛结果录入模块流程图 分析计算各学校总分 (3)查询信息模块 查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。 查询信息模块 查询学校 查询运动员 查询项目 返回主菜单 图3 查询信息模块流程图 (4)查询学校名模块 定义结构体指针UNI*next 输入学校名字 判断输入名字与结构体中学校名是否相同 指针变量值向下一组数据 调用输出函数 Y  N 图4 查询学校名流程图 4.程序代码 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define SIZE 9 #define N 3 #define WM 3 void bsxm(); void csxx(); void Information(); void main(); void menu(); void printf_back(); void saveathlete(); void saveprogram(); void saveschool(); void savescore(); void Search(); void ttzf() ; int i; FILE *fp1,*fp2,*fp3,*fp4; struct athlete //定义运动员信息 { char univ[5]; char name[8]; char prog[15]; char mingci[5]; int score; }at[SIZE]; struct xuexiao //定义学校信息 { char univ[5]; char prog[15]; int num_athlete; }xx[N]; struct program //定义项目信息 { char prog[5]; int quming; char ath1[5]; char ath2[5]; char univ1[5]; char univ2[5]; }pro[WM]; struct zongfen //定义学校得分信息 { char univ[5]; char prog1[5]; char prog2[5]; char prog3[5]; int score1; int score2; int score3; int total_score; }zf[N]; void Information() { int n,w ; do { puts("\n\n\n"); puts("\t\t***^__^ Welcome to load 信息录入 system! ^__^***\n"); puts("\t\t*************************MENU*************************\n"); puts("\t\t******** 1.saveathlete **********\n"); puts("\t\t******** 2.saveschool **********\n"); puts("\t\t******** 3.saveprogram() **********\n"); puts("\t\t******** 4.back **********\n"); puts("\t\t***************************************\n"); printf("Choic your number(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w=1; getchar(); } else w=0; } while (w==1); switch(n) { case 1 : saveathlete(); break;// 保存运动员信息子函数 case 2 : saveschool(); break;//保存学校信息子函数 case 3 : saveprogram();break;//保存项目比赛信息子函数 case 4 : exit(0); } } void saveathlete() //保存运动员信息子函数 { printf("\n请输入各项目获奖运动员的信息:"); for(i=0;i<SIZE;i++) { printf("\n请输入第%d个运动员的信息:\n",i+1); printf("姓名:"); scanf("%s",at[i].name); printf("学校:"); scanf("%s",at[i].univ); printf("参赛项目:"); scanf("%s",at[i].prog); printf("名次:"); scanf("%s",at[i].mingci); printf("得分:"); scanf("%d",&at[i].score); } fp1=fopen("ath","w"); for(i=0;i<SIZE;i++) { if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1) printf("File write error!\n"); } fclose(fp1); fp1=fopen("ath","r"); printf("\n现在各运动员的信息如下:\n\n"); printf("姓名 学校 项目 名次 得分\n"); for(i=0;i<SIZE;i++) { fread(&at[i],sizeof(struct athlete),1,fp1); printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score); } fclose(fp1); printf_back(); } void saveschool() //保存学校信息子函数 { printf("\n请输入各参赛学校的信息:"); for(i=0;i<N;i++) { printf("\n请输入第%d个学校的信息:\n",i+1); printf("学校:"); scanf("%s",xx[i].univ); printf("参赛的项目:"); scanf("%s",xx[i].prog); printf("参赛者数:"); scanf("%d",&xx[i].num_athlete); } fp3=fopen("xxiao","w"); for(i=0;i<N;i++) { if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1) printf("File write error!\n"); } fclose(fp3); printf_back(); } void saveprogram() //保存项目比赛信息子函数 { printf("\n请输入关于比赛项目的信息:"); for(i=0;i<WM;i++) { printf("\n请输入第%d项比赛的信息:\n",i+1); printf("项目:"); scanf("%s",pro[i].prog); printf("取分情况:"); scanf("%d",&pro[i].quming); printf("参赛者1:"); scanf("%s",pro[i].ath1); printf("所属学校:"); scanf("%s",pro[i].univ1); printf("参赛者2:"); scanf("%s",pro[i].ath2); printf("所属学校:"); scanf("%s",pro[i].univ2); } fp4=fopen("pr","w"); for(i=0;i<N;i++) { if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1) printf("File write error!\n"); } fclose(fp4); printf_back(); } void savescore() //保存学校得分情况子函数 { printf("N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。\n"); printf("W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。\n"); printf("\n各项名次得分权值如下:\n"); printf("取前三名:第一名5分 第二名3分 第三名2分\n"); printf("\n请输入各学校的得分情况:"); for(i=0;i<N;i++) { printf("\n请输入第%d个学校的得分情况:\n",i+1); printf("学校:"); scanf("%s",zf[i].univ); printf("参赛项目1:"); scanf("%s",zf[i].prog1); printf("得分:"); scanf("%d",&zf[i].score1); printf("参赛项目2:"); scanf("%s",zf[i].prog2); printf("得分:"); scanf("%d",&zf[i].score2); printf("参赛项目3:"); scanf("%s",zf[i].prog3); printf("得分:"); scanf("%d",&zf[i].score3); zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3; } fp2=fopen("zfen","w"); for(i=0;i<N;i++) { if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1) printf("File write error!\n"); } fclose(fp2); printf_back(); } void Search() { int n,w2; do { puts("\t\t***^__^ Welcome to load search system! ^__^***\n"); puts("\t\t*************************MENU*************************\n"); puts("\t\t******** 1.search ttzf **************\n");//查看团体总分 puts("\t\t******** 2.search csxx **************\n");//查看参赛学校信息! puts("\t\t******** 3.search bsxm **************\n");//查看比赛项目信息! puts("\t\t******** 4.Exit **************\n");//退出 puts("\t\t***************************************\n"); printf("Choice your number(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w2=1; getchar(); } else w2=0; } while (w2==1); switch(n) { case 1: ttzf();break; case 2: csxx();break; case 3: bsxm();break; case 4: exit(0);break; default: printf("未进行任何操作!"); } } void ttzf() //查看学校团体总分子函数 { fp2=fopen("zfen","r"); printf("\n各学校的团体总分情况如下:\n\n"); printf("学校 参赛项目 总分\n"); for(i=0;i<N;i++) { fread(&zf[i],sizeof(struct zongfen),1,fp2); printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score); } fclose(fp2); printf_back(); } void csxx() //查看参赛学校信息子函数 { fp3=fopen("xxiao","r"); printf("\n各参赛学校的情况如下:\n\n"); printf("学校 参赛项目 参赛者数\n"); for(i=0;i<N;i++) { fread(&xx[i],sizeof(struct xuexiao),1,fp3); printf("%-8s%-20s%-12d\n",xx[i].univ,xx[i].prog,xx[i].num_athlete); } fclose(fp3); printf_back(); } void bsxm() //查看比赛项目子函数 { fp4=fopen("pr","r"); printf("\n各比赛项目的信息如下:\n\n"); printf("项目 取分情况 参赛者1 所属学校 参赛者2 所属学校\n"); for(i=0;i<N;i++) { fread(&pro[i],sizeof(struct program),1,fp4); printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2); } fclose(fp4); printf_back(); } void main() { menu(); } void menu() { int n,w1; do { puts("\t\t***^__^ Welcome to load sports system! ^__^***\n"); puts("\t\t*************************MENU*************************\n"); puts("\t\t******** 1.Enter the information **************\n"); puts("\t\t******** 2.Score 比赛结果录入 **************\n"); puts("\t\t******** 3.Search **************\n"); puts("\t\t******** 4.Exit **************\n"); puts("\t\t******************************************************\n"); printf("Choice your number(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w1=1; getchar(); } else w1=0; } while (w1==1); switch(n) {case 1:Information();break; //输入信息 case 2:savescore();break;//比赛结果录入 case 3:Search();break;//查询模块 case 4:exit(0); } 5.运算结果 (一)主函数菜单 (二)信息输入模块 (三)结果录入模块 (四)查询模块 6.总结 通过此次C语言课程设计,我收获颇多。书中的题目差不多都大同小异,只要一题会做,其他题目也就迎刃而解,只要对指导书里的例题熟练掌握,就能将各功能模块融会贯通并加以适当调整。 我知道,这只是一个小小的开端,以后的路还很长,还要继续坚持学习下去,才能具备一定的编程能力。 13
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

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

客服