{
strText=theApp.m_pRS.GetFieldName(i);
lvColumn。
mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
lvColumn.fmt=LVCFMT_LEFT;
lvColumn。
cx=rect.right/colums;
if(lvColumn.cx〈100)
lvColumn.cx=100;
lvColumn.pszText=strText。
GetBuffer(strText。
GetLength());
//插入列
m_ctrlList。
InsertColumn(i,&lvColumn);
}
i=0;
while(!
theApp。
m_pRS。
ADOEOF())
{
m_ctrlList。
InsertItem(i,”%d”,i);
for(j=0;j〈colums;j++)
{
m_ctrlList。
SetItemText(i,j,theApp.m_pRS。
GetFieldString(j));
}
theApp。
m_pRS。
MoveNext();
i++;
}
}
catch(。
.。
)
{
AfxMessageBox("数据库读取失败!
”);
return;
}
2.选择相应窗口函数:
CStringstrText,strSQL;
HTREEITEMhTreeItem;
hTreeItem=m_ctrltree.GetSelectedItem();
strText=m_ctrltree.GetItemText(hTreeItem);
if(strText==”用户管理")
{
if(power==1)//是超级管理员的话
strSQL=”selectID,name,password,urightfromuserinfo”;
else
strSQL。
Format(”select*fromuserinfowhereuright>%dorname=’%s’",power,name);
userinfo.ShowWindow(SW_SHOW);
horizproj.ShowWindow(SW_HIDE);
vertiproj。
ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose。
ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
elseif(strText=="横向管理”)
{
userinfo.ShowWindow(SW_HIDE);
horizproj。
ShowWindow(SW_SHOW);
vertiproj。
ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose。
ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
elseif(strText==”纵向管理")
{
strSQL="select*fromvertiproj";
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
vertiproj。
ShowWindow(SW_SHOW);
article.ShowWindow(SW_HIDE);
compose。
ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
elseif(strText=="论文管理”)
{
userinfo。
ShowWindow(SW_HIDE);
horizproj。
ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_SHOW);
compose。
ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
elseif(strText==”专著管理”)
{
userinfo.ShowWindow(SW_HIDE);
horizproj。
ShowWindow(SW_HIDE);
vertiproj。
ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_SHOW);
patent.ShowWindow(SW_HIDE);
}
elseif(strText==”专利管理”)
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
vertiproj。
ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent。
ShowWindow(SW_SHOW);
}
theApp.m_pRS。
ADOExcute(strSQL);
RefreshList();
3.单击list控件中相应项在下面的子窗体中显示详细信息的函数:
CStringid;
intcur=m_ctrlList。
GetSelectionMark();
intall=m_ctrlList.GetItemCount();
if(cur>=0&&cur〈all)
{//先查看选中的是否在显示的范围之内
id=m_ctrlList。
GetItemText(cur,0);
if(userinfo.IsWindowVisible())//判断窗口是否是显示的
userinfo。
Display(id);
elseif(vertiproj.IsWindowVisible())
vertiproj.Display(id);
elseif(horizproj.IsWindowVisible())
horizproj。
Display(id);
elseif(article.IsWindowVisible())
article。
Display(id);
elseif(compose.IsWindowVisible())
compose.Display(id);
elseif(patent。
IsWindowVisible())
patent。
Display(id);
}
4.主窗口初始化函数:
状态栏数据结构:
staticUINTindicators[]=
{
ID_INDICATOR_USER,
ID_INDICATOR_TIME,
ID_INDICATOR_POWER,
};
初始化状态栏:
UINTnID;
CRectrect;
GetClientRect(rect);
this—>m_nwndStatusBar。
Create(this);
this—〉m_nwndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
m_nwndStatusBar。
MoveWindow(0,rect。
bottom-20,rect。
right,20);
m_nwndStatusBar.SetPaneStyle(2,SBPS_STRETCH);
m_nwndStatusBar.SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOBORDERS,rect.right/3-20);
m_nwndStatusBar。
SetPaneText(0,”当前用户:
”+user);
m_nwndStatusBar。
SetPaneInfo(1,nID,SBPS_STRETCH|SBPS_NOBORDERS,rect.right/3-20);
m_nwndStatusBar.SetPaneText(1,”用户权限:
”+spower);
m_nwndStatusBar.SetPaneInfo(2,nID,SBPS_STRETCH|SBPS_NOBORDERS,rect。
right/3);
SetTimer(1,1000,NULL);
树形目录的初始化:
hRootItem=m_ctrltree.InsertItem(”科研管理系统",0,2,TVI_ROOT,TVI_LAST);
HTREEITEMhsetup=m_ctrltree。
InsertItem("设置",1,2,hRootItem,TVI_LAST);
HTREEITEMhmanage=m_ctrltree.InsertItem("管理”,1,2,hRootItem,TVI_LAST);
HTREEITEMhset_school=m_ctrltree.InsertItem("学院设置”,2,2,hsetup,TVI_LAST);
HTREEITEMhset_task_type=m_ctrltree。
InsertItem(”课题类型设置",2,2,hsetup,TVI_LAST);
HTREEITEMhset_article_type=m_ctrltree。
InsertItem(”论文类型设置",2,2,hsetup,TVI_LAST);
HTREEITEMhset_embody_level=m_ctrltree.InsertItem(”级别收录设置",2,2,hsetup,TVI_LAST);
HTREEITEMhset_submit_cor=m_ctrltree。
InsertItem("委托单位设置",2,2,hsetup,TVI_LAST);
HTREEITEMhma_horizinal=m_ctrltree。
InsertItem("横向管理",2,2,hmanage,TVI_LAST);
HTREEITEMhma_verticle=m_ctrltree.InsertItem("纵向管理",2,2,hmanage,TVI_LAST);
HTREEITEMhma_article=m_ctrltree。
InsertItem("论文管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_monography=m_ctrltree。
InsertItem(”专著管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_patent=m_ctrltree。
InsertItem("专利管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_identification=m_ctrltree.InsertItem(”鉴定管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_reward=m_ctrltree。
InsertItem(”获奖管理",2,2,hmanage,TVI_LAST);
HTREEITEMhma_expert=m_ctrltree。
InsertItem("专家管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_basinfo=m_ctrltree。
InsertItem("基本信息管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_store=m_ctrltree.InsertItem(”转储管理”,2,2,hmanage,TVI_LAST);
HTREEITEMhma_user=m_ctrltree。
InsertItem(”用户管理",2,2,hmanage,TVI_LAST);
时间刷新定时器设置:
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
CTimetime;
intweek;
time=CTime:
:
GetCurrentTime();
week=time。
GetDayOfWeek();//获取星期几,注意1为星期天,7为星期六
CStrings=time.Format("当前时间:
%Y—%m—%d%H:
%M:
%S星期”);//月份是小写的,分钟是大写的
switch(week)
{
case1:
s+=”日";break;
case2:
s+="一";break;
case3:
s+="二";break;
case4:
s+="三";break;
case5:
s+="四";break;
case6:
s+=”五”;break;
case7:
s+=”六";break;
}
m_nwndStatusBar。
SetPaneText(2,s);
第六章测试与调试
1.测设用例设计
用例ID
问题描述
输入数据
预期输出
实际输出
1
登陆界面,用户名错误
用户名:
aaaa
密码:
aaaa
提示用户名错误
弹出提示框,提示用户名错误(图c_1)
2
登陆界面,没有任何信息
用户名:
空
密码:
空
提示为空
弹出提示框,提示填写完整后再登陆(图c_2)
3
登陆界面,密码错误
用户名:
admin
密码:
admi
提示密码错误
弹出提示框,提示密码错误(图c_3)
4
登陆界面,全部正确,超级管理员
用户名:
admin
密码:
admin
进入主界面状态栏显示“超级管理员”
进入主界面状态栏显示“超级管理员"
5
登陆界面,全部正确,一般管理员
用户名:
rsq
密码:
342601
进入主界面状态栏显示“管理员"
进入主界面状态栏显示“管理员",沿树形目录打开“用户管理”时,用户权限位是“普通用户”
6
登陆界面,全部正确,普通用户
用户名:
PT
密码:
PT
进入主界面状态栏显示“普通用户”
进入主界面状态栏显示“普通用户”,沿树形目录打开“用户管理”时,用户权限位是“普通用户”,且没有增加和删除功能
用例ID
问题描述
输入数据
预期输出
实际输出
7
主功能模块,增加用户,以超级管理员身份登陆
用户名:
ren
密码:
ren
用户姓名:
ren
用户权限:
普通用户
提示:
增加用户成功,数据库中用户记录增加一条
提示:
增加用户成功(图c_4),数据库中用户记录增加一条
8
主功能模块,增加用户,以超级管理员身份登陆
用户名:
sheng
密码:
sheng
用户姓名:
sheng
用户权限:
普通用户
资料不完整,增加用户失败
提示:
增加失败,资料不完整(图c_5)
9
主功能模块,删除用户,管理员身份登陆
在list框中选择一条要删除的记录,单击删除
删除成功,数据库中减少一条记录
提示:
成功删除(图c_6)
10
主功能模块,修改用户信息,普通用户登陆
列表框中之后自己的信息,单击选中,修改信息后,选择“修改"
修改成功,数据库中的数据发生相应改变
提示:
修改成功,数据库中的书库发生相应变化(图c_7)
11
主功能模块,修改用户信息,普通用户登陆
列表框中之后自己的信息,单击选中,修改信息,使得用户姓名不全,单击“修改”按钮
修改失败
提示:
修改失败,资料不完整(图c_8);
12
主功能模块,单击树形控件中的其他项目,检查界面发生的变化
在界面为用户管理界面时,单击“纵向管理”
界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据
界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据
13
主功能界面初始化数据
单击“纵