软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx

上传人:b****4 文档编号:16944521 上传时间:2022-11-27 格式:DOCX 页数:29 大小:589.16KB
下载 相关 举报
软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx_第1页
第1页 / 共29页
软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx_第2页
第2页 / 共29页
软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx_第3页
第3页 / 共29页
软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx_第4页
第4页 / 共29页
软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx

《软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。

软工导论实验报告健康管理系统的设计与实现Word文档下载推荐.docx

(1)支持的终端数:

1。

(2)支持的并行操作的使用者数:

3-10,根据计算机内存和CPU决定。

(3)处理的文件和记录数:

数据库文件*1,记录根据操作决定。

(4)根据软件提示进行输入,否则会提示出错

5.系统界面与接口需求

5.1界面需求

界面的原则要求,如方便、简洁、美观、一致等。

整个系统的界面风格定义,某些功能模块的特殊的界面要求。

(1)输入设备:

键盘、鼠标;

(2)输出设备:

显示器;

(3)显示风格:

对话框;

(4)显示方式:

1024*768;

(5)输出格式:

对话框中的字符集。

5.2接口需求

(1)用户接口

采用对话框式的界面,结合菜单设计,并且采用智能提示,给用户提供最大的便利和最好的操作可行性。

支持用键盘和鼠标同时操作。

(2)软件接口

运行环境:

windowsxp/windows7/windows8

数据库连接:

access2007、ADO动态链接库

6.可行性分析

1、技术可行性

目前能够通过VC++6.0进行系统的程序编写;

能够通过ADO方法连接ACCESS数据库,并且对其进行操作(增删改查);

2、操作可行性

系统能够提示第一次使用本系统的用户如何操作,并且界面简单大方,因此具有很好的操作可行性。

3、经济可行性

开发成本忽略不计。

二、系统设计

1.引言

本章对该文档的目的、功能范围、术语、相关文档、参考资料、版本更新进行说明。

1.1目的

本文档的目旨在推动软件工程的规范化,使设计人员遵循统一的概要设计书写规范,节省制作文档的时间,降低系统实现的风险,做到系统设计资料的规范性与全面性,以利于系统的实现、测试、维护、版本升级等。

1.2命名规则

变量对象命名规则:

根据变量的实际意义命名,如姓名:

name;

年龄:

age;

身高:

height;

体重:

weight。

数据库对象命名规则:

根据字段的实际意义命名,但不能使用数据库的保留关键字(否则会出错)。

如账号:

username;

密码:

password1(防止使用保留关键字)。

2.系统设计

2.1方案设计

选择方案1.

2.2软件结构设计

层次图:

本系统包含两个主要模块,用户管理模块和健康管理模块。

用户管理模块包含账户管理和个人信息管理,账户管理包含三个功能:

注册、登录、改密码;

个人信息管理提供一个功能:

更改个人信息。

健康管理模块提供三个功能:

安排三餐、安排运动、实时提醒。

2.3数据库设计

1、数据库文件:

一个文件:

user.mdb;

2、表:

用户信息表一张、三餐安排表若干、运动安排表一张、日程安排表若干;

3、用户信息表包括7个字段:

账号、密码、姓名、性别、年龄、身高、体重;

4、三餐安排表各包含3个字段:

早餐、午餐、晚餐;

5、运动安排表各包含个字段:

身高、体重、年龄、性别、运动消耗卡路里量。

2.4详细设计

各个功能模块间传递用户账号的方式:

建立临时的TXT文件,在登录成功时保存账号,进而在调用其他模块时寻找到账号。

三、系统实现

1、编程环境概述

编程环境:

VC++6.0(MFC程序)

数据库:

access2007(连接方法:

ADO)

操作系统:

windows7

2、程序源代码

2.1三餐安排功能模块源代码

1.描述

1.1代码功能描述:

实时更新对用户安排的三餐信息以及BMI指数。

1.2代码描述:

(自然语言)

开始;

读取用户账号;

打开数据库;

读取数据库中用户信息表的内容;

读取所有的用户信息;

If(用户第一次使用本软件)打开用户信息更改界面;

If(身高或体重数据为空)返回,结束;

根据身高体重计算BMI指数;

在主界面显示BMI指数;

根据BMI指数打开对应的三餐安排数据库表;

读取安排信息,并且写入对应的列表控件中;

关闭数据库和其他文件;

结束。

2.代码(共154行,包括必要的空行)

voidCMyDlg:

:

OnTimer(UINTnIDEvent)

{

CStringfilename="

D:

\\user.txt"

;

CStdioFilefile;

file.Open(filename,CFile:

modeRead);

//用只读方式打开临时TXT文件,以便读取user的ID

CStringuser;

file.ReadString(user);

_ConnectionPtrm_pConnection;

_variant_tRecordsAffected;

_RecordsetPtrm_pRecordset;

//设置操作数据库的ADO对象指针

//下面是打开数据库

try

{

m_pConnection.CreateInstance(__uuidof(Connection));

m_pConnection->

Open("

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource=user.mdb"

"

"

adModeUnknown);

}

catch(_com_errore)

CStringerrormessage;

errormessage.Format("

打开数据库失败!

\r错误信息:

%s"

e.ErrorMessage());

AfxMessageBox(errormessage);

return;

//下面读取数据库(用户信息)中的内容

try

{

m_pRecordset.CreateInstance("

ADODB.Recordset"

);

charstrcmd[1024];

sprintf(strcmd,"

select*fromusertable"

m_pRecordset=m_pConnection->

Execute(strcmd,&

RecordsAffected,adCmdText);

//将usertable表里面的所有数据读取到recordset这个东西里面,以后就直接用这个东西操作表了

错误!

}

//下面寻找对应的用户信息

_variant_ttheuser,theheight,theweight,theage,thename,thesex;

CStringtuser,theight,tweight,tname,tage,tsex;

while(!

m_pRecordset->

adoEOF)//用while循环直到把这个表读完,即做一次遍历

theuser=m_pRecordset->

GetCollect("

username"

theheight=m_pRecordset->

身高(厘米)"

theweight=m_pRecordset->

体重(斤)"

theage=m_pRecordset->

年龄"

thesex=m_pRecordset->

性别"

//先用_variant_t这个变量读取数据库中的字符串

thename=m_pRecordset->

姓名"

if(theuser.vt==VT_NULL)tuser="

elsetuser=theuser.bstrVal;

if(thename.vt==VT_NULL)tname="

elsetname=thename.bstrVal;

if(theheight.vt==VT_NULL)theight="

elsetheight=theheight.bstrVal;

if(theweight.vt==VT_NULL)tweight="

elsetweight=theweight.bstrVal;

if(thesex.vt==VT_NULL)tsex="

elsetsex=thesex.bstrVal;

if(theage.vt==VT_NULL)tage="

elsetage=theage.bstrVal;

//然后把_variant_t类型强制转换为CString类

if(tuser==user)break;

//退出循环

m_pRecordset->

MoveNext();

//如果当前所指的用户名不对,就指向下一个,直到最后一个

if(tweight=="

&

theight=="

tage=="

tsex=="

tname=="

KillTimer

(1);

MessageBox("

"

file.Close();

CInformationdlg;

dlg.DoModal();

SetTimer(1,150,NULL);

file.Open(filename,CFile:

file.ReadString(user);

||theight=="

)return;

intheight,weight;

height=_ttoi(theight);

weight=_ttoi(tweight);

//BMI指数单位:

kg/m^2

bmi=((float)weight/2)/pow((float)height/100,2);

CStringstr;

str.Format("

%f"

bmi);

SetDlgItemText(IDC_EDIT2,str);

//把数据库中的三餐表格插入表格中(按三个等级分)

//先读取数据库(安排一日三餐的表格)中的内容

if(bmi<

18.5)sprintf(strcmd,"

select*frommealsforthin"

22.9&

bmi>

select*frommealsfornormal"

if(bmi>

22.9)sprintf(strcmd,"

select*frommealsforfat"

m_pRecordset=m_pConnection->

//下面把三餐安排写入列表控件

intn=0;

MoveFirst();

adoEOF)

n++;

//记录的总数,用n表示

m_pRecordset->

}//记录表的总记录数,为以后的添加功能做准备

_variant_tthebreakfast,thenoon,thedinner;

CStringtbreakfast,tnoon,tdinner;

intindex=0;

m_list.DeleteAllItems();

thebreakfast=m_pRecordset->

breakfast"

thenoon=m_pRecordset->

noon"

thedinner=m_pRecordset->

dinner"

if(thebreakfast.vt==VT_NULL)tbreakfast="

elsetbreakfast=thebreakfast.bstrVal;

if(thenoon.vt==VT_NULL)tnoon="

elsetnoon=thenoon.bstrVal;

tdinner=thedinner.bstrVal;

if(thedinner.vt==VT_NULL)tdinner="

elsetdinner=thedinner.bstrVal;

m_list.InsertItem(index,tbreakfast);

m_list.SetItemText(index,0,tbreakfast);

m_list.SetItemText(index,1,tnoon);

m_list.SetItemText(index,2,tdinner);

index++;

}//用这个循环往列表中写入数据

file.Close();

}

2.1登录功能模块源代码

通过访问数据库中的用户信息进行登录。

1.2代码描述(自然语言)

读取输入的账号和密码;

打开账户信息数据库;

读取数据库中所有的账号和对应的密码;

在所有账号中寻找用户输入的账号;

If(没有找到匹配的账号)提示,返回;

If(密码正确)提示成功,打开主程序,将账号写入user.txt用于后续操作;

Else提示密码错误,返回;

关闭数据库;

2.代码(78行,无空行)

voidCLogin:

OnOK()

CStringpassword;

GetDlgItemText(IDC_user,user);

GetDlgItemText(IDC_password,password);

//打开数据库

//这两行代码用来打开数据库,具体含义不懂,但是文件名要写对,打开方式不用管

//如果出错则返回

//读取数据库的内容

_variant_ttheuser,thepassword;

CStringtuser,tpassword;

thepassword=m_pRecordset->

password1"

tuser=(TCHAR*)(_bstr_t)theuser;

tpassword=(TCHAR*)(_bstr_t)thepassword;

//如果找到用户名,则退出循环

}

if(tuser!

=user){MessageBox("

此用户不存在!

提示"

return;

if(tpassword==password)//如果密码正确就打开程序

CStringfilename="

CStdioFilefile;

modeCreate|CFile:

modeWrite);

//创建TXT文件

file.SeekToBegin();

file.WriteString(user);

//把用户名写入txt//如果没有找到输入的用户名,则说明用户还没有注册,或者用户名输错了

//必须关闭,不然没有保存,会出现致命错误!

successed"

CDialog:

OnOK();

CMyDlgdlg;

else

{MessageBox("

密码错误!

Close();

m_pRecordset=NULL;

m_pConnection=NULL;

四、系统测试

1.概述

本次测试将对两个功能模块进行详细测试,分别是修改密码模块和安排三餐模块。

2.测试

2.1单元测试

表5-1测试模块清单

编号

模块中文名

模块功能简述

接口简述

M1-3

修改密码

提供修改密码的功能

对话框

M2-1

安排三餐

为用户安排三餐

2.2测试报告

模块一

程序流程如下图

环形复杂度:

3

测试用例设计

(已有用户名为admin,密码为123456的账户)

输入数据

预期输出

说明

测试用例1

旧密码:

123,新密码:

jdfohewk,确认密码:

提示:

密码错误

旧密码为123456,输入错误

测试用例2

123456,新密码:

修改成功

旧密码正确,新密码=确认密码

测试用例3

123

修改失败,请确认两次密码输入一致

旧密码正确,新密码!

=确认密码

一、输入条件

1、条件1:

旧密码错误,新密码=确认密码;

路径:

1→2→3→4→5→6→5

2、条件2:

旧密码正确,新密码=确认密码;

1→2→3→4→5→6→7→8→9

3、条件3:

=确认密码。

1→2→3→4→5→6→7→5

二、输出内容

1、提示:

密码错误。

2、修改成功。

3、提示:

两次新密码不一致。

三、测试结果:

成功,模块没有问题。

四、测试人:

肖飞。

模块二

1

1→2→3→4→5→6→7

测试结果:

工作正常

测试人:

肖飞

3.系统主要运行界面

4.系统测试结论

测试日期:

2016.11.12

测试地点:

软件学院机房

测试环境:

v

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1