2024.7.10作业

news2024/9/24 23:33:36

完成学生管理系统

1> 使用菜单完成

2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入

3> 查看学生信息:输出所有学生姓名以及对应的分数

4> 求出学习最好的学生信息:求最大值

5> 按姓名将所有学生进行升序排序

6> 按成绩将所有学生进行升序排序

要求每个功能使用函数完成

#include <stdio.h>
#include <string.h>

void enter(char arr[][20],int brr[],int n,int m)  //录入函数
{
    for(int i=n;i<=m;i++)
    {
        printf("输入第%d个学生姓名:",i+1);
        scanf("%s",arr[i]);
        printf("输入第%d个学生成绩:",i+1);
        scanf("%d",&brr[i]);
    }
}

void query(char arr[][20],int brr[],int n) //查询所以学生信息函数
{
    for(int i=0;i<n;i++)
    {
        printf("学生%s的成绩是%d\n",arr[i],brr[i]);
    }
}

void MAX(char arr[][20],int brr[],int n)  //求成绩最好学生信息函数
{
    int max=brr[0],maxi=0;
    for(int i=1;i<n;i++)
    {
        if(brr[i]>max)
        {
            max=brr[i];
            maxi=i;
        }
    }
    printf("学习最好的是%s,成绩是%d\n",arr[maxi],brr[maxi]);

}

void name_sort(char arr[][20],int brr[],int n)  //按名字升序排列函数
{
    char crr[20]={0};
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(strcmp(arr[j],arr[j+1])>0)
            {
                strcpy(crr,arr[j]);
                strcpy(arr[j],arr[j+1]);
                strcpy(arr[j+1],crr);
                int temp=brr[j];
                brr[j]=brr[j+1];
                brr[j+1]=temp;

            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("学生%s的成绩是%d\n",arr[i],brr[i]);
    }
}

void grade_sort(char arr[][20],int brr[],int n)  //按成绩升序排列函数
{
    char crr[20]={0};
    for(int i=1;i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(brr[j]>brr[j+1])
            {
                strcpy(crr,arr[j]);
                strcpy(arr[j],arr[j+1]);
                strcpy(arr[j+1],crr);
                int temp=brr[j];
                brr[j]=brr[j+1];
                brr[j+1]=temp;

            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("学生%s的成绩是%d\n",arr[i],brr[i]);
    }
}


int main(int argc,const char *argv[])    
{
    int menu=0;  //存放菜单选项
    int n=0;     //存放学生个数
    char name[100][20]={0};  //存放学生姓名
    int grade[100]={0};      //存放学生成绩
    while(1)
    {
         printf("\t\t========学生管理系统==========\n");
        printf("\t\t========1.学生信息录入==========\n");
        printf("\t\t========2.查看学生信息==========\n");
        printf("\t\t========3.查询学习最好的学生信息==========\n");
        printf("\t\t========4.按姓名升序排序==========\n");
        printf("\t\t========5.按成绩升序排序==========\n");
        printf("\t\t========6.退出==========\n");
        printf("请输入>>>");
        scanf("%d",&menu);
        getchar();
        switch(menu)
        {
            case 1:
                {
                    int m;
                    printf("请输入录入学生个数:");
                      scanf("%d",&m);
                    enter(name,grade,n,n+m-1);
                    n=n+m;
                }
                break;
            case 2:
                query(name,grade,n);
                break;
            case 3:
                MAX(name,grade,n);
                break;
            case 4:
                name_sort(name,grade,n);
                break;
            case 5:
                grade_sort(name,grade,n);
                break;
            case 6:
                goto END;

        }
    }
    END:     
        return 0;
}
 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue学习day05-watch侦听器(监视器)、Vue生命周期和生命周期的四个阶段、、工程化开发和脚手架Vue cli

13、watch侦听器&#xff08;监视器&#xff09; &#xff08;1&#xff09;作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 &#xff08;2&#xff09;语法&#xff1a; 1&#xff09;简写语法——简单数据类型&#xff0c;直接监视 ① Watch:{ 数…

python reload找不到怎么办

Python 3.0 把 reload 内置函数移到了 imp 标准库模块中。它仍然像以前一样重载文件&#xff0c;但是&#xff0c;必须导入它才能使用。 方法一&#xff1a; from imp import reload reload(module) 方法二&#xff1a; import imp imp.reload(module)

计算机网络之广域网

广域网特点: 主要提供面向通信的服务&#xff0c;支持用户使用计算机进行远距离的信息交换。 覆盖范围广,通信的距离远&#xff0c;需要考虑的因素增多&#xff0c; 线路的冗余、媒体带宽的利用和差错处理问题。 由电信部门或公司负责组建、管理和维护&#xff0c;并向全社会…

基于Booth乘法和Wallace树的乘法器优化思想

基于Booth乘法和Wallace树的快速乘法器 为了理解Booth乘法和Wallace数如何让乘法器变得更快&#xff1a; 先考虑不优化的8位乘法器实现&#xff0c;即8个16位数字累积共进行7次加法运算&#xff0c;可以认为一次16位加法用到16个全加器&#xff0c;则共需要112个全加器件&…

创建React 项目的几种方式

①.react自带脚手架 使用步骤&#xff1a; 1、下载 npm i create-react-app -g 2、创建项目命令&#xff1a; create-react-app 项目名称 ②.Vite构建工具创建react步骤&#xff1a;&#xff08;推荐&#xff09; 方法一&#xff1a; 1、yarn create vite 2、后续根据提示步…

深度动态IP代理 国内动态IP软件哪个好用

想必大家都用过动态IP产品&#xff0c;什么是动态IP&#xff0c;动态IP就是非固定的静态IP地址&#xff0c;短 时间了频繁波动ip地址&#xff0c;就叫动态IP&#xff0c;因为工作需要用到不同的IP&#xff0c;这时就需要动态IP软件。 今天给大家带来一款深度动态IP软件&#xf…

MySQL安全值守常用语句

一、用户权限设置 1、Mysql中用户是如何定义的 用户名主机域 10.0.0.5110.0.0.%%10.0.0.0/255.255.255.0Db01Localhost127.0.0.1 2、用户创建 create user xinjing% identified by 123 3、用户删除 drop user username&#xff1b;username 是要删除的用户名:如 drop user root…

SpringBoot日常:编码规范之import *

前言 日常开发中&#xff0c;我们在编码过程中会经常忽略import 包的问题&#xff0c;我们会使用import语句中的通配符*来引入整个包中的所有类。尽管这样做能够简化代码编写和阅读&#xff0c;但是过度使用import *也会带来一些坏处&#xff0c;本文将探讨这些问题并给出相应…

在Linux下直接修改磁盘镜像文件的内容

背景 嵌入式Linux系统通常在调试稳定后&#xff0c;会对磁盘&#xff08;SSD、NVME、SD卡、TF卡&#xff09;做个镜像&#xff0c;通常是.img后缀的文件&#xff0c;以后组装新设备时&#xff0c;就将镜像文件烧录到新磁盘即可&#xff0c;非常简单。 这种方法有个不便之处&a…

前端面试题41(在JavaScript中,如何实现MVVM的数据绑定?)

在JavaScript中实现MVVM&#xff08;Model-View-ViewModel&#xff09;架构下的数据绑定&#xff0c;主要通过观察者模式、发布/订阅模式和数据劫持等技术来完成。下面我将概述几种常见的实现方式&#xff0c;以及如何在不使用框架的情况下手动实现数据绑定。 使用框架实现数据…

防御笔记第四天(持续更新)

1.状态检测技术 检测数据包是否符合协议的逻辑顺序&#xff1b;检查是否是逻辑上的首包&#xff0c;只有首包才会创建会话表。 状态检测机制可以选择关闭或则开启 [USG6000V1]firewall session link-state tcp ? check Indicate link state check [USG6000V1]firewall ses…

MySQL--C_C++语言连接访问

Connector/C的使用 首先需要在mysql官网下载C接口库 解压指令 tar -zxvf 压缩包名 下载并解压好后 但是还有比这更优的做法。 这样子手动安装不仅麻烦&#xff0c;还可能存在兼容性的问题。 其实在我们使用yum安装mysql时&#xff0c;大概率会自动帮我们把其他的环境都安装…

【大模型LLM面试合集】大语言模型基础_NLP面试题

NLP面试题 1.BERT 1.1 基础知识 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是谷歌提出&#xff0c;作为一个Word2Vec的替代者&#xff0c;其在NLP领域的11个方向大幅刷新了精度&#xff0c;可以说是近年来自残差网络最优突破性的…

分享一个项目模板electron+vue+ts+vite

分享一个项目模板electronvuetsvite GitHub - xiugou798/electron-vue-ts-vite-template: electron-vue-ts-vite-templateelectron-vue-ts-vite-template. Contribute to xiugou798/electron-vue-ts-vite-template development by creating an account on GitHub.https://gith…

C++的异常处理机制

C的异常处理机制 (1)Why&#xff08;异常处理机制的作用&#xff09;(2)How&#xff08;异常机制如何工作&#xff09;A.抛出异常B.捕获异常C.处理异常D.传递异常 (3)抛出异常A.栈展开B.析构函数和异常C.异常对象 (4)捕获异常(4)处理异常A.构造函数的异常处理B.不抛出异常noexc…

【SWMM】模型概述及软件安装

SWMM模型概述及软件安装 SWMM 模型 &#xff08;Storm Water Management Model&#xff09;概述应用 软件安装及下载参考 暴雨管理模型 &#xff08;Storm Water Management Model&#xff0c;SWMM 模型&#xff09;是美国环保局为解决日益严重的城市排水问题而推出的暴雨径流管…

凌风云 - 十大网盘资源搜索 Ver 6.0 版正式上线

《凌风云》作为网盘资源专业搜索领域的佼佼者&#xff0c;汇聚了国内十大网盘的丰富资源&#xff0c;凌风云搜索弥补其他搜索引擎可能无法搜索到相关资源的缺陷&#xff0c;作为专业的搜索引擎服务网络平台&#xff0c;您只需输入关键词&#xff0c;通过智能算法精准匹配&#…

C++的介绍与认识

目录 前言 1.什么是C 2.C的发展历史 3.C参考文档 4.C重要性 4.1C特点 4.2编程语言排行榜 4.3 C的应用领域 5.C学习指南 1. 基础知识 2. 面向对象编程&#xff08;OOP&#xff09; 3. 泛型编程 4. 标准库&#xff08;STL&#xff09; 结束语 前言 学习了C语言的知识…

使用mid360进行fast_lio建图、octomap生成栅格地图

前面我已经实现了fast_lio建图并使用octomap转为三维栅格地图&#xff0c;今天来填上次留的坑 使用Livox-Mid360激光雷达&#xff0c;复现FAST_LIO&#xff08;保姆级教程&#xff09;-CSDN博客 这是我上次写的&#xff0c;来复现上次失败的&#xff0c;这个教程&#xff1a;…

【PHP安装内置扩展】

PHP安装内置扩展 1、首先查看php源码以及查询是否有需要的扩展;本次以zlib扩展为例子 2、进入需要安装的扩展目录,执行命令 cd zlib 执行 make clean 清掉之前的安装的残留文件; 不需要的话直接略过,新安装也略过3、运行phpize,执行/usr/local/php/bin/phpize 注意这个路径一…