线性表的练习--学生成绩统计

问题描述:建立一个简单的学生成绩表,要求能够完成学生成绩的录入,总成绩的计算,学生成绩的查询,学生成绩表的排序

算法分析:

  创建一个线性表来储存学生成绩,每个学生成绩信息作为一个数据元素

  确立线性表的长度,录入学生信息

  通过学号对学生信息进行查询,遍历学号,如果没有找到提示输入信息出错

  排时,先确立对那个科目进行排序,基本方法:冒泡排序法,通过交换相邻元素的位置将较低成绩的数据元素前移

具体代码如下:

STEP1:完成数据元素和线性表的定义

注意:对学号用的是字符串的数组的定义,方便之后的字符串的比较(查找算法时)

//定义结构体类型
typedef struct {char no[10];        //学号char name[10];int score[5];int totol;      //总成绩
}student;typedef struct{student stu[MAXSIZE];int len;    //线性表的实际长度
}SqList;

STEP2:完成数据的输入

用到了结构体数组中,及数据元素中的数组(score[])输入使用两重for循环完成

void creat(SqList &L,int &n){printf("请输入学生的人数:\n");scanf("%d",&n);L.len=n;printf("输入学生的学号,姓名,数学,英语,政治,专业课1,专业课2成绩\n");for(int i=0;i<n;i++){scanf("%s",&L.stu[i].no);scanf("%s",&L.stu[i].name);L.stu[i].totol=0;for(int j =0;j<5;j++){scanf("%d",&L.stu[i].score[j]);L.stu[i].totol +=L.stu[i].score[j];}}
}

STEP3:完成查询算法

注意:用到字符串比较函数strcmp()还有return;的位置,就是找到之后直接结束,如果不加这一句话,在找到元素打印完毕之后,会多出来一句“输入学号有误”

void search_Sq(SqList &L){char tno[10];int i;printf("请输入学生学号\n");scanf("%s",&tno);for( i = 0; i < L.len; i++){if(strcmp(tno,L.stu[i].no)==0){printf("查询结果如下:\n");printf("%s,%s\n",L.stu[i].name,L.stu[i].no);for(int j=0;j<5;j++){printf("%d ",L.stu[i].score[j]);}printf("%d\n",L.stu[i].totol);return ;}}if(i = L.len)printf("输入学号有误!\n");
}

STEP4:完成排序算法

void sort_Sq(SqList &L,int k){int i,j;student p;if(k>=0 && k <6){printf("按照score[%d]进行排序",k);for(i=0; j<L.len-1;j++){for(j=i;j<L.len-1;j++)if(L.stu[i].score[k]>=L.stu[j].score[k]){p = L.stu[i];L.stu[i]=L.stu[j];L.stu[j]= p;}}}else{printf("按照TOTOL进行升序排列\n");for(i=0; j<L.len-1;j++){for(j=i;j<L.len-1;j++)if(L.stu[i].totol>=L.stu[j].totol){p = L.stu[i];L.stu[i]=L.stu[j];L.stu[j]= p;}}}printf("排序后的成绩表如下:\n");for(int i=0;i<L.len; i++){printf("%s,%s\n",L.stu[i].name,L.stu[i].no);for(int j=0; j<5; j++)printf("%d ",L.stu[i].score[j]);printf("%d\n",L.stu[i].totol);}
}

冒泡排序的变量控制i,j还没有完全明白,存疑!!

主函数

int main(){SqList l;int n,k;creat(l,n);search_Sq( l);printf("将学生成绩按照第几门排序\n");scanf("%d",&k);sort_Sq(l,k);
}

测试成功

posted on 2017-10-22 20:57 中二病重度 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zhangxiran/p/7711625.html

线性表的练习--学生成绩统计相关推荐

  1. 未来星计算机一级分数截图,学生成绩统计与分析系统2.0(全新升级)

    学生成绩统计与分析系统2.0 本系统主要利用Excel VBA编程设计而成,用于中小学学校一个年级的成绩统计与分析.软件集学生成绩的录入.统计计算.图表绘制.考场编排.数据导出.数据查询.数据打印.生 ...

  2. [转载] JAVA数组实现学生成绩统计

    参考链接: Java程序的输出 20(继承) 一.项目名称 数组实现学生成绩统计 二.项目描述 1.项目简介: 由用户输入学生人数与名字,并定义当前学期课程数与课程名,并分别录入每位学生每门课程成绩, ...

  3. c语言学生成绩统计问题分析,学生成绩统计c语言教程分析.doc

    课 程 设 计 课程名称____C语言课程设计___ 题目名称____学生成绩统计_____ 学生学院______物理学院_______ 专业班级____电子科学与技术___ 学 号_____3110 ...

  4. C语言经典实例:1-10例:三角求和、显示所占字节数、自增自减运算while语句输出最小值、计算快递费用、学生成绩统计

    文章目录 C语言经典实例:1-10例:三角求和.显示所占字节数.自增自减运算while语句输出最小值.计算快递费用.学生成绩统计等 1.程序的编写工具 2.项目的创建 3.C语言经典实例1-10编写的 ...

  5. C语言-简单的学生成绩统计输入输出

    C语言-简单的学生成绩统计输入输出 描述: 统计五个学生的三门成绩: 在屏幕中输出五个学生的三门成绩,学号,姓名,并统计平均分: 代码: #include<stdio.h> #define ...

  6. 学生成绩表c语言,学生成绩管理系统C语言(附完整源代码) .doc

    学生成绩管理系统C语言(附完整源代码) 课程设计报告 学生成绩管理系统 院系: 专业: 班级: 完成日期: 2009年1月03日 设计题目:学生成绩管理系统 目录 1.题目描述2.算法设计/设计思想3 ...

  7. sql server 交叉表查询实例-成绩统计

    分类 数据库 时间 12/10/2010 7:06:51 AM ------------------------------------------------------------ 首先我们建立如 ...

  8. C语言按各科分数段统计人数,(更新啦)学校学生成绩统计通用模板(科目、分数、统计分数段等均可自定,班级数、学生人数不受限制)...

    更新说明: 1.增加了导入.导出数据功能. 2.该功能可以实现版本更新时不用手动复制数据,可实现一键导入导出. 导语微信号☞gdpc-service 这是一款适用于学校平时统一考试成绩统计表.这是长期 ...

  9. C语言 学生成绩统计

    根据已有的学生成绩表文件,对学生成绩进行统计显示,包括: 1.按平均分进行排名 2.统计每门课的平均分 3.打印所有学生成绩条 4.打印不及格学生信息 5.打印优等生名单(优等生条件:平均分大于90: ...

最新文章

  1. matlab ezplot绘制隐函数
  2. ASP.NET 配置文件加密
  3. mysql运用与实践_MySQL开发与实践 PDF 下载
  4. 阿里对大年龄清退的定义
  5. hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI
  6. Metasploit 之生成木马(msfvenom)
  7. yum mysql my.ini_Centos7 yum安装mysql
  8. import关键字的使用
  9. 苹果笔记本python爬取网页后怎么存下来_python 爬取csdn网页并保存博客到本地
  10. springboot+旅游管理系统 毕业设计-附源码261117
  11. CAN FD:测量和重编程
  12. Hibernate2 参考文档
  13. 倪光南回应方舟CPU失败论,企业失败不等于技术失败
  14. 如何修改文件最后一次修改时间?
  15. 如何将多个pdf合成一个pdf?
  16. 微信小程序登录注册功能(超详细)
  17. MATLAB - contour函数
  18. DOSBox+MASM搭建汇编环境
  19. 12、MInio文件系统的使用小记一
  20. 《个人理财》书中的精髓:如何通过金融学理论知识的学习,建立更加完善的金融体系,让自己更加富有。

热门文章

  1. 出价策略正处于学习期...
  2. C#中(.net1.1)公元历转农历的算法
  3. 【59MB】金融求职宝典 玩转金融业的正确姿势 增订版.PDF
  4. Scrum的七宗罪和其他的敏捷反模式
  5. [技术发展-22]:网络与通信技术的应用与发展快速概览-2- 通信技术
  6. html5+css3满天星星音乐背景动画特效(超炫酷)
  7. ImmutableList hessian2序列化失败问题分析
  8. 财路网每日原创推送:区块链技术如何促进证券市场发展
  9. 企业ERP管理软件有哪些?哪个好
  10. 【学习笔记】深入理解及个人感悟JavaWeb