版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试实训-2详细设计报告项目名称:通讯录管理系统(CS04)负责人:日期:注:(按照书上的顺序,每个项目一个编号,附在项目名称后面,如三角形问题CS01)
详细设计说明书作用范围该详细设计说明书讨论的是“通讯录管理系统”各模块的详细设计。系统目标后台数据库设计,后台需要建立Adrress数据库,维护两个表groupInfo和people。并且利用windows的ODBC和前台连接。前台使用MCF的CRecordset派生类实现和后台通讯。前台利用CDialog派生类实现用户界面,显示系统信息,接受用户的输入和结果显示。后台数据库设计组信息表groupInfo结构字段含义类型长度默认值主键ID组ID长整型主键,自增groupName组名文本20联系人信息表people结构字段含义类型长度默认值主键ID组ID长整型主键,自增groupID所属组ID长整型1外键FullName姓名文本50Sex性别是/否company工作单位文本255phoneInCompany办公电话文本15homeAdrress住址文本255phineInHome住宅电话文本15M手机文本15Mail邮箱文本50qqQQ文本15msnMSN文本50memory备注文本255表关系结构前台设计描述数据描述主窗口类CAddressListDlg,关联主用户界面,实现主要的程序逻辑。主界面上的主要控件有:IDC_TREE_LIST,IDC_STATIC,IDC_EDIT,IDC_BUTTON……。CGroupInfo类成员变量:long m_id;CString m_groupName;CPeople类成员变量:long m_id; long m_groupId; CString m_fullName; BOOL m_sex; CString m_company; CString m_phoneInCompany; CString m_homeAddress; CString m_phineInHome; CString m_mobile; CString m_mail; CString m_qq; CString m_msn; CString m_memory;界面编辑信息数据结构typedefstruct{ CStringstrName; bool bSex; CStringstrCompany; CString strPhoneInCompany; CString strHomeAddress; CString strPhoneInHome; CString strMobile; CString strMail; CString strQq; CString strMsn; CString strMemory;}INTERFACECTRLDATA;主要功能实现函数添加组函数名OnButtonAppendgroup()主要流程,用户点击“增加组”,输入新组名,选择确认/放弃,确认后,调用添加联系人组函数CappendNewGroupDialog::OnOk()。刷新。流程图:添加联系人函数名OnButtonAppend()主要流程,选择对应组输入新联系人信息,点击增加。CheckInputInfo()验证输入的数据,检查输入是否合法。如果没输入姓名,提示“输入姓名”;如果输入姓名,未输入其他,提示“至少输入一项”。输入合法,取得当前选定组,从界面获取数据。如果组内有多余位置,正常执行插入语句;如果组内无空位,则插入语句中添加nGroupId,执行插入语句。断开与数据库连接,调用SwatchData()清空界面,刷新。流程图:更新联系人函数名OnButtonEdit()主要流程,选择要更新的联系人,更新数据,点击更新。通过CheckInputInfo()判断更新是否合法。如果没输入姓名,提示“输入姓名”;如果输入姓名,未输入其他,提示“至少输入一项”。如果输入合法,取得界面数据,取得当前联系人ID,更新数据,断开数据库连接。查询联系人信息函数名OnOK()主要流程,点击查询按键,输入要查询联系人,确认或放弃。确认后,如果输入为空,则提示查询不能为空。如果有输入,执行查询操作。若查询对象不存在,返回空。若查询对象存在,获取所有数据。如果只有一组数据,显示查询结果;若存在重名,有多组数据,则通过gotoSEEKEND,逐条显示,确认是否显示下一条或放弃跳出循环。断开与数据库连接。删除联系人函数名OnButtonRemove()主要流程,选中要删除对象,如果是组,执行删除组操作。如果是联系人,确认删除或放弃。确认后,执行删除人方法REMOVEPEOPLE()。刷新。删除组函数名OnButtonRemove()主要流程,选中要删除组,如果是联系人,执行删除联系人操作。选中组,确认删除或放弃。确认后,若是【未分组】,提示【未分组】不能删除。若是其他组,执行删除组方法。通讯录的树形显示函数名RefurTree()主要流程,记录当前选中项,如果选中项是联系人,则保存组ID,人ID和hSelItem;如果选中项是组,则保存组ID。初始化Tree(InitTreeList();)。回复选中项。补充:树控件的选择项改变相应函数函数名CAddressListDlg::OnSelchangedTreeList()所属类CAddressListDlg主要流程,当用户在左侧的树控件中选中某一组时,程序关闭此前展开的组而打开当前选中的组;而如果用户在左侧的树控件中选中的是一名联系人时,则在窗口右侧的区域中显示该联系人的详细信息更新窗口控件值函数名CAddressListDlg::SwitchData(),在OnSelchangedTreeList()函数中调用所属类CAddressListDlg主要流程,将数据显示于窗口各控件中或从窗口控件中取得当前输入的值取得当前组ID函数名CAddressListDlg::GetCurrentSelGroupId(),在OnButtonAppend()函数中调用所属类CAddressListDlg主要流程,取得当前的组ID,如果当前选中项为组,则通过GetItemData直接取得其组ID;如果当前选中项为联系人,则先取得其父节点,即当前选中联系人所属的组节点,然后再取得其组ID添加联系人组函数名CAppendNewGroupDialog::OnOK()所属类CAppendNewGroupDialog主要流程,从界面取得用户设定的组名,并检查组名是否为空,然后以输入的组名为查询条件查询当前系统中是否已存在该组名。如果组名不存在,则调用类CGruopInfo的AddNew方法添加一条新纪录,并将新组名赋予CGruopInfo的数据成员m_groupName,最后通过Update方法提交新纪录到数据库中流程图:删除组函数名CAddressListDlg::RemoveGroup(),在OnButtonRemove()函数中调用所属类CAddressListDlg主要流程,将参数传入的组ID对应的组从数据库中删除,其执行机理类同于RemovePeople。在数据库设计阶段,由于设定表gruopInfo与表people之间的关系时,选中了“级联删除相关记录”,所以函数RemovePeople删除参数传入的组ID对应的组时,在表people中所有属于该组的记录也讲被全部删除。(提示:由此可以设计专门的测试用例,查看是否级联删除;以及在数据库设计中加以补充)处理过程描述和关键技术CRecordSet派生类与ODBC的关联,VC数据库类通过成员函数跟ODBC进行关联,进而操作后台数据库的。CStringCPeople::GetDefaultConnect(){ return_T("ODBC;DSN=address");}VC中SQL语句的执行的标准步骤是,定义一个SQL语句原型,并且规范化格式,之后调用相关的接口函数实现对数据库的操作,如:联系人信息查询的关键语句:strSql.Format("SELECT*FROMpeopleWHEREfullName='%s'\ ORDERBYgroupIdDESC,id", strPeopleName); people.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);插入联系人信息的关键语句:strFormat="INSERTINTOpeople(fullName,sex,company, phoneInCompany,homeAddress,phineInHome,mobile,mail,qq,msn,memory)VALUES('%s',%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s')"; strSql.Format(strFormat, interfaceCtrlData.strName, interfaceCtrlData.bSex, interfaceCtrlData.strCompany, interfaceCtrlData.strPhoneInCompany, interfaceCtrlData.strHomeAddress, interfaceCtrlData.strPhoneInHome, interfaceCtrlData.strMobile, interfaceCtrlData.strMail, interfaceCtrlData.strQq, interfaceCtrlData.strMsn, interfaceCtrlData.strMemory); }database.ExecuteSQL(strSql);通讯录的树形显示技术使用“树”控件的成员函数GetItemData和GetChildItem,先显示选中的根节点,判断如果有叶子节点则继续显示叶子节点,一直到最后一个叶子节点显示完成。设计语言描述C语言,采用MFC进行对话框程序开发,其中对于数据库的访问采用嵌入式SQL语句。注释测试准备测试指南对于每个模块,分别选定,进入独立的对话框进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 对2026年新产品质量控制流程的改进商洽函(6篇)
- 餐饮店经理餐厅服务质量管理KPI考核表
- 四川省成都市温江区2026年物理八上期末质量跟踪监视试题含解析
- 江苏省盐城市解放路实验学校2026-2027学年数学六上期末预测试题含解析
- 陕西省博爱中学2027届数学七年级第一学期期末达标检测试题含解析
- 电子商务社交化营销渠道拓展优化解决方案
- 办公会议高效沟通策略方案
- 2026年绵竹市六年级数学第一学期期末调研试题含解析
- 2026年淮安市盱眙县数学六年级第一学期期末综合测试试题含解析
- 2027届桐柏县数学六上期末达标检测模拟试题含解析
- 伊立替康脂质体在消化系统肿瘤中应用的专家共识完整版
- 新闻宣传知识培训
- 实施指南(2025)《DL-T 1650-2016小水电站并网运行规范》
- 附着式升降脚手架施工方案
- 智能路灯分区节能管理方案
- 海南省2024年普通高中学业水平合格性考试地理试卷(含答案)
- 安全生产论文5000字
- 2024-2025学年北师大版八年级数学(下)期末必考题型专项复习【40大考点】解析版
- 战伤救护技术课件
- 销售话术培训
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
评论
0/150
提交评论