当前位置: 首页 > news >正文

如何实现一个运动会计分系统?(C语言版)

一、需求分析

设计一个运动会计分系统,计分信息包括参加学校,参与项目,性别,名次个数,各个学校获得名次信息。该系统具有以下功能

  1. 数据录入: 链表或结构体数组组织数据
  2. 数据报表: 依照规定的报表格式对数据打印报表
  3. 数据排序: 按照要求对数据进行统计,含简单统计及综合统计
  4. 数据统计: 按要求对数据进行统计,含简单统计及综合统计
  5. 数据查询: 按照要求对数据进行查询,含简单查询及组合查询
  6. 数据删除: 打开文件,根据具体题目将对应记录删除
  7. 数据插入: 打开文件,对数据进行更新操作,可以进行新数据的插入
  8. 数据读写: 打开文件,对数据进行读写操作
  9. 数据存储: 将录入数据存储到文件

具体描述如下:

1.数据信息录入功能

对运动会信息进行管理,首先要将运动会信息保存在文件中,因此,该系统应具备录入运动会信息的功能。

C语言对文件的读写可以按ASCII码方式或二进制方式进行,考虑到每个学校运动会分数的信息是结构体,故本系统采用二进制方式。

2.数据存储读写功能

对文件的读写调用系统函数fread()及fwrite()函数,判断文件是否结束,调用feof()函数。

生成数据文件,从键盘录入数据时,并将录入的所有数据建成一个结构体类型的数组,在录入结束后,一次性将此数组的结点信息写入数据文件中,这样便节省了由于来回读写文件所占用的时间。

3.数据插入修改删除功能

可以对每个学校的运动会项目分数进行插入,删除,修改功能。

4.数据查询功能

可以对用户所想要查找的数据进行查询。

5.数据统计功能

可以对系统输入的数据进行一定的统计。

6.数据排序、报表功能

可以将输入的数据内容按照用户所想要的分类方式(学校名次、男团名次、女团名次、学校编号)进行分类输出。

二、总体设计

系统结构图 

系统函数调用模型 

三、详细设计

1.信息录入功能

该模块流程如如下所示

该模块用void Initialization()、void input()函数实现,其中void input()函数的功能是输入所有的学校项目记录,并且调用void Initialization()函数。void input()函数和被调用的void Initialization()函数一样没有参数,执行该函数,没有返回值。void Initialization()函数的作用是对存储记录的结构体数组进行初始化。

2. 排序功能

该模块流程如如下所示:

该模块用void sortput()、void sortmenu()等函数来实现,其中sortmenu()函数调用cmp1()、cmp2()、cmp3()来进行一定形式输出的选择,sortput()对输入数据进行一定的排序。方式1即cmp1()函数是按照学校的名次从大到小排序,方式2即cmp2()函数是按照男生的名次从大到小排序,方式3即cmp3()函数是按照女生的名次从大到小排序,方式4按初始输入顺序直接输出即可。 

3.信息删除功能

该模块流程如如下所示

 该模块用void delete1()函数来实现,在屏幕中输入你所想删除信息学校的名称,就可以完成删除操作。

4.信息修改功能

 该模块用void update1()函数来实现,该函数没有参数,执行该函数,没有返回值。中间调用void Initialization()函数初始化,最后按照循环结构和选择结构输入修改后的信息。

5.信息插入功能

该模块用void insert1()函数来实现,该函数没有参数,执行该函数,没有返回值。该模块利用一个函数通过循环结构和选择结构来实现,原理简单,函数的功能是插入一条记录。

6.查询功能

该模块用void xuexiao()函数来实现,该函数没有参数,执行该函数,没有返回值。该模块利用一个函数通过选择结构来实现,原理简单。函数的功能是按学校或者项目进行查询。

7.数据报表功能

该模块用void output()函数来实现,该函数没有参数,执行该函数,没有返回值。该模块利用一个函数通过循环结构和选择结构来实现,原理简单。函数的功能是将所有的信息数据报表输出。

8.数据读写功能

相关文章:

  • 首个专业AI设计Agent发布-Lovart
  • 鸿蒙OSUniApp制作一个小巧的图片浏览器#三方框架 #Uniapp
  • 深入浅出入侵检测系统(IDS)的工作原理与应用场景
  • 第二章:CSS秘典 · 色彩与布局的力量
  • 如何开发一款 Chrome 浏览器插件
  • 通过泛域名解析把二级域名批量绑定到wordpress的指定页面
  • Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
  • 分布式1(cap base理论 锁 事务 幂等性 rpc)
  • .Net HttpClient 使用代理功能
  • elpis-core: 基于 Koa 实现 web 服务引擎架构设计解析
  • 应用层协议简介:以 HTTP 和 MQTT 为例
  • STM32 实时时钟(RTC)详解
  • HTTP GET报文解读
  • 胶片转场视频剪辑思路
  • 国产 ETL 数据集成厂商推荐—谷云科技 RestCloud
  • Axure设计之内联框架切换页面、子页面间跳转问题
  • 【爬虫】DrissionPage-2
  • 前端面试宝典---js垃圾回收机制
  • 大模型越狱:技术漏洞与安全挑战——从原理到防御
  • 生活实用小工具-手机号归属地查询
  • 娃哈哈:自4月起已终止与今麦郎的委托代工关系,未来将坚持自有生产模式
  • 人民日报民生观:转人工客服,怎么这么难?
  • 商务部就开展加强战略矿产出口全链条管控工作应询答记者问
  • 中国-拉共体成员国重点领域合作共同行动计划(2025-2027)
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展