| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1648 人关注过本帖
标题:[求助]关于读取函数与显示的问题
取消只看楼主 加入收藏
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
[求助]关于读取函数与显示的问题
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>


struct table_game//定义一个全局的结构体
{
     char xmmc[11];//项目名称
    char xymc[13];//所属学院名称
    int mc;   //名次
};
struct table_zf
 {
     char xymc[13];
     int fs;
 };
//定义结构体数组(全局)
struct table_game GAME[1000];
struct table_zf   ZF[100];
int x = 0;//定义项目数


          //定义一个全局变量存放实际的人数
int sjs;
//输入比赛成绩
void input()
 {
     int n, i, j , index = 0;
     char temp[11];
     char wrong[100];//用来存放输入选择时候手误输入可能的字符
    system("cls");
     printf("***************************************************************************\n");
     printf("***             亲,欢迎来到运动员成绩录入功能!                         ***\n");
     printf("***************************************************************************\n");

     sjs = 0;

     for (i = 0; i <= 999; i++)
     {
         printf("\n********************************************************************\n");
         printf("*****                      亲,是否要录入比赛成绩!               *****\n");
         printf("---                             1、是哒!                           ---\n");
         printf("---                             2、不是哒!                         ---\n");
         printf("\n********************************************************************\n");

         printf("亲,请输入你的选择(1 or 2):");
         scanf("%d", &n);
         gets(wrong);

         while (n != 1 && n != 2)
         {
             printf("亲,你输得不是(1 or 2),请重新输入(1 or 2):");
             scanf("%d", &n);
             gets(wrong);
         }
         if (n == 2)
         {
             printf("over\n");
             break;
         }
         else
         {

             //正常情况下一个运动员的所有信息录入
            
             printf("输入项目名称:");
            gets(temp);

             for(j = 0;j<7;j++)
            {

                GAME[index].xmmc[j] = temp[j];

                printf("输入运动员所属学院名称:");
                gets(GAME[index].xymc);

                printf("输入名次:");
                int temp = 0;
                scanf("%d", &temp);
                GAME[index].mc = temp;

                gets(wrong);

                index++;
            }
         }
     }
     system("pause");
 }


void output()
 {
     int i, j;
     system("cls");
     printf("%-11s", "项目名称");
     printf("%-13s", "所属学院名称");
     printf("%-7s", "名次");
     printf("\n");

     for (i = 0; i <= 999; i++)
     {
         printf("%-11s", GAME[i].xmmc);
         printf("%-13s", GAME[i].xymc);
         printf("%-7d", GAME[i].mc);
     }
     system("pause");
 }
//保存数据
void save()
 {
     FILE *p;
     int n;
     char wrong[100];
     system("cls");

     printf("************************************************************************\n");
     printf("***                    亲,欢迎来到数据保存功能                      ***\n");
     printf("***                    1、确定保存   2、放弃保存                     ***\n");
     printf("************************************************************************\n");

     printf("亲,请输入你的选择(1 or 2):");
     scanf("%d", &n);
     gets(wrong);
     while (n != 1 && n != 2)
     {
         printf("亲,你输入的不是(1 or 2),请重新输入(1 or 2)");
         scanf("%d", &n);
         gets(wrong);
     }
     if (n == 1)
     {
         p = fopen("保存数据.txt", "w+");
         if (p == NULL)
         {
             printf("数据保存失败!\n");
             exit(0);
         }
         else
         {
             fwrite(GAME, sizeof(struct table_game), 1000, p);
             printf("亲,数据保存成功了哟!\n");
             fclose(p);
         }
     }
     else
     {
         printf("放弃数据保存,返回主菜单!\n");
     }
     system("pause");
 }
//读取函数
void load()
 {
     FILE*p;
     int n;
     char wrong[100];
     system("cls");
     printf("************************************************************************\n");
     printf("***                    亲,欢迎进入信息读取功能                      ***\n");
     printf("***                    1、确定读取      2、放弃读取                  ***\n");
     printf("************************************************************************\n");
     printf("亲,请输入你的选择(1 or 2):");
     scanf("%d", &n);
     gets(wrong);
     while (n != 1 && n != 2)
     {
         printf("亲,你输入的不是(1 or 2),请重新输入(1 or 2):");
         scanf("%d", &n);
         gets(wrong);
     }
     if (n == 1)
     {
         p = fopen("保存数据.txt", "r+");
         if (p == NULL)
         {
             printf("文件打开失败!\n");
             exit(0);
         }
         else
         {
             fwrite(GAME, sizeof(struct table_game), 1000, p);
             printf("亲,数据读取成功了哟!\n");
             fclose(p);
         }
     }
     else
     {
         printf("确定放弃数据读取,即将返回主菜单\n");
     }
     system("pause");
 }

//查询比赛成绩
void search()
 {
     int n, i, j, flag;
     char search_xmmc[11];
     int  search_mc;
     char search_xymc[13];
     char wrong[100];

     system("cls");

     printf("***********************************************************************\n");
     printf("***                 亲,欢迎来到查询比赛成绩功能                    ***\n");
     printf("***                     1、按照项目名称查询                         ***\n");
     printf("***                     2、按照名次查询                             ***\n");
     printf("***                     3、查询参赛院信息                           ***\n");
     printf("***                     4、退出查询 返回菜单                        ***\n");
     printf("***********************************************************************\n");
     printf("亲,请输入你的选择(1 or 2 or 3 or 4):");
     scanf("%d", &n);
     gets(wrong);
     while (n != 1 && n != 2 && n != 3 && n != 4)
     {
         printf("亲,你输入的不是(1 or 2 or 3 or 4),请重新输入(1 or 2 or 3 or 4)");
         scanf("%d", &n);
         gets(wrong);
     }

     switch (n)
     {
     case 1:
         printf("请输入要查询的项目名称:");
         gets(search_xmmc);


         for (j = 0; j<1000; j++)

         {
             flag = 0;
             //puts(GAME[i].xmmc == 0);
            if (strcmp(search_xmmc, GAME[j].xmmc) == 0)
             {
                 flag = 1;
                 printf("******                 按项目名称查询有以下结果         ******\n");
                 printf("***                      名次       学院                 ***\n ");
                 printf("*************************************************************\n");
                 printf("%7d%7s\n", GAME[j].mc, GAME[j].xymc);
                 break;
             }
         }


         if (flag == 0)
         {
             printf("查无此项目!\n");
         }
         break;
     case 2:
         printf("请输入名次:");
         scanf("%d", &search_mc);

         for (j = 0; j<1000; j++)
         {
             flag = 0;
             //puts(GAME[i].mc == 0);
            if (search_mc == GAME[j].mc)
             {
                 flag = 1;
                 printf("******                 按名次查询有以下结果           ******\n");
                 printf("***                  项目名称       学院                 ***\n ");
                 printf("*************************************************************\n");
                 printf("%11s%7s\n", GAME[j].xmmc, GAME[j].xymc);
                 break;
             }
         }

         if (flag == 0)
         {
             printf("该名次不存在!\n");
         }
         break;
     case 3:
         printf("请输入学院名称:");
         gets(search_xymc);

         for (j = 0; j<1000; j++)
         {
             flag = 0;
             //puts(GAME[i].xymc == 0);
            if (strcmp(search_xymc, GAME[j].xymc) == 0)
             {
                 flag = 1;
                 printf("******                 按学院名称查询有以下结果        ******\n");
                 printf("***                  项目名称       名次                 ***\n ");
                 printf("*************************************************************\n");

                 printf("%11s%7d\n", GAME[j].xmmc, GAME[j].mc);
                 break;
             }
         }

         if (flag == 0)
         {
             printf("该学院不存在!\n");
         }
         break;
     case 4: break;
     }
     system("pause");
 }

//显示团体总分排序
void sort()
 {
     int i, j;
     struct table_game t;
     system("cls");
     printf("******                   团体总分显示如下              *****\n");
     printf("******                  学院    总成绩     名次        *****\n");
     printf("************************************************************\n");
     for (i = 0; i <= 999; i++);
     {
         for (j = 0; j<999 - 1; j++)
         {
             if (GAME[j].mc<GAME[j + 1].mc)
             {
                 t = GAME[j];
                 GAME[j] = GAME[j + 1];
                 GAME[j + 1] = t;
             }

         }

     }
     output();
 }
//统计总分
void tongji()
 {
     int i;
     char wrong[100];
     system("cls");
     printf("***         亲,欢迎来到总分统计栏目      ***\n");

     for (i = 0; i <= 19; i++)
     {
         if (GAME[i].mc == 1)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 10;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 10;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 10;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 10;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 10;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 10;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 10;
         }
         if (GAME[i].mc == 2)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 8;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 8;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 8;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 8;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 8;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 8;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 8;
         }
         if (GAME[i].mc == 3)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 6;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 6;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 6;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 6;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 6;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 6;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 6;
         }
         if (GAME[i].mc == 4)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 5;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 5;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 5;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 5;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 5;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 5;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 5;
         }
         if (GAME[i].mc == 5)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 4;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 4;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 4;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 4;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 4;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 4;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 4;
         }
         if (GAME[i].mc == 6)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 3;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 3;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 3;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 3;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 3;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 3;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 3;
         }
         if (GAME[i].mc == 7)
         {
             if (strcmp(GAME[i].xymc, "建管学院") == 0)
                 ZF[1].fs += 1;
             if (strcmp(GAME[i].xymc, "土木学院") == 0)
                 ZF[2].fs += 1;
             if (strcmp(GAME[i].xymc, "经管学院") == 0)
                 ZF[3].fs += 1;
             if (strcmp(GAME[i].xymc, "人文学院") == 0)
                 ZF[4].fs += 1;
             if (strcmp(GAME[i].xymc, "艺术学院") == 0)
                 ZF[5].fs += 1;
             if (strcmp(GAME[i].xymc, "电气学院") == 0)
                 ZF[6].fs += 1;
             if (strcmp(GAME[i].xymc, "建筑学院") == 0)
                 ZF[7].fs += 1;
         }


     }

     system("pause");

 }

//菜单函数
void menu()
 {
     time_t t;
     struct tm *p;
     int n;

     t = time(NULL);
     p = (struct tm *)localtime(&t);

     system("cls");

     printf("                             运动会管理系统                \n");
     printf("          %d-%d-%d  %d:%d:%d\n", p->tm_year + 1990, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
     printf("***********************************************************\n");
     printf("---               1、录入比赛成绩功能                  ----\n");
     printf("---               2、查询各个比赛项目的成绩            ----\n");
     printf("---               3、显示团体总分报表                  ----\n");
     printf("---               4、统计总分                          ----\n");
     printf("---               5、保存数据                          ----\n");
     printf("---               6、读取数据                          ----\n");
     printf("---               7、退出系统                          ----\n");
     printf("***********************************************************\n");

     printf("请输入你的选择(1-7):");
     scanf("%d", &n);

     while (n<0 || n>7)
     {
         printf("亲,输错了,请重新输入(1-7)");
         scanf("%d", &n);
     }
     switch (n)
     {
     case 1: input(); menu(); break;
     case 2: search(); menu(); break;
     case 3: sort();  menu(); break;
     case 4: tongji(); menu(); break;
     case 5: save();  menu(); break;
     case 6: load();  menu(); break;
     case 7: exit(0); menu(); break;
     }
 }
//主函数
void main()
 {
     menu();//直接调用
     system("pause");

}
问题:1、读取函数没有写错,但是退出系统再进入后数据无法读出
      2、在查询功能中,项目名称显示不出来并且在保存的数据中项目名称显示为乱码
      3、关于统计总分的代码无从下手求指教
搜索更多相关主题的帖子: 学院 项目 结构体 include 
2016-06-22 09:55
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 楼主 SR忘
统计总分就是总共有19个项目,每个项目有对应的一到七名,每个学院的总分统计就是在各项目得分之和
2016-06-22 19:43
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 2楼 grmmylbs
提问如何在录入功能中,关于名次与学院处循环七次且不影响后面的功能?之前试过改动就造成后面查询读取都出现问题
2016-06-22 20:07
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
星期五还要交一份五千字的课程设计报告,求大神指点,关于统计分数的部分该怎么写,急求呀!
2016-06-22 23:02
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 6楼 grmmylbs
因为一个项目有7个学院参加,在录入中项目名称录一次,学院名次则是7次
2016-06-23 09:48
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 8楼 grmmylbs
哦哦,那算了,明天就要交作业了,来不及改了,求大神指导关于统计总分的部分怎么弄,急!
2016-06-23 10:54
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 10楼 tremere
求帮忙,课程设计挂了要重修
2016-06-23 11:12
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 11楼 SR忘
不好意思,停了一下午的电着会才回。是的,按三显示团体总分。
2016-06-23 22:45
SR忘
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 13楼 grmmylbs
按4能够出现各学院的总分
2016-06-23 22:52
快速回复:[求助]关于读取函数与显示的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017482 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved