软件工程试验报告.docx

上传人:牧羊曲112 文档编号:1865734 上传时间:2022-12-22 格式:DOCX 页数:13 大小:656.61KB
返回 下载 相关 举报
软件工程试验报告.docx_第1页
第1页 / 共13页
软件工程试验报告.docx_第2页
第2页 / 共13页
软件工程试验报告.docx_第3页
第3页 / 共13页
软件工程试验报告.docx_第4页
第4页 / 共13页
软件工程试验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《软件工程试验报告.docx》由会员分享,可在线阅读,更多相关《软件工程试验报告.docx(13页珍藏版)》请在三一办公上搜索。

1、软件工程试验报告科研管理系统软件工程上机实验实验报告书科研管理系统专业班级计算机科学与技术074班学 号079074120姓 名任胜强指导教师方木云 安徽工业大学计算机学院12基于CS结构第一章 简介此次试验,要求完成可视化的科研管理系统。将自己在软件工程课程中学习到的软件设计的知识运用的实际中,加深对知识的理解,也增强自己动手的实践能力。我采用的是运用C+语言在WINDOWS操作平台上,使用MS vc6.0和sql server 2000完成的单机版C/S系统。第二章 试验步骤1 需求分析:分析该系统需要完成的功能,需要什么开发工具和数据库管理软件2 数据库设计:分析系统的数据,画出数据库的

2、E-R图,并在此基础上完成数据库表的设计和初始数据的输入3 数据流图的设计:仿照用户的使用习惯,分析从系统启动到系统退出系统数据的使用4 系统功能模块的设计:按照数据流图的需要,分析出系统需要哪些模块来完成需求分析中提出的功能需求5 实现和编码:在选定的平台上上运用开发工具和数据库管理软件进行系统的开发6 测试:每完成一个模块和重要函数,进行相应的单元测试;系统完成之后,需要系统测试7 迭代:根据测试的结果进行迭代,从而形成一个完整可用的系统第三章 需求分析2.1 可行性分析系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。2.2 基本功能需求1 系统分成三级

3、用户,不同用户登录界面相同,但是具有的功能不同2 超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作3 实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管理员的权限4 管理员以上可以实现各种项目、论文、著作、专利的输入工作5 普通用户可以实现项目信息的查询工作第四章 数据流图树形结构的数据流图如下所示:第五章 系统模块结构图1登陆界面:主要功能点:1 从数据库中读取数据,看用户名和密码的正确性;2 如果用户名输入不正确,提示用户名输入错误;3 如果密码输入不正确,提示密码输入错误;4 如果登陆次数多于五次

4、,自动退出系统;5 用户名和密码正确,则进入系统主界面。主要代码:if(m_strUsername.IsEmpty()|m_strPassword.IsEmpty()AfxMessageBox(请将资料填写完整再登录!);return;theApp.id=m_strUsername;theApp.m_pRS.ADOExcute(select password,uright,name from userinfo where id =+m_strUsername+);if(theApp.m_pRS.nFieldRows=1)str=theApp.m_pRS.GetFieldString(0);st

5、r.TrimLeft();str.TrimRight();if(theApp.trytime=5)/如果登录次数超过五次不成功的话,则退出系统PostQuitMessage(WM_QUIT); if(str!=m_strPassword)theApp.trytime+;AfxMessageBox(错误的密码!);elsenpower=theApp.m_pRS.GetFieldNumber(1);theApp.power=npower;if(npower=1)power=超级管理员;else if(npower=2)power=管理员;elsepower=普通用户;CMainDlg *maind

6、lg;maindlg = new CMainDlg();maindlg-Create(IDD_MAINDLG_DIALOG);this-ShowWindow(SW_HIDE);maindlg-ShowWindow(SW_SHOW);maindlg-Initial(theApp.m_pRS.GetFieldString(2),power,npower);elseAfxMessageBox(错误的用户名!);2系统主界面主要功能点:1 系统功能采用树形菜单映射的方式,分为设置和管理两大部分;2 设置主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,论文等级等等,需要超级管理

7、员权限;3 管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;4 主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界面上的,根据用户单击树形目录选择相关的信息显示在其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:5 系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。主要代码如下:1 List表格刷新函数m_ctrlList.GetClientRect(&rect);/获取列表控件的矩形m_ctrlLi

8、st.DeleteAllItems();while ( m_ctrlList.DeleteColumn (0);/先插入列号tryfor(i=0;icolums;i+)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.cx100)lvColumn.cx=100;lvColumn.pszText=strText.GetBuffer(strText.Get

9、Length();/插入列m_ctrlList.InsertColumn(i,&lvColumn);i=0;while(!theApp.m_pRS.ADOEOF()m_ctrlList.InsertItem(i,%d,i);for(j=0;j%d or name =%s,power,name);userinfo.ShowWindow(SW_SHOW);horizproj.ShowWindow(SW_HIDE);vertiproj.ShowWindow(SW_HIDE);article.ShowWindow(SW_HIDE);compose.ShowWindow(SW_HIDE);patent.

10、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);patent.ShowWindow(SW_HIDE);else if(strText=纵向管理)strSQL = select * from vertiproj;userinfo.ShowWindow(SW_HIDE);hori

11、zproj.ShowWindow(SW_HIDE);vertiproj.ShowWindow(SW_SHOW);article.ShowWindow(SW_HIDE);compose.ShowWindow(SW_HIDE);patent.ShowWindow(SW_HIDE);else if(strText=论文管理)userinfo.ShowWindow(SW_HIDE);horizproj.ShowWindow(SW_HIDE);vertiproj.ShowWindow(SW_HIDE);article.ShowWindow(SW_SHOW);compose.ShowWindow(SW_H

12、IDE);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_SHOW);patent.ShowWindow(SW_HIDE);else if(strText=专利管理)userinfo.ShowWindow(SW_HIDE);horizproj.ShowWindow(SW_H

13、IDE);vertiproj.ShowWindow(SW_HIDE);article.ShowWindow(SW_HIDE);compose.ShowWindow(SW_HIDE);patent.ShowWindow(SW_SHOW);theApp.m_pRS.ADOExcute(strSQL);RefreshList();3单击list控件中相应项在下面的子窗体中显示详细信息的函数:CString id;int cur=m_ctrlList.GetSelectionMark();int all=m_ctrlList.GetItemCount();if(cur=0&curm_nwndStatu

14、sBar.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.SetP

15、aneText(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,T

16、VI_ROOT,TVI_LAST);HTREEITEM hsetup=m_ctrltree.InsertItem(设置,1,2,hRootItem,TVI_LAST);HTREEITEM hmanage=m_ctrltree.InsertItem(管理,1,2,hRootItem,TVI_LAST);HTREEITEM hset_school=m_ctrltree.InsertItem(学院设置,2,2,hsetup,TVI_LAST); HTREEITEM hset_task_type=m_ctrltree.InsertItem(课题类型设置,2,2,hsetup,TVI_LAST);HTR

17、EEITEM hset_article_type=m_ctrltree.InsertItem(论文类型设置,2,2,hsetup,TVI_LAST);HTREEITEM hset_embody_level=m_ctrltree.InsertItem(级别收录设置,2,2,hsetup,TVI_LAST);HTREEITEM hset_submit_cor=m_ctrltree.InsertItem(委托单位设置,2,2,hsetup,TVI_LAST);HTREEITEM hma_horizinal=m_ctrltree.InsertItem(横向管理,2,2,hmanage,TVI_LAST

18、);HTREEITEM hma_verticle=m_ctrltree.InsertItem(纵向管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_article=m_ctrltree.InsertItem(论文管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_monography=m_ctrltree.InsertItem(专著管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_patent=m_ctrltree.InsertItem(专利管理,2,2,hmanage,TVI_LAST);HTREEITEM h

19、ma_identification=m_ctrltree.InsertItem(鉴定管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_reward=m_ctrltree.InsertItem(获奖管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_expert=m_ctrltree.InsertItem(专家管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_basinfo=m_ctrltree.InsertItem(基本信息管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_store=

20、m_ctrltree.InsertItem(转储管理,2,2,hmanage,TVI_LAST);HTREEITEM hma_user=m_ctrltree.InsertItem(用户管理,2,2,hmanage,TVI_LAST);时间刷新定时器设置:/ TODO: Add your message handler code here and/or call defaultCTime time;int week;time = CTime:GetCurrentTime();week=time.GetDayOfWeek(); /获取星期几,注意1为星期天,7为星期六CString s = tim

21、e.Format(当前时间:%Y-%m-%d %H:%M:%S 星期);/月份是小写的,分钟是大写的 switch(week)case 1:s+=日;break;case 2:s+=一;break;case 3:s+=二;break;case 4:s+=三;break;case 5:s+=四;break;case 6:s+=五;break;case 7:s+=六;break;m_nwndStatusBar.SetPaneText(2,s);第六章 测试与调试1测设用例设计用例ID问题描述输入数据预期输出实际输出1登陆界面,用户名错误用户名:aaaa密码:aaaa提示用户名错误弹出提示框,提示用

22、户名错误(图c_1)2登陆界面,没有任何信息用户名:空密码:空提示为空弹出提示框,提示填写完整后再登陆(图c_2)3登陆界面,密码错误用户名:admin密码:admi提示密码错误弹出提示框,提示密码错误(图c_3)4登陆界面,全部正确,超级管理员用户名:admin密码:admin进入主界面状态栏显示“超级管理员”进入主界面状态栏显示“超级管理员”5登陆界面,全部正确,一般管理员用户名:rsq密码:342601进入主界面状态栏显示“管理员”进入主界面状态栏显示“管理员”,沿树形目录打开“用户管理”时,用户权限位是“普通用户”6登陆界面,全部正确,普通用户用户名:PT密码:PT进入主界面状态栏显示

23、“普通用户”进入主界面状态栏显示“普通用户”,沿树形目录打开“用户管理”时,用户权限位是“普通用户”,且没有增加和删除功能用例ID问题描述输入数据预期输出实际输出7主功能模块,增加用户,以超级管理员身份登陆用户名:ren密码:ren用户姓名:ren用户权限:普通用户提示:增加用户成功,数据库中用户记录增加一条提示:增加用户成功(图c_4),数据库中用户记录增加一条8主功能模块,增加用户,以超级管理员身份登陆用户名:sheng密码:sheng用户姓名:sheng用户权限:普通用户资料不完整,增加用户失败提示:增加失败,资料不完整(图c_5)9主功能模块,删除用户,管理员身份登陆在list框中选择

24、一条要删除的记录,单击删除删除成功,数据库中减少一条记录提示:成功删除(图c_6)10主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息后,选择“修改”修改成功,数据库中的数据发生相应改变提示:修改成功,数据库中的书库发生相应变化(图c_7)11主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息,使得用户姓名不全,单击“修改”按钮修改失败提示:修改失败,资料不完整(图c_8);12主功能模块,单击树形控件中的其他项目,检查界面发生的变化在界面为用户管理界面时,单击“纵向管理”界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中

25、的数据变成纵向项目的数据界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据13主功能界面初始化数据单击“纵向管理”详细信息模块变成“纵向管理”模块的界面,在下来选择框中,委托单位,项目类别,以及参加人的院的待选项为从数据库基础信息中读入的信息详细信息模块变成“纵向管理”模块的界面,在下来选择框中,委托单位,项目类别,以及参加人的院的待选项为从数据库基础信息中读入的信息 图c_1 图c_2 图c_3 图c_4 图c_5 图c_6 图c_7 图c_8 2 发现的问题a. 当用户在增加或者删除一条记录后,在列表框中没有及时更新其内容,必须要到树形控件中重新单击一次该

26、内容对应的树形目录,才能刷新。原因在于子对话框成员函数无法调用父对话框成员函数。可以通过自己生成一个消息的形式来解决,即为父对话框(系统主界面)设计一个消息,然后每次子窗口增加,修改或删除一条记录后,将这个消息发送给操作系统,让操作系统来通知主界面的及时更新。b. 在设计数据库时,为了体现各表间的关系,外键设置的比较复杂。但是,在用系统时,经常会发生破坏这种依赖关系的操作,导致操作失败。不知道能否找到一个权衡点,来平衡这种操作。c. 上课时,老师说道,在显示数据库中信息时,不要一次性全部显示,而是选择前面多少条。这里我没有实现这样的功能,而且不知道该怎样实现。我们在数据库学习中也没有涉及到这一方面的内容。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号