c语言竞技比赛打分系统,c语言程序设计第2版) 教学课件 作者 梅创社代码 竞技比赛打分系统源代码.docx...

#include

#include

#include

#include

#defineJUDEGNUM3 /* 裁判数 */

#define NAMELEN20/* 姓名最大字符数 */

#define CODELEN10/* 号码最大字符数 */

#define FNAMELEN80/* 文件名最大字符数 */

#define BUFFSIZE128/* 缓冲区最大字符数 */

char judgement[JUDEGNUM][NAMELEN+1] = {"judgementA","judgementB","judgementC"};

struct AthleteScore

{

charname[NAMELEN+1];/* 姓名 */

char code[CODELEN+1];/* 学号 */

int score[JUDEGNUM];/* 各裁判给的成绩 */

int total; /* 总成级 */

};

struct LinkNode

{

charname[NAMELEN+1];/* 姓名 */

char code[CODELEN+1];/* 号码 */

int score[JUDEGNUM];/* 各裁判给的成绩 */

int total; /* 总成级 */

structLinkNode *next;

}*head;/* 链表首指针 */

int total[JUDEGNUM];/* 各裁判给的总成绩 */

FILE *filepoint;/* 文件指针 */

char filename[FNAMELEN];/* 文件名 */

/* 从指定文件读入一个记录 */

int GetRecord(FILE *fpt,struct AthleteScore *sturecord)

{

char buf[BUFFSIZE];

int i;

if(fscanf(fpt,"%s",buf)!=1)

return 0;/* 文件结束 */

strncpy(sturecord->name,buf,NAMELEN);

fscanf(fpt,"%s",buf);

strncpy(sturecord->code,buf,CODELEN);

for(i=0;i

fscanf(fpt,"%d",&sturecord->score[i]);

for(sturecord->total=0,i=0;i

sturecord->total+=sturecord->score[i];

return 1;

}

/* 对指定文件写入一个记录 */

void PutRecord(FILE *fpt,struct AthleteScore *sturecord)

{

int i;

fprintf(fpt,"%s\n",sturecord->name);

fprintf(fpt,"%s\n",sturecord->code);

for(i=0;i

fprintf(fpt,"%d\n",sturecord->score[i]);

return ;

}

/* 显示运动员记录 */

void ShowAthleteRecord(struct AthleteScore *rpt)

{

int i;

printf("\nName : %s\n",rpt->name);

printf("Code : %s\n",rpt->code);

printf("score :\n");

for(i=0;i

printf(" %-15s : %4d\n",judgement[i],rpt->score[i]);

printf("Total : %4d\n",rpt->total);

}

/* 列表显示运动员成绩 */

void Listathleteinfo(char *fname)

{

FILE *fp;

struct AthleteScore s;

system("cls");

if((fp=fopen(fname,"r"))==NULL)

{

printf("Can't open file %s.\n",fname);

return ;

}

while(GetRecord(fp,&s)!=0)

{

ShowAthleteRecord(&s);

}

fclo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值