C++教程:竞技比赛打分系统源码

  C语言培训C++教程这篇文章是介绍的:竞技比赛打分系统源码,这是一些小的程序,可能会用上,在这分享给大家!

  #include<stdio.h>

  #include<conio.h>

  #include<stdlib.h >

  #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 *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");

  /*

  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)

  {

  system("cls");/*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;

  system("cls");/*clrscr();*/

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

  {

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

  return 0;

  }

  c=0;

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

  {

  if(strcmp(s.name,key)==0)

  {

  ShowAthleteRecord(&s);

  c++;

  }

  }

  fclose(fp);

  if(c==0)

  printf("The athlete %s is not in the file %s.\n",key,fname);

  return 1;

  }

  /* 按运动员号码查找记录 */

  int SearchbyCode(char *fname, char *key)

  {

  FILE *fp;

  int c;

  struct AthleteScore s;

  system("cls");/*clrscr();*/

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

  {

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

  return 0;

  }

  c=0;

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

  {

  if(strcmp(s.code,key)==0)

  {

  ShowAthleteRecord(&s);

  c++;

  break;

  }

  }

  fclose(fp);

  if(c==0)

  printf("The athlete %s is not in the file %s.\n",key,fname);

  return 1;

  }

  void InsertRecord()

  {

  FILE *fp;

  char c,i,j,n;

  struct AthleteScore s;

  system("cls");/*clrscr();*/

  printf("Please input the athletes score record file‘s name: \n");

  scanf("%s",filename);

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

  {

  printf("The file %s doesn‘t exit.\ndo you want to creat it? (Y/N) ",filename);

  getchar();

  c=getchar();

  if(c==‘Y‘||c==‘y‘)

  {

  fp=fopen(filename,"w");

  printf("Please input the record number : ");

  scanf("%d",&n);

  for(i=0;i

  {

  printf("Input the athlete‘s name: ");

  scanf("%s",&s.name);

  printf("Input the athlete‘s code: ");

  scanf("%s",&s.code);

  for(j=0;j

  {

  printf("Input the %s mark: ",judgement[j]);

  scanf("%d",&s.score[j]);

  }

  PutRecord(fp,&s);

  }

  fclose(fp);

  }

  }

  fclose(fp);

  return;

  }

  int main()

  {

  int i,j,n;

  char c;

  char buf[BUFFSIZE];

  while(1)

  {

  system("cls");/*clrscr();*/

  printf("\n-------------- Input a command -----------\n");

  printf("| i : insert record to a file. |\n");

  printf("| n : search record by name. |\n");

  printf("| c : search record by code. |\n");

  printf("| l : list all the records. |\n");

  printf("| s : sort the records by total. |\n");

  printf("| q : quit. |\n");

  printf("------------------------------------------\n");

  printf("Please input a command:\n");

  scanf("%c",&c); /* 输入选择命令 */

  switch(c)

  {

  case ‘i‘:

  InsertRecord();

  getch();

  break;

  case ‘n‘: /* 按运动员的姓名寻找记录 */

  printf("Please input the athlete‘s name:\n");

  scanf("%s",buf);

  SearchbyName(filename,buf);

  getch();

  break;

  case ‘c‘: /* 按运动员的号码寻找记录 */

  printf("Please input the athlete‘s code:\n");

  scanf("%s",buf);

  SearchbyCode(filename,buf);

  getch();

  break;

  case ‘l‘: /* 列出所有运动员记录 */

  Listathleteinfo(filename);

  getch();

  break;

  case ‘s‘: /* 按总分从高到低排列显示 */

  if((head=CreatLinklist(filename))!=NULL)

  OutputLinklist(head);

  getch();

  break;

  case ‘q‘:

  return 1;

  default:

  break;

  }

  }

  return 1;

  }

  #include

  #include

  #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 *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");

  /*

  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)

  {

  system("cls");/*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;

  system("cls");/*clrscr();*/

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

  {

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

  return 0;

  }

  c=0;

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

  {

  if(strcmp(s.name,key)==0)

  {

  ShowAthleteRecord(&s);

  c++;

  }

  }

  fclose(fp);

  if(c==0)

  printf("The athlete %s is not in the file %s.\n",key,fname);

  return 1;

  }

  /* 按运动员号码查找记录 */

  int SearchbyCode(char *fname, char *key)

  {

  FILE *fp;

  int c;

  struct AthleteScore s;

  system("cls");/*clrscr();*/

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

  {

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

  return 0;

  }

  c=0;

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

  {

  if(strcmp(s.code,key)==0)

  {

  ShowAthleteRecord(&s);

  c++;

  break;

  }

  }

  fclose(fp);

  if(c==0)

  printf("The athlete %s is not in the file %s.\n",key,fname);

  return 1;

  }

  void InsertRecord()

  {

  FILE *fp;

  char c,i,j,n;

  struct AthleteScore s;

  system("cls");/*clrscr();*/

  printf("Please input the athletes score record file‘s name: \n");

  scanf("%s",filename);

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

  {

  printf("The file %s doesn‘t exit.\ndo you want to creat it? (Y/N) ",filename);

  getchar();

  c=getchar();

  if(c==‘Y‘||c==‘y‘)

  {

  fp=fopen(filename,"w");

  printf("Please input the record number : ");

  scanf("%d",&n);

  for(i=0;i

  {

  printf("Input the athlete‘s name: ");

  scanf("%s",&s.name);

  printf("Input the athlete‘s code: ");

  scanf("%s",&s.code);

  for(j=0;j

  {

  printf("Input the %s mark: ",judgement[j]);

  scanf("%d",&s.score[j]);

  }

  PutRecord(fp,&s);

  }

  fclose(fp);

  }

  }

  fclose(fp);

  return;

  }

  int main()

  {

  int i,j,n;

  char c;

  char buf[BUFFSIZE];

  while(1)

  {

  system("cls");/*clrscr();*/

  printf("\n-------------- Input a command -----------\n");

  printf("| i : insert record to a file. |\n");

  printf("| n : search record by name. |\n");

  printf("| c : search record by code. |\n");

  printf("| l : list all the records. |\n");

  printf("| s : sort the records by total. |\n");

  printf("| q : quit. |\n");

  printf("------------------------------------------\n");

  printf("Please input a command:\n");

  scanf("%c",&c); /* 输入选择命令 */

  switch(c)

  {

  case ‘i‘:

  InsertRecord();

  getch();

  break;

  case ‘n‘: /* 按运动员的姓名寻找记录 */

  printf("Please input the athlete‘s name:\n");

  scanf("%s",buf);

  SearchbyName(filename,buf);

  getch();

  break;

  case ‘c‘: /* 按运动员的号码寻找记录 */

  printf("Please input the athlete‘s code:\n");

  scanf("%s",buf);

  SearchbyCode(filename,buf);

  getch();

  break;

  case ‘l‘: /* 列出所有运动员记录 */

  Listathleteinfo(filename);

  getch();

  break;

  case ‘s‘: /* 按总分从高到低排列显示 */

  if((head=CreatLinklist(filename))!=NULL)

  OutputLinklist(head);

  getch();

  break;

  case ‘q‘:

  return 1;

  default:

  break;

  }

  }

  return 1;

  }

  代码已经完成,可以自行运行

时间: 2024-10-27 13:03:00

C++教程:竞技比赛打分系统源码的相关文章

安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程

原文                   http://blog.csdn.net/zhaoxy_thu/article/details/18883015 本文主要对从安卓系统源码中抽取出WebView相关源码进行单独编译的流程进行说明. 编译流程说明 由于WebView包含两个部分,一部分是上层的Java代码,包括若干Java类,用于对外提供接口:另一部分是下层的C++代码,包括两个so库(libwebcore.so和libchromium_net.so),用于网页的解析和渲染.两个部分之间通

轩宇淘宝客系统源码

轩宇淘宝客是一款适用于淘宝客打折单品推广的程序,无论老手或新手都能短时间内赚取大量佣金的淘宝客网站程序,不同于现在广泛的淘宝客推广网站.本程序可手动添加商品,同时也配置强大的多功能采集插件,可采集评论,也可自定义采集规则,全自动无人值守采集更新网站,无需人工维护.默认提供精美的页面设计模版,超好的用户访问体验,超高转化率.对搜索引擎收录友好,整站伪静态技术,访问速度快,无需等待漫长的生成HTML页面时间.后台傻瓜式操作,智能简单,2014年最新推荐淘宝客站长使用的单品推广程序. 前台打折促销风格

如何阅读Android系统源码-收藏必备

对于任何一个对Android开发感兴趣的人而言,对于android系统的学习必不可少.而学习系统最佳的方法就如linus所言:"RTFSC"(Read The Fucking Source Code).下面从知乎整理了一些优质回答,以飨读者. 巨人的肩膀 AOSP项目官方: https://source.android.com/source/index.html这个一定要先读. 项目介绍, 代码下载, 环境搭建, 刷机方法, Eclipse配置都在这里. 这是一切的基础. Androi

小说分销系统,微信小说分销,类掌中云小说系统,类818tu系统源码

[演示站参数][][][][][][][][][][][] [后 台 地 址]     http://xiaoshuo.qqsiot.cn/manager          [] [管理员账号]     admin                                                     [] [渠道商账号]     channel                                                  [] [代理商账号]     age

南方七星彩投注网站系统源码

这个系统是南方七星彩投注网站系统源码,网站是采用php+MySQL的. 基本实现功能如下:这个是普通的七星前四位的网投注平台股东-总代理-代理-会员   这四个级别 网站大家只限于学习与交流,并且在合法的范围使用,为了防止系统其他用户,代码有进行加密了,不便多多了解. 投注网站源码附件: http://files.cnblogs.com/files/chenhaizhen08/7%E6%98%9F%E5%BD%A9.rar 不懂可私聊扣扣:224-0713-732 演示图:

编译Android系统源码和内核源码

好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现最近的脑子不够用了,今天写点什么呢?就把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看重的不是结果,主要是过程,在这个过程中,我感觉最大的收获就是学习的耐心和毅力,因为在这个过程中那个问题就像是雨点似的天天打在你的脸上,虽然现在网上有很多文章介绍怎么去操作,但是我说句真心话,那些只能提供参考,因为你的工作环境毕竟和他不一样,所以等你按照他的步骤去操作的时候还是会遇到很多问题,当然我写这篇文章

Android系统篇之----编写系统服务并且将其编译到系统源码中

在之前已经介绍了一篇关于如何编写简单的驱动以及访问该驱动的小程序,最后将程序编译到Android内核源码中通过程序访问驱动验证是可以通过的,那么本文就继续这个知识点,把这个驱动程序通过JNI连接创建一个系统服务,提供给上层应用访问改服务功能,可以看到前一篇介绍驱动程序的功能是属于内核层的,而本文介绍的内容是Framework层的知识. 声明:本文内容参考罗升阳的书籍:<Android系统源代码情景分析> 如果想了解更详细的内容非常建议购买此书 非常感谢罗神的这本书,给我带来很多未知的知识,大神

浏览Android系统源码的站点

源码之前,了无秘密 看了腾讯Bugly的公众号分享,学习了直接网上浏览android系统源码的两个站点,很不错.记录下 关于 Android 系统源码,如果不是为了深入的研究,可以直接在网上浏览: Androidxref (http://androidxref.com/), 该站点提供了一定程度上的代码跳转支持,以及非常强大的检索功能,是我们查询系统源码的首选. Grepcode (http://grepcode.com/) 也可以检索Android系统源码,与前者不同的是,它只包含Java代码

HoverTree系统源码介绍

HoverTree是一个开源asp.net系统.系统的效果请到:http://h.keleyi.com体验. 源码描述:一.源码特点采用典型的三层架构进行开发,实现了留言板的功能,后台管理,留言审核.回复功能和文章发布功能.二.功能介绍本源码是一个文章与留言板系统源码,前台用户留言,后台管理员审核通过即可显示,完全开源,欢迎下载三.菜单功能前台1.显示所有留言内容,点击我要留言,即可进入用户留言界面2.提交留言后,点击查看留言即可跳回查看页面(注:留言需要管理员后台审核后用户才能看到)管理员1.