标题:学生成绩系统,语义有错误吗?
取消只看楼主
邪七
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-10-16
结帖率:100%
已结贴  问题点数:20 回复次数:1 
学生成绩系统,语义有错误吗?
做的成绩系统的初步,做出了一个框架,然而在完善功能时,可以编译,但先输入成绩后,运行这个 void score_inquiry(struct STUD *Wstu, int *num); 时 ,运行不了,求帮助!!!



代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

#define   N   100
void meun();
void yesorno();

struct STUD
{
    long long stu_ID;
    char stu_name;
    float stu_score;
}student[N];

void grade_add(struct STUD *Wstu, int *num);
void score_inquiry(struct STUD *Wstu, int *num);
void score_modify();
void grade_delete();
void grade_all();
void grade_statisticsc();

int main()
{
   meun();
    return 0;
}

void (*select)(struct STUD *Wstu,int *num);

void meun()
{
    int n;
    static int num = 1;
   printf (" 1:学生成绩新增\n 2:学生成绩查询\n 3:学生成绩修改\n 4:学生成绩删除\n 5:学生成绩全览\n\
 6:班级成绩统记\n 0:退出\n");
   void *choice[6] = {grade_add,score_inquiry,score_modify,grade_delete,grade_all,grade_statisticsc};
   printf ("请输入你的选择\n");
   scanf("%d",&n);
   while(n != 0)
   {
       select = choice[n - 1];
      (*select)(student, &num);
      meun();
   }
    printf ("%d\n", num);
   yesorno();
}

void grade_add(struct STUD *Wstu, int *num)
{
    printf("1\n");
    int i;
    printf("********成绩新增*********\n");
    printf ("请输入班级人数:");
    scanf("%d",&*num);
    printf("请输入%d个学生的学号,姓名,成绩:\n",*num);
    for(i = 0; i < *num; i++)
    {
        scanf("%lld%s%f",&Wstu[i].stu_ID,&Wstu[i].stu_name,&Wstu[i].stu_score);
    }
    printf("成绩录入已完成!\n");
    /*
   for(i = 0; i < *num; i++)
    {
        printf("%lld%s%.1f\n",Wstu[i].stu_ID,Wstu[i].stu_name,Wstu[i].stu_score);
    }
*/
}

void score_inquiry(struct STUD *Wstu, int *num)//可能错误存在的地方
{
     printf("2\n");
     int i;
     for(i = 0; i < *num; i++)
     {
         printf("%lld %s %f",Wstu[i].stu_ID,Wstu[i].stu_name, Wstu[i].stu_score);
     }
}

void score_modify()
{
     printf("3\n");
}

void grade_delete()
{
     printf("4\n");
}

void grade_all()
{
     printf("5\n");
}

void grade_statisticsc()
{
     printf("6\n");
}

void yesorno()
{
     char ch;
      printf ("确定退出系统?(Y/N)\n");
    getchar();
    ch  = getchar();
    if(ch == 'Y'|| ch == 'y')
        {
            printf ("OVER!\n");
            exit(0);
        }
    else if (ch == 'N' || ch == 'n')
        meun();
}

感谢帮忙!!!!

搜索更多相关主题的帖子: 成绩 void int num printf 
2017-12-13 23:17
邪七
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-10-16
得分:0 
可以了,谢谢大神了,
2017-12-14 09:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483357-1-1.html




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

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