健康診断 BMI測定の感想

タグの編集
投稿者 葉月  (社会人) 投稿日時 2008/11/24 23:40:48
(スレッドを立てるのはひさしぶりです)
 健康診断 BMI測定の感想になります。
 今回はBMIプログラムの提供に加えて、エラー処理が趣旨でした。
 TryParseメソッドとMaxLengthプロパティの2つを利用して、簡潔に行っており大変参考になりました。
 オーバーフローの説明はある程度知っていましたが、とてもわかりやすかったです。
 ワンステップ毎の丁寧な解説が印象に残りました。

 それから、.NET系の機能紹介にあった【アプリケーションイベントの表示】など参考になりました。

 それにしても、博士から指摘される前にバグを見つけることはできましたが、初級の頃よりB子に差をつけられました。
 スラスラ説明の出てくるあの舌の滑らかさは羨ましいです。
 うかうかしてたらV太にも、あっという間に置いてかれそうで怖いです。
 V太にVictoryされないように精進していきます(笑)


>>>作成者 様
 ご提供ありがとうございます。BMIの参考表がわかりやすく記載されておりよかったです。
 当時の私はC言語をやっており、最初にツールとして作成したのがBMIプログラムでした。
 8年以上いじってないのでノーマルCはすっかり忘れましたが、機能はBMI測定の他に1日に必要なエネルギーを求めたり、一週間ごとの体重の変化を求めていました。
 
 一つ提案なのですが、初級を卒業して作るものが浮かばなかったらバージョンを上げてはどうでしょうか?
 VB系はExcelを扱うのが得意です。入力された情報を保存して、体重、BMI、エネルギー量などを使ってグラフを自動で作成できます。
 グラフにすることで一目でわかりやすくなり、ダイエットの手助けツールになります。

 細かいところでは、BMIや理想体重の結果を別フォームに表示することで画面がスッキリします。
 Formに余裕ができるので、また違った配置になるのではないでしょうか。
投稿者 neptune  (社会人) 投稿日時 2008/11/25 07:30:18
こんにちは

ただの雑談だけなんですが、
いや~私も自分がメタボなんで、昔、VBでBMIプログラム作りました。
出来たらフリーソフトにでもしようかなと思って、結構作り込んで一応完成はしたんですが、
作り終わってから公開しても利用者いないだろうなと思って、どこかに行って
しまいましたね。。。
グラフも自前で実装してました。。

VB2005,2008なら、描画がかなり使いやすくなっているみたいなので、
Excelでなく自前実装でも良いですね。

拡張しようと思えば、いくらでも機能は付加できますね。
ただ、労力としてそれなりに根性は要りますけど。

全く無責任発言ですが、
食事の品目を入力すればカロリー計算してくれるようなソフト(or 付加機能)も良いですねぇ。

お邪魔しました。
投稿者 あにす  (社会人) 投稿日時 2008/11/25 17:38:50
>食事の品目を入力すればカロリー計算してくれるようなソフト
開発作業の殆どがデータ入力になる予感…。
投稿者 葉月  (社会人) 投稿日時 2008/11/26 05:54:39
BMIプログラムを作成した時はいらなかったですが、今は欲しいですね(笑)
 自前で作る……時間を考えるとWiiフィット買った方が安上がりかも知れません。
 私は試したことありませんが、VBの機能でグラフを実装するのもありですね。

>>>食事の品目を入力すればカロリー計算してくれるようなソフト(or 付加機能)も良いですねぇ。
>>>開発作業の殆どがデータ入力になる予感…。 
 面白い試みだと思ったのでカロリーの一覧が載っているサイトを探した所、
テーブルデータを使って書いているページがいくつか見つかりました。
 下記はhtmlソースの抜擢です。

 <th class="exth">料理名</th><th class="exth_2">カロリー(kcal)</th>
 <td>ざるそば</td><td class="right">282</td>
 <td>肉じゃが</td><td class="right">302</td>
 <td>ほうれん草のおひたし</td><td class="right">29</td>

 ざっくり検証したところ.NETもGroup系のメソッドがあり、正規表現でいけそうです。
 抜き出したデータをCSV形式で保存すれば自動化できると思います。
 今回は処理の部分は省略しています。
 ただ、マックのサイトなんかは独自の方式を使っており自動化できないので、
細かく作ったらデータ入力が大変になりそうです。

■サンプルコード
Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strReg As String = "<td>ざるそば</td><td class=""right"">282</td>"
        'Dim strReg As String = "<title>検証<title>"
        Dim regex As Regex = New Regex("(^<td>.+?</td>)(<td.+?>[0-9]+?</td>)+$")

        If regex.IsMatch(strReg) Then
            '処理
            Console.WriteLine("OK")
        End If
    End Sub
End Class