将瘦身进行到底——DIY一个减肥软件

编程爱好者

肥胖病已成为中国面临的一个严重的公共健康问题。目前我国患肥胖病人数已超过9000万,超重者高达2亿人。专家预测,未来十年中国肥胖人群将会超过2亿。肥胖不但会导致糖尿病、高血压、癌症等诸多疾病,还会使人早逝。有数据表明,肥胖者早逝的危险是非肥胖者的1.3~2倍。铺天盖地的电视购物绝大多数都和减肥有关,那么如何能做到健康减肥不反弹呢,也许本期介绍的软件能帮忙,让我们一起DIY吧。

本软件采用Delphi7.0编写,数据库采用Access2000。从瘦身食谱、瘦身运动、瘦身秘笈、热量计算等带给你许多减肥的知识,并提供了减肥计划、减肥日记。通过减肥日记中的重量参数,使用瘦身曲线能直观地分析出你的减肥效果,下面一起来看看本软件吧,软件界面如图1。

32-g15-1-1.jpg
图1

一、瘦身食谱

瘦身食谱提供了大量的减肥菜单,包括:长期作战减肥食谱、减肥药膳、吃得饱的减肥餐、地狱减肥套餐等多达近百种食谱,你可以根据实际情况来合理安排饮食。点击上图的按钮,就能快速了解各种减肥食谱(图2)。

32-g15-1-2.jpg
图2

制作方法:采用Demo控件来读取数据库中的表的记录,值得注意的是,使用代码来动态向Memo组件添加字符串时,光标会定位在最后一行,为了让光标定位在首行,需要做点工作:

Memo1.Lines.Add(ADODataSet_fat.FieldByName('demo').AsString);//把数据库的表的记录添加到Memo

Memo1.SelStart := 0;//这两句定位光标到Memo的首行。

Memo1.SelLength := 0;

二、瘦身运动

针对全身提供了大量的瘦身操,并针对手部、胸部、腿部等介绍了非常实用的减肥运动,你可以根据你的实际情况来选择一些瘦身运动。

制作方法:与瘦身食谱制作方法相同,也是直接读取数据库的记录,显示在Memo上。

三、瘦身日记

瘦身是一个长期的循序渐进的过程,不可能一蹴而就,那么请认真做好日记吧,每周甚至每天都坚持写日记,注意一定要写出你的重量,这样才能使用瘦身曲线进行分析!

点击“瘦身日记”,再点击“+”,弹出如图3界面,输入你的体重,再输入减肥的心得体会,然后点击“对钩”存盘。

32-g15-1-3.jpg
图3

制作方法:把输入框Edit的值(重量)写给数据库,同时把Memo的值(日记)写给数据库:

ADODataSet_fat.Append;//在最后一行插入

ADODataSet_fat.FieldByName('Time').AsDateTime:=Now;//日记的时间写入字段Time

ADODataSet_fat.FieldByName('demo').AsString:=Memo1.Text;//把日记的内容写给字段demo

ADODataSet_fat.FieldByName('lb').AsF

loat:=StrToFloat(Edit1.Text);//把重量写给字段lb

ADODataSet_fat.Post;

Memo1.ReadOnly:=true;

Edit1.Visible:=false;

四、热量计算

类似于Windows的资源管理器的树状图,列举了很多食物,并把这些食物分类为五谷类、肉类等18个种类,选中其中一个种类,再选择一种食物,软件就会提示此食物所含的热量(如图4)。

32-g15-1-4.jpg
图4

制作方法:采用TreeView控件,首先在窗体显示时把数据库各字段的值写给TreeView,当点击任意一种食物时,执行TreeView的OnClick事件,去数据库查询该食物对应的热量并显示出来:

procedure Tfat_main.FormShow(Sender: TObject);

var

aNode:TTreeNode;

i,j:integer;

kind,tmpkind,heat:string;

begin

ADODataSet_fat.Close;

ADODataSet_fat.CommandText:='select * from 02';

ADODataSet_fat.Open;

ADODataSet_fat.First;

for i:=0 to ADODataSet_fat.RecordCou

nt-1 do

begin

kind:=ADODataSet_fat.FieldByName('Name').AsString;//在表02中取出食物的种类

aNode := TreeView1.Items.AddChild(nil,kind) ;//加载食物的种类到树结构的第一层

ADODataSet.Close;

ADODataSet.CommandText:='select * from 01';

ADODataSet.Open;

ADODataSet.First;

for j:=0 to ADODataSet.RecordCount-1 do//在表01中查询,如果种类和表02中的一致,把食物加载到树结构的第二层。

begin

tmpkind:=ADODataSet.FieldByName('Name').AsString;

heat:=ADODataSet.FieldByName('Title'

).AsString;

if kind=tmpkind then

begin

TreeView1.Items.AddChild(aNode,heat

); //加载种类下的具体的食物

end;

ADODataSet.Next;

end;

ADODataSet_fat.Next;

end;

end;

五、瘦身计划

瘦身计划是你自己根据需要制定的,如果按此计划执行后效果不理想可以进行调整。

在主窗口上点击“瘦身计划”后,弹出如图5界面,分别对周一到周日做好详细计划,然后点击界面下方的“确定”按钮即可。

32-g15-1-5.jpg
图5

制作方法:此制作是基本的数据库修改记录操作,这里不作解释了。

六、瘦身曲线

瘦身曲线不用操作,是显示给你看的,通过你在日记中录入的重量来直观显示这段时间你的身体重量的变化过程,如图6:

32-g15-1-6.jpg
图6

制作方法:采用DBChart控件,添加曲线方式进行显示,在窗体的Onshow事件中写入下面的代码:

fat_main.ADODataSetcurve.Close;

fat_main.ADODataSetcurve.CommandT

ext:='select * from rj';

fat_main.ADODataSetcurve.Open;

DBChart1.Series[0].DataSource :=fat_m

ain.ADODataSetcurve;//指定曲线的数据源

DBChart1.Series[0].XValues.ValueSour

ce:='time';//x轴的时间采用的数据是time字段

dbchart1.BottomAxis.DateTimeFormat:='yyyy-mm-dd'; //时间显示的方式是年-月-日的方式

DBChart1.Series[0].YValues.ValueSour

ce:='lb'; //y轴的重量采用的是数据

DBChart1.Legend.Visible := True; //显示曲线

以上程序下载网址:http://www.cpcw.com/xz/32shenghuo.rar

这款软件向广大读者介绍了许多减肥知识,大家可以根据自己的实际情况有针对性地进行减肥。这款软件的编写主要利用了数据库的基本操作知识,同时在编程中用到了Delphi的TreeView、DBChart控件,合理利用控件可以大大提高编程效率、降低难度。