C语言小项目:学生管理(文件编辑)

//主函数
#include<stdio.h>
#include<stdlib.h>
#include"xsgl.h"
int main(int argc, char const *argv[])
{char name[]={};printf("请输入用户名:");scanf("%s",name);Help(name);while(1){printf("请输入命令=");scanf("%c",&in);getchar();//回收一个垃圾字符if(in>=65&&in<=122){if(in>=97&&in<=122)in=in-32;if(in!=84&&renshu==0&&in!=81&&in!=72&&in!=67)printf("成绩列表为空!请先使用命令T录入学生成绩。\n");else if(in==81)//输入字符Q退出系统break;else if(in==72)//输入字符H列出菜单Help();else if(in==67)//输入字符C清屏system("clear");else{switch(in){case 84:Type();break;case 65:Average();break;case 76:List();break;case 80:Sort();break;case 83:Search();break;default:printf("命令错误请重新输入正确命令,");break;}}}else{getchar();printf("请输入正确英文字符,");}}return 0;
}
//自定义函数
#include<stdio.h>
#include"xsgl.h"
void Type()
{while(1){for(int x = 0; x < renshu; x++){stu[x].num=0;stu[x].yw=0;stu[x].sx=0;stu[x].wy=0;stu[x].avg=0;}printf("请输入学生人数:");int res=scanf("%d",&renshu);//确认要输入学生成绩人数getchar();if(res==1){printf("请输入%d名学生的三门课成绩:\n",renshu);printf("学号  语文  数学  外语\n");for(int i=0;i<renshu;i++){stu[i].num=i+1;printf("%d     ",stu[i].num);scanf("%f %f %f",&stu[i].yw,&stu[i].sx,&stu[i].wy);}getchar();//回收垃圾字符break;}elseprintf("请输入正确的学生人数,");}
}
void List()
{printf("学生成绩如下:\n");printf("学号  语文  数学  外语  平均分\n");for(int i=0;i<renshu;i++){printf("%d     ",stu[i].num);printf("%-5.1f %-5.1f %-5.1f %-5.1f",stu[i].yw,stu[i].sx,stu[i].wy,stu[i].avg);puts(" ");}
}
void Average()
{for(int i=0;i<renshu;i++){stu[i].avg=(stu[i].yw+stu[i].sx+stu[i].wy)/3.0;}printf("完成平均值计算,请使用命令L查看\n");
}
void Sort()
{//stu中间交换量for(int i=0;i<renshu;i++)//冒泡排序,通过对平均分进行排序{for(int j=0;j<renshu-i;j++){if(stu[j].avg<stu[j+1].avg){stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;}}}printf("完成排序。请使用命令L查看。\n");
}
void Search()
{int n;//查询学号printf("请输入要查询的学生学号:");int res=scanf("%d",&n);getchar();if(res==1){if(n<renshu){for(int i=0;i<renshu;i++){if(n==stu[i].num){printf("学号  语文  数学  外语  平均分\n");    printf("%d     %-5.1f %-5.1f %-5.1f %-5.1f",n,stu[i].yw,stu[i].sx,stu[i].wy,stu[i].avg);puts(" ");break;}}}else{printf("成绩表内没有该同学\n");}}elseprintf("请正确输入学生学号,");
}
void Help(char a[32])
{printf("***************************************************\n");printf("  *         学生成绩管理系统————帮助菜单          *  \n");printf("***************************************************\n");printf("  *               H = 显示帮助菜单                *  \n");printf("  *               T = 成绩录入                    *  \n");printf("  *               A = 计算学生平均分              *  \n");printf("  *               L = 列出成绩表                  *  \n");printf("  *               P = 按平均成绩由高到低排序      *  \n");printf("  *               S = 按学号查询学生成绩          *  \n");printf("  *               C = 清屏                        *  \n");printf("  *               Q = 推出系统                    *  \n");printf("***************************************************\n");printf("  *      Copyright <C> 2023.08.24 By ");printf("姓名:%s      *  \n",a);printf("***************************************************\n");
}
//头函数
#ifndef XSGL_H
#define XSGL_H
char in;//命令输入
int renshu;//要录入的学生人数
struct chengji//成绩结构体
{int num;//学号float yw;//语文成绩float sx;//数学成绩float wy;//外语成绩float avg;//存放平均分
}stu[32],stu1;//学生个人成绩void Type();//输入成绩函数
void List();//展示成绩单函数
void Average();//算取平均值函数
void Sort();//排序函数
void Search();//按学号查找函数
void Help();//帮助界面函数
#endif

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

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

相关文章

react中JSX基础与useState的基本使用 + 评论显示删除需求案例

参考视频&#xff1a;https://www.bilibili.com/video/BV1ZB4y1Z7o8/?p3&spm_id_frompageDriver&vd_source5c584bd3b474d579d0bbbffdf0437c70 如果没有安装create-react-app需要先全局安装 命令&#xff1a;npm i -g create-react-app1.快速搭建开发环境 create-re…

【Python机器学习】sklearn.datasets回归任务数据集

为什么回归分析在数据科学中如此重要,而sklearn.datasets如何助力这一过程? 回归分析是数据科学中不可或缺的一部分,用于预测或解释数值型目标变量(因变量)和一个或多个预测变量(自变量)之间的关系。sklearn.datasets模块提供了多种用于回归分析的数据集,这些数据集常…

动态天气预报:Living Weather HD for Mac

Living Weather HD能够为Mac用户提供及时、准确、个性化的天气信息&#xff0c;并提供了丰富的定制选项&#xff0c;使用户能够更加方便地查看天气状况。 具有以下特点&#xff1a; 显示世界各地的准确天气预报和当地时间。自动探测出用户所在的首个地点&#xff0c;并通过搜…

CUDA学习笔记(八)Branch Divergence and Unrolling Loop

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/&#xff0c;仅用于学习。 Avoiding Branch Divergence 有时&#xff0c;控制流依赖于thread索引。同一个warp中&#xff0c;一个条件分支可能导致很差的性能。通过重新组织数据获取模式可以减少或避免warp diverge…

HarmonyOS开发:Log工具类源码分析

前言 一转眼就十月中旬了&#xff0c;国庆的劲真大&#xff0c;到现在还未缓过来&#xff0c;以至于要更新的文章迟迟未发布&#xff0c;大家可以看到&#xff0c;最近一段时间的文章&#xff0c;都是关于HarmonyOS相关的&#xff0c;两个原因吧&#xff0c;一是我司有这样的任…

解决AndroidStudio Gradle只有testDebugUnitTest

问题复现&#xff1a; 问题解决&#xff1a; 1:点击Task list not built... 2:取消勾选Configure all Gradle tasks during Gradle Sync... 大功告成&#xff0c;现在去看看Gradle&#xff0c;屏蔽的都显示出来了。

深度学习 | Pytorch深度学习实践 (Chapter 1~9)

一、overview 基于pytorch的深度学习的四个步骤基本如下&#xff1a; 二、线性模型 - Linear Model 基本概念 数据集分为测试集和训练集&#xff08;训练集、开发集&#xff09;训练集&#xff08;x&#xff0c;y&#xff09;测试集只给&#xff08;x&#xff09;过拟合&#…

Java可重入锁(GPT编写)

Java可重入锁是Java并发编程中常用的一种锁机制&#xff0c;它可以允许同一个线程多次获取同一个锁&#xff0c;从而避免死锁和其他并发问题。在本篇博客中&#xff0c;我们将对Java可重入锁的源码进行分析&#xff0c;以便更好地理解它的实现原理和使用方法。 Java可重入锁的…

解读 | 快速精确的体素GICP三维点云配准算法

原创 | 文 BFT机器人 01 摘要 本文提出了体素化广义迭代最近点&#xff08;VGICP&#xff09;算法&#xff0c;用于快速准确的三维点云配准。所提出的方法通过体素化扩展了广义迭代最近点&#xff08;GICP&#xff09;方法&#xff0c;以避免昂贵的最近邻搜索&#xff0c;同时…

Microsoft Edge浏览器中使用免费的ChatGPT

一、双击打开浏览器 找到&#xff1a;扩展&#xff0c;打开 二、打开Microsoft Edge加载项 三、Move tab新标签 获取免费ChatGPT 四、启用Move tab。启用ChatGPT。 扩展 管理扩展 启用 五、新建标签页&#xff0c;使用GPT 六、使用举例 提问 GPT回复

酷开科技 | 酷开系统,为居家生活打开更精彩的窗口

电视在我们的日常生活中扮演着重要的角色。虽然&#xff0c;作为客厅C位的扛把子——电视的娱乐作用深入人心&#xff0c;但是&#xff0c;它的涵义和影响力却因我们每个人的具体生活环境而存在着种种差异&#xff0c;而我们的生活环境又受到我们所处的社会及文化环境的影响。 …

Gartner发布2024 年十大战略技术趋势

10月17日&#xff0c;Gartner 发布2024年企业机构需要探索的****十大战略技术趋势。Gartner研究副总裁Bart Willemsen表示&#xff1a;“由于技术变革以及社会经济方面的不确定性&#xff0c;我们必须大胆采取行动并从战略上提高弹性&#xff0c;而不是采取临时措施。IT领导者的…

TailwindCSS使用并开启JIT(vue2)

前提vue2工程 安装 不要安装官网最新版&#xff0c;因为vue2还不支持 npm install -D tailwindcssnpm:tailwindcss/postcss7-compat postcss^7 autoprefixer^9init 配置 npx tailwindcss init -p这样根目录多了两个文件 tailwind.config.js和postcss.config.js main.js 引…

页面查询多项数据组合的线程池设计 | 京东云技术团队

背景 我们应对并发场景时一般会采用下面方式去预估线程池的线程数量&#xff0c;比如QPS需求是1000&#xff0c;平均每个任务需要执行的时间是t秒&#xff0c;那么我们需要的线程数是t * 1000。 但是在一些情况下&#xff0c;这个t是不好估算的&#xff0c;即便是估算出来了&…

mysql 5.7.31 创建账号并赋予权限

前言 mysql 5.7.31 mysql创建账号并赋予权限 为新的数据库flowdb&#xff0c;创建账户flowdba。将flow库的所有权限赋予flowdba账户。 操作步骤 创建flowdba账户 mysql> use mysql; Database changed mysql> create user flowdba% identified by 123456; Query OK…

VS Code C# 开发工具包正式发布

前言 微软于本月正式发布Visual Studio Code C#开发工具包&#xff0c;此前该开发套件已经以预览版的形式在6月份问世。经过4个月的测试和调整&#xff0c;微软修复了350多个问题&#xff0c;其中大部分是用户反馈导致的问题。此外&#xff0c;微软还对产品进行了300多项有针对…

PCH或stdafx预编译头导致的找不到声明的问题

PCH或stdafx预编译头导致的找不到声明的问题 明明类和函数都已经声明了&#xff0c;声明定义都存在&#xff0c;检查过好几遍&#xff0c;但是编译器还是报错 错误 C2065 “init”: 未声明的标识符刚开始想从文件编码的角度入手&#xff0c;查看是不是编码出现了问题&#xf…

1024 CSDN 程序员节-知存科技-基于存内计算芯片开发板验证语音识别

前言 在今年的 CSDN 程序员节上&#xff0c;我参与了这次知存科技举办的一个 AI Workshop 小活动——“基于存内计算芯片开发板验证语音识别”&#xff0c;并且有幸成为完成任务的学习者之一XD。上一次参与类似的活动是算能公司举办的“千校万里行”AIGC 大模型编译部署活动&a…

Spring 事务一些探讨

关于spring事务的一些思考&#xff1a; 1、spring 事务什么时候会生效什么时候会失效 2、spring 事务与JDBC事务的一些关联 3、spring 事务与数据库死锁之间的关联 下面是一些开发中的经验&#xff0c;写的比较杂&#xff0c;想到什么写什么&#xff0c;见谅 1、spring 事务…

企业微信调用JSSDK wx.agentConfig 签名 安卓正常,IOS失败

1.res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js 引入两个js 2.授权url,问题就出现在这 login_url 的最后 #wechat_redirect window.location.href https://open.weixin.qq.com/connect/oauth2/authorize?appid${…