C语言基础 结构体存储学生信息

这篇具有很好参考价值的文章主要介绍了C语言基础 结构体存储学生信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任务描述

本关任务:使用结构体储存学生信息(包括学号,姓名,3门课程成绩,总分),要求实现对学生信息修改和删除操作,最多50名学生。

相关知识

参考结构体第1关相关知识

编程要求

使用结构体储存学生信息,实现对学生信息修改和删除操作。

测试说明

平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

测试输入:

 
  1. 10 3
  2. 1 Siyu 90 90 90
  3. 2 Amy 60 70 94
  4. 3 Jack 60 60 98
  5. 4 Jack 77 90 60
  6. 5 Banana 60 60 40
  7. 6 White 60 60 60
  8. 7 Pinkman 60 60 60
  9. 8 Fring 60 60 70
  10. 9 Ehrmantraut 80 63 61
  11. 10 Schrader 99 66 100
  12. 1 Jack
  13. 2 1 100 100 100
  14. 3 10

测试输入数据说明: 输入一个nq,标书下面n行则是n个学生的信息,再下q行则是对应的操作。

 
  1. 1 name //为根据名字查询操作
  2. 2 sno num1 num2 num2 //为修改分数操作,修改学号为sno的3门成绩
  3. 3 sno //为删除操作

预期输出:

 
  1. 3 Jack 60 60 98 218
  2. 4 Jack 77 90 60 227
  3. 1 Siyu 100 100 100 300
  4. 2 Amy 60 70 94 224
  5. 3 Jack 60 60 98 218
  6. 4 Jack 77 90 60 227
  7. 5 Banana 60 60 40 160
  8. 6 White 60 60 60 180
  9. 7 Pinkman 60 60 60 180
  10. 8 Fring 60 60 70 190
  11. 9 Ehrmantraut 80 63 61 204
  12. 10 Schrader 99 66 100 265
  13. 1 Siyu 100 100 100 300
  14. 2 Amy 60 70 94 224
  15. 3 Jack 60 60 98 218
  16. 4 Jack 77 90 60 227
  17. 5 Banana 60 60 40 160
  18. 6 White 60 60 60 180
  19. 7 Pinkman 60 60 60 180
  20. 8 Fring 60 60 70 190
  21. 9 Ehrmantraut 80 63 61 204

预期输出数据说明: 每次修改操作则输出全部的学生信息,查询操作则输出查询的学生的信息。文章来源地址https://www.toymoban.com/news/detail-526195.html

#include<stdio.h>
#include<string.h>
int Count;
struct student{
    char sno[20],name[20];
    int math,english,chinese,sum;
};

void print(struct student stu){
    printf("%s %s %d %d %d %d\n",stu.sno,stu.name,stu.math,stu.english,stu.chinese,stu.sum);
}

void query_stu(struct student s[],char *name){
    /*********Begin*********/
int i=0;
    for(;i<Count;i++)
    {
        if(strcmp(s[i].name,name)==0)
            print(s[i]);
    }

    /*********End**********/
}

void delete_stu(struct student s[],char *sno){
    /*********Begin*********/
int i=0;
    for(;i<Count;i++)
    {
        if(strcmp(s[i].sno,sno)==0)
            break;
    }
    for(;i<Count-1;i++)
    {
        s[i]=s[i+1]; 
    }
    /*********End**********/
}

void update_stu(struct student s[],char *sno,int math,int english,int chinese){
    /*********Begin*********/
int i=0;
     for(;i<Count;i++)
     {
         if(strcmp(s[i].sno,sno)==0)
         {
             s[i].math=math;
             s[i].english=english;
             s[i].chinese=chinese;
             s[i].sum=s[i].math+s[i].english+s[i].chinese;//重新计算总成绩 
         }
     }
    /*********End**********/
}

int main(void)
{
    int n,q;
    struct student stu[50];
    scanf("%d%d",&n,&q);
    Count=n;
    for(int i=0;i<n;i++){
        /*********Begin*********/
        scanf("%s",stu[i].sno);
        scanf("%s",stu[i].name);
        scanf("%d",&stu[i].math);
        scanf("%d",&stu[i].english);
        scanf("%d",&stu[i].chinese);
        stu[i].sum=stu[i].math+stu[i].english+stu[i].chinese;//求总成绩

        /*********End**********/
    }
    while(q--){
        int op;
        scanf("%d",&op);
        char sno[20],name[20];
        if(op==1){
            scanf("%s",name);
            query_stu(stu,name);
        }
        else if(op==2){
            int a,b,c;
            scanf("%s%d%d%d",sno,&a,&b,&c);
            update_stu(stu,sno,a,b,c);
            for(int i=0;i<Count;i++)
                print(stu[i]);
        }
        else{
            scanf("%s",sno);
            delete_stu(stu,sno);
            for(int i=0;i<Count-1;i++)
                print(stu[i]);
        }
    }
    return 0;
}

到了这里,关于C语言基础 结构体存储学生信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言基础——循环结构

    C语言的基本结构之一。在程序中有连续执行的操作可以用循环结构,简化函数,C语言中有三种循环结构,for循环,while循环,do-while循环,其中for循环最常用。 循环执行是循环结构的核心,表现为反复执行一个或一组操作。在编程中,如果想要从数据处理中发现循环执行,就

    2024年02月05日
    浏览(51)
  • 使用c/c++语言写一个简单的学生信息管理系统(使用结构体数组,包含文件储存,文件读取等)

    使用c/c++开发的一个简单学生信息管理系统,功能如图所示: 选择不同的数字后可以选择不同的功能使用 在刚开始运行系统时会进行一个系统暂停,使用了windows函数库里面的system(\\\"pause\\\"),暂停系统有助于保护系统稳定性,防止系统出现闪屏等意外情况导致闪退等,并且使用了

    2024年02月09日
    浏览(42)
  • C语言基础 结构体排序

    任务描述 本关任务:有 n 个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。 相关知识 参考 结构体第1关 相关知识 编程要求 要求按照成绩的高低顺序输出学生的信息。 测试说明 平台会对你编写的代码进行测试,比对你输出的数值与实际正确

    2024年02月03日
    浏览(43)
  • Go语言基础之结构体

    Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type来定

    2024年02月10日
    浏览(40)
  • C语言基础之——结构体

    前言:小伙伴们又见面啦,那么本篇文章,我们就将对C语言基础知识的最后一个章节——结构体展开讲解。 世上无难事,只要肯攀登! 目录 一.什么是结构体 二.结构体讲解 1.结构体的声明和变量的定义 2.结构体成员的类型 3.结构体变量的初始化 三.结构体成员的访问与传参

    2024年02月11日
    浏览(38)
  • 【go语言基础】结构体struct

    主要是敲代码,敲的过程中会慢慢体会。 结构体是用户定义的类型,表示若干字段的集合,目的是将数据整合在一起。 简单的说,类似Java中的实体类。存储某个实体属性的集合。 注意:结构体名字,结构体属性名的首字母大写代表其余的包可以访问该结构体,类似Java中的

    2024年02月13日
    浏览(60)
  • Python语言基础---选择判断循环结构详解

    在Python编程语言中,选择判断和循环是两个非常重要的概念。它们可以让我们根据条件执行不同的代码块,或者重复执行一段代码,这为我们解决各种问题提供了强大的功能。本文将详细介绍Python语言中的选择判断和循环结构,帮助读者更好地理解和运用这些概念。 Python提供

    2024年02月13日
    浏览(69)
  • C语言零基础入门(结构体)

    C 语言内置的数据类型,除了最基本的几种原始类型,只有数组属于复合类型,可以同时包含多个值,但是只能包含相同类型的数据,实际使用中并不够用。 实际使用中,主要有下面两种情况,需要更灵活强大的复合类型。 复杂的物体需要使用多个变量描述,这些变量都是相

    2024年01月17日
    浏览(38)
  • 数据结构——二叉树基础结构篇(C语言)

    现在是北京时间2023年6月13日9点11分。从决定要开始减脂之后,饥饿总是伴随着我。一觉起来肚子咕咕叫,我还是想先把文章发了再吃第一餐。燕麦加蛋白粉几乎伴随了我大学的第一年早饭。昨天练了一个小时背,练背后还做了45分钟有氧。空腹训练没有影响我的训练状态。这

    2024年02月08日
    浏览(38)
  • 考研C语言刷题基础篇之分支循环结构基础(二)

    目录 第一题分数求和  第二题:求10 个整数中最大值 第三题:在屏幕上输出9*9乘法口诀表 第四题:写一个代码:打印100~200之间的素数  第五题:求斐波那契数的第N个数 斐波那契数的概念:前两个数相加等于第三个数 斐波那契数的公式: 第六题:汉诺塔游戏  思路:  1

    2024年01月22日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包