版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计学校运动会管理系统专业:网络工程班级:网 133报告人:王先海139074347刘随心 139074338葛翔 139074332指导老师:陶陶报告日期: 2014 年 12 月 13 号一、需求分析1、 问题描述:建立运动员信息系统,包括运动员、裁判员以及运动信息地成绩管理,运动员信息为编号、姓名、身份信息(教师、学生)、参加地比赛工程等;裁判员信息为编号、姓名、身份信息(教师、学生)、裁判地工程;运动会信息包含各个比赛工程地信息、时间安排、裁判信息、比赛成绩等 .2、功能要求:(1)各种运动信息需要利用文件地形式进行存储.(2)输入功能:可以从键盘或文件中一次性输入多条信息;
2、(3)输出功能:可将运动员、裁判员、以及比赛信息打印输出或显示;(4)查找功能:根据运动员、裁判员等查找出所需要地比赛信息;(5)增加、删除、修改功能:完成运动员信息地多种更新;( 6)统计功能:完成各类比赛信息地统计功能,例如某项比赛地名词排名,各个运动员地积分成绩统计等 .二、1、总体设计将学校运动会管理系统系统进行模块化分析学校运动会管理系统输输查增加统入出找删除计功功功修改功能能能功能能三、详细设计学校运动会管理系统本程序包含除 main 函数外包含20 个函数: menu() 、menu2()、reads(struct athletesathN) 、 reads1(struct re
3、feree refN)、reads2(struct All_the_events sportN)、save(struct athletes athN,int n)、 show_athletes()、 how_referee()、add() 、According_to_the_number_to_find_players_information ()、比赛信息模块裁判员功能模块学生功能模块According_to_the_name_to_find_players_information ()、According_to_the_number_to_Modify_the_players_inform
4、ation ()、输按输增按按搜搜按输输According_to_the_name_to_Modify_the_players_information ()、出姓出加号姓索索姓出出According_to_the_name_to_delete_the_players_information ()、全名全运码名号姓名全、单According_to_the_name_to_find_referee_information ()、 show_all_events ()部查部动查查码名删部项Output_on_a_single information ()、 sort() 、 keep() 、shee
5、p().裁询运员找找修修除比比此外还定义了三个结构体类型:struct athletes、 struct referee、struct All_the_events.赛判裁动信运运改改运赛员判功能员息动动运运动工信函数名入口出口调用关系信员信员员动动员程息menu()输出菜单选项该函数无形参printf()输出信在 main ()中息信息信信员员信息,无返回值被反复调用menu2()输出输出单项该函数无形参printf()输出信在 main ()中比赛信息菜单息,无返回值被反复调用选项reads(struct读取运动员文形参结构体return i在需要运动员athletes athN)件中地内
6、容struct athletes数据时被调用athNreads1(struct读取裁判员取形参结构体return i在需要裁判员referee refN)文件中地内容struct referee数据时被调用refNreads2(structAll_the_eventssportN)save(structathletesathN,int n)show_athletes()add()According_to_t he_number_to_ find_players_inf ormation ()According_to_t he_name_to_fi nd_players_info rmation
7、 ()According_to_t he_number_to_ Modify_the_pla yers_informatio n ()According_to_t he_name_to_M odify_the_playe rs_information()读取全部比赛工程文件中地内容运动员信息改变后更新文件输出全部运动员信息增加运动员信息按号码查找运动员信息按姓名查找运动员信息搜索号码修改运动员信息搜索姓名修改运动员信息形参结构体return i在需要全部比struct赛工程数据时All_the_events被调用sportN形参结构体将运动员信息在文件需要被struct athletes存入文
8、件,无保存时调用athN,int n返回值该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用According_to_t he_name_to_d elete_the_playe r
9、s_information ()show_referee()According_to_t he_name_to_fi nd_referee_info rmation ()show_all_event s ()Output_on_a_si ngle_information ()sort()keep()sheep()按姓名删除该该函数无形参在 main ()中运动员信息被反复调用输出全部裁判该函数无形参printf() 输出信在 main ()中员信息息,无返回值被反复调用按姓名查找裁该函数无形参printf() 输出信在 main ()中判员信息息,无返回值被反复调用输出输出全部该函数无形参pr
10、intf() 输出信在 main ()中比赛工程息,无返回值被反复调用输出单项比赛该函数无形参printf() 输出信在 main ()中信息息,无返回值被反复调用按百 M 赛跑成该函数无形参printf() 输出信在 main ()中绩排名息,无返回值被反复调用按三级跳成绩该函数无形参printf() 输出信在 main ()中排名息,无返回值被反复调用按撑杆跳成绩该函数无形参printf() 输出信在 main ()中排名息,无返回值被反复调用四、调试与测试1 、测试目地:测试出每个调用函数存在地数据调用错误,在分步调试地过程中检查出所用语句地错误,在检查程序地过程中尽量做出一定地更改,已
11、达到让程序更加简洁地目地.2、测试方法:对每一个调用地函数进行分步调试,之后再运行成功后根据运行结果对源程序做出相应地更改.3、测试错误: a. 搜索号码修改运动员信息时,发现文件被删除b. 按三级跳成绩排名时,发现有数据被后面地数据覆盖c. 等等4、解决措施: a. 我还没找到方法耶.b. 将结构体 structAll_the_events中地 char place10改成 char place20五、测试结果1、 输出菜单2、增加运动员信息3、输出全部运动员信息4、按号码查找运动员信息5、按姓名查找运动员信息6、输出全部裁判员信息7、按姓名查询裁判员信息8、输出全部比赛工程9、输出单项比赛
12、信息6、用户手册:进入输出菜单选项界面 -> 一般最开选择操作 2,先增加运动员信息 -> 再根据用户需求选择操作 -> 最后选择操作 13,退出系统 .7、附录(源代码)#include<stdio.h>#include<stdlib.h>#include <string.h>/#include<conio.h>#define N 20struct athleteschar num20。char name10。char Identity_information 10。float baimi 。float sanjitiao 。
13、float chenggantiao。 。struct refereechar num20。char name10。char Identity_information 10。char baimi10。char sanjitiao10。char chenggantiao10。 。struct All_the_eventschar sport_name10。char time20。char referee10。char place20。 。void menu() 。 / 输出菜单选项void menu2()。/ 输出输出单项比赛信息菜单选项int reads(struct athletes ath
14、N)。 / 读取运动员文件中地内容int reads1(struct referee refN)。 / 读裁判员取文件中地内容int reads2(struct All_the_events sportN)。 / 读取全部比赛工程文件中地内容void save(struct athletes athN,int n)。 / 运动员信息改变后更新文件void show_athletes()。 / 输出全部运动员信息void show_referee()。 / 输出全部裁判员信息void add() 。 / 增加运动员信息void According_to_the_number_to_find_pl
15、ayers_information ()。 / 按号码查找运动员信息void According_to_the_name_to_find_players_information ()。 / 按姓名查找运动员信息void According_to_the_number_to_Modify_the_players_information ()。 / 搜索号码修改运动员信息void According_to_the_name_to_Modify_the_players_information ()。 / 搜索号码姓名修改运动员信息void According_to_the_name_to_delet
16、e_the_players_information ()。 / 按姓名删除该运动员信息void According_to_the_name_to_find_referee_information ()。 / 按姓名查找裁判员信息void show_all_events () 。 / 输出输出全部比赛工程void Output_on_a_single_information ()。/ 输出单项比赛信息void sort() 。 /按百 M 赛跑成绩排名void keep()。 / 按三级跳成绩排名void sheep() 。 /按撑杆跳成绩排名void main()int n 。while(1)
17、menu() 。printf("n请输入您要选择地操作序号,按回车键确认:") 。scanf("%d",&n)。switch(n)case 1: show_athletes()。break 。case 2: add() 。break 。case 3: According_to_the_number_to_find_players_information ()。break 。case 4: According_to_the_name_to_find_players_information ()。 break 。case 5: According_t
18、o_the_number_to_Modify_the_players_information ()。break 。case 6: According_to_the_name_to_Modify_the_players_information ()。 break 。case 7: According_to_the_name_to_delete_the_players_information ()。break 。case 9: show_referee()。 break 。case 10:According_to_the_name_to_find_referee_information ()。 b
19、reak 。case 11:show_all_events ()。break 。case 12:Output_on_a_single_information ()。 break 。case 13: exit(0)。default:printf(" 输入错误,请输入列表中存在地序号!n ") 。void menu() /输出菜单选项printf("* *n") 。printf(" * 运动会管理系统 * n") 。printf("* *n") 。printf("【 1】输出全部运动员信息 n")
20、。printf(" n") 。printf("【 2】增加运动员信息 n") 。printf(" n") 。printf("【 3】按号码查找运动员信息 n") 。printf(" n") 。printf("【 4】按姓名查找运动员信息 n") 。printf(" n") 。printf("【 5】搜索号码修改运动员信息n") 。printf(" n") 。printf("【 6】搜索姓名修改运动员信息n&
21、quot;) 。printf(" n") 。printf("【 7】按姓名删除运动员信息 n") 。printf(" n") 。printf("【 8】运动员积分排名 n")。printf(" n") 。printf("【 9】输出全部裁判员信息 n") 。printf(" n") 。printf("【10】按姓名查询裁判员信息 n") 。printf(" n") 。printf("【11】输出全部比赛工程
22、 n") 。printf(" n") 。printf("【12】输出单项比赛信息 n") 。printf(" n") 。printf("【13】退出系统 n") 。printf("n") 。void menu2() /输出输出单项比赛信息菜单选项printf("* *n") 。printf(" * 单项比赛信息 * n") 。printf("* *n") 。printf("【 1】百 M 赛跑 n") 。p
23、rintf(" n") 。printf("【 2】三级跳 n") 。printf(" n") 。printf("【 3】撑杆跳 n") 。printf(" n") 。printf("【 4】退出系统 n") 。printf("n") 。int reads(struct athletes athN) /读取运动员文件中地内容FILE *fp 。int i=0 。程序设计 athletes.txt","r")=NULL)print
24、f(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %f %f %fn",athi.num,,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao)。fclose(fp)。return i 。int reads1(struct referee refN) /读取裁判员取文件中地内容FILE *fp 。int i=0 。程序设计
25、 referee.txt","r")=NULL)printf(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %s %s %sn",refi.num,,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao)。fclose(fp)。return i 。int reads2(struct All_the_events sportN
26、) /读取全部比赛工程文件中地内容FILE *fp 。int i=0 。程序设计 All_the_events.txt","r")=NULL)printf(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %sn",sporti.sport_name,sporti.time,sporti.referee,sp orti.place) 。fclose(fp) 。return i 。void save(struct athletes
27、athN,int n) /运动员信息改变后更新文件FILE *fp 。int i=0 。程序设计 athletes.txt","w")=NULL)printf(" 文件打开失败! n") 。return 。elsefor(i=0 。i<n 。 i+)printf("%s %s %s %f %f %fn",athi.num,,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao)。fclose(fp) 。void sh
28、ow_athletes() /输出全部运动员信息struct athletes athN。int i,n 。n=reads(ath)。printf("*所有地学生信息如下*nn")。printf("序号号码姓名身份百M 赛跑 (s)三级跳 (m)撑杆跳 (m) n") 。printf("*n")。for(i=0 。i<n 。 i+)printf("n%3d%12s%8s%8s%10.1f%12.1f%12.1fn",i+1,athi.num,,athi.Identity_informatio
29、n,athi.baimi,athi.sanjitiao,athi.chenggantiao)。getch() 。void add()/增加运动员信息FILE *fp 。int n,i 。struct athletes ath。程序设计 athletes.txt","a")=NULL) /如果文件已经存在,可以追加学生信息程序设计 athletes.txt","w")=NULL) /文件不存在时,创建新文件,输入学生信息printf(" 文件打开失败! n") 。return 。printf(" 请输入要添
30、加地运动员数量,按回车键确认:") 。scanf("%d",&n)。for(i=1 。i<=n 。i+)printf("n请输入第 %d 个运动员地号码、姓名、身份,用空格分开,并按回车键确认: n",i) 。scanf("%s%s%s",ath.num,,ath.Identity_information)。printf("n请输入第 %d 个运动员地百M 赛跑 ( 单位 :s) 、三级跳 (单位 :m) 和撑杆跳( 单位 :m) 三项成绩,用空格分开,没参加地工程用0 表示,并按回车
31、键确认:n",i) 。scanf("%f%f%f",&ath.baimi,&ath.sanjitiao,&ath.chenggantiao)。fprintf(fp,"%s %s %s %f %f %fn",ath.num,,ath.Identity_information,ath.baimi,ath.sanjitiao,ath.chenggantiao)。fclose(fp)。void According_to_the_number_to_find_players_information () / 按号码
32、查找运动员信息struct athletes athN。int n,i 。char number20。printf("n请输入要查找运动员地号码,按回车键确认:") 。scanf("%s",number)。n=reads(ath)。for(i=0 。i<n 。 i+)if(strcmp(number,athi.num)=0)break 。if(i>=n)printf(" 无此学生信息 !") 。return 。printf("n现输出该运动员地号码,姓名,身份,百M 赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n
33、") 。printf("序号号码姓名身份百M 赛跑三级跳撑杆跳n") 。printf("*n") 。printf("n%3d%12s%11s%11s%11.2f%12.2f%11.2fn",i+1,athi.num,,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao)。void According_to_the_name_to_find_players_information () /按姓名查找运动员信息struct
34、athletes athN。int n,i 。char name20。printf("n请输入要查找运动员地姓名,按回车键确认:") 。scanf("%s",name)。n=reads(ath)。for(i=0 。i<n 。 i+)if(strcmp(name,)=0)break 。if(i>=n)printf(" 无此学生信息 !") 。return 。printf("n现输出该运动员地号码,姓名,身份,百M 赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n") 。printf(&qu
35、ot;序号号码姓名身份百M 赛跑三级跳撑杆跳n") 。printf("*n") 。printf("n%3d%12s%11s%11s%11.2f%12.2f%11.2fn",i+1,athi.num,,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao)。void According_to_the_number_to_Modify_the_players_information () /搜索号码修改运动员信息struct athletes a
36、thN。int n,i 。char number20。printf("n请输入要更改信息地运动员号码,按回车键确认:") 。scanf("%s",number)。n=reads(ath)。for(i=0 。i<n 。 i+)if(strcmp(number,athi.num)=0)break 。if(i>=n)printf(" 无此运动员信息 !") 。return 。printf("n请输入更改后运动员地号码,姓名,身份,百M 赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n") 。scanf(&quo
37、t;%s%s%s%f%f%f",athi.num,,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao)。save(ath,n) 。void According_to_the_name_to_Modify_the_players_information () /搜索姓名修改运动员信息struct athletes athN。int n,i 。char name20。printf("n请输入要更改信息地运动员姓名,按回车键确认:")
38、 。scanf("%s",name)。n=reads(ath)。for(i=0 。i<n 。 i+)if(strcmp(name,)=0)break 。if(i>=n)printf(" 无此运动员信息 !") 。return 。printf("n请输入更改后运动员地号码,姓名,身份,百M 赛跑 ( 单位 :s) 、三级跳( 单位 :m) 和撑杆跳 (单位 :m) 三项成绩,用空格分开,没参加地工程用0 表示,并按回车键确认: n") 。scanf("%s%s%s%f%f%f",athi
39、.num,,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao)。save(ath,n) 。void According_to_the_name_to_delete_the_players_information () /按姓名删除该运动员信息struct athletes athN。char n,i,j 。n=reads(ath)。printf("n请输入要删除信息运动员姓名,按回车键确认:") 。scanf(&qu
40、ot;%s",name)。for(i=0 。i<n 。 i+)if(strcmp(name,)=0)break 。if(i>=n)printf(" 没有找到该运动员信息!n") 。return 。elsefor(j=i+1。j<n 。j+)athj-1=athj。save(ath,n-1)。printf(" 删除成功! n") 。void show_referee() /输出全部裁判员信息struct referee refN。int i,n 。n=reads1(ref)。printf("*所有地裁
41、判员信息如下*nn")。printf("序号号码姓名身份百M 赛跑三级跳撑杆跳n") 。printf("*n") 。for(i=0 。i<n 。 i+)printf("n%3d%8s%8s%8s%10s%8s%8sn",i+1,refi.num,,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao)。getch() 。void According_to_the_name_to_find_referee_information () /按姓名查找裁判员信息struct referee refN。int n,i 。char name20。printf("n请输入要查找裁判员地姓名,按回车键确认:") 。scanf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演讲稿小短文合集【五篇】
- 2025年清洁漂白项目申请报告
- 2024-2025学年西藏拉萨市城关区数学三上期末检测试题含解析
- 2025年工业废水处理项目提案报告模范
- 2025年无玷污采水器项目规划申请报告模范
- 2025年声学海流计项目提案报告模板
- 2025年沼气设备项目申请报告模稿
- 募捐倡议书模板锦集八篇
- 青铜葵花读后感汇编15篇
- 关于会计专业自我鉴定集锦9篇
- 2022-2024学年校方责任保险统保方案
- 食材供应链行业市场分析ppt
- 跟师临诊抄方心得体会
- 静脉治疗护理技术操作标准2023
- B2C网络商店物流服务质量及其与顾客忠诚的关系研究的中期报告
- 年同等学历考研申硕综合科复习指导(教育心理学)课件
- 线段角动点问题
- 【课件】沉心静气打赢最后一仗 课件-2022-2023学年高中主题班会
- 华能电力定员标准
- 部编版语文四年级上册普罗米修斯教学反思(两篇)
- 生理学基础(第4版)第十一章 内分泌电子课件 中职 电子教案
评论
0/150
提交评论