




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2011-2012(2)软件工程导论实验报告 学院: 计算机学院班级: 软件工程班姓名: 学号: 实验一:项目计划、分析和设计 实验日期 2013 年 5 月 8 日 实验目的 初步了解结构化分析、设计方法的原理、步骤以及各阶段的文档,练习撰写简要的需求文档、设计文档。 实验内容 通讯录管理程序 实验原理和步骤 结构化分析(SA) 分层数据流图 面向数据流分析(DFA)的设计方法 实验结果 说明:main()函数打开通讯录Menu()函数选择要操作的功能Load()函数读取文件内容到通讯录List()函数显示通讯录中的内容App函数添加记录到通讯录Search函数按姓名查找Dele函数删除记
2、录Save函数保存记录Sort函数按姓名排序各函数流程图如下主函数Switch功能显示通讯录内容删除函数排序函数保存到通讯录查找函数显示函数打开函数保存函数添加记录添加记录:开 始返回主菜单输入联系人的姓名,电话,地址,群组是否继续添加是否3查找函数:开 始输出:选择何种方式查找输入方式按姓名查找按电话查找按群组查找输出查找到的所以信息返回主菜单联系人是否存在是是没有该相关信息删除函数:开 始输入要删除联系人的姓名联系人是否存在返回主菜单成功删除!否是没有该联系人排序函数:开 始返回主菜单按姓名排序是否显示排序后结果!否是保存函数:开 始联系人是否为0个写入信息否是返回主菜单没有信息可保存信息
3、保存成功显示函数:开 始选择何种方式显示!输入方式分类输出!直接输出!返回主菜单 实验总结 规划一个软件系统,要考虑好每一步要做什么,各个方面都要得到深入的了解;并自己要把握好每一步,不能马虎。正确分配好每一步,每个过程,就像规划人生一样,完成每个步骤,这样可以让我们更加清楚的知道我们在做什么、应该怎么做、实验二:编码 实验日期 2013 年 5 月 8 日 实验目的 培养良好的编码风格。 实验内容 根据详细设计的结果,按结构化思想编写代码,并对程序进行注释。 实验原理和步骤 编码风格强调“清晰易读”而不是个人技巧。请注意变量或函数的名字要有意义,表达式和语句要一目了然,排版风格、循环语句风格
4、要保持一致,函数宏的定义,常数的定义,注释要全面。 注释包括序言性注释、函数模块注释和程序语句注释。 实验报告要求 /用数组实现的简单通讯录#include#include#define SIZE 80struct recordint num;char name9;int age;char tel13,email20,addr20,zip7;recSIZE;int i,m=0; /m为当前通讯录中的记录数char menu(); /选单void load(); /读入void list(); /显示void app(); /添加void search(); /查找void dele(); /删
5、除void save(); /保存void sort(); /排序/*main()char choice;while(1)choice = menu();switch(choice)case1:printf(显示通讯录中的内容。n);list(); break;case2:printf(添加记录。n);app(); break;case3:printf(按姓名查找。n);search(); break;case4:printf(从通讯录中的删除内容。n);dele(); break;case5:printf(按姓名对通讯录中的内容重新排序。n);sort(); break;case6:prin
6、tf(保存通讯录中的内容到文件。n);save(); break;case7:printf(从文件读记录到通讯录。n);load(); break;case0:printf(退出通讯录管理系统。n);save(); break;default:printf(输入错误!);if(choice=0)break;printf(n按任意键继续.!);getchar();/*char menu()char c;printf(nnnnnnn =通讯录管理系统=n);printf( -n);printf( 1. 显示通讯录n);printf( 2. 添加记录啊n);printf( 3. 按姓名查找n);pr
7、intf( 4. 删除记录n);printf( 5. 排序记录n);printf( 6. 保存记录n);printf( 7. 读入记录n);printf( 0. 退出系统n);printf(nn 请选择.nnnnn);c = getchar();getchar();return c;/*void load() /从文件度记录到通讯录中FILE*fp;if(fp=fopen(txl.txt,wb)=NULL)printf(Can not open file);exit(0);list();for(i=0;im;i+)if(fwrite(&reci,sizeof(struct record),1,
8、fp)!=1)printf(File wrete error!n);fclose(fp);/*void list() /显示通讯录中的内容for(i=0;im;i+)if(0)printf(%3d%-8s%2d,reci.num,,reci.age);printf(%-12s% -20s,reci.tel,reci.email);printf(% -20s% -6sn,reci.addr,reci.zip);/*void app() /添加记录char an;puts(当前通讯录中的内容:n);list();printf(当前通讯录中有%d条记录。n,m);
9、dorecm.num=m+1;printf(姓名:);gets();printf(年龄:);scanf(%d,&recm.age);getchar();printf(电话:);gets(recm.tel);printf(email:);gets(recm.email);printf(地址:);gets(recm.addr);printf(邮编:);gets(recm.zip);puts(新输入的记录为:);printf(%3d% -8s%2d,recm.num,,recm.age);printf(%-12s% -20s,recm.tel,recm.email
10、);printf(% -20s% -6sn,recm.addr,recm.zip);m+;puts(继续输入吗?(Y/N);an=toupper(getchar();getchar();while(an =Y);/*void search() /按姓名查找char xm9;printf(请输入查找的姓名:);gets(xm);for(i=0;im&sc0);if(sc!=m-1)for(i=sc;im;i+)reci-1=reci;reci-1.num=i;m-;list();/*void save() /保存通讯录中的内容到文件FILE*fp;if(fp=fopen(txl.txt,wb)=
11、NULL)printf(Can not open file);exit(0);list();for(i=0;im;i+)if(fwrite(&reci,sizeof(struct record),1,fp)!=1)printf(File wrete error!n);fclose(fp);/*void sort() /按姓名对通讯录中的内容重新排序int j,k;struct record t;list();for(i=0;im-1;i+)k=i;for(j=i;j0)k=j;if(k!=i)t=reck;reck=reci;reci=t;for(i=0;im;i+)reci.num=i+1;
12、puts(n排序已完成!);list(); 注意事项1模块的逻辑描述应该清晰第一、使用标准的、规范的控制结构、正确可靠 实验总结 收获与体会:1、不断运行:从程序的运行过程中你可以明白你所写的这段代码是否正确,以及信息的输出形式是否人性化,是否能让使用者满意。2、 巧妙使用函数返回值:程序的运行是看不见的,但是我们可以通过函数的返回值来了解它到底有没有运行某一出的代码,进而依据此信息做出后续要执行的语句。3、 注意细节:编码是最忌浮躁,要静下心来专心对待才能避免一些编码错误。实验三:代码复查、编译、测试 实验日期 2013 年 5月 8 日 实验目的 学习如何利用代码复查检查表快速而有效地发现
13、程序中的缺陷。 实验内容 按照代码复查脚本规定的流程,对照代码复查检查表检查源代码并记录。编译程序,测试程序,修复所有缺陷,同时填写缺陷记录日志。 实验原理和步骤 如果想发现和改正程序的每一个缺陷,就必须遵照一个精确的规程。检查表可以帮助确保遵循这个规程。检查表也是一个构思的来源。当按照检查表去做时,就知道如何进行代码复查。检查表包括了个人的经验。通过不断地使用和改进个人检查表,可以更好地发现在程序中的缺陷。 实验报告要求 代码复查检查表一般性说明: 在完成每个复查步骤之后,将发现的某个类型的缺陷的个数记录在右面的栏目中。如果该步骤没有发现缺陷,就在右面的栏目中打个表示检查无误的交叉符号()。
14、在开始复查下一个程序单元之前,要按照检查表完成对程序,类,对象或方法的检查检查内容#累计数累计%完整性验证设计的所有功能都已经编码XIncludes验证Include语句是完全的X初始化检查变量和参数的初始化:l 在程序的开始;l 在每个循环的开始;l 在函数/过程的入口X调用检查函数调用的格式:l 指针;l 参数;l & 的使用X名字检查名字的拼写和使用:l 是否前后一致?l 是否在说明的作用域之内?l 结构和类中变量的引用是否使用了.1XX 1 25%字符串检查所有的字符串:l 是用指针来标识的;l 是以NULL结尾的 X指针检查所有的指针:l 是初始化为NULL;l 只有在New(新建)
15、之后才Delete(删除);l 在New并使用之后要删除XX输出格式检查输出格式:l 换行是否合适?l 间隔是否合适?X 对保证检查 是适当的而且是成对的2X 2 50%逻辑操作符验证= =, =,| 等逻辑操作符的使用是合适的。检查每个逻辑函数的( )是合适的X逐行检查检查每一行代码:l 指令的语法是否正确?l 标点是否正确符号是否正确? 2 1 3 75%标准保证所有代码符合编码标准 1 1 25%文件的打开与关闭验证所有的文件:l 是合适地声明的;l 是合适地打开的;l 是合适地关闭的X全面检查对整个程序进行全面的检查以发现系统问题和非期望的问题X总计2X2 2 6缺陷类型 缺陷记录日志
16、缺陷记录日志学生日期2013/5/8 教员程序号日 期编号类型引入阶段排除阶段修复时间相关缺陷5/420语法编码复查7min在一开始时定义record结构体时错将num写成mnu以至后面很多错误5/450接口编码复查5min从list函数开始之后有很多printf语句,在输出类型的编码中多次将d编为D,还有便是忘掉了“%”5/480函数编码复查2min在编码过程中,对于一些函数的定义名时常写错 实验总结 对重点实验结果进行分析;比如自己总查不出哪种错误 实验中的问题和提高:对老师或自己的编码进行评价,指出合理和不足之处,提出改进的方案。 收获与体会: 代码复查是一次程序与程序员之间的交流。通过
17、对代码风格与规范的审查,可以大大提高代码的可读性与可维护性。现在的软件,往往需要持续的维护与升级。代码复查是一种鞭策,因为它的存在,督促着开发人员自觉地规范编码,养成好的编码习惯,提高代码质量。实验四:项目测试总结 实验日期 2013 年 5 月 8日 实验目的 测试程序,总结缺陷数据。 实验内容 填写测试表,填写缺陷分析表 实验原理和步骤 按等价类+边界值设计测试数据,并记录测试结果;填写缺陷分析表并按类型排序. 实验报告要求 测试表测试功能预期结果实际结果登陆通讯录成功成功添加记录成功成功查找成功成功缺陷分析表类型引入的缺陷排出的缺陷复查中漏过的缺陷设计编码其他复查编译测试20104102301150459160380234290 实验总结 对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年剑桥官方定级测试题及答案
- 2025年三校高职试题及答案
- 2025年职高立体几何试题及答案
- 2025年科学测试试题及答案
- 2025年整式运算的试题及答案
- 2025年辽宁省理论力学竞赛题库
- 2025年民法总考试题及答案
- 2025年注册会计师《会计》特殊业务处理模拟试题精讲版含答案
- 2025年文化素养竞赛考试题库(含答案)
- 2024年设备监理师重点试题带答案
- 2020年黔东南苗族侗族自治州榕江县事业单位卫生系统招聘考试《医学基础知识》真题及答案解析
- 加油站反恐专项经费保障制度
- 肾脏与健康-养生以肾为本健康大讲堂课件整理
- 实验室病原微生物危害评估报告(同名3479)
- 基准物质和标准物质
- 阿特拉斯·科普柯无油螺杆压缩机
- LS/T 3311-2017花生酱
- 2023版浙江评审卫生高级专业技术资格医学卫生刊物名录
- GB/T 23806-2009精细陶瓷断裂韧性试验方法单边预裂纹梁(SEPB)法
- GB/T 16866-2006铜及铜合金无缝管材外形尺寸及允许偏差
- 概述SFBT(焦点解决短程治疗)课件
评论
0/150
提交评论