| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1587 人关注过本帖
标题:新手,写了一个班级成绩管理程序。有几点不会,希望大神来帮帮忙。谢谢
只看楼主 加入收藏
请多关照
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2016-11-3
结帖率:33.33%
收藏
已结贴  问题点数:40 回复次数:4 
新手,写了一个班级成绩管理程序。有几点不会,希望大神来帮帮忙。谢谢
下面是我写的代码,结构体数组一直弄不清楚,希望能帮我分析一下。
另外,那个保存的函数写不出来。希望大神帮我补一下。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct chengji//构造体数组,不太会,查的资料,后边跟的a[i]也不知道为什么总是错误的。 这个程序应该是N个学生的M门课程,然而弄不出来M门课程,所以改为三门
{
    int xuehao;
    char mingzi;
    float kecheng[3];
};a[i];
int menu(){//显示界面
    int x;
    printf("                                班级成绩管理系统                       \n");
    printf("********************************************************************************\n");
    printf("请选择系统功能项: \n");
    printf("   a.成绩录入     b.成绩显示     c.成绩保存     d.成绩排序     e.成绩修改     f.成绩统计    g.退出系统\n");
    printf("********************************************************************************\n");
    for (;;){
        printf("请输入  a ~ g 中的一个选项:");
        scanf("%c",&x);
        switch(x){
            case 'a':printf("成绩录入");break;
            case 'b':printf("成绩显示");break;
            case 'c':printf("成绩保存");break;
            case 'd':printf("成绩排序");break;
            case 'e':printf("成绩修改");break;
            case 'f':printf("成绩统计");break;
            case 'g':printf("退出系统");break;
            default:printf("输入错误,请重新输入");
        }
        return x;
    }
    }
void baocun(){//保存这个函数  我也不会写
}
void luru(){//对成绩进行录入,N个学生,三门课程:语 数  外。这不会,没写出来
    int N,i,j;
    char temp[N];
    for(i=1;i<=N;i++){
        printf("分别输入:\n姓名,学号,科目成绩:语,数,外:\n");
    }
}
void paixu(){//对某科成绩进行排序
    int i,j,t,N;
    for(i=1;i<=N;i++)//N次比较
    for(j=1;j<=N-i;j++)
    if(a[i].kecheng[1]>a[i+1].kecheng[1]){
        t=a[1].kecheng[1];a[i].kecheng[1]=a[i+1].kecheng[1];a[i+1].kecheng[1]=t;
    }
    printf("语文成绩排序结果:%s   %d   %.1f\n",a[i].mingzi,a[i].xuehao,a[i].kecheng[1]);
    for(i=1;i<=N;i++)//N次比较
    for(j=1;j<=N-i;j++)
    if(a[i].kecheng[2]>a[i+1].kecheng[2]){
        t=a[1].kecheng[2];a[i].kecheng[2]=a[i+1].kecheng[2];a[i+1].kecheng[2]=t;
    }
    printf("数学成绩排序结果:%s   %d   %.1f\n",a[i].mingzi,a[i].xuehao,a[i].kecheng[2]);
    for(i=1;i<=N;i++)//N次比较
    for(j=1;j<=N-i;j++)
    if(a[i].kecheng[3]>a[i+1].kecheng[3]){
        t=a[1].kecheng[3];a[i].kecheng[3]=a[i+1].kecheng[3];a[i+1].kecheng[3]=t;
    }
    printf("外语成绩排序结果:%s   %d   %.1f\n",a[i].mingzi,a[i].xuehao,a[i].kecheng[3]);
}
void xianshi(){//显示录入学生的成绩信息
    int N;
    for(int t=1;t<=N;t++){
        printf("姓名   学号         外\n");
        printf("%s    %d   %.1f   %.1f   %.1f\n",a[i].mingzi,a[i].xuehao,a[i].kecheng[1],a[i].kecheng[2],a[i].kecheng[3]);
        if (a[i+1].xuehao==0) break;
    }
}
void xiugai(){//修改成绩
    int x,z,c,s,N;
    printf ("请输入密码:");
    scanf("%d",&x);
    if(x==1234){//对密码进行判断
        for (;;){//提取某个学生的信息
            printf("输入要修改的学生号\n");
            scanf("%d",&c);
            for(int i=1;i<=N;i++){
                if(c==a[i].xuehao){ s=i;
                }
            }
        }
        system("cls");//清屏
        printf("请输入选择\n");
        printf("%d   %s    %.1f   %.1f   %.1f\n",a[i].xuehao,a[i].mingzi,a[i].kecheng[1],a[i].kecheng[2],a[i].kecheng[3]);
        for(;;){//对某一科目进行修改
            printf ("1.语文 2.数学 3.外语 4.退出\n");
            scanf("%d",&z);   
            if(z>=1&&z<=3){//修改语文成绩
                if(z==1){
                    system("cls");
                    for(;;){
                        printf ("输入语文分数0~100:\n");
                        scanf("%f",&a[s].kecheng[1]);
                        if(a[s].kecheng[1]>=0&&a[s].kecheng[1]<=100) printf("修改成功\n");
                    }   
                }
                if(z==2){
                    for(;;){
                        printf("输入数学分数0~100:\n");
                        scanf("%f",&a[s].kecheng[2]);
                        if(a[s].kecheng[2]>=0&&a[s].kecheng[2]<=100) printf("修改成功\n");
                    }
                }
                if(z==3){
                    for(;;){
                            printf("输入外语分数0~100:\n");
                            scanf("%f",&a[s].kecheng[3]);
                            if(a[s].kecheng[3]>=0&&a[s].kecheng[3]<=100) printf("修改成功\n");   
                    }
                }
                if(z==4){
                    break;
                }
            }
        }
    }
    else printf ("密码错误,请重新输入。\n");
}
void pinjun(){//各科平均成绩
    float sum1=0,sum2=0,sum3=0,ave1,ave2,ave3;
    int j=0,k=0,l=0,N;
    for(int i=1;i<=N;i++){//计算平均成绩
        sum1=sum1+a[i].kecheng[1]; j++;
        sum2=sum2+a[2].kecheng[2]; k++;
        sum3=sum3+a[3].kecheng[3]; l++;
    }
    ave1=sum1/j;ave2=sum2/k;ave3=sum3/l;
    printf("语文的平均成绩:%.2f \n 数学的平均成绩:%.2f \n 外语的平均成绩:%.2f\n",ave1,ave2,ave3);
    int m=0,n=0,p=0;
    for(i=1;i<=N,i++){//计算超过的人数
        while(a[i].kecheng[1]>ave1)  m++;
        while(a[i].kecheng[2]>ave2)  n++;
        while(a[i].kecheng[3]>ave3)  p++;
    }
    printf("超过语文平均成绩的人数是:%d\n 超过数学平均成绩的人数是:%d\n 超过外语平均成绩的人数是:%d\n",m,n,p);
}
int bye(){//退出系统,也不懂
    int ch;
    ch=getchar();
    return 0;
}
int main(){
    for (;;){
        switch(menu()){
            case 'a':luru();//成绩录入
            system("pause");//按任意键继续
            system("cls");
            break;
            case 'b':xianshi();//成绩显示
            system("pause");
            system("cls");
            break;
            case 'c':baocun();//成绩保存  不会写。
            system("pause");
            system("cls");
            break;
            case 'd':paixu();//成绩排序   
            system("pause");
            system("cls");
            break;
            case 'e':xiugai();//成绩修改
            system("pause");
            system("cls");
            break;
            case 'f':pinjun();//成绩统计
            system("pause");
            system("cls");
            break;
            case 'g':bye();//退出系统
            return 0;
            }
        }
    }
//技术要求:
//题目9:班级成绩管理系统
//对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。功能要求:
//(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。 (2)本系统显示这样的菜单:
// 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序
//e、成绩修改(要求先输入密码) f、成绩统计  g、退出系统
//1)显示每门课程成绩最高的学生的基本信息 2)显示每门课程的平均成绩  
//3)显示超过某门课程平均成绩的学生人数  
//(4)执行一个具体的功能之后,程序将重新显示菜单。 (5)将学生成绩保存到文件中。
 
搜索更多相关主题的帖子: 管理程序 include 管理系统 mingzi 结构体 
2016-11-08 20:18
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:14 
建议楼主到C区去问一下
2016-11-09 07:30
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:14 
C区已经有发帖了。。。建议版主可以关闭本帖。

φ(゜▽゜*)♪
2016-11-09 10:01
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:14 

C区欢迎你


慢慢调试
2016-11-09 22:31
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
C区欢迎你

2016-11-10 07:27
快速回复:新手,写了一个班级成绩管理程序。有几点不会,希望大神来帮帮忙。谢谢 ...
数据加载中...
 
   



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

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