ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:407.30KB ,
资源ID:10691651      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10691651.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程试验报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程试验报告.docx

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

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

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

4、代码:if(m_strUsername.IsEmpty()|m_strPassword.IsEmpty() AfxMessageBox(请将资料填写完整再登录!); return; theApp.id=m_strUsername;Username+); str.TrimLeft(); str.TrimRight(); if(theApp.trytime=5) /如果登录次数超过五次不成功的话,则退出系统 PostQuitMessage(WM_QUIT); if(str!=m_strPassword) theApp.trytime+; AfxMessageBox(错误的密码!); else th

5、eApp.power=npower; if(npower=1) power=超级管理员; else if(npower=2) power=管理员; else power=普通用户; CMainDlg *maindlg; maindlg = new CMainDlg(); maindlg-Create(IDD_MAINDLG_DIALOG); this-ShowWindow(SW_HIDE); maindlg-ShowWindow(SW_SHOW); else AfxMessageBox(错误的用户名!); 2系统主界面主要功能点:1系统功能采用树形菜单映射的方式,分为设置和管理两大部分;2设置

6、主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,论文等级等等,需要超级管理员权限;3管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;4主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界面上的,根据用户单击树形目录选择相关的信息显示在其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:5系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。主要代码如下:1List表格刷新函数 m_c

7、trlList.GetClientRect(&rect);/获取列表控件的矩形 m_ctrlList.DeleteAllItems(); while ( m_ctrlList.DeleteColumn (0); /先插入列号 try for(i=0;icolums;i+) ame(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=

8、strText.GetBuffer(strText.GetLength(); /插入列 m_ctrlList.InsertColumn(i,&lvColumn); i=0; 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_HI

9、DE); patent.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.Sh

10、owWindow(SW_HIDE); horizproj.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(

11、SW_SHOW); 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_HIDE); compose.ShowWindow(SW_SHOW); patent.ShowWindow(SW_HIDE); else if(strText=专利管理) userinfo.Sh

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

13、(cur=0&curm_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-

14、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_ct

15、rltree.InsertItem(科研管理系统,0,2,TVI_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.InsertIte

16、m(课题类型设置,2,2,hsetup,TVI_LAST); HTREEITEM 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

17、.InsertItem(横向管理,2,2,hmanage,TVI_LAST); 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.InsertIt

18、em(专利管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_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(基本信息

19、管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_store=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 default CTime time; int week; time = CTime:GetCurrentTime(); week=time.

20、GetDayOfWeek(); /获取星期几,注意1为星期天,7为星期六 CString s = time.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测设用例设计用例

21、ID问题描述输入数据预期输出实际输出1登陆界面,用户名错误用户名:aaaa密码:aaaa提示用户名错误弹出提示框,提示用户名错误(图c_1)2登陆界面,没有任何信息用户名:空密码:空提示为空弹出提示框,提示填写完整后再登陆(图c_2)3登陆界面,密码错误用户名:admin密码:admi提示密码错误弹出提示框,提示密码错误(图c_3)4登陆界面,全部正确,超级管理员用户名:admin密码:admin进入主界面状态栏显示“超级管理员”进入主界面状态栏显示“超级管理员”5登陆界面,全部正确,一般管理员用户名:rsq密码:342601进入主界面状态栏显示“管理员”进入主界面状态栏显示“管理员”,沿树形

22、目录打开“用户管理”时,用户权限位是“普通用户”6登陆界面,全部正确,普通用户用户名:PT密码:PT进入主界面状态栏显示“普通用户”进入主界面状态栏显示“普通用户”,沿树形目录打开“用户管理”时,用户权限位是“普通用户”,且没有增加和删除功能用例ID问题描述输入数据预期输出实际输出7主功能模块,增加用户,以超级管理员身份登陆用户名:ren密码:ren用户姓名:ren用户权限:普通用户提示:增加用户成功,数据库中用户记录增加一条提示:增加用户成功(图c_4),数据库中用户记录增加一条8主功能模块,增加用户,以超级管理员身份登陆用户名:sheng密码:sheng用户姓名:sheng用户权限:普通用

23、户资料不完整,增加用户失败提示:增加失败,资料不完整(图c_5)9主功能模块,删除用户,管理员身份登陆在list框中选择一条要删除的记录,单击删除删除成功,数据库中减少一条记录提示:成功删除(图c_6)10主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息后,选择“修改”修改成功,数据库中的数据发生相应改变提示:修改成功,数据库中的书库发生相应变化(图c_7)11主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息,使得用户姓名不全,单击“修改”按钮修改失败提示:修改失败,资料不完整(图c_8);12主功能模块,单击树形控件中的其他项目

24、,检查界面发生的变化在界面为用户管理界面时,单击“纵向管理”界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据13主功能界面初始化数据单击“纵向管理”详细信息模块变成“纵向管理”模块的界面,在下来选择框中,委托单位,项目类别,以及参加人的院的待选项为从数据库基础信息中读入的信息详细信息模块变成“纵向管理”模块的界面,在下来选择框中,委托单位,项目类别,以及参加人的院的待选项为从数据库基础信息中读入的信息 图c_1 图c_2 图c_3 图c_4 图c_5 图c_6 图c_7 图c

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2