| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 40548 人关注过本帖, 1 人收藏
标题:用c语言编写学生成绩管理系统
只看楼主 加入收藏
p18844058918
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-4-25
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
用c语言编写学生成绩管理系统
系统界面要求:
**************************
***1-输入数据*****
***2-查询成绩*****
***3-修改成绩*****
***4-输出所有学生信息****
***5-统计及格和优秀人数***
***6-输出不及格的学生成绩**
***7-输出所有优秀学生姓名和成绩***
***8-退出系统******

功能:
这个程序的主要功能是输入学生姓名、成绩,学号可以自动生成,并可以对学生成绩按学号或姓名进行查询。该系统具有存储学生数据,按学号、姓名查询,按需要修改学生成绩,列出学生成绩和统计的功能。

系统中有五个初始数据:学号       姓名        成绩
                        1        张三        98
                        2        李四        85
                        3        王五        76
                        4        陈六        65
                        5        刘七        54
学校老师自己出的题,题目中没有要求使用文件来做,我也不会使用文件。我自己写了一点,但是越写越不会了!请各位帮忙看看!出出主意!谢谢大家!下面是我自己的代码,只写了这么一点:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
struct student
{
    char  num[5];
    char name[20];
    int  score;
};
struct student stu[N]={{"1","张三",90},{"2","李四",87},{"3","王五",76},{"4","赵六",67},{"5","刘七",56}};


void insert(int i)   //输入学生具体信息的函数
{
    printf("第%d个学生的姓名:",i+1);
   
    scanf("%s",stu[i].name);

    printf("\n");

    printf("第%d个学生的分数:",i+1);
   
    scanf("%d",stu[i].score);

    printf("\n");
}

void input()     //输入数据的函数
{
    system("color 3e");
    void menu();
    void insert(int i);
    int i,j,k,l,r;
    printf("您想输入几个学生的信息? (1-%d) [ ]\b\b",N-5);
    scanf("%d",&j);
    r=5+j;
    for(i=5;i<r;i++)
    {
        printf("\n输入第%d个学生的信息。\n",i+1);
        insert(i);
    }
    do
    {
        printf("返回菜单请按1! [ ]\b\b");
        scanf("%d",&k);
        if(k == 1)
        {
            system("cls");
            menu();
        }
        else
        l = 0;
    }while(l == 0);
}





void search()        //查询成绩的函数
{
    void menu();
    void printf_one(int k);
    struct student s;
    int i,k,w0,w1,w2;
    do
    {
        printf("请选择查找的类别:  1.姓名   2.学号   [ ]\b\b");
        scanf("%d",&w1);
        if(w1<1||w1>2)
        {
            printf("输入错误!请重新输入!\n");
            w2 = 1;
        }
        else
            w2 = 0;
    }while(w2 == 1);
    if(w1 == 1)  //按姓名查找
    {
        do
        {
            k = -1;
            do
            {
                printf("\n请输入您想查找的学生的姓名!\nName:");
                scanf("%s",s.name);
                for(i=0;i<5;i++)
                    if(strcmp(s.name,stu[i].name) == 0)
                    {
                        k = i;
                        s = stu[i];
                    }
                    if(k == -1)  //没有找到
                    {
                        int o;
                        printf("\n\n没有这个学生的信息!\n");
                        printf("What do you want to do?\n\t1.继续   2.返回菜单  [ ]\b\b");
                        scanf("%d",&o);
                        if(o == 1)
                        {
                            system("cls");
                            search();   //继续查找
                        }
                        else
                        {
                            system("cls");
                            menu();   //返回菜单
                        }
                    }
            }while(k == -1);
            system("cls");
            printf_one(k);     //查找到以后输出这个学生的信息
            printf("\nWhat do you want to do?\n\t1.继续   2.返回菜单   [ ]\b\b");
            scanf("%d",&w0);
        }while(w0 == 1);
        system("cls");
        menu();   //不在查找时返回菜单
    }
    else    //按学号查找
    {
        do
        {
            k = -1;
            do
            {
                printf("\n请输入您想查找的学生的学号!\nNum:");
                scanf("%s",s.num);
                for(i=0;i<5;i++)
                    if(strcmp(s.num,stu[i].num) == 0)  //找到了
                    {
                        k = i;
                        s = stu[i];
                    }
                    if(k == -1)    //没有找到
                    {
                        int o;
                        printf("\n\n没有这个学生的信息!\n");
                        printf("What do you want to do?\n\t1.继续   2.返回菜单  [ ]\b\b");
                        scanf("%d",&o);
                        if(o == 1)
                        {
                            system("cls");
                            search();  // 继续查找
                        }
                        else
                        {
                            system("cls");
                            menu();    //返回菜单
                        }
                    }
            }while(k == -1);
            system("cls");
            printf_one(k);   //找到后输出这个学生的信息
            printf("\nWhat do you want to do?\n\t1.继续  2.返回菜单   [ ]\b\b");
            scanf("%d",&w0);
        }while(w0 == 1);
        system("cls");
        menu();     //不在查找时返回菜单
    }

}

/*

void xiugai()     //修改学生信息的函数
{
    void menu();
    void printf_one(int k);
    void xiugai_2();
    struct student s;
    int i,n,k,w0=1,w1,w2=0;
    do
    {
        k=-1;
        do
        {
            printf("\n请输入您想要修改的学生的姓名!Name:");
            scanf("%s",s.name);
            for(i=0;i<5;i++)
                if(strcmp(s.name,stu[i].name) == 0)  //与其中一个学生匹配
                {
                    k = i;
                    s = stu[i];
                }
                if(k == -1)   // 没有找到输入的学生
                {
                    int o;
                    printf("\n\n没有这个学生的信息!\n");
                    printf("What do you want to do?\n\t1.继续  2.返回菜单  [ ]\b\b");
                    scanf("%d",&o);
                    if(o == 1)
                    {
                        system("cls");
                        xiugai();    //继续修改
                    }
                    else
                    {
                        system("cls");
                        menu();    //返回菜单
                    }
                }

        }while(k == -1);
        system("cls");
        printf_one(k);   //输出这个学生的信息
    }while();
}
*/


void printf_all()       //输出所有学生成绩的函数
{
    void menu();
    system("color 4e");
    int i,j,k;
    for(i=0;i<N;i++)
    {
        printf("学号:%s    姓名:%s    分数:%d\n",stu[i].num,stu[i].name,stu[i].score);
    }
    do
    {
        printf("返回菜单请按1  [ ]\b\b");
        scanf("%d",&j);
        if(j == 1)
        {
            system("cls");
            menu();
        }
        else
        {
            k=0;
        }
    }while(k == 0);
}



void printf_one(int k)  //输出某一个学生的信息的函数
{
    printf("学号: %s    姓名: %s   分数: %d",stu[k].num,stu[k].name,stu[k].score);
}


void exit()   //退出系统的函数
{
    exit(0);
}

void menu()       //菜单函数
{
    system("color 2e");
    printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
    printf("\n");
    int n,m;
    do
    {
        puts("\t\t********************菜单*********************");
        puts("\t\t*********************************************");
        puts("\t\t**************学生学籍管理系统***************");
        puts("\t\t*********************************************");
        puts("\t\t*********************************************");
        puts("\t\t*******        1--输入数据               ****");
        puts("\t\t*******        2--查询成绩               ****");
        puts("\t\t*******        3--修改成绩               ****");
        puts("\t\t*******        4--输出所有学生成绩       ****");
        puts("\t\t*******        5--统计及格和优秀的人数   ****");
        puts("\t\t*******        6--输出所有不及格学生的成绩 **");
        puts("\t\t*******        7--输出所有优秀学生姓名和成绩*");
        puts("\t\t*******        8--退出系统               ****");
        puts("\t\t*********************************************");
        printf("请选择服务种类(1~8): [ ]\b\b");
        scanf("%d",&n);
        if(n<1||n>8)
        {
            system("cls");
            printf("选择错误! 请重新选择!\n");
            m=1;
        }
        else
        {
            m=0;
        }
    }while(m == 1);
    switch(n)
    {
        case 1: system("cls");input(); break;
        case 2: system("cls"); search(); break;
    //    case 3: system("cls"); xiugai(); break;
        case 4: system("cls"); printf_all(); break;
    //    case 5: system("cls"); tongji(); break;
    //    case 6: system("cls"); printf_all_bujige() break;
    //    case 7: system("cls"); printf_all_youxiu() break;
        case 8: exit(); break;
    }
}

int main()
{
    menu();
    return 0;
}
搜索更多相关主题的帖子: 统计 c语言 管理系统 查询成绩 
2016-07-26 09:50
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:1 
先说说你需要别人帮忙做哪些功能?
2016-07-26 10:00
p18844058918
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-4-25
收藏
得分:0 
输入学生信息那部分,还有修改学生信息那部分。
2016-07-26 10:03
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:19 
看看是否符合你的要求:

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
struct student
{
    char  num[5];
    char name[20];
    int  score;
};
struct student stu[N] = { { "1","张三",90 },{ "2","李四",87 },{ "3","王五",76 },{ "4","赵六",67 },{ "5","刘七",56 } };

int count = 5;

void insert(int i)   //输入学生具体信息的函数
{
    printf("第%d个学生的姓名:", i + 1);

    scanf("%s", stu[i].name);

    printf("\n");

    printf("第%d个学生的分数:", i + 1);

    scanf("%d", &stu[i].score);

    printf("\n");

    count++;
    sprintf(stu[i].num,"%d",count);
}

void input()     //输入数据的函数
{
    system("color 3e");
    void menu();
    void insert(int i);
    int i, j, k, l, r;
    printf("您想输入几个学生的信息? (1-%d) [ ]\b\b", N - 5);
    scanf("%d", &j);
    r = 5 + j;
    for (i = 5; i<r; i++)
    {
        printf("\n输入第%d个学生的信息。\n", i + 1);
        insert(i);
    }
    do
    {
        printf("返回菜单请按1! [ ]\b\b");
        scanf("%d", &k);
        if (k == 1)
        {
            system("cls");
            menu();
        }
        else
            l = 0;
    } while (l == 0);
}





void search()        //查询成绩的函数
{
    void menu();
    void printf_one(int k);
    struct student s;
    int i, k, w0, w1, w2;
    do
    {
        printf("请选择查找的类别:  1.姓名   2.学号   [ ]\b\b");
        scanf("%d", &w1);
        if (w1<1 || w1>2)
        {
            printf("输入错误!请重新输入!\n");
            w2 = 1;
        }
        else
            w2 = 0;
    } while (w2 == 1);
    if (w1 == 1)  //按姓名查找
    {
        do
        {
            k = -1;
            do
            {
                printf("\n请输入您想查找的学生的姓名!\nName:");
                scanf("%s", s.name);
                for (i = 0; i<5; i++)
                    if (strcmp(s.name, stu[i].name) == 0)
                    {
                        k = i;
                        s = stu[i];
                    }
                if (k == -1)  //没有找到
                {
                    int o;
                    printf("\n\n没有这个学生的信息!\n");
                    printf("What do you want to do?\n\t1.继续   2.返回菜单  [ ]\b\b");
                    scanf("%d", &o);
                    if (o == 1)
                    {
                        system("cls");
                        search();   //继续查找
                    }
                    else
                    {
                        system("cls");
                        menu();   //返回菜单
                    }
                }
            } while (k == -1);
            system("cls");
            printf_one(k);     //查找到以后输出这个学生的信息
            printf("\nWhat do you want to do?\n\t1.继续   2.返回菜单   [ ]\b\b");
            scanf("%d", &w0);
        } while (w0 == 1);
        system("cls");
        menu();   //不在查找时返回菜单
    }
    else    //按学号查找
    {
        do
        {
            k = -1;
            do
            {
                printf("\n请输入您想查找的学生的学号!\nNum:");
                scanf("%s", s.num);
                for (i = 0; i<5; i++)
                    if (strcmp(s.num, stu[i].num) == 0)  //找到了
                    {
                        k = i;
                        s = stu[i];
                    }
                if (k == -1)    //没有找到
                {
                    int o;
                    printf("\n\n没有这个学生的信息!\n");
                    printf("What do you want to do?\n\t1.继续   2.返回菜单  [ ]\b\b");
                    scanf("%d", &o);
                    if (o == 1)
                    {
                        system("cls");
                        search();  // 继续查找
                    }
                    else
                    {
                        system("cls");
                        menu();    //返回菜单
                    }
                }
            } while (k == -1);
            system("cls");
            printf_one(k);   //找到后输出这个学生的信息
            printf("\nWhat do you want to do?\n\t1.继续  2.返回菜单   [ ]\b\b");
            scanf("%d", &w0);
        } while (w0 == 1);
        system("cls");
        menu();     //不在查找时返回菜单
    }

}



void xiugai()     //修改学生信息的函数
{
    void menu();
    void printf_one(int k);
    void xiugai_2();
    struct student s;
    int i,n,k,w0=1,w1,w2=0,o;
    do
    {
        k=-1;
        do
        {
            printf("\n请输入您想要修改的学生的姓名!Name:");
            scanf("%s",s.name);
            for(i=0;i<5;i++)
            if(strcmp(s.name,stu[i].name) == 0)  //与其中一个学生匹配
            {
                k = i;
                s = stu[i];
            }
            if(k == -1)   // 没有找到输入的学生
            {                
                printf("\n\n没有这个学生的信息!\n");
                printf("What do you want to do?\n\t1.继续  2.返回菜单  [ ]\b\b");
                scanf("%d",&o);
                if(o == 1)
                {
                    system("cls");
                    //xiugai();    //继续修改
                }
                else
                {
                    system("cls");
                    menu();    //返回菜单
                }
            }

        }while(k == -1);
        system("cls");
        printf("修改这个学生的分数:");

        scanf("%d", &stu[k].score);
        printf("\n");
        printf_one(k);   //输出这个学生的信息
        printf("\nWhat do you want to do?\n\t1.继续  2.返回菜单  [ ]\b\b");
        scanf("%d", &o);
        if (o != 1)
        {
            system("cls");
            menu();    //返回菜单
        }
    }while(1);
}



void printf_all()       //输出所有学生成绩的函数
{
    void menu();
    system("color 4e");
    int i, j, k;
    for (i = 0; i<N; i++)
    {
        printf("学号:%s    姓名:%s    分数:%d\n", stu[i].num, stu[i].name, stu[i].score);
    }
    do
    {
        printf("返回菜单请按1  [ ]\b\b");
        scanf("%d", &j);
        if (j == 1)
        {
            system("cls");
            menu();
        }
        else
        {
            k = 0;
        }
    } while (k == 0);
}



void printf_one(int k)  //输出某一个学生的信息的函数
{
    printf("学号: %s    姓名: %s   分数: %d", stu[k].num, stu[k].name, stu[k].score);
}


void Exit()   //退出系统的函数
{
    exit(0);
}

void menu()       //菜单函数
{
    system("color 2e");
    printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
    printf("\n");
    int n, m;
    do
    {
        puts("\t\t********************菜单*********************");
        puts("\t\t*********************************************");
        puts("\t\t**************学生学籍管理系统***************");
        puts("\t\t*********************************************");
        puts("\t\t*********************************************");
        puts("\t\t*******        1--输入数据               ****");
        puts("\t\t*******        2--查询成绩               ****");
        puts("\t\t*******        3--修改成绩               ****");
        puts("\t\t*******        4--输出所有学生成绩       ****");
        puts("\t\t*******        5--统计及格和优秀的人数   ****");
        puts("\t\t*******        6--输出所有不及格学生的成绩 **");
        puts("\t\t*******        7--输出所有优秀学生姓名和成绩*");
        puts("\t\t*******        8--退出系统               ****");
        puts("\t\t*********************************************");
        printf("请选择服务种类(1~8): [ ]\b\b");
        scanf("%d", &n);
        if (n<1 || n>8)
        {
            system("cls");
            printf("选择错误! 请重新选择!\n");
            m = 1;
        }
        else
        {
            m = 0;
        }
    } while (m == 1);
    switch (n)
    {
    case 1: system("cls"); input(); break;
    case 2: system("cls"); search(); break;
    case 3: system("cls"); xiugai(); break;
    case 4: system("cls"); printf_all(); break;
        //    case 5: system("cls"); tongji(); break;
        //    case 6: system("cls"); printf_all_bujige() break;
        //    case 7: system("cls"); printf_all_youxiu() break;
    case 8: Exit(); break;
    }
}

int main()
{
    menu();
    return 0;
}
2016-07-26 10:21
p18844058918
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2016-4-25
收藏
得分:0 
谢谢你javascript:insertText('21','em');
2016-07-26 10:37
yangming0
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-6-14
收藏
得分:0 
回复 2楼 grmmylbs
已知每个学生的数据包括学号、班级、姓名、三门课(数学、物理和化学)成绩。从键盘输入 N 个学生数据,要求打印出每个学生三门课的平均成绩,以及以平均分的降序输出学生数据(包括学号、班级、姓名、三门课成绩,平均分)。帮帮忙
2018-06-14 12:25
快速回复:用c语言编写学生成绩管理系统
数据加载中...
 
   



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

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