用C语言写学生成绩管理系统

   //之前写的,命名不标准,勿学此命名格式;

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
void x(); //声明
void x1();
void x2();
void x3();
void x4();
void x5();
void x6();
void x7();
int i, j = 0;
int h = 0;
int r1, r2, r3;
int main() {
    int o;
    while (1) {
        system("cls");
        x();
        scanf("%d", &o);
        switch (o) {
            case 0:
                system("cls");
                printf("**********************退出系统**********************\n");
                exit(0);//关键字
                break;
            case 1:
                x1();
                break;//输入
            case 2:
                x2();
                break;//显示
            case 3:
                x3();
                break;//统计
            case 4:
                x4();
                break;//排序
            case 5:
                x5();
                break;//查询
            case 6:
                x6();
                break;//删除
            case 7:
                x7();
                break;//修改
            case 8:
                system("cls");
                printf("*****************系统简单,无需帮助!********************\n");
                system("pause");
                break;
            default:
                system("cls");
                printf("请选择正确的操作!\n");
                system("pause");
                break;
        }
    }
    return 0;
}
struct s {
    char c[10];//学号
    char c1[10];//姓名
    int c2;//年龄
    char c3;//性别
    int c4;//语文成绩
    int c5;//数学成绩
    int c6;//英语成绩
    int c7;//总分
    double  c8;//平均分
    int r1, r2;
    char n7;
} s[100];
int m = 0;
//主页面
void x() {
    system("cls");
    printf("**************************学生成绩管理系统*************************\n\n\n\n");
    printf("0.退出  1.输入  2.查看  3.统计  4.排序  5.查询  6.删除  7.修改  8.帮助\n");
    printf("请选择选项:");
}
//学生信息输入
void x1() {
    int l;
    while (1) {
v1:
        system("cls");
        printf("************************学生信息输入*************************\n\n\n");
        printf("学号:");
        scanf("%s", s[m].c);
        fflush(stdin);
        for (i = 0; i < m; i++) {
            if (strcmp(s[i].c, s[m].c) == 0) {
                system("cls");
                printf("学号已被输入!\n按空格重新输入\n");
                system("pause");
                goto v1;

            }
        }
        printf("姓名:");
        scanf("%s", s[m].c1);
        fflush(stdin);
        printf("年龄:");
        scanf("%d", &s[m].c2);
        fflush(stdin);
        printf("性别(m.女/f.男):");
        scanf("%c", &s[m].c3);
        fflush(stdin);
        printf("语文成绩:");
        scanf("%d", &s[m].c4);
        fflush(stdin);
        printf("数学成绩:");
        scanf("%d", &s[m].c5);
        fflush(stdin);
        printf("英语成绩:");
        scanf("%d", &s[m].c6);
        fflush(stdin);
        s[m].c7 = (s[m].c4 + s[m].c5 + s[m].c6);
        s[m].c8 = (s[m].c7 / 3.0);
        printf("是否继续(1.是/2.否):");
        scanf("%d", &l);
        m++;
        if (l == 2) {
            break;
        }
    }
}
//学生查询
void x2() {
    int h2;
    printf("1.学生信息查询\n2.学生成绩查询\n");
    scanf("%d", &h2);
    system("cls");
    if (h2 == 1) {
        printf("***********************学生信息显示***************************\n\n\n\n");
        printf("学号   名字   年龄   性别(m.女/f.男)\n");
        for (i = 0; i < m; i++) {

            printf("***********************************************\n");
            printf("%s     %s      %d        %c \n", s[i].c, s[i].c1, s[i].c2, s[i].c3);

        }
        printf("***********************************************\n");
        system("pause");
    }
    system("cls");
    if (h2 == 2) {
        printf("***********************学生信息显示***************************\n\n\n\n");
        printf("学号       姓名       语文成绩     数学成绩    英语成绩      总分    平均分\n");
        for (i = 0; i < m; i++) {
            s[i].c7 = (s[i].c4 + s[i].c5 + s[i].c6);
            s[i].c8 = (s[i].c7 / 3.0);
            printf("***********************************************\n");
            printf("%s          %s           %d             %d            %d           %d          %.2lf\n", s[i].c, s[i].c1, s[i].c4, s[i].c5, s[i].c6, s[i].c7, s[i].c8);

        }
        printf("***********************************************\n");
        system("pause");
    }
    if (h2 > 2 || h2 < 1) {
        printf("输入错误!\n");
        system("pause");
    }
}
//学生成绩统计
void x3() {

    double g3 = 0.00;
    double g4;
    struct s f;
    system("cls");
    s[1].r1 = 0;
    s[1].r2 = 0;
    printf("*******************学生成绩统计*************************\n\n\n\n\n\n");
    printf("及格    不及格     平均分\n");


    for (i = 0; i < m; i++) {
        s[i].c7 = (s[i].c4 + s[i].c5 + s[i].c6);
        s[i].c8 = (s[i].c7 / 3.0);
        if (s[i].c8 >= 60.0) {
            s[1].r1++;
        } else {
            s[1].r2++;
        }

        g3 = g3 + s[i].c8;
    }
    g4 = g3 / m;
    printf("%d       %d       %.2lf\n", s[1].r1, s[1].r2, g4);
    for (i = 0; i < m; i++) {
        s[i].c7 = (s[i].c4 + s[i].c5 + s[i].c6);
        s[i].c8 = (s[i].c7 / 3.0);
        for (j = 0; j < m - i; j++) {
            if (s[j].c7 < s[j + 1].c7) {
                f = s[j + 1];
                s[j + 1] = s[j];
                s[j] = f;
            }
        }
    }
    printf("***********************************************\n");
    printf("  最高分            最低分\n");
    printf("***********************************************\n");
    for (j = 0; j < 1; j++) {
        printf("%.d          ", s[j].c7);
    }
    for (i = 0; i < m - 1; i++) {
        for (j = 0; j < m - 1 - i; j++) {
            if (s[j].c7 > s[j + 1].c7) {
                f = s[j + 1];
                s[j + 1] = s[j];
                s[j] = f;
            }
        }
    }
    for (j = 0; j < 1; j++) {
        printf("%d\n", s[j].c7);
    }

    for (i = 0; i < m - 1; i++) {
        for (j = 0; j < m - 1 - i; j++) {
            if (s[j].c7 < s[j + 1].c7) {
                f = s[j + 1];
                s[j + 1] = s[j];
                s[j] = f;
            }
        }
    }
    printf("***********************************************\n");
    printf("  最高分信息\n\n\n");
    printf("***********************************************\n");
    printf("学号    姓名    年龄    性别(m.女/f.男) \n");
    for (j = 0; j < 1; j++) {
        printf("***********************************************\n");
        printf("%s         %s         %d         %c\n", s[j].c, s[j].c1, s[j].c2, s[j].c3);
    }
    printf("***********************************************\n");
    for (i = 0; i < m - 1; i++) {
        for (j = 0; j < m - 1 - i; j++) {
            if (s[j].c7 > s[j + 1].c7) {
                f = s[j + 1];
                s[j + 1] = s[j];
                s[j] = f;
            }
        }
    }
    printf("***********************************************\n");
    printf("  最低分信息\n\n\n");
    printf("***********************************************\n");
    printf("学号    姓名    年龄    性别(m.女/f.男)\n");
    for (j = 0; j < 1; j++) {

        printf("***********************************************\n");
        printf("%s         %s         %d         %c\n", s[j].c, s[j].c1, s[j].c2, s[j].c3);

    }
    printf("***********************************************\n");
    system("pause");
}
//学生成绩排序
void x4() {

    struct s q;
    int m1;
    int o6;
    system("cls");
    printf("*******************学生成绩排序*************************\n\n\n\n\n\n");
    printf("1.按姓名排序\n2.按成绩排序\n");
    scanf("%d", &o6);

    if (o6 == 1) {
        system("cls");
        printf("按姓名首字母由a到进行排序结果如下:\n");

        for (i = 0; i < m - 1; i++) {
            for (j = 0; j < m - 1 - i; j++) {
                if (strcmp(s[j].c1, s[j + 1].c1) > 0) {
                    q = s[j + 1];
                    s[j + 1] = s[j];
                    s[j] = q;
                }
            }
        }
        system("cls");
        printf("1.学生信息显示\n2.学生成绩显示\n");
        scanf("%d", &m1);
        system("cls");
        if (m1 == 1) {
            printf("学号    姓名    年龄    性别(m.女/f.男)\n");
            for (j = 0; j < m; j++) {
                printf("%s      %s        %d          %c\n", s[j].c, s[j].c1, s[j].c2, s[j].c3);
            }
        }
        if (2 == m1) {
            printf("学号    姓名    语文成绩    数学成绩    英语成绩      总分    平均分\n");
            for (j = 0; j < m; j++) {
                s[j].c7 = (s[j].c4 + s[j].c5 + s[j].c6);
                s[j].c8 = (s[j].c7 / 3);
                printf("***********************************************\n");
                printf("%s         %s        %d          %d        %d         %d          %.2lf\n", s[j].c, s[j].c1, s[j].c4, s[j].c5, s[j].c6, s[j].c7, s[j].c8);
            }
        }
        if (m1 > 2 || m1 < 1) {
            printf("输入错误!\n");
        }
        system("pause");
    }
    if (o6 == 2) {
        for (i = 0; i < m - 1; i++) {
            for (j = 0; j < m - 1 - i; j++) {
                if (s[j].c8 < s[j + 1].c8) {
                    q = s[j + 1];
                    s[j + 1] = s[j];
                    s[j] = q;
                }
            }
        }
        system("cls");
        printf("1.学生信息显示\n2.学生成绩显示\n");
        scanf("%d", &m1);
        system("cls");

        if (m1 == 1) {
            printf("学号    姓名    年龄    性别(m.女/f.男)\n");

            for (j = 0; j < m; j++) {

                printf("***********************************************\n");
                printf("%s         %s        %d          %c\n", s[j].c, s[j].c1, s[j].c2, s[j].c3);

            }
        }
        if (m1 == 2) {
            fflush(stdin);
            printf("成绩从高到低\n\n");
            printf("学号     姓名      语文成绩     数学成绩    英语成绩    总分     平均分\n");
            for (j = 0; j < m; j++) {
                s[j].c7 = (s[j].c4 + s[j].c5 + s[j].c6);
                s[j].c8 = (s[j].c7 / 3);
                printf("***********************************************\n");
                printf("%s         %s         %d        %d       %d     %d       %.2f\n", s[j].c, s[j].c1, s[j].c4, s[j].c5, s[j].c6, s[j].c7, s[j].c8);
            }
        }
    }
    if (o6 > 2 || o6 < 1) {
        printf("输入错误!\n");
    }
    system("pause");
}


//学生查询
void x5() {
    double t6;
    int t4 = 0;
    int t3 = 0;
    int k1;
    char y[10];
    system("cls");
    printf("1.学生姓名查询\n2.学生学号查询\n");
    scanf("%d", &k1);
    if (k1 > 2 || k1 < 1) {
        printf("输入错误!\n");
    }
    if (k1 == 1) {
        printf("请输入要查询信息的学生姓名:");
        scanf("%s", y);
        for (i = 0; i < m; i++) {
            s[i].c7 = (s[i].c4 + s[i].c5 + s[i].c6);
            t6=s[i].c7;
            s[i].c8 = (t6/ 3);
            if (strcmp(s[i].c1, y) == 0) {
                system("cls");
                printf("学号:%s\n", s[i].c);
                printf("姓名:%s\n", s[i].c1);
                printf("年龄:%d\n", s[i].c2);
                printf("性别(m.女/f.男):%c\n", s[i].c3);
                printf("语文成绩:%d\n", s[i].c4);
                printf("数学成绩:%d\n", s[i].c5);
                printf("英语成绩:%d\n", s[i].c6);
                printf("总分:%d\n", s[i].c7);
                printf("平均分:%.2lf\n", s[i].c8);
                break;
            } else {
                t3 = t3 + 1;
            }
        }
        if (t3 >= m) {
            printf("查无此人!\n");
        }
    }
    if (k1 == 2) {
        printf("请输入要查询信息的学生学号:");
        scanf("%s", y);
        for (i = 0; i < m; i++) {
            s[i].c7 = (s[i].c4 + s[i].c5 + s[i].c6);
                        t6=s[i].c7;
                        s[i].c8 = (t6/ 3);
            if (strcmp(s[i].c, y) == 0) {
                system("cls");
                printf("学号:%s\n", s[i].c);
                printf("姓名:%s\n", s[i].c1);
                printf("年龄:%d\n", s[i].c2);
                printf("性别(m.女/f.男):%c\n", s[i].c3);
                printf("语文成绩:%d\n", s[i].c4);
                printf("数学成绩:%d\n", s[i].c5);
                printf("英语成绩:%d\n", s[i].c6);
                printf("总分:%d\n", s[i].c7);
                printf("平均分:%.2lf\n", s[i].c8);            
                break;
            } else
                t4 = t4 + 1;
        }
    }
    if (t4 >= m) {
        printf("查无此人!\n");
    }
    system("pause");
}
//删除学生
void x6() {

    int e;
    char n3[10];
    system("cls");
    printf("请输入要删除信息的学生学号:");
    scanf("%s", n3);
    for (i = 0; i < m; i++) {

        if (strcmp(s[i].c, n3) == 0) {

            for (j = i; j < m; j++) {
                strcpy(s[j].c, s[j + 1].c);
                strcpy(s[j].c1, s[j + 1].c1);
                s[j].c2 = s[j + 1].c2;
                s[j].c3 = s[j + 1].c3;
                s[j].c4 = s[j + 1].c4;
                s[j].c5 = s[j + 1].c5;
                s[j].c6 = s[j + 1].c6;
                s[j].c7 = s[j + 1].c7;
                s[j].c8 = s[j + 1].c8;
            }
            m--;
            printf("删除成功!\n");
            break;
        } else {
            e = 2 * m;
        }
    }
    if (e == 2 * m) {
        printf("查无此人!\n");
    }
    system("pause");
}
//修改学生
void x7() {
    int t3 = 2;
    int k5;
    int g1 = 0;
    char t1[10];
k7:
    system("cls");
    printf("请输入想要修改信息人的学号:");
    scanf("%s", t1);
    for (i = 0; i < m; i++) {
        if (strcmp(s[i].c, t1) == 0) {
            t3 = 5;
            printf("1.学号   2.姓名   3.年龄   4.性别(m.女/f.男)   5.语文成绩  6.数学成绩  7.英语成绩\n");
            printf("%s          %s       %d          %c               %d            %d           %d\n", s[i].c, s[i].c1, s[i].c2, s[i].c3, s[i].c4, s[i].c5, s[i].c6);
            printf("进行选择,决定是否下一步:\n1.是,进行修改\n2.否,返回上一步\n3.否,返回主页面\n");
            scanf("%d", &k5);
            if (k5 == 1) {
                printf("请选择要修改的项目:");
                scanf("%d", &g1);
                if (g1 == 1) {
                    printf("请输入修改后的学号:");
                    scanf("%s", s[i].c);
                    printf("修改成功!\n");
                }
                if (g1 == 2) {
                    printf("请输入修改后的姓名:");
                    scanf("%s", s[i].c1);
                    printf("修改成功!\n");
                }
                if (g1 == 3) {
                    printf("请输入修改后的年龄:");
                    scanf("%d", &s[i].c2);
                    printf("修改成功!\n");
                }
                if (g1 == 4) {
                    fflush(stdin);
                    printf("请输入修改后的性别(m.女/f.男):");
                    scanf("%c", &s[i].c3);

                    printf("修改成功!\n");
                }
                if (g1 == 5) {
                    printf("请输入修改后的语文成绩:");
                    scanf("%d", &s[i].c4);
                    printf("修改成功!\n");
                }
                if (g1 == 6) {
                    printf("请输入修改后的数学成绩:");
                    scanf("%d", &s[i].c5);
                    printf("修改成功!\n");
                }
                if (g1 == 7) {
                    printf("请输入修改后的英语成绩:");
                    scanf("%d", &s[i].c6);
                    printf("修改成功!\n");
                }

            }
        }
        if (strcmp(s[i].c, t1) != 0) {
        }
    }

    if (k5 == 2) {
        goto k7;
    }
    if (k5 == 3) {
    }
    if (t3 == 2) {
        printf("查无此人!\n");
    }
    system("pause");
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值