MATLAB实验(考试成绩排名)

合集下载

循环比赛名次matlab程序

循环比赛名次matlab程序

循环比赛名次matlab程序
以下是一个简单的MATLAB 程序,用于计算n 个人参加循环比赛的名次。

matlab
% 输入人数和比赛成绩
n = input('请输入参赛人数:');
score = zeros(n,1);
for i = 1:n
score(i) = input(['请输入第' num2str(i) '个人的成绩:']);
end
% 计算名次
rank = zeros(n,1);
for i = 1:n
rank(i) = 1;
for j = 1:n
if score(j) > score(i)
rank(i) = rank(i) + 1;
end
end
end
% 输出结果
for i = 1:n
disp(['第' num2str(i) '名:第' num2str(rank(i)) '个人']);
end
在该程序中,首先输入参赛人数和每个人的比赛成绩,然后根据成绩计算出每个人的名次,最后输出名次结果。

程序中使用了两层循环,计算某个人的名次需要在所有成绩里查找比他强的人数。

这种方法在数据量较小的情况下可行,但对于很大的数据集可能效率较低。

此时可以使用MATLAB 自带的排序函数来简化计算。

matlab数据排序的方法

matlab数据排序的方法

matlab数据排序的方法【原创实用版2篇】篇1 目录1.MATLAB 数据排序的概述2.MATLAB 数据排序的基本方法2.1 函数 sort2.2 函数 sortrows2.3 函数 sortcol2.4 函数 smoothsort3.MATLAB 数据排序的高级方法3.1 对象属性排序3.2 结构体排序3.3 细胞数组排序3.4 树形结构排序4.MATLAB 数据排序的注意事项篇1正文一、MATLAB 数据排序的概述在 MATLAB 中,数据排序是一种非常常见的操作。

对于数组或矩阵,我们通常需要按照某一列或某一行进行排序。

MATLAB 提供了丰富的函数和方法来实现数据的排序,包括基本的排序函数和一些高级排序方法。

二、MATLAB 数据排序的基本方法1.函数 sortsort 函数是 MATLAB 中最常用的排序函数,它可以对数组或矩阵的行或列进行升序或降序排列。

其基本语法如下:```matlab[A, index] = sort(A, descend)```其中,A 表示待排序的数组或矩阵,descend 表示是否进行降序排列,默认为升序。

index 表示排序后的索引。

2.函数 sortrowssortrows 函数可以对矩阵的行进行排序。

其基本语法如下:```matlab[A, row_index] = sortrows(A)```其中,A 表示待排序的矩阵,row_index 表示排序后的行索引。

3.函数 sortcolsortcol 函数可以对矩阵的列进行排序。

其基本语法如下:```matlab[A, col_index] = sortcol(A)```其中,A 表示待排序的矩阵,col_index 表示排序后的列索引。

4.函数 smoothsortsmoothsort 函数可以对数组或矩阵的行或列进行排序,同时保留排序前的数值精度。

其基本语法如下:```matlab[A, index] = smoothsort(A, descend)三、MATLAB 数据排序的高级方法1.对象属性排序对于对象属性的排序,我们可以使用 sortproperties 函数。

matlab课程成绩管理系统设计

matlab课程成绩管理系统设计

MATLAB 课程成绩管理系统设计一、系统概述MATLAB 课程成绩管理系统是一个用于管理学生成绩的软件系统。

该系统旨在提供一个方便、高效的方式来存储、查询、修改和分析学生成绩。

通过该系统,教师可以轻松地录入学生信息、录入成绩、查看成绩报告、生成成绩单等。

学生可以查询自己的成绩和排名,了解自己的学习情况。

二、系统功能1. 学生信息管理:录入、修改和删除学生信息,包括姓名、学号、班级等。

2. 成绩录入:录入学生的考试成绩、作业成绩、实验成绩等。

3. 成绩查询:根据学生姓名、学号或班级等信息查询学生的成绩。

4. 成绩分析:统计学生的平均分、最高分、最低分等,生成成绩报告和排名。

5. 成绩导出:将学生成绩导出为 Excel 文件,方便其他应用程序使用。

6. 系统设置:设置用户权限、修改密码等。

三、系统设计1. 数据结构设计:使用数据库来存储学生信息和成绩数据,设计相应的表结构,包括学生表、成绩表等。

2. 用户界面设计:使用 MATLAB GUI 设计用户界面,包括菜单栏、工具栏、文本框、按钮等控件。

3. 事件处理:为每个控件添加事件处理函数,实现系统的各项功能。

4. 数据交互:通过 MATLAB 的数据交互功能,实现与数据库的连接和数据操作。

5. 报表生成:使用 MATLAB 的报表生成功能,生成成绩报告和排名报表。

四、系统实现1. 安装 MATLAB 和数据库管理系统(如 MySQL),并配置好相应的环境变量。

2. 创建数据库和表结构,导入学生信息和成绩数据。

3. 使用 MATLAB GUI 设计用户界面,添加控件和事件处理函数。

4. 连接数据库,实现数据交互和操作。

5. 编写代码实现各项功能,并进行测试和调试。

6. 将系统打包成可执行文件,方便用户安装和使用。

MATLAB实验6

MATLAB实验6

1、某次考试成绩,优秀、良好、中等、及格和不及格的人数分别为7、17、23、19、5,试用柱形图和饼图进行成绩统计分析data=[7,17,23,19,5];subplot(121);bar(data);subplot(122);pie(data);legend('优秀','良好','中等','及格','不及格','location','northoutside');2、下图为某公司3类产品的销售额,要求按季度绘制出柱形图,并用饼图分析产品A各季度的产品销售情况。

data=[51,87,34,47;67,78,68,90;78,85,65,50]';subplot(211);bar(data);title('产品全年销售额')xlabel('季度');ylabel('万元');legend('产品A','产品B','产品C','location','eastoutside')subplot(212);pie(data);legend('第一季度','第二季度','第三季度','第四季度','location','eastoutside')3、绘制实心圆(-pi ,pi)并填充颜色t=-pi:0.01:pi;x=sin(t);y=cos(t);fill(x,y,'b');axis off;4、绘制y=sin(2t)cos(2t)的极坐标图(0,2pi)t=0:0.01:2*pi;y=sin(2*t).*cos(2*t);polar(t,y,'k');5、绘制y=e-x对数坐标图和直角坐标图进行比较x=-6:0.001:5;y=exp(-x);subplot(2,1,1);loglog(x,y);subplot(2,1,2);plot(x,y);Warning: Negative data ignored6、绘制三维曲面图z = sin x2 + cos y2,x∈[0,π],y∈[0,π/2]。

基于matlab学生成绩查询GUI设计

基于matlab学生成绩查询GUI设计

有下列xls成绩表要求用matlab设计GUI要求导入xls,能够查询某同学的分数设计运行效果图如下:关键程序:导入数据按钮下的callback函数:function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)[FileName PathName]=uigetfile({'*.xls'},'Choose a file');str=[PathName FileName];set(handles.edit1,'string',str);[data,text_data]=xlsread(str);handles.data=data;handles.text=text_data;guidata(hObject, handles);查询按钮下的callback函数function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)str=get(handles.edit3,'string');str_temp=str2num(str);index=find(handles.data(:)==str_temp);[i,j]=ind2sub(size(handles.data),index);str1=handles.data(i,:);str11=[];for ix=1:size(handles.data,2)str11=strcat(str11,num2str(str1(ix)));endset(handles.edit2,'string',str);set(handles.edit4,'string',num2str(str1(2)));set(handles.edit5,'string',num2str(str1(3)));set(handles.edit6,'string',num2str(str1(4)));set(handles.edit7,'string',num2str(str1(5)));set(handles.edit8,'string',num2str(str1(6)));在初始化函数中添加:function student_core_view_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to student_core_view (see VARARGIN)% Choose default command line output for student_core_viewhandles.output = hObject;handles.data=[];handles.text=[];% Update handles structureguidata(hObject, handles);。

matlab数据排序的方法

matlab数据排序的方法

matlab数据排序的方法【最新版2篇】篇1 目录1.MATLAB 数据排序概述2.MATLAB 数据排序的基本方法2.1 递增排序2.2 递减排序2.3 随机排序3.MATLAB 数据排序的高级方法3.1 排序函数3.2 排序算法3.3 自定义排序规则4.MATLAB 数据排序的实际应用5.总结篇1正文一、MATLAB 数据排序概述MATLAB 是一种广泛应用于科学计算、数据分析和可视化的编程语言。

在数据处理过程中,排序是一个常见的操作。

MATLAB 提供了多种数据排序方法,可以满足不同场景下的需求。

二、MATLAB 数据排序的基本方法1.递增排序递增排序是按照数据值从小到大的顺序对数据进行排序。

在 MATLAB 中,可以使用“sort”函数实现递增排序。

```matlabA = [5, 3, 8, 1, 6];sorted_A = sort(A);```输出:```sorted_A =13568```2.递减排序递减排序是按照数据值从大到小的顺序对数据进行排序。

在 MATLAB 中,可以使用“sort”函数,并设置“descend”参数实现递减排序。

示例:```matlabA = [5, 3, 8, 1, 6];sorted_A = sort(A, "descend");``````sorted_A =86531```3.随机排序随机排序是按照随机顺序对数据进行排序。

在 MATLAB 中,可以使用“sort”函数,并设置“random”参数实现随机排序。

示例:```matlabA = [5, 3, 8, 1, 6];sorted_A = sort(A, "random");```输出:```sorted_A =1368```三、MATLAB 数据排序的高级方法1.排序函数MATLAB 提供了多种排序函数,如“sort”、“sortn”、“sortasc”、“sortdesc”等,可以根据需要选择合适的函数进行排序。

matlab大作业实验报告

matlab大作业实验报告

matlab大作业学号姓名:年级:专业:1、产生一个10 10的随机矩阵A,要求A中元素均为整数,范围[1,50]。

1)求出A中所有元素之和S,平均值M。

2)找到所有小于平均值,且能被3整除的元素。

3)绘制出A的二维纵向柱状图,横坐标为[8 5 9 1 2 3 4 7 10 13],条形宽度为0.7的“stacked”样式。

代码如下:clc,clear all,close allA=round(rand(10,10)*50);disp(A)S=sum(sum(A));P=mean(mean(A));disp(S)disp(P)disp('所有小于平均数且能被三整除的元素')XPS=H((mod(H,3)==0)&(H<P));disp(XPS')subplot(1,1,1),bar(A,0.7,'stacked'),title('ygh');set(gca,'XTickLabel',{'8','5','9','1','2','3','4','7','10','13'})2、产生一个随机四位密码。

用户用“input”进行输入对比。

猜错提示“WRONG”,正确提示“RIGHT”同时退出程序,最多五次机会。

代码如下:clc,clear all,close alldisp('请输入密码')A=round(8999*rand(1,1))+1000;m=1;while m<=5N=input('请输入一个四位数:');if A==N;disp('RIGHT');breakelsedisp('WRONG');endm=m+1;enddisp('密码是:')disp(A)disp('输入结束')3、按照脚本文件的编程风格,用for和while循环嵌套输出如下的乘法口诀表。

基于matlab的gui的excel成绩管理系统设计报告

基于matlab的gui的excel成绩管理系统设计报告

自动化专业综合设计报告设计题目:基于Matlab的成绩管理系统所在实验室:指导教师:学生姓名班级学号撰写时间:成绩评定:一、设计要求:以某班某课成绩为研究对象,设计一个对话框,实现:1)。

该课的最低分、最高分以及相对应的学号2)。

该课程的平均分和均方差3)。

将该课程成绩按照从大到小排列、显示相对应学号4)。

绘制该课程学生成绩直方图(提示:学生成绩分几段,统计每段分数的人数,选择分数段中间数据,以此数据与人数为横、纵坐标,绘制直方图)实现方法:1、利用matlab语言指令编写程序和GUI设计对话框。

2、直接利用matlab中的函数来求最低分、最高分、平均分、标准方差。

二、设计内容(一)GUI图形设计1、建立GUI对象添加需要的控件,加入需要的按钮、菜单控件等。

这次设计一共设计两个按钮和一个下拉菜单,下拉菜单共5个选项。

2、修改控件属性,属性查看器提供了一系列属性,可以通过修改相应属性来改变控件。

如下图为设计好的控件:(二)编写m文件当建立GUI后,在执行或存储界面时,会产生一个M文件,单击M-file Editor 图标按钮来编写该GUI下每个对象的Cllback与一些初始设置。

直接在各对象callback下输入当用户按下这个对象后所应该调用执行的操作所对应的程序代码即可。

具体程序见附录。

三、设计实验结果使用matlab的max函数求最大值,显示出成绩和学号栏。

使用matlab的min函数求最小值,显示成绩和学号。

使用matlab的mean函数求平均数,并显示平均数。

使用matlab的std函数求标准方差,并显示。

使用matlab的sort函数排序,并显示学号,成绩,排名。

将学生成绩分成5部分,60以下,60-70、70-80、80-90、90-100,求出每段人数并用bar 函数画出成绩直方图。

四、结论这次设计将matlab图形用户界面应用于学生成绩系统这个实际问题中,实现了成绩的查询与管理。

Matlab GUI可视化得人机交互式环境使成绩查询系统更能直观的向用户显示,避免了用户再进行复杂的数学运算以及程序编程。

matlab实验三

matlab实验三

1 - 7 — 3 ■ 5 _ 6一I8 - g _ .0for end1=1:5end 29整除的整数。

1设计脚本文件,利用 for 循环求1 ! +2! +3! + 4 ! +5!的值。

运行结果:2•设计一个脚本文件,求[100, 200]之间所有能被ru=0 : for x=100:200if Mod(x, 29)==0 n=n+l ; disp(x) end运行结果:Sgrade 为“满145 174A »3.设计一个脚本文件,实现:从键盘输入成绩百分制成绩 x,将其转换为等级 分”、“优秀”、“良好”、“及格”、“不及格”从屏幕输出。

转换规则如下: (1) x=100,满分; (2) x>=90,优秀; (3) x>=80,良好; (4) x>=60,及格; (5) x>=60,不及格。

score=mput ('语输入港面成缰:): svitch fix (score/10) case 10grade= 58 分" case 9gratis 优秀’ case 3£rade=良好’ case 7grade=中等’ case 6grades 及格’ otherwis<grade=不及樹 -end运行结果:请输入卷面成绩::score=100grade =请输入卷面咸绩:score=60grade =及格请输入卷面咸幾:score=85grade -良好请输入卷面成绩:score=58grade -不廉格x4.设计一个函数g(x) n! (x =1,2,3,…),试编写实现该函数的函数文件。

n =1fun cti on r=AddJc (n)n=input( 'e ? e ?£ on=);k=1 ;r=0;while k<=nr=r+Jc(k)k=k+1;endfun cti on s=Jc(m)s=1;k=1;while k<=ms=s*k;k=k+1;end实验结果:输入:n=2/v 5.产生一个8阶魔阵,并存取到文本文件 mag_file.txt 中。

基于matlab的学生成绩分析系统设计

基于matlab的学生成绩分析系统设计
该课题不仅解决了一项实际问题,同时也提供了解决一般问题的基本思路。首先对于信息的收集及导入,然后根据信息分析所需,其次分析研究内容的可靠性,最后得出结论。应用学生成绩分析系统,可以大大提高工作效率,减少成绩评判的误差。
关键词:MATLAB;学生成绩分析系统;信息
Design of students performance analysis system based on MATLAB
评价学生学习状况的目的是激励优秀学生努力学习取得更好的成缋,同时鼓励基础相对薄弱的学生树立信心,不断进步。然而,现行的评价方式单纯的根据"绝对分数"评价学生的学习状况,忽略了基础条件的差异;只对基础条件较好的学生起到促进作用,对基础条件相对薄弱的学生很难起到鼓励作用。
同时我们也意识到,评价结果只代表评价对象目前的个人情况,在学生学习状况评价时,通过考试或其他评价手段所获得的评价结果,只表明学生目前在某一方面学会的行为或之前所处的位置,代表他们学会了做什么、怎么思考同题和表达思想,评定成绩表明的是学生目前的表现,它不能代表过去也不能预示将来。因为学生的发展是一个动态起伏的过程,而不是一个线性过程。而且学生可能在某一方面成绩不理想,但在其他方面却有出色的表现。评价结果并不一定就是评价对象真实水平的表现,只是对其表现的一种估计。因此,我们不要过分迷信评价的结果,在解释这一结果时不要过分夸大学生的某类差异或变化,更不要轻易给学生贴上“学习缺乏动力”、“没有发展前途”、“太笨了”等标签。
成绩分析系统的基本原理及其系统的工作流程如下图3-1所示:
图3-1成绩分析系统原理图
利用成绩分析系统原理及其运行步骤可方便程序的编写和嵌入,对于其中细节的讨论和研究起着重要的作用,同时,使用上述方法分析成绩,得出结论的方式也是有效且合理的。原理的确立让后面的操作和编程更有信心。

用Matlab计算学分绩

用Matlab计算学分绩

很多同学不愿手动按计算器计算学分绩,如果他们有excel版的成绩单,并且安装了Matlab,那么利用下面的代码就可以计算出100满分制和4.0满分制算法下的学分绩了。

其中100分满分制下的成绩x对应的4.0满分制下的成绩为
4−3∗(100−x)2,x≥60
0, x<60
新建一个M文件,复制下面的代码:
clear all;
close all;
clc;
NUM=xlsread('record.xlsx');
[n,~]=size(NUM);
cre=0;
s1=0;
s2=0;
for i=1:n
if(~isnan(NUM(i,2)))
cre=cre+NUM(i,1);
s1=s1+NUM(i,2).*NUM(i,1);
if(NUM(i,2)>=60)
s2=s2+(4-3*(100-NUM(i,2)).^2/1600).*NUM(i,1);
end
end
end
g1=s1/cre;
g2=s2/cre;
disp(['the gpa in 100 is ',num2str(g1)]);
disp(['the gpa in 4.0 is ',num2str(g2)]);
clear all;
在M文件所在文件夹中,新建一个record.xlsx文件,第一列存储课程的学分,第二列存储课程的成绩(成绩一列中允许出现“通过”、“优秀”等文字):
运行M文件,即可查看结果:
顺祝每位同学都能在大学取得满意的成绩,以内心的阳光驱散生活中的雾霾。

matlab如何用结构体变量处理成绩表

matlab如何用结构体变量处理成绩表

标题:深度解析:如何利用MATLAB的结构体变量处理成绩表摘要:MATLAB作为一款强大的科学计算软件,在处理数据和表格时极为便捷。

本文将深入探讨如何利用MATLAB的结构体变量来处理成绩表,以及如何通过简单的操作实现对成绩数据的全面评估和分析。

在现代教育系统中,成绩表是学生学习成绩的重要记录和查看工具。

然而,成绩表通常包含多个不同的字段,如学生尊称、科目、成绩等,因此需要一种高效的方式来存储和处理这些数据。

而MATLAB的结构体变量正是一个理想的选择,它能够以灵活的方式存储和操作各种类型的数据,包括成绩表。

下面我们将首先从简单的结构体定义开始,逐步深入探讨如何利用MATLAB处理成绩表。

一、定义结构体变量在MATLAB中,结构体变量通过使用struct函数来定义,其基本语法为:S = struct('field1', value1, 'field2', value2, ...)。

在处理成绩表时,我们可以定义一个包含学生尊称、科目和成绩的结构体变量,如下所示:```matlabS(1).name = '张三';S(1).subject = '数学';S(1).score = 85;S(2).name = '李四';S(2).subject = '英语';S(2).score = 78;```通过上述方式,我们成功定义了一个包含两个学生成绩信息的结构体变量。

接下来,我们将介绍如何通过结构体变量实现对成绩表的全面评估和分析。

二、成绩表的操作与分析1. 数据存储与读取使用结构体变量存储成绩表数据后,我们可以利用MATLAB的读写文件函数,将数据保存到文件中,或从文件中读取数据。

这样一来,就能够方便地管理成绩表数据,实现数据的长期保存和共享。

2. 数据筛选与统计利用MATLAB的逻辑运算和统计函数,我们可以轻松地对成绩表数据进行筛选和统计操作。

matlab学生成绩管理系统(精品文档)

matlab学生成绩管理系统(精品文档)

编写一个对本班学生本学期成绩管理程序。

输入学号、姓名、科目、成绩(设有5名同学、4门功课)。

能自动对成绩进行单科或综合的排序、查找答:judge=input('是输入(1)还是查找(2)还是排序(3)?');if judge==1for n=1:5txt=['请输入第' int2str(n) '个学生姓名:'];lab{n,1}=input(txt);txt=['请输入第' int2str(n) '个学生学号:'];lab{n,2}=input(txt);txt=['请输入第' int2str(n) '个学生数学成绩:'];lab{n,3}=input(txt);txt=['请输入第' int2str(n) '个学生外语成绩:'];lab{n,4}=input(txt);txt=['请输入第' int2str(n) '个学生语文成绩:'];lab{n,5}=input(txt);txt=['请输入第' int2str(n) '个学生物理成绩:'];lab{n,6}=input(txt);lab{n,7}=lab{n,3}+lab{n,4}+lab{n,5}+lab{n,6};endlab{n+1,1}='none';%留出一个空行以便以后的操作lab{n+1,2}=-1;lab{n+1,3}=-1;lab{n+1,4}=-1;lab{n+1,5}=-1;lab{n+1,6}=-1;save lab labelseif judge==2load lab.matk=input('你是要用学号(1)还是姓名(2)查找?');if k==1num=input('请输入学号');m=1;while(num~=lab{m,2}&&m<=5)m=m+1;endif m>5disp('查无此人')else%txt=['姓名:'+int2str(lab{m,1})];%disp(lab{m,1});disp(lab{m,1});txt=['学号' int2str(lab{m,2})];disp(txt);txt=['数学成绩' int2str(lab{m,2})];disp(txt);txt=['外语成绩' int2str(lab{m,2})];disp(txt);txt=['语文成绩' int2str(lab{m,2})];disp(txt);txt=['物理成绩' int2str(lab{m,2})];disp(txt);endelsename=input('请输入姓名');m=1;while(~strcmp(name,lab{m,1})&&m<=5)m=m+1;endif m>5disp('查无此人')else%txt=['姓名:'+int2str(lab{m,1})];%disp(lab{m,1});disp(lab{m,1});txt=['学号' int2str(lab{m,2})];disp(txt);txt=['数学成绩' int2str(lab{m,3})];disp(txt);txt=['外语成绩' int2str(lab{m,4})];disp(txt);txt=['语文成绩' int2str(lab{m,5})];disp(txt);txt=['物理成绩' int2str(lab{m,6})];disp(txt);endendelseload lab.mat;turn=input('按什么顺序排?从大到小(1)从小到大(2)');info=input('按什么排序?学号(1)数学成绩(2)外语成绩(3)语文成绩(4)物理成绩(5)综合成绩(6)');if turn==1switch infocase 1for flag=1:4for i=5:-1:2if lab{i,2}>=lab{i-1,2}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 2for flag=1:4for i=5:-1:2if lab{i,3}>=lab{i-1,3}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 3for flag=1:4for i=5:-1:2if lab{i,4}>=lab{i-1,4}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 4for flag=1:4for i=5:-1:2if lab{i,5}>=lab{i-1,5}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 5for flag=1:4for i=5:-1:2if lab{i,6}>=lab{i-1,6}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 6for flag=1:4for i=5:-1:2if lab{i,7}>=lab{i-1,7}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendotherwisedisp('未做任何改动');endelseswitch infocase 1for flag=1:4for i=5:-1:2if lab{i,2}<=lab{i-1,2}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 2for flag=1:4for i=5:-1:2if lab{i,3}<=lab{i-1,3}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 3for flag=1:4for i=5:-1:2if lab{i,4}<=lab{i-1,4}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 4for flag=1:4for i=5:-1:2if lab{i,5}<=lab{i-1,5}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 5for flag=1:4for i=5:-1:2if lab{i,6}<=lab{i-1,6}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendcase 6for flag=1:4for i=5:-1:2if lab{i,7}<=lab{i-1,7}for j=1:7lab{6,j}=lab{i-1,j};lab{i-1,j}=lab{i,j};lab{i,j}=lab{6,j};endendendendotherwisedisp('未做任何改动');endendsave lab lab;read=input('排序完成,是否查看?查看(1)不查看(2)');if read==1for k=1:5disp(lab{k,1});txt=['学号' int2str(lab{k,2})];disp(txt);txt=['数学成绩' int2str(lab{k,3})];disp(txt);txt=['外语成绩' int2str(lab{k,4})];disp(txt);txt=['语文成绩' int2str(lab{k,5})];disp(txt);txt=['物理成绩' int2str(lab{k,6})];disp(txt);endendend本程序可完全实现题目中要求的全部功能,但在排序时希望以后可以改为用调用函数的形式来简化程序,而且对于用户错误操作的提醒方面尚有不足。

matlab学生成绩分类统计

matlab学生成绩分类统计

matlab学生成绩分类统计
在MATLAB中,可以使用各种统计和分类工具来分析学生成绩。

以下是一个简单的例子,演示如何使用MATLAB对学生成绩进行分类统计:
1. 假设你有一个名为`grades`的向量,其中包含了所有学生的成绩。

2. 使用`histcounts`函数来计算每个成绩区间的学生数量。

例如,你可以创建一个从0到100的区间,然后计算每个10分区间的成绩数量:
```matlab
interval = 0:10:100; % 创建成绩区间
counts = histcounts(grades, interval); % 计算每个区间的成绩数量
```
3. 使用`bar`函数来创建一个条形图,显示每个成绩区间的成绩数量:
```matlab
bar(interval, counts);
xlabel('Grade');
ylabel('Count');
title('Distribution of Grades');
```
4. 如果你想进一步分析成绩数据,可以使用MATLAB的分类工具箱。

例如,你可以使用`fitcecluster`函数来训练一个分类器,将学生成绩分成几个类别:
```matlab
clusterer = fitcecluster(grades, 'Lloyd', 'NumClasses', 3); % 创建一个分类器
labels = clusterer.predict(grades); % 预测每个成绩的类别
```
请注意,以上只是一个简单的例子,实际的数据分析可能需要更复杂的模型和方法。

matlab实验二

matlab实验二

实验二:顺序结构和选择结构的程序设计[实验目的]1.掌握顺序结构的输入输出函数input和disp。

2.掌握选择结构中if和switch的使用方法。

[实验内容]1.用input函数输入一个学生姓名和百分制成绩,要求用disp函数输出成绩等级A、B、C、D、E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

分别用if和switch语句实现。

2.员工工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15%。

(2)工作时数低于60小时者,扣发700元。

(3)其余按每小时84元计发。

分别用if语句和逻辑表达式实现,要求用input函数输入该员工的工号和工时数,然后用disp函数输出结果。

实验程序:第一题% exam1.m%%clc;clear all;name=input('姓名:','s');score=input('请输入成绩:');if score>100&score<0disp('输入的成绩有错误,请重新输入');score=input('请重新输入成绩:');endswitch fix(score/10)case 10disp('A')case 9disp('A')case 8disp('B')case 7disp('C')case 6disp('D')otherwisedisp('E')end%%%%name=input('姓名:','s');score=input('请输入成绩:');if score>100&score<0disp('输入的成绩有错误,请重新输入');score=input('请重新输入成绩:'); endif score>=90&score<=100disp('A');elseif score>=80&score<90disp('B');elseif score>=70&score<80disp('C');elseif score>=60&score<70disp('D');elsedisp('E');end程序结果:姓名:李四请输入成绩:78C姓名:张三请输入成绩:100A第二题%exam2%%clc;clear all;ID=input('请输入员工的工号:'); n=input('请输入员工的工时数:');if n>=120wage=120*84+(n-120)*1.1*84;elseif n<60wage=n*84-700;elsewage=84*n;enddisp('wage=');disp(wage);%%ID=input('请输入员工的工号:');n=input('请输入员工的工时数:');y=(n*84-700)*(n<60)+(n*84)*(n>=60&n<120)+(120*84+(n-120)*1.1*84)*(n>=120)程序结果:请输入员工的工号:007请输入员工的工时数:128wage=1.0819e+04请输入员工的工号:008请输入员工的工时数:10y =140。

matlab-GUI--学生成绩管理系统

matlab-GUI--学生成绩管理系统

西安邮电大学MATLAB及其EDA仿真课内实验报告院(系)名称:电子工程学院学生姓名:李豪专业名称:集成电路设计与集成系统班级:1202班时间:2013年12月20日一、实验内容建立基于图形用户界面GUI的学生成绩管理系统,该系统能够实现学生成绩信息的增加、删除、查询(查询某门课所有学生的成绩并显示排名,查询某个学生的各科成绩并显示排名)、课程成绩统计最高分、最低分、平均分、方差、并显示相应的排名;绘制柱状图、条形图、饼状图、正太分布曲线等功能。

二、实验目的通过本实验使学生掌握图形用户界面GUI的操作和设计流程,并通过编写回调函数巩固前期的知识。

三、报告正文(一)设计思路(二)设计步骤与设计内容1.启动GUI,命令窗口中输入guide2.放置控件。

先放置一个Edit Text,tag名称设为edit14,颜色设置为灰色,String设置为‘学生成绩管理系统’,该控件的功能是显示该GUI的功能;再放置五个Edit Text,tag名称分别设为edit1、edit2、edit3、edit4、edit13 ,颜色均设置为淡蓝色,String分别设置为‘姓名’、‘学号’、‘成绩\其他’、‘排名’、‘成绩类型’,这些控件的功能作为下面listbox的标题;再放置四个listbox, tag名称分别设为xingming、xuehao 、grade、paiming,颜色均设置淡蓝色,String设置为‘’,这些该控件的功能是分别显示对应学生的姓名、学号、成绩、排名;再放置五个Edit Text,tag名称分别设为edit7、edit8、edit9、edit10、edit11,颜色均设置为淡蓝色,String分别设置为’专业‘,‘数学’,‘英语’,‘体育’‘物理’,该控件的功能是显示个人对应的科目;再放置一个Axes,tag名称设为axes1,颜色设置为灰色,该控件的功能是显示绘制的图;3.4.保存.fig文件5.编写.m文件,这部分要详细叙述每个子函数的编写思路,每条语句后面要给出注释说明该语句的功能;只需要附上自己编写的回调函数部分,其他系统自动生成的不需要放入报告中。

matlab实验(考试成绩排名)

matlab实验(考试成绩排名)

matlab实验(考试成绩排名)编写一个学生成绩管理的函数程序:将学生成绩按五个等级划分:优秀(90以上),良好(80-90),中等(70-79),及格(60-69),不及格(60以下)对输入的学生成绩按五个等级划分并排序,打印学生姓名,得分,等级,并计算全班最高分、最低分、平均分。

clearfor i=1:10a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;endc=[d,c];Name=input('please input name:');Score=input('please input score:');n=length(Score);Rank=cell(1,n); %构建Rank大小S=struct('Name',Name,'Score',Score,'Rank',Rank);for i=1:nswitch S(i).Scorecase 100S(i).Rank='满分';case aS(i).Rank='优秀';case bS(i).Rank='良好';case cS(i).Rank='及格';case dS(i).Rank='及格';otherwiseS(i).Rank='不及格';endendfor i=1:n %排序for j=i+1:nif (S(i).Score<s(j).score)< bdsfid="111" p=""></s(j).score)<> temp=S(i);S(i)=S(j);S(j)=temp;endendenddisp(['学生姓名 ','得分 ','等级']) %排序完输出for i=1:ndisp([S(i).Name,blanks(10),num2str(S(i).Score),blanks(6),S(i). Ran k]);ends=0; %求平均分for i=1:ns=S(i).Score+s;endaverscore=s/n;t=S(1).Score; %最高分for i=1:(n-1)if(t<s(i+1).score)< bdsfid="130" p=""></s(i+1).score)<>t=S(i+1).Score;endendm=S(1).Score; %求最低分for i=1:(n-1)if(m>S(i+1).Score)m=S(i+1).Score;endenddisp(['平均成绩:',num2str(averscore,6)]); disp(['最高分:',num2str(t)]);disp(['最低分:',num2str(m)]);运行结果:please input name:{'a','b','c','d','e'} please input score:{100 56 12 79 84} 学生姓名得分等级a 100 满分e 84 良好d 79 及格b 56 不及格c 12 不及格平均成绩:66.2最高分:100最低分:12。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编写一个学生成绩管理的函数程序:将学生成绩按五个等级划分:优秀(90以上),良好(80-90),中等(70-79),及格(60-69),不及格(60以下)对输入的学生成绩按五个等级划分并排序,打印学生姓名,得分,等级,并计算全班最高分、最低分、平均分。

clear
for i=1:10
a{i}=89+i;
b{i}=79+i;
c{i}=69+i;
d{i}=59+i;
end
c=[d,c];
Name=input('please input name:');
Score=input('please input score:');
n=length(Score);
Rank=cell(1,n);%构建Rank大小
S=struct('Name',Name,'Score',Score,'Rank',Rank);
for i=1:n
switch S(i).Score
case100
S(i).Rank='满分';
case a
S(i).Rank='优秀';
case b
S(i).Rank='良好';
case c
S(i).Rank='及格';
case d
S(i).Rank='及格';
otherwise
S(i).Rank='不及格';
end
end
for i=1:n%排序
for j=i+1:n
if(S(i).Score<S(j).Score)
temp=S(i);
S(i)=S(j);
S(j)=temp;
end
end
end
disp(['学生姓名','得分','等级'])%排序完输出
for i=1:n
disp([S(i).Name,blanks(10),num2str(S(i).Score),blanks(6),S(i).Ran k]);
end
s=0;%求平均分
for i=1:n
s=S(i).Score+s;
end
averscore=s/n;
t=S(1).Score;%最高分
for i=1:(n-1)
if(t<S(i+1).Score)
t=S(i+1).Score;
end
end
m=S(1).Score;%求最低分
for i=1:(n-1)
if(m>S(i+1).Score)
m=S(i+1).Score;
end
end
disp(['平均成绩:',num2str(averscore,6)]);
disp(['最高分:',num2str(t)]);
disp(['最低分:',num2str(m)]);
运行结果:
please input name:{'a','b','c','d','e'}
please input score:{10056127984}
学生姓名得分等级
a100满分
e84良好
d79及格
b56不及格
c12不及格平均成绩:66.2
最高分:100
最低分:12。

相关文档
最新文档