运动会分数统计

#include <stdio.h> 
#include <malloc.h> 
#include <stdlib.h> 
#include <iostream> 
#include <string>
using namespace std;

int n,b,m,w,i,j; 
char school_name[20][30];
char sport_name[100][30];

struct node 
{ 
    int num; 
}; 

struct node *f[22]; 

void exit() 
{ 
    FILE *fp; 
    
	if((fp=fopen("score.txt","w"))==NULL) 
    { 
        cout<<"打开文件失败!"<<endl;
    } 
    
    fprintf(fp,"%d\t%d\t%d\t\n",n,m,w);
    
    for (int x = 0; x < n; x++) {
    	fprintf(fp,"%s\t",school_name[x]);
    }
    fprintf(fp,"\n");
    
    for (int y = 0; y < m + w; y++) {
    	fprintf(fp,"%s\t",sport_name[y]);
    }
    fprintf(fp,"\n");
    
    for(i = 0; i <= m+w; i++) {
		fprintf(fp,"%d\t",i); 
    }
    fprintf(fp,"\n");
    for(i = 1; i <= n; i++) 
    { 
        fprintf(fp,"%d\t",i); 
        for(b = 1; b <= m + w; b++) 
        { 
            fprintf(fp,"%d\t",f[i][b].num); 
        } 
        fprintf(fp,"\n"); 
    } 
    
    cout<<endl<<"\t比赛成绩已保存到当前路径下的“score.txt“文件中"<<endl; 
    fclose(fp); 
    //exit(1); 
} 

int loadFile()
{
	FILE *fl;
	int k; 
	int flag = 1;
    A:
	if((fl=fopen("score.txt","r"))==NULL) 
    { 
        cout<<endl<<"\t初次进入系统!"<<endl;
        flag = 0;
        return flag;
    } else {
		fscanf(fl,"%d%d%d",&n,&m,&w); 
		
		for (int x = 0; x < n; x++) {
    		fscanf(fl,"%s",&school_name[x]);
	    }
	    
	    for (int y = 0; y < m + w; y++) {
	    	fscanf(fl,"%s",&sport_name[y]);
	    }
		
		int i, j;
		for(i=0;i<=n;i++) 
 		{ 
	  		f[i]=(struct node *)malloc(sizeof(struct node)*(m + w + 3)); 
	    	for(j = 0; j <= m + w + 2; j++) {
	     		f[i][j].num = 0; 
	      	}
   		} 
   		
		for(i = 0; i <= m + w; i++) {
			fscanf(fl,"%d",&j); 
	    }
	    
	    
		for(i = 1; i <= n; i++) 
	    { 
	        fscanf(fl,"%d",&j); 
	        int sum  = 0;
	        for(b = 1; b <= m + w; b++) 
	        { 
	            fscanf(fl,"%d",&j); 
	            f[i][b].num = j;
				sum += j; 
	        }
	        f[i][0].num = sum;
	        int sum1 = 0;
	        for (int j = 1; j <= m; j++) {
        		sum1 += f[i][j].num ;
        	}
        	f[i][m + w + 1].num = sum1;
        	int sum2 = sum - sum1;
        	f[i][m + w + 2].num = sum2;
	    } 
  		
	    
	} 
    
	fclose(fl);
	return flag;
}

void input() 
{ 
    int ab,ac,ae,af,g=1,get[5]={0,0,0,0,0}; 
    printf("\n\t请输入项目代号:\t"); 
    
    while (true) {
    	if (scanf("\t%d",&ab) != 1) {
	    	cout<<"\n\t非法字符!重新输入:\t";
    	    fflush(stdin);
	    	continue;
	    }
	    if(ab > m + w || ab < 1) 
    	{ 
   			printf("\n\t此项目代号不存在,重新输入:\t"); 
   			fflush(stdin);
     	} else {
    		break;
     	} 	
    }
	
 	ae = 0; 
 	
  	for(i = 0; i <= n; i++) 
   	{ 
    	if(f[i][ab].num != 0) 
     	{ 
      		ae = 1; 
        	break; 
         } 
     } 

	if(ae == 1) 
 	{ 
	     printf("\n\t此项目成绩曾经已被录入过!\n"); 
	  	 return ;
 	}
 	
    while (true) {
    	printf("\t选择评分标准:(3.前三名,5.前五名):\t"); 
            
            //scanf("%d",&ac); 
			
			while (true) {
				if (scanf("%d",&ac) != 1) {
					cout<<"\n\t非法字符!重新输入
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值