% sungjuk.m % function A = sungjuk(mode) % mode = 'add' , 'del', 'mod', 'sea', view(otherwise)
function sungjuk(mode)
mode = resize(mode,3); % match the size of mode to 3 fn = 'sungjuk.mat'; if exist(fn)==0 A = {'Name ','Computer ','Analysis ','Numerical ','Total','Average'}; save sungjuk A end
load sungjuk A [m,n] = size(A); view(A,[2:m]); % view all data
nz = [12 13 13 13 13 15]; % size of name, com,ana,,num,tot,ave if mode=='add' m = m+1; name = input('Input Name to add : '); computer = input('Input Computer grade : '); analysis = input('Input Analysis grade : '); numerical = input('Input Numerical grade : '); name = resize(name,nz(1)); total = computer+analysis+numerical; average = total/3; A(m,:) = {name, computer, analysis, numerical,total,average}; [x,id] = sort(A(2:m,1)); A(2:m,:) = A(id+1,:); save sungjuk A view(A,[2:m]); elseif mode=='mod' name = input('Input Name to modify : '); name = resize(name,nz(1)); kid = search1(A,name,1); if kid ~= 0 kk = 1; while (kk~=0) kk = input('Modify Computer(1) Analysis(2) Numerical(3) No(0) : '); switch kk case 1 A{kid,2} = input('Input Computer grade : '); case 2 A{kid,3} = input('Input Analysis grade : '); case 3 A{kid,4} = input('Input Numerical : '); otherwise end end A{kid,5} = sum(cell2mat(A(kid,2:4))); A{kid,6} = A{kid,5}/3; else fprintf('There is not the name! \n') return end save sungjuk A view(A,[2:m]); elseif mode=='del' name = input('Input Name to remove : '); name = resize(name,nz(1)); kid = search1(A,name,1); if kid ~= 0 A(kid:m-1,:) = A(kid+1:m,:); A = A(1:m-1,:); end save sungjuk A view(A,[2:m-1]); elseif mode=='sea' name = input('Input Name : '); name = resize(name,nz(1)); kid = search1(A,name,1); if kid ~= 0 view(A,kid); else fprintf('There is not the name! \n') return end end
function X = resize(X,nid) if length(X)<nid while length(X)<nid X = [X,' ']; end elseif length(X)>nid X = X(1:nid); end
function k = search1(A,X,id) for k=2:size(A,1) if A{k,id}==X, break; end k = 0; end function view(A,L) B = cell2mat(A(L,2:6)); if size(B,1)>1, B = sum(B);elseif size(B,1)<1, B = zeros(1,5); end C = B/length(L);
fprintf('------------------------------------------------------------------------------------\n') fprintf(' %s %5s %19s %10s %13s %8s %11s \n','No.',A{1,:}) fprintf('------------------------------------------------------------------------------------\n') for k=L fprintf(' %d. %s %12.0f %12.0f %12.0f %12.0f %10.2f \n',k-1,A{k,:}) end fprintf('------------------------------------------------------------------------------------\n') fprintf(' %s %12.0f %12.0f %12.0f %12.0f %10.2f \n','Total',B) fprintf(' %s %12.0f %12.0f %12.0f %12.0f %10.2f \n','Average',C) fprintf('------------------------------------------------------------------------------------\n')
|
|
LAST UPDATE: 2008.05.27 - 17:00 |
|