| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题: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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册: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
快速回复:C语言做一个学生成绩管理系统,有个问题想请教一下!
数据加载中...
 
   



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

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