• 大小: 1.95KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-04-18
  • 语言: C/C++
  • 标签: C语言  语言  

资源简介

c语言综合练习项目源码

资源截图

代码片段和文件信息

#include 
#define JUDEGNUM 3   /* 裁判数 */
#define NAMELEN 20 /* 姓名最大字符数 */
#define CODELEN 10 /* 号码最大字符数 */
#define FNAMELEN 80 /* 文件名最大字符数 */
#define BUFFSIZE 128 /* 缓冲区最大字符数 */

char judgement[JUDEGNUM][NAMELEN+1] = {“judgementA““judgementB““judgementC“};
struct AthleteScore
{
char name[NAMELEN+1]; /* 姓名 */
char  code[CODELEN+1]; /* 学号 */
int  score[JUDEGNUM]; /* 各裁判给的成绩 */
int   total;   /* 总成级 */
};

struct linkNode
{
char name[NAMELEN+1]; /* 姓名 */
char  code[CODELEN+1]; /* 号码 */
int  score[JUDEGNUM]; /* 各裁判给的成绩 */
int  total;       /* 总成级 */
struct linkNode *next;
}*head; /* 链表首指针 */

int total[JUDEGNUM]; /* 各裁判给的总成绩 */
FILE *filepoint; /* 文件指针 */
char filename[FNAMELEN];/* 文件名 */

/* 从指定文件读入一个记录 */
int GetRecord(FILE *fptstruct AthleteScore *sturecord)
{
char buf[BUFFSIZE];
int i;
if(fscanf(fpt“%s“buf)!=1)
return 0; /* 文件结束 */
strncpy(sturecord->namebufNAMELEN);
fscanf(fpt“%s“buf);
strncpy(sturecord->codebufCODELEN);
for(i=0;i fscanf(fpt“%d“&sturecord->score[i]);
for(sturecord->total=0i=0;i sturecord->total+=sturecord->score[i];
return 1;
}
/* 对指定文件写入一个记录 */
void PutRecord(FILE *fptstruct 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;
clrscr();
if((fp=fopen(fname“r“))==NULL)
{
printf(“Can‘t open file %s.\n“fname);
return ;
}
while(GetRecord(fp&s)!=0)
{
ShowAthleteRecord(&s);
}
fclose(fp);
return;
}

/* 构造链表 */
struct linkNode *Creatlinklist(char *fname)
{
FILE *fp;
struct AthleteScore s;
struct linkNode *p*u*v*h;
int i;
if((fp=fopen(fname“r“))==NULL)
{
printf(“Can‘t open file %s.\n“fname);
return NULL;
}
h=NULL;
p=(struct linkNode *)malloc(sizeof(struct linkNode));
while(GetRecord(fp(struct AthleteScore *)p)!=0)
{
v=h;
while(v&&p->total<=v->total)
{
u=v;
v=v->next;
}
if(v==h)
h=p;
else
u->next=p;
p->next=v;
p=(struct linkNode *)malloc(sizeof(struct linkNode));
}
free(p);
fclose(fp);
return h;
}

/* 顺序显示链表各表元 */
void Outputlinklist(struct linkNode *h)
{
clrscr();
while(h!=NULL)
{
ShowAthleteRecord((struct AthleteScore *)h);
printf(“\n“);
while(getchar()!=‘\n‘);
h=h->next;
}
return;
}
/* 按运动员姓名查找记录 */
int SearchbyName(char *fname char *key)
{
FILE *fp;
int c;
struct AthleteScore s;
clrscr();
if((fp=fopen(fnam

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6138  2006-12-19 09:05  score.c

评论

共有 条评论