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

  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。

相关文档
最新文档