标题:学生成绩管理系统,出现很多错误,请大神指教
取消只看楼主
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
结帖率:90%
 问题点数:0 回复次数:3 
学生成绩管理系统,出现很多错误,请大神指教
#include<stdio.h>
void menu_student(void);
void new_student(void);
void search_student(void);
void update_student(void);
void delete_student(void);
void output_student(void);
void sort_student(void);
struct student{
    int num;
    char name[10];
    int computer,english,math;
    double average;
};
int main()
{
    struct student st[50];
   
    menu();

    int x;
    scanf("%d",&x);
    switch(x){
        case 1:new_student();break;
        case 2:search_student();break;
        case 3:update_student();break;
        case 4:delete_student();break;
        case 5:output_student();break;
        case 6:sort_student();break;
        default:printf("输入有误\n");
    }
    return 0;

}
void menu(void){
    printf("**********欢迎进入学生成绩管理系统**********\n");
    printf("                   菜单                     \n");
    printf("新建学生信息——————1\n");
    printf("查询学生信息——————2\n");
    printf("修改学生信息——————3\n");
    printf("删除学生信息——————4\n");
    printf("输出学生信息——————5\n");
    printf("排序——————————6\n");
    printf("请输入您的选择:\n");
}



void new_student(void){
    int i,n;
    printf("输入学生人数n:\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        printf("学号:\n");
        scanf("%d",&st[i].num);
        printf("姓名:\n");
        scanf("%s",st[i].name);
        printf("计算机 英语 数学\n");
        scanf("%lf%lf%lf",&st[i].computer,&st[i].english,&st[i].math);
        st[i].average=(st[i].computer+st[i].english+st[i].math)/3.0;
        printf("%g",st[i].average);
    }
}
void search_student(void){
    int a,i;
    printf("输入学生学号:\n");
    scanf("%d",&a);
    for(i=1;i<=n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
        }
        else
            printf("未找到该同学信息\n");
    }
}
void update_student(void){
    int a,i;
    printf("请输入需要修改的学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            printf("请重新输入学生的学号 姓名:\n");
            scanf("%d%s",&st[i].num,st[i].name);
            printf("请重新输入学生成绩:\n");
            printf("计算机\t英语\t数学\n");
            scanf("%d%d%d",&st[i].computer,&st[i].english,&st[i].math);
            printf("修改成功\n");
            break;
        }
        else
            printf("请确认该学生是否为本班学生!\n");
    }
}
void delete_student(void){
    int a,i,c;
    char m;
    printf("请输入学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            c=i;
            break;
        }
        else
            printf("未找到该学生信息\n");
    }
    printf("是否删除该同学信息(y/n)\n");
    scanf("%s",&m);
    if(m=='y'){
        for(i=c;i<n-1;i++){
            st[i]=st[i+1];
            n=n-1;
        }
        printf("删除成功!\n");
    }
    else
        printf("删除失败!\n");
}
void output_student(void){
    int i;
    printf("输出学生信息!\n");
    for(i=0;i<n;i++){
        printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
}
void sort_student(void){
    int i,j;
    double temp[50];
    for(i=0;i<n;i++){
        for(j=0;j<n-i-1;j++){
            if(st[j].average>st[j+1].average){
                temp[i]=st[j+1].average;
                st[j+1].average=st[j].average;
                st[j].average=temp[i];
            }
        }
    }
    for(i=0;i<n;i++){
        printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
}

   









搜索更多相关主题的帖子: computer 管理系统 english average include 
2017-03-15 20:26
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
得分:0 
回复 2楼 Jonny0201
出现了102个错误,炸了都 ,你让我咋列出来啊,无奈
2017-03-15 20:31
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
得分:0 
回复 5楼 炎天
#include<stdio.h>

struct student{
    int num;
    char name[10];
    int computer,english,math;
    double average;
};

void new_student(struct student st[]);
void search_student(struct student st[]);
void update_student(struct student st[]);
void delete_student(struct student st[]);
void output_student(struct student st[]);
void sort_student(struct student st[]);
struct student st[50];
int n;
int main()
{
   
    while(1){
        printf("**********欢迎进入学生成绩管理系统**********\n");
        printf("                   菜单                     \n");
        printf("新建学生信息——————1\n");
        printf("查询学生信息——————2\n");
        printf("修改学生信息——————3\n");
        printf("删除学生信息——————4\n");
        printf("输出学生信息——————5\n");
        printf("排序——————————6\n");
        printf("请输入您的选择:\n");
   

        int x;
        scanf("%d",&x);
        switch(x){
            case 1:new_student(st);break;
            case 2:search_student(st);break;
            case 3:update_student(st);break;
            case 4:delete_student(st);break;
            case 5:output_student(st);break;
            case 6:sort_student(st);break;
            default:printf("输入有误\n");
        }
    }
    return 0;

}




void new_student(struct student st[]){
    int i,n;
    printf("输入学生人数n:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        printf("学号:\n");
        scanf("%d",&st[i].num);
        printf("姓名:\n");
        scanf("%s",st[i].name);
        printf("计算机 英语 数学\n");
        scanf("%d%d%d",&st[i].computer,&st[i].english,&st[i].math);
        st[i].average=(st[i].computer+st[i].english+st[i].math)/3.0;
        printf("平均成绩:\n");
        printf("%g\n",st[i].average);
    }
}
void search_student(struct student st[]){
    int a,i;
   
    printf("输入要查找的学生学号:\n");
    scanf("%d",&a);
    for(i=1;i<=n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
        }
        else
            printf("未找到该同学信息\n");
    }
}
void update_student(struct student st[]){
    int a,i;
    printf("请输入需要修改的学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            printf("请重新输入学生的学号 姓名:\n");
            scanf("%d%s",&st[i].num,st[i].name);
            printf("请重新输入学生成绩:\n");
            printf("计算机\t英语\t数学\n");
            scanf("%d%d%d",&st[i].computer,&st[i].english,&st[i].math);
            printf("修改成功\n");
            break;
        }
        else
            printf("请确认该学生是否为本班学生!\n");
    }
}
void delete_student(struct student st[]){
    int a,i,c;
    char m;
    printf("请输入学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
            printf("学号\t姓名\t计算机\t英语\t数学\t平均分\n");
            printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            c=i;
            break;
        }
        else
            printf("未找到该学生信息\n");
    }
    printf("是否删除该同学信息(y/n)\n");
    scanf("%s",&m);
    if(m=='y'){
        for(i=c;i<n-1;i++){
            st[i]=st[i+1];
            n=n-1;
        }
        printf("删除成功!\n");
    }
    else
        printf("删除失败!\n");
}
void output_student(struct student st[]){
    int i,n;
    printf("输入所有学生人数:\n");
    scanf("%d",&n);
    printf("输出学生信息!\n");
    for(i=0;i<n;i++){
        printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
}
void sort_student(struct student st[]){
    int i,j,n;
    double temp[50];
    printf("输入所有学生人数:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++){
        for(j=0;j<n-i-1;j++){
            if(st[j].average>st[j+1].average){
                temp[i]=st[j+1].average;
                st[j+1].average=st[j].average;
                st[j].average=temp[i];
            }
        }
    }
    for(i=0;i<n;i++){
        printf("%d%s%d%d%d%lf",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
}

现在已经好了,但是只能新建信息,查找不到信息,好像查找还有下面那些子函数没有作用








2017-03-16 18:07
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
得分:0 
回复 7楼 hykj9495
大神你帮我看看我的程序哪里有问题,是在没有精力再看另外一个程序了
2017-03-16 18:58



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




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

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