第1个回答 2013-12-23
#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>
#define SIZE 16#define N 4#define WM 3
void bsxm();void csxx();void Information();void main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void ttzf();
int i;FILE *fp1,*fp2,*fp3,*fp4;
struct athlete //定义运动员信息{ char univ[5]; char name[16]; char prog[15]; char mingci[5]; int score; int age[16];} at[SIZE];
struct xuexiao //定义系{ char univ[5]; char prog[15]; int num_athlete;} xx[N];
struct program //定义项目信息
{ char prog[5]; int quming; char ath1[5]; char ath2[5]; char univ1[5]; char univ2[5];} pro[WM];struct zongfen //定义系得分信息
{
char univ[5]; char prog1[5]; char prog2[5]; char prog3[5]; int score1; int score2; int score3; int total_score;} zf[N];
void Information(){ int n,w; do { puts("\n\n\n"); puts("欢迎进入信息录入功能!\n"); puts("目录\n"); puts("1.录入运动员信息\n"); puts("2.录入系信息\n"); puts("3.录入项目信息()\n"); puts("4.后退\n"); puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w=1; getchar(); } else w=0; } while (w==1); switch(n) { case 1 :saveathlete();break;// 保存运动员信息子函数 case 2 :saveschool();break;//保存系信息子函数 case 3 :saveprogram();break;//保存项目比赛信息子函数 case 4 :exit(0); }}
void saveathlete() //保存运动员信息子函数
{ printf("\n请输入各项目获奖运动员的信息:"); for(i=0; i<SIZE; i++) { printf("\n请输入第%d个运动员的信息:\n",i+1); printf("姓名:"); scanf("%s",at[i].name); printf("年龄: "); scanf("%d",at[i].age); printf("系:"); scanf("%s",at[i].univ); printf("参赛项目:"); scanf("%s",at[i].prog); printf("名次:"); scanf("%s",at[i].mingci); printf("得分:"); scanf("%d",&at[i].score); }
fp1=fopen("ath","w"); for(i=0; i<SIZE; i++) { if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1) printf("错误!\n"); } fclose(fp1); fp1=fopen("ath","r for(i=0; i<SIZE; i++)"); printf("\n现在各运动员的信息如下:\n\n"); printf("姓名 年龄 系别 项目 名次 得分\n");
{ fread(&at[i],sizeof(struct athlete),1,fp1); printf("%-10%ds%-10s%-18s%-10s%d\n",at[i].name,at[i].age,at[i].univ,at[i].prog,at[i].mingci,at[i].score); } fclose(fp1); printf_back();}
void saveschool() //保存系信息子函数
{ printf("\n请输入各参赛系别的信息:"); for(i=0; i<N; i++) { printf("\n请输入第%d个系别的信息:\n",i+1); printf("系:"); scanf("%s",xx[i].univ); printf("参赛的项目:"); scanf("%s",xx[i].prog); printf("参赛者数:"); scanf("%d",&xx[i].num_athlete); }
fp3=fopen("xxiao","w"); for(i=0; i<N; i++) { if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1) printf("错误!\n"); } fclose(fp3); printf_back();}
void saveprogram() //保存项目比赛信息子函数{ printf("\n请输入关于比赛项目的信息:"); for(i=0; i<WM; i++) { printf("\n请输入第%d项比赛的信息:\n",i+1); printf("项目:"); scanf("%s",pro[i].prog); printf("取分情况:"); scanf("%d",&pro[i].quming); printf("参赛者:"); scanf("%s",pro[i].ath1); printf("所属学校:"); scanf("%s",pro[i].univ1); printf("参赛者:"); scanf("%s",pro[i].ath2); printf("所属学校:"); scanf("%s",pro[i].univ2); }
fp4=fopen("pr","w"); for(i=0; i<N; i++) { if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1) printf("错误!\n"); } fclose(fp4); printf_back();}
void savescore() //保存学校得分情况子函数{ printf("N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。\n"); printf("W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。\n"); printf("\n各项名次得分权值如下:\n"); printf("取前三名:第一名5分 第二名3分 第三名2分\n"); printf("\n请输入各学校的得分情况:"); for(i=0; i<N; i++) { printf("\n请输入第%d个得分情况:\n",i+1); printf("学校:"); scanf("%s",zf[i].univ); printf("参赛项目1:"); scanf("%s",zf[i].prog1); printf("得分:"); scanf("%d",&zf[i].score1); printf("参赛项目2:"); scanf("%s",zf[i].prog2); printf("得分:"); scanf("%d",&zf[i].score2); printf("参赛项目3:"); scanf("%s",zf[i].prog3); printf("得分:"); scanf("%d",&zf[i].score3); zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3; } fp2=fopen("zfen","w"); for(i=0; i<N; i++) { if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1) printf("错误!\n"); } fclose(fp2); printf_back();}
void Search(){ int n,w2; do { puts("欢迎进入查询功能!\n"); puts("目录\n"); puts("1.查询团体总分\n");//查看团体总分 puts("2.查询参赛学校信息\n");//查看参赛学校信息! puts("3.查询比赛项目信息\n");//查看比赛项目信息! puts("4.退出\n");//退出 puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w2=1; getchar(); } else w2=0; } while (w2==1); switch(n) { case 1:ttzf();break; case 2:csxx();break; case 3:bsxm();break; case 4:exit(0);break; default:printf("未进行任何操作!"); }}void ttzf() //查看学校团体总分子函数{ fp2=fopen("zfen","r"); printf("\n各学校的团体总分情况如下:\n\n"); printf("学校 参赛项目 总分\n"); for(i=0; i<N; i++) { fread(&zf[i],sizeof(struct zongfen),1,fp2); printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score); } fclose(fp2); printf_back();}
void csxx() //查看参赛学校信息子函数{ fp3=fopen("xxiao","r"); printf("\n各参赛学校的情况如下:\n\n"); printf("学校 参赛项目 参赛者数\n"); for(i=0; i<N; i++) { fread(&xx[i],sizeof(struct xuexiao),1,fp3); printf("%-8s%-20s%-12d\n",xx[i].univ,xx[i].prog,xx[i].num_athlete); } fclose(fp3); printf_back();}
void bsxm() //查看比赛项目子函数{ fp4=fopen("pr","r"); printf("\n各比赛项目的信息如下:\n\n"); printf("项目 取分情况 赛者1 所属学校 参赛者2 所属学校\n"); for(i=0; i<N; i++) { fread(&pro[i],sizeof(struct program),1,fp4); printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2); } fclose(fp4); printf_back();}
void main(){ menu();}void menu(){ int n,w1; do { puts("欢迎进入运动会管理系统!\n"); puts("目录\n"); puts("1.输入信息\n"); puts("2.比赛结果录入\n"); puts("3.查询\n"); puts("4.退出\n"); puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",&n); if (n<1||n>4) { w1=1; getchar(); } else w1=0; } while (w1==1); switch(n) { case 1:Information();break; //输入信息 case 2:savescore();break;//比赛结果录入 case 3:Search();break;//查询模块 case 4:exit(0); }}
//公共函数void printf_back(){ int w; printf("\n\n\tSUCCESSFUL!\n\n"); printf("What do you want to do next?\n\n\t1).exit \t2).menu:[ ]\b\b"); scanf("%d",&w); if(w==1) exit(0); else menu();}