资源简介

用MATLAB的m文件编写的一套学生信息管理系统,有一个不错的交互界面,可以轻松地输入、查询、修改、删除学生的各项信息。这个m文件只能在MATLAB中运行。

资源截图

代码片段和文件信息


% Call var(xflagdim) with as many of those args as are present.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%本程序在基本文件操作的基础上实现了更强的错误处理功能,可以直接对%%%
%文本进行操作。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function std3()
%UNtitleD Summary of this function goes here
%   Detailed explanation goes here


stu=struct(‘id‘{cell(12)}‘math‘{cell(12)}‘Eng‘{cell(12)}‘phy‘{cell(12)}‘ave‘{cell(12)}‘sum‘[]);
stustr=struct(‘id‘{cell(12)}‘math‘{cell(12)}‘Eng‘{cell(12)}‘phy‘{cell(12)}‘ave‘{cell(12)}‘sum‘{});
stupai=struct(‘id‘{cell(12)}‘math‘{cell(12)}‘Eng‘{cell(12)}‘phy‘{cell(12)}‘ave‘{cell(12)}‘sum‘[]);
while 1

fid = fopen(‘stud1.txt‘ ‘a+‘);           
fclose(fid);    
    
fid = fopen(‘stud1.txt‘‘r‘);
m5 = fscanf(fid‘%c‘);
numel(m5);
fclose(fid);
if numel(m5)==0 
fid = fopen(‘stud1.txt‘ ‘w‘);           
fprintf(fid ‘      学号   数学(  等级 )   英语(  等级 )   物理(  等级 )   平均分(  等级 )   总分             姓名\n‘);
%新增的等级允许用7个字符格式
fclose(fid);
fid2 = fopen(‘stud1.txt‘ ‘r‘);
m5 = fscanf(fid2‘%c‘);
fclose(fid2);
end;   
numel(m5);
length=numel(m5)-78;
row=ceil(length/102);
m6=char(linspace(4848row*102+78));  %测试点1
for n01=1:numel(m5)
m6(n01)=m5(n01);
end
clear m5;
%     m6   %测试点
if row>0
   for n0=1:row
       %格式为10+5(9)+8(9)+8(9)+9(11)+8+15+1(回车)=102
       mao11=(n0-1)*102+78+1;    % 运用‘锚’链接的思想找到每个单元的起始锚点%学号
       stu(n0).id{11}=uint32(str2double(m6(mao11:mao11+9)));       
       mao12=(n0-1)*102+78+87;%姓名
       stu(n0).id{12}=m6(mao12:mao12+14);
       mao21=mao11+10;%数学
       mao22=mao21+5;
       stu(n0).math{11}=uint32(str2double(m6(mao21:mao21+4)));
%        stu(n0).math{12}=m6(mao22:mao22+6);
       mao31=mao22+9;%英语
       mao32=mao31+8;
       stu(n0).Eng{11}=uint32(str2double(m6(mao31:mao31+7)));
%        stu(n0).Eng{12}=m6(mao32:mao32+6);       
       mao41=mao32+9;%物理
%        mao42=mao41+7;
       stu(n0).phy{11}=uint32(str2double(m6(mao41:mao41+7)));
%        stu(n0).phy{12}=m6(mao42:mao42+6);
%        stu(n0)   %程序测试点2
       stu(n0)=jisuan(stun0);
       mysav(stunumel(stu));%保存信息
%         stu
   end
%    stu
%    whos stu;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%以上实现了从文本中读取数据并进行格式转换,再放入结构体变量stu中
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% b=size(stu);

row1=row;
a=input(‘请选择:|1 查看信息 |2 新增信息  |3 修改信息  |4 删除信息 |0 退出  :‘);

if a==1
%查看信息
row2=row;
if row>0
 c=numel(stu);  %测试点3 
a1=1;
while a1 ~=0
    a1=input(‘查询 请选择:|0 返回 |1 按学号查询 |2 全部输出 |3 按总成绩排名输出|4 图表输出:‘);
%      stu    %程序测试点4
    if numel(a1)==0
        fprintf(‘输入错误!\n‘);
        break;
    end
    if a1==4
        draws(stu);
    end
    
    if a1==1
        a12=input(‘输入学号:‘);
        times=0;  
        fprintf(‘**************成绩查询结果--按学号查询***********************************************************************\n‘);
        fprintf( ‘      学号   数学(  等级 )   英语(  等级 

评论

共有 条评论