鱼C论坛

 找回密码
 立即注册
查看: 1862|回复: 2

[已解决]C语言函数调用之后输出不了信息

[复制链接]
发表于 2021-4-25 22:00:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

// 目前我做了第一个“日常考情”的部分 不知道为什么函数调用之后 “ 全部学生考勤查找 ”和 “ 单个学生考勤查找 ” 都不能输出自己输入的信息

// 之前我是能输出信息 但是我如果我第一次输入玩“日常考情”后 再选择“继续添加学生考情”输入的信息(也就是第二次输入)在“日常考情” 它会是替换掉前面所有输入的信息

// 只会输出最新一次输入的数据

//各位大佬求解求解  做的一个学生管理的项目 有很多地方都不是搞不太清楚

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100

struct xueshengkaoqin
{
        char kc[10][10];  /*   课程    */       
          char name[N];     /*   姓名    */       
    int id[N];         /*   学号ID  */
        char c[N];         
} xskq[N]; /*   学生考勤    */

void tou();      /*   头部    */
void kaoqin();   /* 日常考勤  */
//void kqxh();     /* 考勤循环  */
void czlx();    /* 查找学生类型 单个或者全部  */
void kqcz();    /* 单个学生考勤查找  */
void qbkqcz();  /* 全部学生考勤查找  */
void ckkc();    /* 查看考情  */
void jiuqin();   /* 就寝记录  */
void weisheng(); /* 日常卫生  */
void daode();    /* 道德品质  */
void biaoxian(); /* 课堂表现  */
void zhiye();    /* 作业完成  */
void zhoukao();  /*   周考    */
void yuekao();   /*   月考    */
void xiangmu();  /* 课程项目  */
void zongchengji();  /*课程总成绩 */
void baogao();   /* 打印报告  */
void shezhi();  /* 系统设置  */

int main()

{       
        tou();
}

void tou()

  {       

          int n;
          printf("\n");
          printf("\n");
          printf("\n");
        printf("****************************欢迎来到学生管理系统***************************  \n");
        printf("\n");
        printf("\t\t\t      请输入所需操作\n");
        printf("\n");
        printf("\t\t\t      1.日常考勤\n");
        printf("\t\t\t      2.就寝记录\n");
        printf("\t\t\t      3.日常卫生\n");
        printf("\t\t\t      4.道德品质\n");
        printf("\t\t\t      5.课堂表现\n");
        printf("\t\t\t      6.作业完成\n");
        printf("\t\t\t      7.周考\n");
        printf("\t\t\t      8.月考\n");
        printf("\t\t\t      9.课程项目\n");
        printf("\t\t\t      10.课程总成绩\n");
        printf("\t\t\t      11.打印报告\n");
        printf("\t\t\t      12.系统设置\n");
        printf("\n");
        printf("***************************************************************************  \n");
        printf("\n");
       
    scanf("%d",&n);   
    printf("\n");
        switch(n)       
        {
        case 1 :
            kaoqin();
                break;
//        case 12:
               
        default:
            printf("请重新输入选择(1-12)\n");
            tou();
            break;
        }
       
}

void kaoqin() /* 日常考勤  */

  {       
    char c[N];
    int i=1;
    printf("\n");       
        printf("**************************    请输入日常考勤    **************************\n");
         printf("\n");
        printf("\t       考勤违规情况(迟到、早退、旷课、请假缺课)\n");
         printf("\n");
        printf("     请管理老师(学生科、班主任老师)在每天5:00下班前记载好当天情况\n");
          printf("\n");
        do
        {
                printf("请输入学生名字\n");
                  scanf("%s",xskq[i].name);
       
                  printf("请输入学生4位数的学号\n");
                  scanf("%d",&xskq[i].id[i]);
                 
                  for(int j=1;j<10;j++)
                  {
                          printf("请输入第%d节课\n",j);
                      scanf("%s",&xskq[i].kc[j]);
                  }

        printf("是否继续添加学生考勤(y或n)\n");
                  scanf("%s",&c[N]);       
                 
//                  i++;       
         }while(c[N]=='y');
         
      ckkc();/* 查看考情  */
  }
  

  
  
  
  
//void kqxh() /*考勤循环*/
// {
//         char c[N];
//         for(int i=0;i<N;i++)
//         {
//                 printf("是否继续添加学生考勤(y或n)\n");
//                  scanf("%s",&c[N]);
//                  if(c[N]=='y')
//                  {
//                          kaoqin();  /* 日常考勤  */
//                }
//                else if(c[N]=='n')
//                {
//                            ckkc();  /* 查看考情  */
//                }
//                else if(c[N]!='y' || c[N]!='n')
//                {
//                            printf("\n");
//                            printf("温馨提示输入错误 请重新输入\n");
//                }
//        
//        }
// }   

void ckkc()  /* 查看考情  */
{
        char z;
        int j;
        for(j=0;j<N;j++)
        {
                 printf("\n");
                  printf("是否需要查看学生的考勤情况(y或n)\n");
                  fflush(stdin);
                  scanf("%c",&z);
                 if(z=='y')
              {
                    czlx();/* 查找学生类型 单个或者全部  */
                  }
                  else if(z=='n')
                  {
                            tou(); /* 返回头部  */
                            
                  }
                  else if(z!='y' || z!='n')
                  {
                            printf("\n");
                            printf("温馨提示输入错误 请重新输入\n");
                            printf("\n");
                      ckkc();
                  }
       
        }
}


void czlx()/* 查找学生类型 单个或者全部  */
{
        char z=0;
        int j;
        for(j=0;j<N;j++)
        {
                printf("\n查找单个学生请输入(y)查找所有学生请输入(s)\n");
            fflush(stdin);
            scanf("%c",&z);
            if(z=='y')
            {
                    kqcz(); /*单个学生考勤查找*/        
                }
                else if(z=='s')
                {
                        qbkqcz();/* 全部学生考勤查找  */
                }
                else if(z!='y' || z!='s')
                {
                        printf("\n");
                            printf("温馨提示输入错误 请重新输入\n");
                            printf("\n");
                      czlx();
                }
        }
               
}

void qbkqcz()/* 全部学生考勤查找  */
{
        printf("\n");
        printf("||   名字  ||   学号  ||   第一节  ||   第二节   ||   第三节   ||   第四节   ||   第五节   ||   第六节   ||   第七节  ||   第八节    ||    第九节   ||   第十节   ||\n");
        printf("\n");
        int j;
            for(int i=0;i<10;i++)
                {
                       
                        printf
                        ("    %-14s %-14d %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s  \n",
                        xskq[i].name,xskq[i].id[i],xskq[i].kc[0],xskq[i].kc[1],xskq[i].kc[2],xskq[i].kc[3],
                        xskq[i].kc[4],xskq[i].kc[5],xskq[i].kc[6],xskq[i].kc[7],xskq[i].kc[8],xskq[i].kc[9],
                        xskq[i].kc[10] ) ;
                        printf("\n");
                        tou();
                }
}


void kqcz()//单个学生考勤查找
{
//        int z;
        char sname[N];
        printf("\n");
        printf("请输入您要查找的学生\n");
        printf("\n");
        fflush(stdin);
        gets(sname);
        printf("\n");
        for(int i=0;i<10;i++)
        {                                       
                if(strcmp(sname,xskq[i].name)==0)
                {       
                        printf("\n");
                        printf("||    名字   ||    学号   ||    第一节   ||    第二节    ||    第三节    ||    第四节    ||    第五节    ||    第六节    ||    第七节   ||    第八节     ||     第九节    ||    第十节    ||\n");
                printf("\n");
                        printf
                        (               
                        "  %-14s %d %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s %-14s  \n",
                        xskq[i].name,xskq[i].id[i],xskq[i].kc[0],xskq[i].kc[1],xskq[i].kc[2],xskq[i].kc[3],
                        xskq[i].kc[4],xskq[i].kc[5],xskq[i].kc[6],xskq[i].kc[7],xskq[i].kc[8],xskq[i].kc[9],
                        xskq[i].kc[10]
                        );               
                    tou();
            }
            else
                {
                        printf("抱歉没有查找到学生信息 请重新查找\n");
//                        printf("\n");
                        kqcz();
                }
   }
}







最佳答案
2021-4-26 08:47:13
数据覆盖了呗,你这个设计的时候稍微有点儿问题
不过你都写这么多了,重写你指定不愿意
那你就加个全局变量,记录已经录入了多少个人的信息
然后每次进入录入功能的时候,都从全局变量这个位置开始录入
而不是每次都初始化一个 i ,然后从头开始录入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-26 08:47:13 | 显示全部楼层    本楼为最佳答案   
数据覆盖了呗,你这个设计的时候稍微有点儿问题
不过你都写这么多了,重写你指定不愿意
那你就加个全局变量,记录已经录入了多少个人的信息
然后每次进入录入功能的时候,都从全局变量这个位置开始录入
而不是每次都初始化一个 i ,然后从头开始录入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-29 19:35:20 | 显示全部楼层
yuxijian2020 发表于 2021-4-26 08:47
数据覆盖了呗,你这个设计的时候稍微有点儿问题
不过你都写这么多了,重写你指定不愿意
那你就加个全局变 ...

好的 非常感谢哈 已经解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 00:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表