简单的教务系统

#include <stdio.h>
#include <string.h>
#define N 20
int i,j,n,m,lll=0,renshu=6;
double zcj[N]={0};struct stu{ char num[10]; //学号char name[10]; //姓名char sex; //姓别double score[3]; //3 门课的成绩double sum; //3 门课的总分double aver; //3 门课的平均分
}temp,STU[N]={{"115101", "LiMin", 'M', {76,78,82}},{"115102", "WangRui", 'F', {80,85,89}},{"115103", "ZhaoQin", 'F', {65,75,80}},{"115104", "ZhouYu", 'M', {95,92,88}},{"115105", "GuoHui", 'M', {70,73,74}},{"115106", "ZengPin", 'F', {87,90,94}}};;
char num1[7]={'1','2','3','a','b','c','\0'};
char zum[7];
void xhcz(){//按学号查找学生printf("**************************************************************\n");printf("\t\t     按学号查找学生记录\n");printf("**************************************************************\n");
for(i=0;i<renshu;i++){for(j=0;j<3;j++){zcj[i]+=STU[i].score[j];}}
char xx[N];
printf("请输入待查找的学生学号:");
scanf("%s",xx);
int sss=0;printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); for(i=0;i<renshu;i++){if(strcmp(xx,STU[i].num)==0){printf("%s\t",STU[i].num);printf("%s\t",STU[i].name);printf("%c\t",STU[i].sex);for(j=0;j<3;j++){printf("%lf\t",STU[i].score[j]);}printf("%lf\t%lf\n\n",zcj[i],zcj[i]/3);sss=1;break;}}if(sss==0)printf("查找失败,没有指定学号的学生\n\n");return; }
void xmcz(){//按姓名查找学生for(i=0;i<renshu;i++){for(j=0;j<3;j++){zcj[i]+=STU[i].score[j];}}printf("**************************************************************\n");printf("\t\t     按姓名查找学生记录\n");printf("**************************************************************\n");char xx[N];printf("请输入待查找的学生姓名:");scanf("%s",xx); int sss=0;printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); for(i=0;i<renshu;i++){if(strcmp(xx,STU[i].name)==0){printf("%s\t",STU[i].num);printf("%s\t",STU[i].name);printf("%c\t",STU[i].sex);for(j=0;j<3;j++){printf("%lf\t",STU[i].score[j]);}printf("%lf\t%lf\n\n",zcj[i],zcj[i]/3);sss=1;break;}}if(sss==0)printf("查找失败,没有指定姓名的学生\n\n");return ;
}
void pjfj(){//按平均分降序排序printf("**************************************************************\n");printf("\t\t按平均分降序排序的学生记录\n");printf("**************************************************************\n");printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
for(i=0;i<renshu;i++){for(j=0;j<3;j++){zcj[i]+=STU[i].score[j];}}for(i=0;i<renshu-1;i++){for(j=i+1;j<renshu;j++){if(zcj[i]<zcj[j]){double l=zcj[i];zcj[i]=zcj[j];zcj[j]=l;temp=STU[j];STU[j]=STU[i];STU[i]=temp;}}}for(i=0;i<renshu;i++){printf("%s\t",STU[i].num);printf("%s\t",STU[i].name);printf("%c\t",STU[i].sex);for(j=0;j<3;j++){printf("%lf\t",STU[i].score[j]);}printf("%lf\t%lf\n",zcj[i],zcj[i]/3);}return ;
}
void lzzg(){//出总分最高的学生记录printf("**************************************************************\n");printf("\t\t  总分最高的学生记录\n");printf("**************************************************************\n");printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); for(i=0;i<renshu;i++){for(j=0;j<3;j++){zcj[i]+=STU[i].score[j];}}int x=0;for(i=0;i<renshu;i++){if(zcj[i]>zcj[x])x=i;//x为最高 }printf("%s\t",STU[x].num);printf("%s\t",STU[x].name);printf("%c\t",STU[x].sex);for(j=0;j<3;j++){printf("%lf\t",STU[x].score[j]);}printf("%lf\t%lf\n",zcj[x],zcj[x]/3);return; }
void xsjl(){//列出所以学生记录printf("**************************************************************\n");printf("\t\t\t所以学生记录\n");printf("**************************************************************\n");printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); for(i=0;i<renshu;i++){double ssum=0;printf("%s\t",STU[i].num);printf("%s\t",STU[i].name);printf("%c\t",STU[i].sex);for(j=0;j<3;j++){printf("%lf\t",STU[i].score[j]);ssum+=STU[i].score[j];}printf("%lf\t%lf\n",ssum,ssum/3);}return ;
}
void gaimima(){//改密码 printf("请输入原来的密码:");for(i=0;i<6;i++){scanf("%c",&zum[i]);}putchar('\n');printf("请输入新密码:");for(i=0;i<6;i++){scanf("%c",&num1[i]);}printf("修改密码成功\n\n");return;
}
void dayin(){//打印标识选择 printf("密码正确,进入系统\n\n\n"); printf("******************************\n");printf("\t学生成绩管理系统\n");printf("******************************\n");printf("1.修改密码\n");printf("2.列出所以学生记录\n");printf("3.列出总分最高的学生记录\n");printf("4.按平均分降序排序\n");printf("5.按姓名查找学生\n");printf("6.按学号查找学生\n");printf("7.退出学生成绩管理系统\n");printf("******************************\n\n");
}
void czxx(){//操作选项 while(1){printf("请输入选项值:");scanf("%d",&j);switch(j){case 1:gaimima();break;//修改密码case 2:xsjl();break;//列出所以学生记录case 3:lzzg();break;//出总分最高的学生记录case 4:pjfj();break;//按平均分降序排序case 5:xmcz();break;//按姓名查找学生case 6:xhcz();break;//按学号查找学生
//		case 7:exit(0);break;//退出学生成绩管理系统}}
} 
int main(){printf("进入学生成绩管理系统,请输入6位密码:\n");for(i=2;i>=0;i--){gets(zum);if(strcmp(num1,zum)==0){dayin();//打印标识选择czxx();//操作选项}else{printf("密码错误,还剩%d次机会\n\n",i);}}return 0;
}

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

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

相关文章

【docker】docker基本命令

启动类命令 启动docker&#xff1a; systemctl start docker停止Docker&#xff1a; systemctl stop docker重启Docker&#xff1a; systemctl restart docker查看状态&#xff1a; systemctl status docker设置开机自启&#xff1a; systemctl enable docker帮助类命令 …

【XR806开发板试用】+2.鸿蒙内核

非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动&#xff01;非常感谢极术社区&#xff01;非常感谢极术小姐姐&#xff01;非常感谢全志在线开发者社区&#xff01;非常感谢通过试用申请&#xff01;非常感谢安谋科技&#xff01; 接上一篇&#xff…

pytorch文本分类(二):引入pytorch处理文本数据

pytorch文本数据处理 目录 pytorch文本数据处理1. Pytorch背景2. 数据分割3. 数据加载Dataset代码分析字典的用途代码修改的目的 Dataloader 4. 练习 原学习任务链接 相关数据链接&#xff1a;https://pan.baidu.com/s/1iwE3LdRv3uAkGGI2fF9BjA?pwdro0v 提取码&#xff1a;ro…

Django和ECharts异步请求示例

前提条件 创建django项目&#xff0c;安装配置过程这里就不讲述了。 后端url http://127.0.0.1:8000/echarts/demo/ view视图函数 from django.http import HttpResponse import jsondef EchartsDemo(request):data {}categories ["衬衫","羊毛衫",&…

Java架构师系统架构高性能维度分析

目录 1 导语2 性能维度概述和定义3 高性能流程4 高性能实现方案-缓存为王5 高性能实现方案-异步为帅、分布式为将6 高性能高并发架构案例分析7 总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 Java架构师在构建高性能系统架构时,需要关注以下几个关键维度:…

Monkey工具之fastbot-iOS实践

背景 目前移动端App上线后 crash 率比较高&#xff0c; 尤其在iOS端。我们需要一款Monkey工具测试App的稳定性&#xff0c;更早的发现crash问题并修复。 去年移动开发者大会上有参加 fastbot 的分享&#xff0c;所以很自然的就想到Fastbot工具。 Fastbot-iOS安装配置 准备工…

低代码与自动化:加速软件开发的新趋势

低代码与自动化技术正在逐渐改变软件开发的面貌。随着科技的不断发展&#xff0c;传统的编程方式已经不再是唯一的选择。低代码和自动化技术正在为开发者提供更高效、更灵活的开发环境&#xff0c;使得软件开发变得更加简单、快速和高效。 低代码和自动化技术正在逐渐改变软件开…

Linux-----4、关机|重启

# 关机、重启 关机和重启操作只有管理员可以执行&#xff01; # 1、关机命令 shutdown -h now 立刻马上关机 shutdown -h 60 60分钟&#xff08;1个小时&#xff09;后关闭 说明&#xff1a;如果取消在另一终端使用shutdown -c 或者直接ctrlc # 2、重启命令 reboot 重启…

如何控制Elasticsearch搜索的相关性?

控制相关性 纯粹处理结构化数据(例如日期、数字和 字符串枚举)很简单:他们只需要检查一个文档(或 行,在关系数据库中)与查询匹配。 虽然布尔值是/否匹配是全文搜索的重要组成部分,但它们 光靠自己是不够的。相反,我们还需要知道每个的相关性 document 是查询。全文搜索…

杨辉三角形-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第17讲。 杨辉三角形&#…

模型放置到3D场景中后模型位置与鼠标选中的位置不一致怎么办?

在线工具推荐&#xff1a;3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、问题 从事3D建模相关工作的朋友们在工作中经常会遇到以下几种问题&#…

RS485转WiFi工业路由器在冷链物流温度监控中的应用

随着物联网技术的不断发展和应用&#xff0c;冷链物流行业也迎来了新的机遇和挑战。在冷链物流中&#xff0c;对温度监控的要求尤为重要&#xff0c;因为温度是保证货物质量和安全的关键因素之一。而RS485转WiFi工业路由器则成为了实现高效、可靠的温度监控系统的重要组成部分。…

做博客网站需要什么配置的服务器?

​  利用搭建博客网站&#xff0c;来分享生活、知识和经验&#xff0c;是很多个人站长乐意做的事情。但&#xff0c;对于互联网行业的新人来说&#xff0c;或许不知道搭建个人博客网站的配置如何选择&#xff0c;本文针对这一点&#xff0c;从地域、服务器类型、配置参数等方…

SpringBoot整合Lucene实现全文检索【详细步骤】【附源码】

笑小枫的专属目录 1. 项目背景2. 什么是Lucene3. 引入依赖&#xff0c;配置索引3.1 引入Lucene依赖和分词器依赖3.2 表结构和数据准备3.3 创建索引3.4 修改索引3.5删除索引 4. 数据检索4.1 基础搜索4.2 一个关键词&#xff0c;在多个字段里面搜索4.3 搜索结果高亮显示4.4 分页检…

如何在PHP中处理跨域请求?

在 PHP 中处理跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;&#xff0c;通常需要在服务器端设置相应的 HTTP 头&#xff0c;以允许来自其他域的请求。以下是一些处理跨域请求的方法&#xff1a; 设置 HTTP 头&#xff1a; 在服务器端&#…

【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb融合使用教程

#【开源Mongdb驱动】SpringBootMybatisMongdb无缝融合使用教程 介绍 本文介绍一款基于JAVA开源的mongodb jdbc驱动为基础的无缝与springbootmybatis融合使用案例 mongodb JDBC 使用案例 https://blog.csdn.net/gongbing798930123/article/details/135002530 《基于开源的JA…

流程图、泳道图的介绍和示例分享,以及自定义元件库的介绍

目录 一. 流程图介绍 二. Processon使用 新建一个流程图 图形的使用 三. 流程图示例 登录界面 门诊业务流程图 住院业务流程图 药房业务流程图 会议OA流程图 四. 泳道图介绍 五. 自定义元件库 5.1 新建一个元件库 5.2 创建元件 5.3 使用自定义元件库 一. 流程图介…

三星挑战台积电霸主地位,2nm订单争夺战硝烟四起

根据Trendforce报道&#xff0c;台积电依然在代工行业拥有绝对的领导地位。台积电和三星都计划在2025年开始生产2nm工艺&#xff0c;引发了相关订单的早期争夺战。 扩展阅读&#xff1a;华山论剑&#xff1a;2nm芯片工艺谁更强&#xff1f; 据英国《金融时报》报道&#xff0c…

【Eureka】自定义元数据消失原因?

【Eureka】自定义元数据运行很长一段时间后&#xff0c;自定义元数据&#xff08;scheduler.server.enabled&#xff09;偶尔会消失&#xff0c;但服务元数据信息还在 eureka是单节点的&#xff0c;这个应用服务也是单节点的 代码实现方式如下 我看过eureka服务的日志信息&…

Elasticsearch 8.10.0同义词API用法详解,支持同义词热更新

Elasticsearch 的同义词功能非常强大,如果使用得当,可以显着提高搜索引擎的效果。使用同义词功能时的一个常见问题是更新同义词集。 同义词在搜索引擎领域用途 同义词在搜索引擎领域的用途可概括如下: 增强搜索的准确性——当用户输入一个关键词时,可能与他们实际意图相关…