标题:学生成绩管理系统,出现很多错误,请大神指教
只看楼主
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
结帖率:90%
 问题点数:0 回复次数:9 
学生成绩管理系统,出现很多错误,请大神指教
#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
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:0 
最好把错误信息都列出来,顺便说说自己感觉什么地方有问题。。
2017-03-15 20:28
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
得分:0 
回复 2楼 Jonny0201
出现了102个错误,炸了都 ,你让我咋列出来啊,无奈
2017-03-15 20:31
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
得分:0 
写完一个函数编译一下,测试一下结果对不对,直接写完不炸才怪
2017-03-15 20:51
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
加有绿色字的那三行
程序代码:
#include<stdio.h>
void menu(void);     //声明 
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;
};

 struct student st[50];   //全局变量 
 int n;      //全局变量 


[此贴子已经被作者于2017-3-15 22:04编辑过]


早知做人那么辛苦!  当初不应该下凡
2017-03-15 22:02
小可爱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
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
得分:0 

23333333333
学生管理系统C语言.rar (5.23 KB)

慢慢调试
2017-03-16 18:53
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
得分:0 
回复 7楼 hykj9495
大神你帮我看看我的程序哪里有问题,是在没有精力再看另外一个程序了
2017-03-16 18:58
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
排序函数和其他地方有修改,
程序代码:
#include<stdio.h>
#include<stdlib.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){
        system("cls");
        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[]){
    system("cls");
    int i;
    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);
    }
    system("pause");
}
void search_student(struct student st[]){
    system("cls");
    int a,i;
    
    printf("输入要查找的学生学号:\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){       // 
           printf("%-8s%-8s%-8s%-8s%-8s%-8s\n","学号","姓名","计算机","英语","数学","平均分");
           printf("%-8d%-8s%-8d%-8d%-8d%-8.2lf\n",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            system("pause");
           return ;
        }
        //else
          //  printf("未找到该同学信息\n");
    }
    printf("未找到该同学\n");
    system("pause");
    
}
void update_student(struct student st[]){
    system("cls");
    int a,i;
    printf("请输入需要修改的学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
           printf("%-8s%-8s%-8s%-8s%-8s\n","学号","姓名","计算机","英语","数学","平均分");
            printf("%-8d%-8s%-8d%-8d%-8d%-8.2lf\n",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");
    system("pause");
}
void delete_student(struct student st[]){
    system("cls");
    int a,i,c;
    char m;
    printf("请输入学生学号\n");
    scanf("%d",&a);
    for(i=0;i<n;i++){
        if(a==st[i].num){
            printf("%-8s%-8s%-8s%-8s%-8s\n","学号","姓名","计算机","英语","数学","平均分");
            printf("%-8d%-8s%-8d%-8d%-8d%-8.2lf\n",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
            c=i;
            
            printf("是否删除该同学信息(y/n)\n");
            fflush(stdin); 
            scanf("%c",&m);
            if(m=='y'){
               for(i=c;i<n-1;i++){
                 st[i]=st[i+1];
               }
            n--;
            printf("删除成功!\n");
            }
            else
             printf("删除失败!\n");
         system("pause");
         return ;
    } 

 }
    printf("未找到次学号的同学");
    system("pause");
}
void output_student(struct student st[]){
    system("cls");
    int i;
   // printf("输入所有学生人数:\n");
    //scanf("%d",&n);
    
    printf("输出学生信息!\n");
    printf("%-8s%-8s%-8s%-8s%-8s\n","学号","姓名","计算机","英语","数学","平均分");
    for(i=0;i<n;i++){
        printf("%-8d%-8s%-8d%-8d%-8d%-8.2lf\n",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
    system("pause");
}
void sort_student(struct student st[]){
    system("cls");
    int i,j;
    struct student temp;
    //printf("输入所有学生人数:\n");
    //scanf("%d",&n);
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(st[i].average>st[j].average){
                temp=st[j];
                st[j]=st[i];
                st[i]=temp;
            }
        }
    }
    printf("输出学生信息!\n");
    printf("%-8s%-8s%-8s%-8s%-8s%-8s\n","学号","姓名","计算机","英语","数学","平均分");
    for(i=0;i<n;i++){
        printf("%-8d%-8s%-8d%-8d%-8d%-8.2lf\n",st[i].num,st[i].name,st[i].computer,st[i].english,st[i].math,st[i].average);
    }
    system("pause");
}

早知做人那么辛苦!  当初不应该下凡
2017-03-16 20:13
程序小怪
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2017-3-3
得分:0 
都没有保存到文件里,查找不到已存的信息
2017-03-18 15:17



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




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

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