C语言实现的评分系统源代码示例
这段C语言源代码实现了一个简单的评分系统,主要功能包括菜单选择、创建运动员对象、操作运动员列表和打印运动员信息。我们首先分析各个函数及其作用: 1. `#include` 部分:引入了必要的库文件,如 `string.h`(处理字符串)、`stdio.h`(标准输入输出)和 `stdlib.h`(内存管理),以及 `conio.h`(控制台输入/输出函数)。 2. 定义和结构体 `structpeople`:定义了一个名为 `ATHLETE` 的结构体,包含四个成员变量:整型的 `num`(编号)、字符数组 `name`(姓名,长度为10)、整型的 `age`(年龄)和浮点型的 `score`(分数)。`malloc`宏用于动态分配结构体内存。 3. `creatscore()` 函数:用于创建一个新的运动员对象并返回其指针,可能是通过用户输入获取数据填充结构体成员。 4. `queue()` 函数:处理队列操作,可能涉及到运动员列表的添加或管理,但具体实现没有在给出的代码中展示。 5. `print()` 函数:负责打印运动员列表中的所有信息。 6. `criticalscore()`:一个未使用的函数名,可能是用于计算关键分数或设定分数阈值的。 7. `menu()` 函数:主菜单,提供用户交互选项,包括新增运动员、查看运动员信息、退出等。通过 `do-while` 循环确保用户输入的有效性。 8. `main()` 函数:程序的入口点,初始化 `head` 为 NULL,调用 `operatemenu()` 开始操作。 9. `operatemenu()` 函数的具体逻辑:询问用户选择,根据选择执行相应操作,如创建新运动员、显示帮助信息等。 整个程序设计的核心是通过用户交互来管理一个简单的运动员列表,并允许添加新运动员和查看运动员信息。虽然代码片段并未包含全部功能实现,但基本框架已经具备了基础的C语言编程技巧,如结构体、输入输出、菜单设计以及内存管理。在实际项目中,还需要补充队列操作、分数计算等功能的实现。此外,为了代码的可读性和健壮性,建议添加错误处理和输入验证。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define LE (struct people *)malloc(sizeof(struct people));
typedef struct people
{ int num;
char name[10];
int age;
float score;
struct people *next;} ATHLETE;
int menu(); /*菜单函数*/
void operatemenu(ATHLETE *head); /*建立链表存放评过分的运动员的原始成绩函数*/
ATHLETE *creatscore(); /*对每个运动员评分函数*/
ATHLETE *queue(ATHLETE *head); /*处理链表是成绩信息从大到小排函数*/
void print(ATHLETE *head); /*输出整个链表*/
float criticalscore(); /*具体的评分函数*/
int i ; /*全局变量用来记录有多少名运动员*/
void main() /*主函数*/
{
ATHLETE *head=NULL;
operatemenu(head);
}
int menu() /*菜单函数*/
{
int chose;
do{
system("cls"); /*清屏函数*/
printf("**********************************\n");
printf(" 08通信2 王韬 \n");
printf(" 1开始评分 \n");
printf(" 2开始排序 \n");
printf(" 3输出全部信息 \n");
printf(" 4返回 \n");
printf("**********************************\n");
fflush(stdin);
printf("请选择\n");
scanf("%d",&chose);
if(chose!=1&&chose!=2&&chose!=3&&chose!=4)
printf("您输入错误请重新输入\n");}
while(chose!=1&&chose!=2&&chose!=3&&chose!=4);
return chose;}
void operatemenu(ATHLETE *head) /*菜单处理函数*/
{
int n,k;
printf("请输入数字,如果输入-1则将不执行下面的菜单意味着结束程序,请慎重!\n");
scanf("%d",&k);
while(k!=-1)
{
n=menu();
switch(n){
case 1:printf("开始评分\n");
head=creatscore();break;
case 2:printf("开始排序\n");
head=queue(head);break;
case 3:printf("输出全部信息\n");
print(head);break;
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展