标题:C语言做一个学生成绩管理系统,有个问题想请教一下!
只看楼主
TRH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-23
结帖率:100%
已结贴  问题点数:20 回复次数:4 
C语言做一个学生成绩管理系统,有个问题想请教一下!
C语言做了一个非常简单的学生成绩管理系统,想加一个求平均分的功能,但是不会,所以想请教一下各位大神!感激不尽!源代码如下:


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student
{
    char num[20];        /*学号*/
    char name[20];       /*姓名*/
    char subject[20];    /*科目*/
    float grade;         /*分数*/
}
stu[3];
void menu()
{
    printf("            ======================================================\n");
    printf("            ||               模拟简单学生成绩管理系统           ||\n");
    printf("            ||                 ╭──────╮                 ||\n");
    printf("            ||                 │★功能菜单★┃                 ||\n");
    printf("            ||                 ╰━━━━━━╯                 ||\n");
    printf("            ||                  1 输入学生成绩                  ||\n");
    printf("            ||                  2 输出学生成绩                  ||\n");
    printf("            ||                  3 查询学生成绩                  ||\n");
    printf("            ||                  0 退出管理系统                  ||\n");
    printf("            ======================================================\n");
}
void input()
{
    printf("\t\t请按顺序输入三个学生姓名,学号,学科,成绩:\n");
    printf("\n");
    for (int i = 0; i<3; i++)
        scanf("%s%s%s%f", stu[i].name, stu[i].num, stu[i].subject, &stu[i].grade);
    printf("\n");
}
void show()
{
    printf("\n");
    printf("姓名\t\t学号\t\t科目\t\t成绩\n");
    for (int i = 0; i<3; i++)
        printf("%s\t\t%s\t\t%s\t\t%f\n", stu[i].name, stu[i].num, stu[i].subject, stu[i].grade);
    printf("\n");
}
void search()
{
    char num[20];
    printf("\t\t请输入要查询的学号:");
    scanf("%s", num);
    for (int i = 0; i<3; i++)
    {
        if (0 == strcmp(num, stu[i].num))
        {
            printf("\n");
            printf("姓名\t\t学号\t\t科目\t\t成绩\n");
            printf("%s\t\t%s\t\t%s\t\t%f\n", stu[i].name, stu[i].num, stu[i].subject, stu[i].grade);
            printf("\n");
        }
    }
}
int main()
{
    int selection;
    while (1)
    {
        menu();
        printf("\t\t请选择0--3:");
        scanf("%d", &selection);
        switch (selection)
        {
        case 1:  input();  break;
        case 2:  show();   break;
        case 3:  search(); break;
        case 0:  exit(0);  break;
        default: printf("\t\t输入有误,请重新输入!\n");
        }
    }
    return 0;
}
搜索更多相关主题的帖子: 学生 成绩 stu printf || 
2017-12-23 18:18
TRH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-23
得分:0 
注定成为0回复么
2017-12-23 21:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
有什么问题
边写边调试,有问题就提问。
2017-12-23 22:54
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:20 
先别加平均分哪,先让你程序正常运行起来吧。
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student
{
    char num[3];        /*学号*/
    char name[20];       /*姓名*/
    char subject[20];    /*科目*/
    float grade;         /*分数*/
}stu[3];
void menu()
{
    printf("            ======================================================\n");
    printf("            ||               模拟简单学生成绩管理系统           ||\n");
    printf("            ||                  +------------+                  ||\n");
    printf("            ||                  |★功能菜单★|                  ||\n");
    printf("            ||                  +------------+                  ||\n");
    printf("            ||                  1 输入学生成绩                  ||\n");
    printf("            ||                  2 输出学生成绩                  ||\n");
    printf("            ||                  3 查询学生成绩                  ||\n");
    printf("            ||                  0 退出管理系统                  ||\n");
    printf("            ======================================================\n");
}
void input(struct student *p)
{
        int i;
    printf("\t\t请按顺序输入三个学生的资料\n");
    printf("\n");
    for (i = 0; i<3; i++){
        printf("第%d名学生姓名:",i+1);
        scanf("%s",&(p+i)->name);
        printf("第%d名学生学号:",i+1);
        scanf("%s",&(p+i)->num);
        printf("第%d名学生学科:",i+1);
        scanf("%s",&(p+i)->subject);
        printf("第%d学生成绩:",i+1);
        scanf("%f",&(p+i)->grade);
   

    printf("\n");
    }
       

}
void show(struct student *p)
{
    printf("\n");
    printf("姓名\t\t学号\t\t科目\t\t成绩\n");
    for (int i = 0; i<3; i++)
        printf("%s\t\t%s\t\t%s\t\t%.2f\n", (p+i)->name, (p+i)->num, (p+i)->subject, (p+i)->grade);
    printf("\n");
}
void search(struct student *p)
{
    char num[20];
    printf("\t\t请输入要查询的学号:");
    scanf("%s", num);
    for (int i = 0; i<3; i++)
    {
        if (0==strcmp(num,(p+i)->num))
        {
            printf("\n");
            printf("姓名\t\t学号\t\t科目\t\t成绩\n");
            printf("%s\t\t%s\t\t%s\t\t%f\n", (p+i)->name, (p+i)->num, (p+i)->subject, (p+i)->grade);
            printf("\n");
        }
    }
}
int main()
{
    int selection;
    while (1)
    {
        menu();
        printf("\t\t请选择0--3:");
        scanf("%d", &selection);
        switch (selection)
        {
        case 1:  input(stu);  break;
        case 2:  show(stu);   break;
        case 3:  search(stu); break;
        case 0:  exit(0);  break;
        default: printf("\t\t输入有误,请重新输入!\n");
        }
    }
    return 0;

2017-12-24 00:23
TRH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-12-23
得分:0 
回复 4楼 虫眼
请问一下,为什么我的代码也能运行,并且能达到所要的效果,和您的有什么不一样?我是C语言初学者,想要在我的代码上加一个求平均分的功能,请问怎么加?
2017-12-27 16:02



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




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

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