|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
%设计一个学生体重指数BMI管理系统,输入年级、性别、身高、体重,输出体重指数及相应评价:正常、低体重、超重、肥胖.1 `7 d5 N$ r# e* ~
%所测试年级只能为'一年级','二年级','三年级','四年级','五年级','六年级','初一','初二','初三','高一','高二','高三','大学',其余输入将会提示错误!/ Z% s& Y$ ?' e v+ Q1 K4 W8 b
%若需要测试其它人群体重指数,请修改相应代码,具体修改处请见'%%...修改处!'4 I t" F2 Z; Z! m
%本代码运行一次只能测试一个人,若要一次性测试指定人数,请自行修改相应代码!
9 S ~9 Z! H0 y8 m/ y%主要参数说明:# a- g$ M y1 O% U" M5 l( O
%b 体重指数0 \" B1 D3 ^% J' \' H
%h 身高
; r0 t: I' e" S+ D%w 体重
1 t! c, x1 D7 `%a 年级
1 D4 {; v9 u/ Q# m# f%g 性别
, N" D4 q- N7 y( m' p+ @clear% `' \# t; [/ x
g={'一年级','二年级','三年级','四年级','五年级','六年级','初一','初二','初三','高一','高二','高三','大学'};%%年级及所属人群修改处!( K' L; m) r- L2 b
t=1;
/ h4 z$ z$ M# Q& {8 l- Bwhile(t)
2 |1 p/ ~* O9 U+ j' \8 ^0 B8 X a=input('请输入所处年级(如一年级):','s');5 I2 W4 |' H' j6 H Y
n=length(g);
+ X! k; N* P2 @5 h" P3 \$ R for j=1:n
4 g' h5 d+ ?+ M+ p/ a" o. s5 n { c(j)=strcmp(g(j),a);%查找并判断所输年级是否存在g中
; n) c( ~& T9 P' V/ ~- `4 i d=length(find(c==1));
9 S9 Y6 A$ Q+ I end
4 x* z) u) e8 E% i if d==0
0 o0 c6 m# i9 x7 t disp('所输入年级格式有误或不存在,请重新输入年级!');
! ]1 j7 d4 i! a, M2 G; @ else
1 [( f# \) o0 A3 r4 p gender=input('请输入学生性别(男或女):','s');9 e0 Y |8 M/ o( B: N. ^3 W" K
if gender=='男'5 b9 j. }! C/ A8 V
bm=[13.4 13.6 13.8 14.1 14.3 14.6 15.4 15.6 15.7 16.4 16.7 17.2 17.8; ... %%年级及所属人群男体重指数参考表修改处!
4 m* W$ r/ D6 W% M5 ~ 18.1 18.1 19.4 20.1 21.4 21.8 22.1 22.5 22.8 23.2 23.7 23.8 23.9; ...
" w! q" V* A" S- C 20.3 20.4 22.1 22.6 24.1 24.5 24.9 25.2 26.0 26.3 26.5 27.3 27.9]; ... %男学生BMI体重指数参考表
+ s! ]4 l" F/ Y4 O3 S2 W) S7 T+ \* x/ l else/ d+ R2 @/ `4 n- V( x' ]
bm=[13.2 13.4 13.5 13.6 13.7 14.1 14.7 15.2 15.9 16.4 16.8 17.0 17.1; ... %%年级及所属人群女体重指数参考表修改处!' E& t$ ~7 z% c' W% Z
17.4 17.9 18.7 19.5 20.6 20.9 21.8 22.3 22.7 22.8 23.3 23.4 24.0; ...: r# a |8 ^* t) M# f
19.3 20.3 21.2 22.1 23.0 23.7 24.5 24.9 25.2 25.3 25.5 25.8 28.0]; %女学生BMI体重指数参考表- f$ ^: J) y. B! E3 I/ a. N
end
+ m( N% e, v2 ^( c# Z1 f$ o. V/ B* {* X h=str2num(input('请输入身高(/m):','s'));9 _ @ J1 I: L: Z( [3 ^
w=str2num(input('请输入体重(/kg):','s'));
7 {( }& f% ^- T# G* f5 X2 S b=w/(h^2); %计算体重指数
5 k+ ~4 W4 u9 l$ z. Q- l! P j9 L b=vpa(b,3); %指数保留一位小数
) v) f- b+ e1 p9 V8 L/ i: \8 s for i=1:n %计算体重指数并给出相应评价
- T) a' `1 j* R* a+ @ cc(i)=strcmp(g(i),a);$ a/ g9 b/ t0 k/ X+ y
while(cc(i)==1)
+ [' G- G* @$ Y+ b if b<=bm(1,i)
7 X' A3 D/ w$ Y+ I. U2 S7 B& } fprintf('您的体重指数b=%3.1f kg/m^2\n体重指数:低体重\n',double(b));
: u0 j' }* ~- u elseif b<=bm(2,i)
3 C' O8 _0 ], u2 C fprintf('您的体重指数b=%3.1f kg/m^2\n体重指数:正常\n',double(b));) u- e# e8 x* h* r6 E' p$ a
elseif b<=bm(3,i)8 \% A) @$ K- b0 a* u" v7 ?
fprintf('您的体重指数b=%3.1f kg/m^2\n体重指数:超重\n',double(b));2 t( R3 Q% ]% A; r
else
3 d$ q O) b+ F4 s5 w fprintf('您的体重指数b=%3.1f kg/m^2\n体重指数:肥胖\n',double(b));
+ _: [/ [- I3 u end
* F) W3 t; H9 b# O0 l break;7 o$ y* b2 ^, Q5 }$ H
end
" k" A/ D' L* k+ ?. ~ end( W1 F9 E! Y0 A: ] n, n* {
end; j& A7 { n% F' b6 e( C0 q, x
if t==d %如果年级在所属范围之内,跳出循环,否则循环需重新输入年级/ C- Y7 R4 K3 Y0 H
t=0;5 X6 ^& K& W% S( F$ Q: u& Y
else
- Q- w1 N) \+ d) \) ?1 w end
7 I# i& ]' T4 t9 `3 d! iend
5 F& b% x! G* H+ c
; R4 m, H+ \ F |
|