| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5015 人关注过本帖
标题:写一个学生管理系统的程序,有个错误调不出来 请各位大侠指教
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:52 
写一个学生管理系统的程序,有个错误调不出来 请各位大侠指教
#include<stdio.h>
struct student
{
    char name[10];
    int stu_id;        
    int score[3];
    char sex;
    int age;
}a[3]={{"li ming",123456,a[0].score[0]=60,a[0].score[1]=67,a[0].score[2]=80,a[0].sex='w',a[0].age=10},
    {"wang ming",123457,a[1].score[0]=70,a[1].score[1]=90,a[1].score[2]=80,a[1].sex='m',a[1].age=12},
    {"li fei",123458,a[2].score[0]=30,a[2].score[1]=60,a[2].score[2]=100,a[2].sex='w',a[2].age=15}};
struct student *p;
p=&a[0];

int main()
{
    void inquiry(int*);
    void score_max(int*);
    void score_average(int*);
    void score_alter(int*);
    void score_delete(int*);
    void score_count(int*);
    int xuanze,n;
      printf("菜单\n\
      0 退出 :\n\
    1 请输入学号查询学生的信息:\n\
    2 求某个学生的最高成绩: \n\
    3 求某个学生的平均成绩: \n\
    4 修改某个学生的第n门课程的成绩: \n\
    5 删除某个学生的成绩: \n\
    6 统计某个学生不及格课程的门数: \n");
    printf("请输入你的选择:0-6:");
    scanf("%d",&xuanze);
    switch(xuanze)
    {
        case 0:return 0;
        case 1:inquiry((*p).stu_id);break;
        /*case 2:score_max((*p).stu_id);break;
        case 3:score_average((*p).stu_id);break;
        case 4:score_alter((*p).stu_id,n);break;
        case 5:score_delete((*p).stu_id,n);break;
        case 6:score_count((*p).stu_id);break;*/
        default:printf("enter date error!:\n");
        return 0;
    }

}
void inquiry(int*)
{
    struct student *p;
    p=&a[0];
   
    printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%s\n 年龄为%d\n ",
    (*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
}
 
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 管理系统 include 
2017-05-12 14:30
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:4 
可执行代码必须包含在某一个函数体内。

能编个毛线衣吗?
2017-05-12 14:41
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
我只是给你调试编译通过了  是否能运行 没有测试

程序代码:
#include<stdio.h>

void inquiry(int);
void score_max(int*);
void score_average(int*);
void score_alter(int*);
void score_delete(int*);
void score_count(int*);

struct student
{
    char name[10];
    int stu_id;        
    int score[3];
    char sex;
    int age;
}a[3]={{"li ming",123456,a[0].score[0]=60,a[0].score[1]=67,a[0].score[2]=80,a[0].sex='w',a[0].age=10},
    {"wang ming",123457,a[1].score[0]=70,a[1].score[1]=90,a[1].score[2]=80,a[1].sex='m',a[1].age=12},
    {"li fei",123458,a[2].score[0]=30,a[2].score[1]=60,a[2].score[2]=100,a[2].sex='w',a[2].age=15}};;

int main()
{
    struct student *p;
    p=&a[0];
    int xuanze;
    printf("菜单\n\
           0 退出 :\n\
           1 请输入学号查询学生的信息:\n\
           2 求某个学生的最高成绩: \n\
           3 求某个学生的平均成绩: \n\
           4 修改某个学生的第n门课程的成绩: \n\
           5 删除某个学生的成绩: \n\
           6 统计某个学生不及格课程的门数: \n");
    printf("请输入你的选择:0-6:");
    scanf("%d",&xuanze);
    switch(xuanze)
    {
    case 0:return 0;
    case 1:inquiry((*p).stu_id);break;
        /*case 2:score_max((*p).stu_id);break;
        case 3:score_average((*p).stu_id);break;
        case 4:score_alter((*p).stu_id,n);break;
        case 5:score_delete((*p).stu_id,n);break;
        case 6:score_count((*p).stu_id);break;*/
        default:printf("enter date error!:\n");
        return 0;
    }
    return 0;
}
void inquiry(int)
{
    struct student *p;
    p=a;
    
    printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%s\n 年龄为%d\n ",
    (*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
}

DO IT YOURSELF !
2017-05-12 14:46
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 wmf2014
什么意思??接下来该怎么改呢?
2017-05-12 14:46
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 3楼 wp231957
图片附件: 游客没有浏览图片的权限,请 登录注册


这输不出来结果。。。怎么回事?


[此贴子已经被作者于2017-5-12 14:56编辑过]

2017-05-12 14:54
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
p=&a[0];是一个可执行的程序代码,是在程序运行期间可执行的,它只有隶属于某个函数才有意义,可删除该语句,将上面的变量定义语句修改为 struct student *p=&a[0];这是变量定义并初始化语句,是在程序编译时固定在程序文件数据区,程序运行期间不再改变。

能编个毛线衣吗?
2017-05-12 14:59
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
简单改一下 可以输出
程序代码:
#include<stdio.h>

void inquiry(struct student *p);

struct student
{
    char name[10];
    int stu_id;        
    int score[3];
    char sex;
    int age;
}a[3]={{"li ming",123456,a[0].score[0]=60,a[0].score[1]=67,a[0].score[2]=80,a[0].sex='w',a[0].age=10},
    {"wang ming",123457,a[1].score[0]=70,a[1].score[1]=90,a[1].score[2]=80,a[1].sex='m',a[1].age=12},
    {"li fei",123458,a[2].score[0]=30,a[2].score[1]=60,a[2].score[2]=100,a[2].sex='w',a[2].age=15}};;

int main()
{
    struct student *p;
    p=a;
    int xuanze;
    printf("菜单\n\
           0 退出 :\n\
           1 请输入学号查询学生的信息:\n\
           2 求某个学生的最高成绩: \n\
           3 求某个学生的平均成绩: \n\
           4 修改某个学生的第n门课程的成绩: \n\
           5 删除某个学生的成绩: \n\
           6 统计某个学生不及格课程的门数: \n");
    printf("请输入你的选择:0-6:");
    scanf("%d",&xuanze);
    switch(xuanze)
    {
    case 0:return 0;
    case 1:inquiry(p);break;
    default:printf("enter date error!:\n");
    }
    return 0;
}
void inquiry(struct student* p)
{
    printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%c\n 年龄为%d\n ",
    (*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
}

DO IT YOURSELF !
2017-05-12 15:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 6楼 wmf2014
恩 好的 谢谢你,换过之后输不出来结果是怎么回事。错误信息在楼上
2017-05-12 15:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 7楼 wp231957
如果想在inquiry函数中输入一个学号 输出学生信息。该怎么写?我写的错了、
图片附件: 游客没有浏览图片的权限,请 登录注册

2017-05-12 15:16
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 9楼 花脸
程序代码:
void inquiry(struct student* p)
{
    int xh;
    scanf("%d",&xh);
    while(p!=NULL)
    {
        if((*p).stu_id==xh)
        {
            printf("姓名为:%s\n 学号为%d\n 成绩为%d %d %d\n 性别为%c\n 年龄为%d\n ",
                (*p).name,(*p).stu_id,(*p).score[0],(*p).score[1],(*p).score[2],(*p).sex,(*p).age);
            break;
        }
        ++p;
    }
}

DO IT YOURSELF !
2017-05-12 15:21
快速回复:写一个学生管理系统的程序,有个错误调不出来 请各位大侠指教
数据加载中...
 
   



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

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