人体饮食健康系统毕业设计.docx
- 文档编号:6473225
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:51
- 大小:614.37KB
人体饮食健康系统毕业设计.docx
《人体饮食健康系统毕业设计.docx》由会员分享,可在线阅读,更多相关《人体饮食健康系统毕业设计.docx(51页珍藏版)》请在冰豆网上搜索。
人体饮食健康系统毕业设计
本科毕业设计(论文)
题目:
人体饮食健康系统
院(系)
专业
班级
姓名
学号
导师
年月日
人体饮食健康系统
摘要
随着现代农业与食品工业的发展,食物的种类越来越多,同时,人们的生活节奏日益加快,消费者缺乏食品营养与健康方面的知识,饮食结构不合理,营养平衡经常被打破,导致疾病不断滋生,如三高,营养不良等。
本人体饮食健康系统采用C/S结构,主要对用户的饮食信息以及营养摄入情况进行管理,方便用户建立一个完善的、强大的饮食信息数据库。
本文详细介绍了人体饮食健康系统的实现原理及所用到的技术方案,最终实现动态跟踪消费者的饮食习惯,进行营养评估和营养配餐,帮助消费者建立起健康的饮食方案。
关键词:
人体饮食健康系统饮食习惯营养评估C/S
Humandietandhealthsystem
Abstract
Withthedevelopmentofmodernagricultureandfoodindustry,thekindsoffoodbecamerich.Atthesametime,thepaceofModernpeople'slifewasbecomingfastandpeoplehadthelackofknowledgeaboutnutritionandhealth,sothatdietstructurewasirrational,nutritionalbalancewasoftenbrokenupandthereweremanydiseases,suchashighbloodsugar,highbloodlipids,hypertension,malnutritionandsoon.
TheC/SstructureisusedtoThehumandiethealthsystem,Itfacilitatestheuserstoestablishaperfectandpowerfuldietinformationdatabase,mainlyontheuser'sdietandnutritioninformationmanagement,Thispaperintroducestherealizationofthehumandiethealthsystemprincipleanduseoftechnologysolutions,realizesthedynamictrackingabouteatinghabitsofconsumers,andconductsnutritionalassessmentandnutritionrecipe,inordertohelpconsumersestablishahealthydietprogram.
Keyword:
humandietandhealthsystemeatinghabitsnutritionalassessment
主要符号列表
MicrosoftVisualStudio2010系统开发平台
MicrosoftSQLServer2008数据库
C#系统开发语言
C/S客户/服务器
HTTP超文本传输协议
ADO.NET数据源进行交互的面向对象类库
1绪论
1.1题目背景及研究意义
居民膳食营养状况是一个国家经济发展和社会进步的重要标志[1]。
改革开放以来,人们的物质水平不断提高,人们的饮食已由温饱型转向营养型。
我们知道,不同类型的人,由于年龄、体重、劳动强度、性别等差别,每日所要摄取的营养素标准有所不同,但是人们往往更多注重的是食品的美味,却往往忽略食物的搭配及营养[2],饮食结构不合理,营养平衡经常被打破,导致疾病不断滋生。
有研究表明:
健康膳食是预防慢性病如肥胖、高血压、胆固醇血症等的主要措施之一[3]。
本课题则以营养学理论为基础,运用现代信息技术,跟踪消费者的饮食习惯,及时提出预警和指导信息,帮助消费者建立起健康的饮食方案。
1.2国内外相关研究情况
目前国内外对医学营养学教育及研究均十分重视[4-7],在国内科研人员在营养健康的调研和实验中首先选择的群体是学生,由于学生营养与健康状况是反映一个国家或地区经济与社会发展、卫生保健水平和人口素质的重要指标[8]。
学生营养健康现状的调查结果显示学生们的营养摄入不均衡,大体表现为营养不良,低血红蛋白,肥胖等症状,研究报告中提出的解决方案是每个学校须配备专业的营养配餐师,以保证学生科学的摄食营养[9-12]。
随着计算机与网络技术的发展,研究人员开始用计算机辅助人体营养配餐,进行决策但总体国内对这方面研究不多[13-16],较早的有北方工业大学和北京营养研究所1991年研制的“大学生营养配餐电脑系统”[17],该系统实质是用电脑来手工配餐,还没有能够达到自动配餐和专家支持的水平.四川一研究所研制了“卫生导餐系统”于1997年在湖北通过国家鉴定。
另有科研人员研制了营养评价和营养配餐电脑[18],以及应用微机进行营养配餐和菜肴营养评价[19]。
国外在这方面做了不少的研究[20,21],在二十一世纪初期,国外在利用计算机进行营养配餐方面要领先于我国,而且趋向于方便、实用、小型化的硬件产品。
如日本东芝公司的小型智能菜谱营养机,可根据季节、人体年龄、性别、体重等数据帮助人们选择合乎口味的主副食菜谱并计算出营养含量[22]。
可按用餐人数计算出各种菜的配料和用量;能计算出烹饪时间,具有营养成分测定,运动食醋调节,减肥计划制定与效益计算等多种功能。
现在面向营养治疗已是医院对疾病综合治疗中不可缺少的一个重要组成部分[23],国内外已有很多营养学者和临床医疗工作者应用各种膳食评价方法对膳食因,素与慢性病之
间的关系进行了研究[24],科研人员将营养配餐与医学相结合,对患者进行营养治疗。
还有各种营养配餐软件是面向个人,更人性化,操作简单做到每个人都可以营养膳食。
软件未来的发展趋势是操作起来更便捷,面向的对象更全面,智能化,能够满足用户饮食健康方面的更多查询需求。
2人体饮食健康系统开发工具及语言特点
2.1VisualStudio.NET主要特点如下
2.1.1提供加速开发过程的高效工具
VisualStudio.NET[25]提供了一个统一的、紧密集成的可视化编程的环境,能够帮助用户简化开发网络应用程序过程,并且缩短学习使用方法的时间。
这个平台提供了一种新的语言——C#和共享的HTML、XML和样式单编辑器,用户可以轻松地借助包括C#在内的任何一种VisualStudio语言来开发网络应用程序。
2.1.2提供对各种网络应用程序的快速设计能力
此平台借助了WebForm,这使得用户可以用它们在开发基于窗体的桌面应用程序时,创建跨平台、跨浏览器的网络应用程序。
2.1.3利用XML和WebService来简化分布式计算
XML被用来对上述功能请求的参数进行格式的统一,从而使这些请求能够使用于所有的软件和硬件。
这样使得对WebService的访问能够通过使用任何一种组件模型、任何一种语言、在任何一种操作系统上实现。
而WebService借助标准的Intemet协议在网络上调用商务逻辑。
HTTP被作为WebService传输的基础协议,这个协议使得对功能的请求能够穿越各种团体所使用的防火墙。
2.1.4快速构建中间层商务组件
VisualStudio核心目标就是要给应用程序提供应用程序快速部署工具,基于服务器。
利用VisualStudio.NET平台创建的组件将给您的运作提供非常棒的伸缩性和功能。
2.1.5构建可靠的可伸缩解决方案
借助VisualStudio.NET,用户可以很容易地创建具有可靠的和伸展能力的应用组件和程序。
2.2C#技术概述
C#,这个语言在使得应用程序能够快速开发的同时,并没有抹掉C和C++程序员所在乎的一些特性。
C#忠实地继承了C和C++的优点。
快速应用程序开发(RapidApplicationDevelopment,RAD)的思想与简洁的语法将会使你迅速成为一名优秀的软件开发人员。
该语言是专门为.NET应用而开发出的语言,这从根本上保证了C#与.NET框架的完美结合。
在.NET运行库的支持下,.NET框架的各种优点在C#中表现得很完美。
C#的一些突出的特点:
●精心地面向对象设计
●完整的安全性与错误处理
●简洁的语法
●与Web的紧密结合
●灵活性与兼容性
●版本处理技术
2.2.1简洁的语法
C#的代码在.NET框架不允许直接地内存操作,提供的可操纵环境下运行,没有了指针是它最大的特色。
在C++中被经常使用的操作符(例如:
“:
:
”、“->”和“.,”)已经不再出现。
C#只支持一个“.”。
C#中,用真正的关键字换掉了那些把活动模板库(ActiveTemplateLibrary,ALT)和COM搞得乱糟糟的伪关键字,如(OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX等等)。
C#操作符在.NET类库中都有了新名字。
2.2.2精心地面向对象设计
从Smalltalk起,面向对象的话题始终围绕着任何一种现代程序设计语言。
C#确实具有面向对象的语言所应有的一切特性:
封装、继承和多态性,这些也不出众。
但是通过精心地面向对象设计,由高级商业对象到系统级应用,C#建立广泛组件的最优选择。
在C#的类型系统里,每种类型都可以看成一个对象。
C#提供一个叫做装箱(boxing)和拆箱(unboxing)的机制来完成这种操作,但不会给用户带来困扰。
C#只允许单继承,也就是一个类不再有多个基类,因而避免了类型定义的混乱。
你会在继续的学习中了解到C#中没有了全局函数,没有全局变量,也没有全局常数。
所有必须封装在一个类之中。
你书写的代码会具有更好的可读性,并且大大减少了发生命名冲突的可能性。
而这整个C#的类模型是建立在.NET虚拟对象系统(VisualObjectSystem,VOS)的基础之上,它的对象模型是.NET基础架构的一部分,不再是它本身的组成部分。
在VB中我们得来的丰富的RAD经验,使得C#具备了良好的开发环境。
结合自身强大的面向对象的功能,C#让开发人员的生产效率得到极大的提高。
对于公司来说,软件开发周期缩短会使他们更好面对网络经济的激烈竞争。
在效率和功能的杠杆上人们终于找到了支点。
2.3SQL2008主要特点
2.3.1NET框架
在SQLServer2008中,开发人员通过运用相似的语言,如微软的VisualC#.NET与微软的VisualBasic,将能够创建数据库对象。
开发人员还将能创建两个新的对象——用户定义的类和集合。
2.3.2XML技术
在使用本地网络和互联网与在不同应用软件之间传输数据的时候,可扩展标记语言(XML)是一个很重要的标准。
SQLServer2008也会支持存储和查询可扩展标记语言文件。
2.3.3ADO.NET2.0版本
由SQL类的新的支持,到多活动结果集(MARS)和SQLServer2008中的ADO.NET将推动数据集操纵和存取,实现更大的可升级性和便利性。
2.3.4增强的安全性
SQLServer2008中的新型安全模式将用户与对象分开,提供fine-grainaccess存取并允许对数据存取进行更多的控制。
所有系统表格会作为视图得到实施,对数据库系统对象进行更大程度控制。
2.3.5Transact-SQL的增强性能
SQLServer2008为开发能够升级的数据库应用软件,提供新的语言功能。
这增强的性能含错误处理,功能递归查询,关系运算符和其他数据列排行功能。
2.3.6SQL服务中介
SQL服务中介给大型营业范围应用软件提供了一个分布式和异步应用框架。
2.3.7通告服务
通告服务使业务建立多样的通知应用软件,能够向任何设备,提供个人化以及及时的信息,如股市警报、包裹递送警报、新闻订阅、航空公司票价等。
在SQLServer2008,通告服务与其他技术紧密地融合在了一起,这些技术包括分析服务以及SQLServerManagementStudio。
2.3.8Web服务
在SQLServer2008,开发人员能够在数据库层开发Web服务,将SQLServer当成一个超文本传输协议(HTTP)的侦听器,并且能够为网络服务中心应用软件提供一个新型的数据存取功能。
2.3.9报表服务
在SQLServer2008中,报表服务能够提供报表控制,可通过VisualStudio2010发行。
2.3.10全文搜索功能的增强
SQLServer2008支持丰富的全文应用软件。
服务器的编目功能将得到一定增强,对编目对象提供了更大的灵活性。
查询性能与升级性也大幅得到改进,同时新的管理工具可以为有关全文功能的运行,提供更深入的了解。
2.4C#与ADO.NET
2.4.1 C#中的数据库访问[26]
以.NET框架编写的(包括用C#编写的应用程序)应用程序需要访问数据库时,将使用ADO.NET实现数据库访问。
数据绑定是一种非常易用的访问数据库的方法,可以减少编写的代码量。
一些比较简单任务可以通过纯粹声明式代码来完成。
数据访问框架的ADO.NET是微软的最新产物,是.NET框架的一部分。
在ADO.NET使用之前,开发人员在ASP(ActiveServerPages)或VisualBasic中使用ADO(AtiveXDataObjects),它是一组COM(ComponentObjectModel,组件对象模型)组件,可以通过使用一个简单的封装类提供对底层数据访问代码的访问。
ADO很大程度上简化了数据库访问,但更高级的开发人员(特别是C++程序员)一般更喜欢使用更直接和更快的代码,比如OLEDB(ObjectLinkingandEmbeddingforDatabases)代码库。
ADO.NET比ADO的功能更加的强大。
它在.NET代码中是访问数据库的最好工具。
在.NET框架里的ADO.NET类型(在System.Data命名空间和其子空间下的所有类型)含那些为了访问SQLServer、ODBC、OLEDB及Oracle数据库而优化的类型。
它们基于通用类,因而使用ADO.NET访问不同的DBMS是相类似的。
ADO.NET类型实现两个主要的功能。
● 数据表示:
用于包含数据库数据(如数据表)的类型。
● 数据访问:
用于访问数据库中数据和操作数据库的类型;
上面两种类型之间联系非常密切,在数据库开发中两种类型都会被用到。
严格意义上来讲,可以只用一种数据库访问类型就可以了。
但是,若使用数据访问类型来填充数据表示类型将会节省大量工作。
ADO.NET包括7个重要的基类,其中4个为数据访问类:
● DbConnection;
●DbDataReader;
●DbCommand;
●DbDataAdapter。
其他3个类为数据表示类:
●DataRelation;
● DataTable;
●DataSet。
DataTable类还使用了其他一些很重要的类如:
DataColum、Constraint和DataRow,下面一一介绍它们。
1)DbConnection
DbConnection类应用与数据库的连接。
创建DbConnection对象的时候,应提供和DBMS通信所需要的信息,比如数据库的位置、密码和用于认证的用户名以及要访问的DBMS中的数据库。
其他ADO.NET数据的访问类依靠DbConnection和数据库进行通信。
DbConnection类的角色如图2.1所示。
图2.1 DbConnection类
由DbConnection派生而来的类里,到数据库的连接全是由连接字符串定义的,此字符串存储在属性为DbConnection.ConnectionString中。
数据库连接应只在传输数据时才打开,因而创建DbConnection实例的时候并不是自动连接到数据库。
DbConnection类定义了Open()方法及Close()方法,用于控制连接什么时候能用。
许多其他的ADO.NET类也能控制连接状态,如有一些类在完成操作后关闭它们所使用的连接。
DbConnection对象还可以参与事务。
可用“DbConnection.BeginTransaction()”方法开始事务,或者使用“DbConnection.EnlistTransaction()”作为已有事务的一部分执行操作。
要访问SQLServer或SQLServer速成版中的数据时,会使用SqlConnection,该类是DbConnection中的子类。
一般来讲,DbConnection和SqlConnection及其他子类都被称为连接类。
2)DbCommand
DbCommand类可以提供与数据库交互的主要方法。
用DbCommand对象来执行SQL语句并运行存储过程等。
DbCommand和其派生类被称为命令类。
大多数情况下并不直接使用DbCommand,是用封装DbCommand的其他对象。
但有些时候要对数据库通信实行更多的控制,此时就可以运用DbCommand对象。
DbCommand对象的角色如图2.2所示。
图2.2 DbCommand类
DbCommand中最重要的属性应该是DbCommand.CommandText。
若要执行SQL语句,就必须把语句文本放在此属性中。
可以用DbCommand.CommandType来定要执行的语句类型,以DbCommand.Connection.DbCommand.Tranction来访问底层的连接或事务。
DbCommand对象中可能会有参数化的命令字符串,命令里的参数来于类型为DbCommand.Parameters集合的属性。
它和直接在命令字符串中输入参数相比有非常多的优点。
如果要用DbCommand对象来执行命令,这里有三种选择,这取决于要执行的命令是什么和有些命令不返回结果,该状况下可以用“DbCommand.ExecuteNonQuery()”方法;有一些命令返回一个结果,这时候可用“DbCommand.ExecuteScalar()”方法;最后,有很多命令返回多行数据,这时候可用“DbCommand.ExecuteReader()”方法,它将会返回一个DbDataReader对象。
SQLServer的DbCommand版本名是SqlCommand。
它有一些特殊方法,比如SqlCommand.ExecuteXmlReader()方法,它直接是以XML格式返回结果。
3)DbDataReader
用DbDataReader类能够从结果集中读取数据,像是从执行存储在命令对象中的命令生成的结果集中读取数据。
此类经过高度的优化,能够迅速地访问数据库中的数据。
但是这种优化也有些不方便的情况,比如只能以串行方式一次读取一行数据。
而不能读完两行后然后返回去读取第一行。
一般情况下,可以用DbDataReader对象来提取将要使用的行数据,并把它存储在其他对象中。
如能读取一个结果集中的每行,然后将其存储到在自定义集合或泛型列表对象中自定义类里。
与命令对象相同,许多数据阅读器对象是由ADO.NET命名空间下的其他类使用的,用户不必直接运用它们。
图2.3说明了如何在数据库应用程序里用数据阅读器。
图2.3 DbDataReader类
若要使用数据阅读器对象,先必须要调用DbDataReader.Read()方法选择结果集中的第一行。
用户可以不断调用该方法来移动数据阅读器,使得数据阅读器像结果集中的游标一样总指向一行。
获取到一行的时候,Read()方法返回是true;否则返回是false—如当所有行都已经读完的时候。
也可用DbDataReader.HasRows属性来判别结果集中是否还有其他行。
当前选中的行可用很多属性和方法进行检查。
DbDataReader.FieldCount查看当前行所包含了多少列,并且用DbDataReader的重载索引器来访问各列。
若知道将要访问的列名,还可以使用基于整数的索引器通过位置来获得列,可以用基于字符串的索引器来获得列值。
在两种情况下,该方法都将返回object值,可把其转化为其他类型的数据。
还可用DbDataReader提供的多个方法来直接获得类型化的数据,比如GetInt32()和GetString()是分别将指定列以int和string值返回,列由其索引选择。
要用这些方法取得值类型,那必须先要使用DbDataReader.IsDBNull检查空值;否则,空值将会引发异常。
检查空值是非常关键的步骤,因为任何数据库类型都可以为空。
而这与.NET中的值类型不同,可以为空的值类型比如int,在这种上下文环境中是不被支持的。
DbDataReader也可以够获得关于它包含的数据的元信息—使用DbDataReader.GetSchemaTable()方法,这样做就能够知道列的名称、数据类型以及其他信息,比如列是否包含空值等。
与前面的其他类一样,也有专门用于SQLServer的数据阅读器类,这就是SqlDataReader,本书将使用该类。
该类继承DbDataReader,提供将数据读取为本地SQL类型的方法,这样就能够避免空类型的问题。
这些类型包含在System.Data.Sqltypes命名空间中,是可为空的;如SqlDouble和SqlInt32。
虽然这些类型也可以像标准的值类型那样进行操作,但它们实际上是引用类型。
4)DbDataAdapter
在ADO.NET中,最核心的数据访问类是DbDataAdapter类。
该类设计的目的只有一个即减少存储在数据集对象中的数据和数据库进行数据交换时的干扰,而它比前面介绍过的类型要复杂很多;与前面的类相同的是DbDataAdapter类也有很多派生类,它们被称为数据适配器类。
DbDataAdapter最关键的特性之一在于用于传输数据的命令对象被检测出来,因而可以针对需要对它们进行定制。
图2.4说明了DbDataAdapter类的工作原理,包含它包括的命令对象。
图2.4 DbDataAdapter类
数据适配器使用了4个命令对象,而每个命令对象分别存储在对应的属性中:
SelectCommand——用于查询数据、UpdateCommand——用于编辑数据、InsertCommand——用于添加数据和DeleteCommand——用于删除数据。
要使用适配器,并不是要全部用到这4个属性,比如可以只用适配器来查询数据。
.NET框架能够根据其他命令的值推断出命令的值,比如可以根据查询命令生成更新的插入和删除命令。
在数据适配器中,最常用的两个方法是DbDataAdapter.Update()和DbDataAdapter.Fill()。
Update()方法更新数据库中的数据;Fill()方法从数据库中获取数据。
这两个方法都可以用于数据集或者是单个数据表。
还可以用DbDataAdapter.FillSchema()获取架构数据。
SQLServer中的“DbDataAdapter”版本是Sql
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人体 饮食 健康 系统 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)