¸ÞÀϺ¸³»±â

À̸§°Ë»ö

::: SHIN, Byeong-Chun's Board


97 310 Åë°èÄ«¿îÅÍ º¸±â   ȸ¿ø °¡ÀÔ È¸¿ø ·Î±×ÀÎ °ü¸®ÀÚ Á¢¼Ó --+
Name   ½Åº´Ãá
Subject   ¼ºÀûÇÁ·Î±×·¥
% 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);
%%%%          

°Ô½Ã¹°À» À̸ÞÀÏ·Î º¸³»±â ÇÁ¸°Æ®Ãâ·ÂÀ» À§ÇÑ È­¸éº¸±â
DATE: 2013.11.05 - 16:11
LAST UPDATE: 2015.05.12 - 13:06


 ÀÌÀü±Û ¹Ýº¹¹ý
 ´ÙÀ½±Û Á¡¼ö¸¦ ÇÐÁ¡À¸·Î ġȯÇÏ´Â ÇÔ¼ö
±Û³²±â±â»èÁ¦Çϱâ¼öÁ¤Çϱâ´äº¯´Þ±âÀüü ¸ñ·Ï º¸±â