软件工程试验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_SHOW);
strText=m_ctrltree.GetItemText(hTreeItem);
if(strText=="用户管理")
{
if(power==1)//是超级管理员的话
strSQL = "select ID,name,password,uright from userinfo";
else
strSQL.Format("select * from userinfo where uright>%d or name ='%s'",power,name);
}
theApp.m_pRS.MoveNext();
i++;
}
}
catch(...)
{
AfxMessageBox("数据库读取失败!");
return;
}
2.选择相应窗口函数:
CString strText,strSQL;
HTREEITEM hTreeItem;
hTreeItem = m_ctrltree.GetSelectedItem();
{
str=theApp.m_pRS.GetFieldString(0);
str.TrimLeft();
str.TrimRight();
if(theApp.trytime>=5)
{//如果登录次数超过五次不成功的话,则退出系统
PostQuitMessage(WM_QUIT);
}
if(str!=m_strPassword)
power="管理员";
else
power="普通用户";
CMainDlg *maindlg;
maindlg = new CMainDlg();
maindlg->Create(IDD_MAINDLG_DIALOG);
this->ShowWindow(SW_HIDE);
maindlg->ShowWindow(SW_SHOW);
3.实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管理员的权限
4.管理员以上可以实现各种项目、论文、著作、专利的输入工作
5.普通用户可以实现项目信息的查询工作
第四章数据流图
树形结构的数据流图如下所示:
第五章系统模块结构图
1.登陆界面:
主要功能点:
1.从数据库中读取数据,看用户名和密码的正确性;
《软件工程上机实验》
实验报告书
——科研管理系统
专业班级
计算机科学与技术074班
学 号
079074120
姓 名
任胜强
指导教师
方木云
安徽工业大学
计算机学院
第一章简介
此次试验,要求完成可视化的科研管理系统。将自己在软件工程课程中学习到的软件设计的知识运用的实际中,加深对知识的理解,也增强自己动手的实践能力。
patent.ShowWindow(SW_HIDE);
}
else if(strText=="纵向管理")
{
strSQL = "select * from vertiproj";
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_SHOW);
userinfo.ShowWindow(SW_SHOW);
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_SHOW);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
else if(strText=="专著管理")
{
userinfo.ShowWindow(SW_HIDE);
}
else if(strText=="横向管理")
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_SHOW);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
5.系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。
主要代码如下:
1.List表格刷新函数
m_ctrlList.GetClientRect(&rect);//获取列表控件的矩形
m_ctrlList.DeleteAllItems();
ID_INDICATOR_POWER,
};
初始化状态栏:
UINT nID;
CRect rect;
GetClientRect(rect);
this->m_nwndStatusBar.Create(this);
this->m_nwndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
retuห้องสมุดไป่ตู้n;
}
theApp.id=m_strUsername;
theApp.m_pRS.ADOExcute("select password,uright,name from userinfo where id ='"+m_strUsername+"'");
if(theApp.m_pRS.nFieldRows==1)
{
theApp.trytime++;
AfxMessageBox("错误的密码!");
}
else
{
npower=theApp.m_pRS.GetFieldNumber(1);
theApp.power=npower;
if(npower==1)
power="超级管理员";
else if(npower==2)
我采用的是运用C++语言在WINDOWS操作平台上,使用MS vc6.0和sql server 2000完成的单机版C/S系统。
第二章试验步骤
1.需求分析:分析该系统需要完成的功能,需要什么开发工具和数据库管理软件
2.数据库设计:分析系统的数据,画出数据库的E-R图,并在此基础上完成数据库表的设计和初始数据的输入
while ( m_ctrlList.DeleteColumn (0));
//先插入列号
try{
for(i=0;i<colums;i++)
{
strText=theApp.m_pRS.GetFieldName(i);
lvColumn.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
maindlg->Initial(theApp.m_pRS.GetFieldString(2),power,npower);
}
}
else
{
AfxMessageBox("错误的用户名!");
}
2.系统主界面
主要功能点:
1.系统功能采用树形菜单映射的方式,分为设置和管理两大部分;
2.设置主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,
论文等级等等,需要超级管理员权限;
3.管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;
4.主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界面上的,根据用户单击树形目录选择相关的信息显示在其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:
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));
vertiproj.Display(id);
else if(horizproj.IsWindowVisible())
horizproj.Display(id);
else if(article.IsWindowVisible())
article.Display(id);
else if(compose.IsWindowVisible())
compose.Display(id);
else if(patent.IsWindowVisible())
patent.Display(id);
}
4.主窗口初始化函数:
状态栏数据结构:
static UINT indicators[]=
{
ID_INDICATOR_USER,
ID_INDICATOR_TIME,
lvColumn.fmt=LVCFMT_LEFT;
lvColumn.cx=rect.right/colums;
if(lvColumn.cx<100)
lvColumn.cx=100;
lvColumn.pszText=strText.GetBuffer(strText.GetLength());
//插入列
7.迭代:根据测试的结果进行迭代,从而形成一个完整可用的系统
第三章需求分析
2.1可行性分析
系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。
2.2基本功能需求
1.系统分成三级用户,不同用户登录界面相同,但是具有的功能不同
2.超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
else if(strText=="论文管理")
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
if(cur>=0&&cur<all)
{//先查看选中的是否在显示的范围之内
id=m_ctrlList.GetItemText(cur,0);
if(userinfo.IsWindowVisible())//判断窗口是否是显示的
userinfo.Display(id);
else if(vertiproj.IsWindowVisible())
3.数据流图的设计:仿照用户的使用习惯,分析从系统启动到系统退出系统数据的使用
4.系统功能模块的设计:按照数据流图的需要,分析出系统需要哪些模块来完成需求分析中提出的功能需求
5.实现和编码:在选定的平台上上运用开发工具和数据库管理软件进行系统的开发
6.测试:每完成一个模块和重要函数,进行相应的单元测试;系统完成之后,需要系统测试
}
theApp.m_pRS.ADOExcute(strSQL);
RefreshList();
3.单击list控件中相应项在下面的子窗体中显示详细信息的函数:
CString id;
int cur=m_ctrlList.GetSelectionMark();
int all=m_ctrlList.GetItemCount();
2.如果用户名输入不正确,提示用户名输入错误;
3.如果密码输入不正确,提示密码输入错误;
4.如果登陆次数多于五次,自动退出系统;
5.用户名和密码正确,则进入系统主界面。
主要代码:
if(m_strUsername.IsEmpty()||m_strPassword.IsEmpty())
{
AfxMessageBox("请将资料填写完整再登录!");
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_SHOW);
patent.ShowWindow(SW_HIDE);
}
else if(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);
strText=m_ctrltree.GetItemText(hTreeItem);
if(strText=="用户管理")
{
if(power==1)//是超级管理员的话
strSQL = "select ID,name,password,uright from userinfo";
else
strSQL.Format("select * from userinfo where uright>%d or name ='%s'",power,name);
}
theApp.m_pRS.MoveNext();
i++;
}
}
catch(...)
{
AfxMessageBox("数据库读取失败!");
return;
}
2.选择相应窗口函数:
CString strText,strSQL;
HTREEITEM hTreeItem;
hTreeItem = m_ctrltree.GetSelectedItem();
{
str=theApp.m_pRS.GetFieldString(0);
str.TrimLeft();
str.TrimRight();
if(theApp.trytime>=5)
{//如果登录次数超过五次不成功的话,则退出系统
PostQuitMessage(WM_QUIT);
}
if(str!=m_strPassword)
power="管理员";
else
power="普通用户";
CMainDlg *maindlg;
maindlg = new CMainDlg();
maindlg->Create(IDD_MAINDLG_DIALOG);
this->ShowWindow(SW_HIDE);
maindlg->ShowWindow(SW_SHOW);
3.实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管理员的权限
4.管理员以上可以实现各种项目、论文、著作、专利的输入工作
5.普通用户可以实现项目信息的查询工作
第四章数据流图
树形结构的数据流图如下所示:
第五章系统模块结构图
1.登陆界面:
主要功能点:
1.从数据库中读取数据,看用户名和密码的正确性;
《软件工程上机实验》
实验报告书
——科研管理系统
专业班级
计算机科学与技术074班
学 号
079074120
姓 名
任胜强
指导教师
方木云
安徽工业大学
计算机学院
第一章简介
此次试验,要求完成可视化的科研管理系统。将自己在软件工程课程中学习到的软件设计的知识运用的实际中,加深对知识的理解,也增强自己动手的实践能力。
patent.ShowWindow(SW_HIDE);
}
else if(strText=="纵向管理")
{
strSQL = "select * from vertiproj";
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_SHOW);
userinfo.ShowWindow(SW_SHOW);
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_SHOW);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
else if(strText=="专著管理")
{
userinfo.ShowWindow(SW_HIDE);
}
else if(strText=="横向管理")
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_SHOW);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
5.系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。
主要代码如下:
1.List表格刷新函数
m_ctrlList.GetClientRect(&rect);//获取列表控件的矩形
m_ctrlList.DeleteAllItems();
ID_INDICATOR_POWER,
};
初始化状态栏:
UINT nID;
CRect rect;
GetClientRect(rect);
this->m_nwndStatusBar.Create(this);
this->m_nwndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
retuห้องสมุดไป่ตู้n;
}
theApp.id=m_strUsername;
theApp.m_pRS.ADOExcute("select password,uright,name from userinfo where id ='"+m_strUsername+"'");
if(theApp.m_pRS.nFieldRows==1)
{
theApp.trytime++;
AfxMessageBox("错误的密码!");
}
else
{
npower=theApp.m_pRS.GetFieldNumber(1);
theApp.power=npower;
if(npower==1)
power="超级管理员";
else if(npower==2)
我采用的是运用C++语言在WINDOWS操作平台上,使用MS vc6.0和sql server 2000完成的单机版C/S系统。
第二章试验步骤
1.需求分析:分析该系统需要完成的功能,需要什么开发工具和数据库管理软件
2.数据库设计:分析系统的数据,画出数据库的E-R图,并在此基础上完成数据库表的设计和初始数据的输入
while ( m_ctrlList.DeleteColumn (0));
//先插入列号
try{
for(i=0;i<colums;i++)
{
strText=theApp.m_pRS.GetFieldName(i);
lvColumn.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
maindlg->Initial(theApp.m_pRS.GetFieldString(2),power,npower);
}
}
else
{
AfxMessageBox("错误的用户名!");
}
2.系统主界面
主要功能点:
1.系统功能采用树形菜单映射的方式,分为设置和管理两大部分;
2.设置主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,
论文等级等等,需要超级管理员权限;
3.管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;
4.主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界面上的,根据用户单击树形目录选择相关的信息显示在其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:
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));
vertiproj.Display(id);
else if(horizproj.IsWindowVisible())
horizproj.Display(id);
else if(article.IsWindowVisible())
article.Display(id);
else if(compose.IsWindowVisible())
compose.Display(id);
else if(patent.IsWindowVisible())
patent.Display(id);
}
4.主窗口初始化函数:
状态栏数据结构:
static UINT indicators[]=
{
ID_INDICATOR_USER,
ID_INDICATOR_TIME,
lvColumn.fmt=LVCFMT_LEFT;
lvColumn.cx=rect.right/colums;
if(lvColumn.cx<100)
lvColumn.cx=100;
lvColumn.pszText=strText.GetBuffer(strText.GetLength());
//插入列
7.迭代:根据测试的结果进行迭代,从而形成一个完整可用的系统
第三章需求分析
2.1可行性分析
系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。
2.2基本功能需求
1.系统分成三级用户,不同用户登录界面相同,但是具有的功能不同
2.超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_HIDE);
patent.ShowWindow(SW_HIDE);
}
else if(strText=="论文管理")
{
userinfo.ShowWindow(SW_HIDE);
horizproj.ShowWindow(SW_HIDE);
if(cur>=0&&cur<all)
{//先查看选中的是否在显示的范围之内
id=m_ctrlList.GetItemText(cur,0);
if(userinfo.IsWindowVisible())//判断窗口是否是显示的
userinfo.Display(id);
else if(vertiproj.IsWindowVisible())
3.数据流图的设计:仿照用户的使用习惯,分析从系统启动到系统退出系统数据的使用
4.系统功能模块的设计:按照数据流图的需要,分析出系统需要哪些模块来完成需求分析中提出的功能需求
5.实现和编码:在选定的平台上上运用开发工具和数据库管理软件进行系统的开发
6.测试:每完成一个模块和重要函数,进行相应的单元测试;系统完成之后,需要系统测试
}
theApp.m_pRS.ADOExcute(strSQL);
RefreshList();
3.单击list控件中相应项在下面的子窗体中显示详细信息的函数:
CString id;
int cur=m_ctrlList.GetSelectionMark();
int all=m_ctrlList.GetItemCount();
2.如果用户名输入不正确,提示用户名输入错误;
3.如果密码输入不正确,提示密码输入错误;
4.如果登陆次数多于五次,自动退出系统;
5.用户名和密码正确,则进入系统主界面。
主要代码:
if(m_strUsername.IsEmpty()||m_strPassword.IsEmpty())
{
AfxMessageBox("请将资料填写完整再登录!");
horizproj.ShowWindow(SW_HIDE);
vertiproj.ShowWindow(SW_HIDE);
article.ShowWindow(SW_HIDE);
compose.ShowWindow(SW_SHOW);
patent.ShowWindow(SW_HIDE);
}
else if(strText=="专利管理")