版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
11目 录1、程序分析与设计 22、框图与流程图 43、调试过程 54、源代码及运行情况 65、使用说明书 25PAGEPAGE4一、程序分析与设计题目描述初始化输入:N-参赛院系总数,M-女子竞赛项目数;即项目名称与代号。这些数据存储在文本文件中,不需要每次都单条录入。各项目名次取法有如下几种:517253342,第51所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。需求分析根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。设计目的C负责程序报告书写,代码书写,调试测试,亢学超和笪凯凯同学负责学习语言知识总体设计根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。详细设计主函数主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。菜单函数提醒用户根据要求选择功能,以及多次功能选取输入函数进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。查找函数提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’排序函数根据运动员的百米成绩进行冒泡排序,并输出结果修改函数提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖得分计算函数根据用户输入各项成绩排名,进行得分运算并得出学院排名删除函数用于输入信息的删除插入函数用于输入新的信息保存函数将用户输入的信息保存到文本文件中显示函数显示用户保存的信息主菜主菜单框图:输查排修得插删保显退入找序改分入除存示出流程图:三、调试过程fwritefread,后来才发fscanffprintf这两个语句。修改完的代码5PAGEPAGE10FILE*fp;//定义指向文件的指针if((fp=fopen("e:\\xiao.txt","r"))==NULL) /*,*/{printf("打不开文件Cannotopenthefile\n");return; /**/}fscanf(fp,"运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");for(inti=0;i<size;i++){fscanf(fp,"%s\t%s\t%d\t%d\t%d\t%d\t%s\n",&stu[i].num,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].ximing);printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}fclose(fp); /*关闭文件*/getchar()才能避免菜单失效四、源代码及运行情况#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<time.h>#defineload#defineN7voidread();voidintsize=3;structstudent 定义链表*/{charnum[10];charname[20];intscorem,scoreq,scoreg,scorey;charximing[20];}stu[N],temp;voidinput() 输入原始数据*/{system("cls");printf("\t************输入界面************\n");printf("for(inti=0;i<size;i++)scanf("%s%s%d%d%d%d%s",&stu[i].num,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].ximing);printf("号码,姓名,100for(i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}voidfind() /*查找函数*/{system("cls");printf("\t************查找界面************\n");charfs[20];read();printf("输入你要查找运动员的号码或姓名:");scanf("%s",&fs);for(inti=0;i<size;i++){if(strcmp(stu[i].num,fs)==0){printf("你要找的运动员已找到:\n");printf(":\n");printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);break;}elseif(strcmp(stu[i].name,fs)==0){printf("你要找的运动员已找到:\n");printf(":\n");printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);break;}else{printf("你要找的运动员未找到:\n");printf("该运动员缺赛或不存在!");break;}}}voidpaixu() 排序函数*/{system("cls");printf("\t************排序界面************\n");printf("对一百米的成绩排序:\n");for(inti=0;i<size;i++){for(intj=i+1;j<size;j++){if(stu[i].scorem<stu[j].scorem){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}}printf("排序后:\n");for(i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}voidxiugai()/*修改函数*/{system("cls");修改界面************\n");charch2[20],c;charnum[10],name[20];intscorem,scoreq,scoreg,scorey,i;charximing[20];printf("原始数据:\n");/*for(inti=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);*/read();printf("输入你要修改运动员的姓名:");scanf("%s",ch2);for(i=0;i<size;i++){if(strcmp(stu[i].name,ch2)==0){printf("1.修改号码\n2.修改姓名\n3.修改100米成绩\n4.修改铅球成绩\n5.修改跳高成绩\n6.修改跳远成绩\n7.修改系名\n");scanf("%d",&c);switch(c){case1:{printf("请输入你修改的运动员号码:");scanf("%s",&num);strcpy(stu[i].num,num);break;}11case2:{printf("输入你修改的运动员姓名:\n");scanf("%s",&name);strcpy(stu[i].name,name);break;}case3:{printf("输入你修改的运动员100米成绩:");scanf("%d",&scorem);stu[i].scorem=scorem;break;}case4:{printf("输入你修改运动员铅球成绩:");scanf("%d",&scoreq);stu[i].scoreq=scoreq;break;}case5:{printf("输入你修改运动员跳高成绩:");scanf("%d",&scoreg);stu[i].scoreq=scoreq;break;}case6:{printf("输入你修改运动员跳远成绩:");PAGEPAGE20scanf("%d",&scorey);stu[i].scorey=scorey;break;}case7:{printf("输入你修改运动员系名:");scanf("%s",&ximing);strcpy(stu[i].ximing,ximing);break;}default:printf("你的输入有误:\n");}printf("修改后的运动员数据:\n");for(inti=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}}save();}voiddefen() /*得分函数*/{system("cls");printf("\t************得分界面************\n");intx,y,z,w,o,p,q,i;charch1[20]="ruanjian",ch2[20]="diangong",ch3[20]="jingguan";printf("原始数据:\n");/*for(inti=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);*/read();printf("各系的得分总分排序:\n");for(i=0;i<size;i++){if(stu[i].scorem==1)x=3;elseif(stu[i].scorem==2)elseif(stu[i].scorem==3)elsex=0;if(stu[i].scoreq==1)y=3;elseif(stu[i].scoreq==2)elseif(stu[i].scoreq==3)elsey=0;if(stu[i].scoreg==1)z=3;elseif(stu[i].scoreg==2)elseif(stu[i].scoreg==3)elsez=0;if(stu[i].scorey==1)w=3;elseif(stu[i].scorey==2)elseif(stu[i].scorey==3)elsew=0;}for(i=0;i<size;i++){if(strcmp(stu[i].ximing,ch1)==0){o=x+y+z+w;:%d\n",o);}elseif(strcmp(stu[i].ximing,ch2)==0){p=x+y+z+w;:%d\n",p);}elseif(strcmp(stu[i].ximing,ch3)==0){q=x+y+z+w;printf("经管系总得分:%d\n",q);}}}voidshancchu() 删除函数*/{system("cls");删除界面************\n");charch1[20];printf("原始数据:\n");inti;/*for(inti=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);*/read();printf("scanf("%s",&ch1);for(i=0;i<size;i++){if(strcmp(stu[i].name,ch1)==0){for(intj=i;j<size-1;j++)stu[j]=stu[j+1];}}printf("删除后的运动员数据:\n");for(i=0;i<size-1;i++){printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}size--;save();}voidcharu() /*插入函数*/{system("cls");inta;printf("\t************插入界面************\n");printf("请输入要插入的运动员个数:");scanf("%d",&a);for(intj=0;j<a;j++){printf("输入要插入的运动员数据:\n");printf("号码:");scanf("%s",&stu[size].num);printf("姓名:");scanf("%s",&stu[size].name);printf("100米成绩:");scanf("%d",&stu[size].scorem);printf("铅球成绩:");scanf("%d",&stu[size].scoreq);printf("跳高成绩:");scanf("%d",&stu[size].scoreg);printf("跳远成绩:");scanf("%d",&stu[size].scorey);printf("系名:");scanf("%s",&stu[size].ximing);for(inti=0;i<size+1;i++)for(intj=i+1;j<size+1;j++)if(stu[i].scorem<stu[j].scorem){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}size++;}printf("插入后运动员数据:\n");for(inti=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);save();}voidsave(){
/*保存数据到文件函数*/FILE*fp; /**///charoutfile[20];//printf("输出文件例如:c:\\scoreEnteroutfilename,forexamplec:\\score\n");//scanf("%s",outfile);if((fp=fopen("e:\\xiao.txt","w"))==NULL)/*为输出打开一个二进制文件,为只写方式*/{printf("打不开文件Cannotopenthefile\n");return; /**/}printf("\n保存中...Savingthefile. \n");//fprintf(fp,"运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");for(inti=0;i<size;i++)fprintf(fp,"%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);fclose(fp); /*关闭文件*/printf("保存成功 Savethefilesuccessfully!\n");}voidread(){FILE*fp;//定义指向文件的指针if((fp=fopen("e:\\xiao.txt","r"))==NULL){
/*为输出打开一个二进制文件,为只写方式*/printf("打不开文件Cannotopenthefile\n");return; /**/}fscanf(fp,"运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");for(inti=0;i<size;i++){fscanf(fp,"%s\t%s\t%d\t%d\t%d\t%d\t%s\n",&stu[i].num,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].ximing);printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}fclose(fp); /*关闭文件*/}voidmenu(){intch1;charstructtm*pt;定义时间结构体time_tt;t=time(NULL);pt=localtime(&t);/*读取系统日期并把它放到结构体中*/do{printf("\t\t 当 前 系 统 日期:%d-%d-%d\n",pt->tm_year+1900,pt->tm_mon+1,pt->tm_mday);/*显示当前系统日期*/printf("======================菜单=====================\n");printf("1.输入printf("3.排序printf("5.得分
\n");\n");\n");printf(" 7.插printf(" 9.显
8.保存0.退出
\n");printf("===============================================\n");printf("请选择功能<1-8>:[]\b\b");//getchar();scanf("%d",&ch1);switch(ch1){case1:input(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024知名大学与科研机构联合培养研究生协议
- 2025年度企业财务内部控制与合规审计合同范本3篇
- 专用购销交易2024版协议格式版A版
- 二零二四商标授权及知识产权跨界合作合同3篇
- 万科物业2024停车场运营管理协议
- 2024年谈蕾离婚后财产与子女抚养协议书3篇
- 个性化小额资金借贷款项协议范本一
- 二零二四卫生院卫生间改造与装修施工合同3篇
- 2025产学研科技成果转化合同:生物科技产业合作框架4篇
- 2024路灯购销安装合同范本
- SQL Server 2000在医院收费审计的运用
- 《FANUC-Oi数控铣床加工中心编程技巧与实例》教学课件(全)
- 微信小程序运营方案课件
- 抖音品牌视觉识别手册
- 陈皮水溶性总生物碱的升血压作用量-效关系及药动学研究
- 安全施工专项方案报审表
- 学习解读2022年新制定的《市场主体登记管理条例实施细则》PPT汇报演示
- 好氧废水系统调试、验收、运行、维护手册
- 中石化ERP系统操作手册
- 五年级上册口算+脱式计算+竖式计算+方程
- 气体管道安全管理规程
评论
0/150
提交评论