标题:C语言入门不久,需要编一个学生成绩管理系统
只看楼主
C入门
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-11-22
结帖率:0
已结贴  问题点数:20 回复次数:2 
C语言入门不久,需要编一个学生成绩管理系统
这是某位大神教的。(但是需要能有以下要求
)求改#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;
}
搜索更多相关主题的帖子: 学生 stu printf system do 
2017-11-22 12:04
丘山君
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:87
专家分:154
注 册:2017-11-15
得分:10 
那么你是哪不会呢?你可以把函数拆开一个一个的分析,这么笼统的需要别人帮你改,很麻烦的,你把不懂的地方写出来,会的人给你解决。
2017-11-22 12:23
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:10 
我试着运行了这段程序,很正常的,没有什么问题,你如果觉得哪里有问题,可以具体地提出来,大家好帮你解决呢。
2017-11-23 14:59



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




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

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