% sungjuk.m % ¼ºÀûÇ¥ ÇÁ·Î±×·¥ ÀÛ¼º % Âü°í % A = {'kim', 90, 80}; A = [A ; {'lee', '89',99'}]; % À̸§ ¼öÇÐ1 Çؼ®ÇÐ ¼±Çü´ë¼ö ÃÑÁ¡ Æò±Õ ÇÐÁ¡ µî¼ö % N = cell of names, S(k,1:7) = score of k-th name % sungjuk.mat : saved file of N and S % sub function : G=grade_(S(1:3)), view_(N,S), T=add_score(S(1:3)) % [N,S]=add_sungjuk(N,S), [N,S]=del_sungjuk(N,S,name), % [N,S]=modify_sungjuk(N,S,name), name = namesize(name,4) function sungjuk
clc; % ȸéÀ» Áö¿ì°í óÀ½ºÎÅÍ ½ÃÀÛ sz = 4; % size of Name if exist('sungjuk.mat')==2 % ÆÄÀÏÀÌ ÀÖÀ¸¸é ºÒ·¯¿À±â load sungjuk N S else N = {'¹«¸í½Ã'}; S = [0 0 0 0 0 0 0]; % ÃʱâÈ N{1} = namesize(N{1},sz); end view_(N,S); %Ãâ·Â
yesno = input(' ¼ºÀû Ãß°¡(1) : »èÁ¦(2) : ¼öÁ¤(3) : ¸¶Ä§(0) = ');
if yesno==1 [N,S] = add_sungjuk(N,S); elseif yesno==2 name = input(' »èÁ¦ÇÒ À̸§À» ÀûÀ¸½Ã¿À : '); name = namesize(name,4); [N,S] = del_sungjuk(N,S,name); elseif yesno==3 name = input(' ¼öÁ¤ÇÒ À̸§À» ÀûÀ¸½Ã¿À : '); name = namesize(name,4); [N,S] = modify_sungjuk(N,S,name); else return; % ÇÁ·Î±×·¥ ¸¶Ä§ end % ÃÑÁ¡ ³»¸²Â÷¼ø ÀçÁ¤·Ä [not, id] = sort(S(:,4),'descend'); N = N(id); S = S(id,:); % ÀçÁ¤·Ä S(:,7) = [1:size(S,1)]'; % µî¼öÃß°¡
%ȸé Ãâ·Â view_(N,S);
save sungjuk.mat N S
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% function [N,S] = modify_sungjuk(N,S,name) szN = size(N,2); for k=1:szN if all( N{k}==name ) == 1, a = input(' ¼öÇÐ1 ¼ºÀû == '); b = input(' Çؼ®ÇÐ ¼ºÀû == '); c = input(' ¼±Çü´ë¼ö ¼ºÀû == '); S(k,1:3) = [a b c]; S(k,1:6) = add_score([a b c]); % ÃÑÁ¡, Æò±Õ, ÇÐÁ¡ Ãß°¡ break; end end %%%% function [N,S] = del_sungjuk(N,S,name) szN = size(N,2); for k=1:szN if all( N{k}==name ) == 1, N = N( [1:k-1, k+1:szN] ); S = S([1:k-1, k+1:szN], : ); break; end end %%%% function [N,S] = add_sungjuk(N,S) m = size(S,1); name = input('Ãß°¡ÇÒ À̸§Àº(String) == ' ); a = input(' ¼öÇÐ1 ¼ºÀû == '); b = input(' Çؼ®ÇÐ ¼ºÀû == '); c = input(' ¼±Çü´ë¼ö ¼ºÀû == '); name = namesize(name,4); N{m+1} = name; S(m+1,1:3) = [a b c]; S(m+1,1:6) = add_score([a b c]); % ÃÑÁ¡, Æò±Õ, ÇÐÁ¡ Ãß°¡ %%%% function K = namesize(K,sz) lk = length(K); if lk >= sz K = K(1:sz); else emp = repmat(' ',1,sz-lk); K = [K, emp]; end %%%%% function T = add_score(T) T = [T sum(T) sum(T)/3]; % ÃÑÁ¡°ú Æò±Õ Ãß°¡ T = [T grade_(T(1:3))]; % ÇÐÁ¡Ãß°¡ %%%% function view_(N,S) fprintf('-----------------------------------------------------\n') fprintf(' À̸§ ¼öÇÐ1 Çؼ®ÇÐ ¼±Çü´ë¼ö ÃÑÁ¡ Æò±Õ ÇÐÁ¡ µî¼ö \n') fprintf('-----------------------------------------------------\n') for k=1:size(S,1) fprintf('%s %3.0f %3.0f %3.0f %3.0f %5.2f %5.2f %3.0f \n',N{k},S(k,:)) end fprintf('-----------------------------------------------------\n') %%%% function y = grade_(x) y = 0.5*floor(x/5)-5; y(y<1)=0; y(y==5)=4.5; y = sum(y)/length(x); %%%%
|
|
LAST UPDATE: 2015.05.12 - 13:06 |
|