版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程导论实验报告 经管学院信息管理与信息系统专业 软件工程导论实验报告 (第一学期)题目: 班级通讯录管理系统班级: 姓名: 学号 姓名: 学号 姓名: 学号 目录 TOC o 1-3 h z u HYPERLINK l _Toc408673641 第一章 可行性分析 第一章 可行性分析1.1引言 日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户
2、可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。 通讯录管理系统是一个专门针学生用户联系方式以及一些简单个人信息的实用管理系统,它方便了学生对众多同学个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。1.2编写目的 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解,经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。1.3项目背景 所开发软件的名称:班级通讯录管理系统 开发者
3、:栾俊超 崔海靖 邹敏 用户:学生 项目与其他软件的关系:(1)本项目采用客户机、服务器原理,客户端的程序是建立在Windows 7 系统以上Eclipse为开发软件的应用程序,服务器端采用Windows操作系统的工作站,采用SQL server2005为开发软件的数据库服务程序。(2)本项目采用dreamweaver制作登陆界面。1.4定义 班级通讯录是一款帮助同学们整理日常生活中各类信息的软件,力求将各类信息资源的更加方便管理,更加安全。1.5参考资料 软件工程导论(第六版) 张海藩 牟永敏 著;清华大学出版社; 软件开发的过程与管理 张清辉等著;北京;2004;清华大学出版社 面向对象程
4、序设计使用教程张海藩 牟永敏 著;北京;2007;清华大学出版社1.6可行性研究前提1.6.1要求 本系统为学生提供了一个方便的管理各类信息,方便操作的软件。是的对于各类信息的管理更加简便,更加安全。 A功能:用户基本信息的注册,查询,修改,各类不同信息的分类及管理,同一班级信息的整合,用户信息的安全管理,系统的维护等等。 B性能:提供同学们方便的各类交流所需的信息的管理,分类及安全维护。 C输出:用户学号,班级,姓名,性别,家庭住址,电话,e-mail等。 D输入:用户的基本信息,简捷,快速,实时。 E 安全与保密要求:由于用户和管理员的权限不同,使用权限管理,并在各自的权限之内进行操作。
5、F完成期限:一个月1.6.2目标 开发一个功能强大,操作方便,管理方便,简单明了,能够为广大同学普遍接受且能够广泛应用的班级通讯录管理系统。在设计软件的同时要兼顾软件对于系统的占用等等方面,尽最大的努力争取使系统的效率提高,并尽量做到规范化。1.6.3条件、假定和限制 A在系统设计完成后10天内选择其中一个优秀方案 B建议软件运行最短寿命:五年 C使用经费来源:无 D法律和政策方面限制:该软件不存在违法和违反相关政策的现象 E系统运行环境:win7等系统 F数据库:SQL Sever 20051.6.4可行性研究方法 1)进行调查和沟通,进行初步分析; 2)初步需求分析:需求分析报告、数据流图
6、、数据字典、需求分析报告; 3)建立系统原型; 4)与用户进行进一步沟通,对初步模型进行修改和完善,使系统功能更加明确。 5)系统的整体测试和修改、1.6.5决定可行性的主要因素 1)功能是否足够全面,运行是否稳定 2)是否方便管理 3)对于系统内存的占用 4)系统运行的效率 5)开发时间和经费是否超额 6)操作是否简单1.7对现有系统的分析1.7.1系统流程图图1.1系统流程图1.7.1工作负荷 根据小组成员的工作分工进行安排1.7.2费用支出 无1.7.3人员 由三人组成的小组1.7.4设备 计算机 网络 各类相关参考书1.7.5局限性 初次开发系统对许多细节认知不清,不能够顾及到方方面面
7、,缺乏经验,工作效率低,需反复改进方可投入使用。1.8所建议技术可行性分析1.8.1对系统的简要描述 我们计划开发是个相对简单的班级通讯录管理系统,它可以提供用户一些基本信息,以及一些稍为隐私的资料,管理员和用户拥有不同的权限,用户之间也是如此,用户需要按要求输入不同的信息,就可获得自己所拥有权限所获得的他人通讯信息。该系统将在学生的生活中起到很重要的作用,它加强与方便了同学们之间的联系。1.8.2处理流程和数据流程图1.2数据流图1.9与现有系统比较的优越性 首先新系统克服了原来的资金投入大,信息准确度不高的缺点;建立了管理和服务。 高效的信息传输和服务平台,提高了信息处理速度和利用率,而且
8、加入了对数据的安全性保护功能,使原有系统在可行性与稳健性方面有了很大进步。1.10采用建议系统可能带来的影响 1.对设备的影响 需要配备多台电脑2.对现有系统的影响 对现有软件不会产生冲突,对使用的操作系统来说有很好的兼容性、稳定性。3.对用户的影响 简单易操作4.对系统运行的影响 Windows系统5.对开发环境下的影响 1)使用前看使用说明 2)根据信息的重要性来设置信息保密级别 3)所涉及的保密与安全问题 基本的办公条件,电脑若干6.对支出经费的影响 系统开发需要经费,还有一定的运行维护费用1.11所建议系统经济可性性分析 此软件为方便学生及老师的日常生活工作方便,不存在任何经济利益,为
9、无偿使用,我们也没有什么投入,所以经济系统完全可行。1.12社会因素可行性分析1.12.1法律因素 合同责任:符合国家标准的合同,经双方签字后生效 侵犯专利权:有 侵犯版权:有 当今社会发展迅速,知识量的积累更是与日俱增,于是学生的数量也是与日俱增。个人信息变得越来越多,所以整理起来变得十分不容易,也容易出现遗漏。学校需要每个学生写下自己的通讯方式,然后以班级为单位将信息进行编号及整理。为了能够使学生的个人信息更加安全,必须严格限制班级通讯录的访问权,所以为了解决这一问题,需要建立一个安全完善的管理平台。1.12.2用户使用可行性 用户单位的行政管理:自定 工作制度:自定 人员素质等能否满足要
10、求:可以满足 随着技术的发展,采用班级通讯录管理系统,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断地促进信息技术和软件应用的革新。可以概括地说成软件应用促进技术进步,技术进步反作用与软件的应用,从而双方面同时促使社会不断朝前。1.13结论意见 综上所述,此系统开发目标已明确,在技术、社会和经济等方面都可行,并且投入少、见效快。因此班级通讯录管理系统的开发是完全可行的。第二章 需求分析2.1 引言2.1.1编写目的 班级通讯录管理系统的主要目的是方便同学们管理各自的通讯信息,实现通讯信息的统一、便捷管理。提高通讯信息的查询和使用效率。减轻同学们过多的通讯信息所带来的记忆负担。实现对同学
11、信息的高级管理,方便同学们的引用和交流。 该班级通讯录管理系统主要服务于在校学生,实现学生们通讯信息的高效和统一管理,减少通讯信息混乱的存在模式以及信息过多带来的不必要的麻烦。能够方便快速的查询所需要的通讯信息。在一定程度上。也提高了通讯信息保存的安全性。2.2 目标分析2.2.1概述 班级通讯录管理新系统主要功能分为俩大部分:用户管理部分和管理员管理部分。2.3系统功能2.3.1总目标 (1)提高通讯信息的准确性,实现通讯信息的便捷和高效管理,减轻同学们对于过多的通讯信息的管理负担。 (2)实现通讯信息方便快捷的查询。并且能够对通讯信息进行及时有效的修改,查询,排序和编辑。 (3)提高对于通
12、讯信息的使用效率。2.3.2具体目标(1)用户管理系统,本系统需要具备以下功能: 用户注册添加:初次登陆系统时需要进行用户的注册,获得用户自己的用户名以方便日后使用。 用户信息的保存:注册成功后,根据个人所有的通讯信息进行个人信息的完善并保存。 通讯信息的查询:登陆系统后即可对所需要的信息进行查询。 用户信息的删除:登录系统后可对不需要的信息进行删除。 用户信息的排序:登录系统后用户可以根据个人喜好将信息进行排序,从而方便查找所需信息。 用户修改登录密码:登录系统后可以根据自己需要修改登录密码来确保个人信息的安全性。(2)管理员管理系统,本系统需要具备以下功能: 管理员注册:注册后方能取得管理
13、员所有的相关权限。 管理员工作内容:拥有后台登陆的权限,对系统进行定期维护,及时发现并修改系统出现的漏洞,对用户的信息进行安全维护和整理。 管理员读取文件:用户将遇到的问题进行反馈,做成文件形式发给管理员,管理员读取文件从而解决问题。 信息的查询:登录系统后即可对所需要的信息进行查询。 管理员信息的添加:登录系统后可添加个人和用户所需信息。 信息的删除:登录系统后管理员可以将过期或者无用的信息进行删除,从而保证系统的简洁。2.3.3性能目标 1.管理员需要具备一定的专业只是才能胜任。 2.确保对系统中的通讯信息进行了高效的整理与管理,并保障其保存的安全性。 3.实现通讯信息的高效查询。2.4系
14、统概述2.4.1系统总结构图4.1系统总结构2.4.2用户模块E R图 1.学生模块ER图:图4.2学生模块ER图 2.用户模块ER图:图4.3用户模块ER图 3.系统实体E-R图:图4.4系统实体E-R2.4.3用户数据流图 1.查询功能:图4.5查询功能 2.添加功能:图4.6添加功能 3.显示功能:图4.7显示功能 4.删除功能:图4.8删除功能 5.排序功能:图4.9排序功能2.4.4用户状态转换图 1.查询功能:图4.10查询功能 2.添加功能:图4.11查询功能 3.显示功能:图4.12显示功能 4.删除功能:图4.13删除功能 5.排序功能:图4.14排序功能2.4.5系统数据流
15、图图4.15系统数据流图2.4.6系统状态转换图图4.16系统状态转换图第三章 总体设计3.1总体设计概述 全局问题的设计,也就是设计系统总的处理方案,又称概要设计。软件工程总体设计包括:计算机配置设计、系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容。3.2处理流程1启动系统,输入登录信息;2管理员通过系统检验后对系统进行初始化;3用户根据管理员设置的初始信息进行登录,并对自己的信息进行更改,并且执行相应操作。4各功能执行完毕后重新进入系统循环状态;5关闭系统模块并退出系统。3.3功能概述 1.管理员功能 1)初始化模块 2)关闭系统模块 3)系统功能模块 2查
16、询功能 查询信息 3添加功能 增加信息 4.删除功能 删除信息 5.排序功能 对信息进行排序 6.文件管理功能 1)储存文件 2)读取文件7.密码修改功能 对密码进行修改3.4系统总体设计方案3.4.1系统流程图图3.1系统流程图3.4.2数据字典1输入数据:鼠标按钮的单击、菜单的命令、查询条件和查询关键字、相关信息更改、统计条件、受限操作所需密码记录等。2输出数据:查询关键字确定的数据库记录的子集、统计结果、信息的录入、修改结果(成功或失败)等。3内部数据:操作所产生的中间数据和查询操作建立的索引。4.数据流条目如下: 1)名称:用户名和密码。 简述:用户登录的凭证,用户管理联系人要用到用户
17、名。 定义:用户名和密码=用户名+用户密码。 来源:用户。 去向:核查,核查,联系人或类别的添加,查看,修改,删除(用到用户名); 2)返回用户的主界面=用户个人操作界面; 3)名称:联系人基本信息。 简述:组成联系人的各种信息,用户可以管理;定义:联系人基本信息=联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+邮箱+类编+用户名; 来源:用户。 去向:核查联系人,核查类别; 4)定义:联系人新信息。 简述:用户修改联系人时,修改过的信息。定义:联系人新信息=联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+邮箱+类别+用户名。 来源:用户 去向:核查联系人,核查类别; 5)
18、名称:联系人查询条件。 简述:用户来查询联系人的条件。 定义:联系人查询条件=【联系人性别+用户名】,【联系人姓名+用户名】,【类别+用户名】,【联系人性别+联系人姓名+用户名】,【联系人性别+类别+用户名】,【联系人性别+姓名+用户名】,【联系人姓名+类别+用户名】,【联系人性别+联系人姓名+类别】+用户名】。 来源:用户。 去向:查询处理; 6)名称:联系人查询结果。 简述:用户输入条件,从数书库中查询的联系人条目。 定义:联系人查询结果=联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+邮箱+类编+用户名。 来源:查询处理; 7)名称:删除联系人条件。 简述:用户要删除某个联系人
19、书输入的条件。 定义:删除联系人条件=联系人编号+用户名; 来源:用户。 去向:核查处理; 8)名称:删除用户类别条件。 简述:用户删除类别时输入的条件。 定义:删除用户类别条件=用户类别名+用户名; 来源:用户。 去向: 核查处理,删除联系人或类别; 9)名称:类别查询条件。 简述:查询类别时的条件。 定义:类别查询条件=用户类别名+用户名。 来源:用户。 去向:查询处理; 10)名称:查询类别结果。 简述:用户查询类别的结果。 定义:查询类别结果=类别名+用户名+备注。 来源:查询处理。 去向:用户;3.4.3组成系统的物理元素清单数据流 数据存储登陆编号 管理员基本信息登陆密码联系方式姓
20、名姓名 学生基本信息性别年龄学号登陆密码班级家庭住址联系方式Email 3.4.4成本效益分析随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统。通讯录管理系统是一个专门针学生用户联系方式以及一些简单个人信息的实用管理系统,它方便了学生对众多同学、老师、等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。并且该系统提供高效的信息传输和服务平台,提高了信息处理速度和利用率,而且加入了对数据的安全性保护功能,提高了安全性和可靠性。经过可行性分析后,认为此系统开发目标已明确,在技术、社会和经济等方面
21、都可行,并且投入少、见效快。因此班级通讯录管理系统的开发是完全可行的。目前,计算机软件开发的各种编程语言都已十分普及,完全能够满足班级通讯录管理系统的研究和开发。而且,现在不论是计算机硬件或是手机软件的支持能力都十分强大,能够支持软件的运行。因此,技术方面是可行。另外此系统所要求的管理和维护的人员的技术要求也并不很高,但并不能缺少系统维护人员。因此,按照计划,本系统的开发可以完成。基础投资:正版软件 Microsoft SQL Server 2005做数据库 网络设备 机器设备 辅助设备 其他投资 业务员工资 系统需求分析的调研的人工费用 系统的设计开发费用 系统的实施开发费用 系统的调试及维
22、护环节费用 3.4.5进度计划开发时间:预定为八个月 可行性研究 一个月需求分析 一个半月 总体设计 一个月 详细设计 一个半月实现 两个月 软件维护 两个月 使用寿命:该系统至少是用四年以上 根据系统目标以及现行系统存在的问题,建议新系统分两步试运行与运行:第一阶段(1年内)选定一所高校进行内部测试,与学校商定在学校内部进行软件的推广与使用。并且广泛收集使用者的意见,及时对系统进行更新和改正。第二阶段(24年)努力完善所做的班级通讯录管理系统,在之前的基础上进行大范围推广,该系统操作简便,适用方便,推广后可以大大提高使用者的信息管理效率和信息安全性。3.5功能模块 第一模块:登陆模块(如图一
23、),用于用户登录,进入系统的窗口。 第二模块:信息管理模块(包含三个部分,即添加(如图二);删除(如图三);修改(如图四)。添加同学信息,删除旧的信息,修改过期信息,是系统内部的处理功能。 第三模块:密码修改模块(如图五)。学生注册首次设置密码后,需要修改密码时使用密码修改功能。 第四模块:查询模块(如图六),用户登录查询自己的信息或者其他同学的信息。开始 登陆信息填写填写信息是否完整提示框类型= =学生进入管理员班级通讯录管理系统结束进入学生通讯录管理系统YESNOYESNO图3.2登陆模块开始填写所有学生信息信息填写完整提示框添加信息成功结束YESNO图3.3添加模块开始填写学号学生是否存
24、在提示框删除学生信息提示删除成功结束YESNO图3.4删除模块图3.5排序模块开始填写新密码与确认密码信息填写完整提示框确认密码与新密码是否相同提示框修改成功结束YESNOYESNO图3.6密码修改模块开始点击查询按钮按钮为学生查询按钮按钮为管理员查询按钮无结果显示所有学生信息显示所有管理信息结束图3.7查询模块图3.8查询文件模块图3.9储存文件模块3.6接口设计3.6.1外部接口界面设计:分为主界面与各子界面,主界面显示了本软件的主要功能如:学生信息的输入、排序、查找等对称,整洁,易于用户使用。子界面承接主界面,根据用户在主界面选择的功能,显示不同,用户需根据子界面的显示继续输入即可。输入
25、要求:数据完整,详实。 输出要求:简捷,快速,实时。3.6.2内部接口在系统内部实现了对基础程序的封装,即可用函数来完成各种功能,使得上层操作相对简化,有利于理清程序逻辑。输入起点,终点函数输入添加函数输入删除函数输入修改函数输入查询函数输入统计函数创建用户密码函数3.7数据结构设计 3.7.1 物理结构设计要点给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。由客户端获得数据存入服务器,不同权限的操作人员有不同的访问方式 3.7.2逻辑结构设计要点逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型
26、转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。 3.7.3数据结构设计要点给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。数据结构与程序关系内容:说明各个数据结构与访问这些数据结构的形式:。1.基本信息汇总: 学生基本信息表:姓名,性别,学号,班级,家庭住址,联系电话,注册时间,登录次数,登录日期 学生登录基本信息表:学号,登录密码 管理员登陆基本信息:管理员编号,登录密码 管理员基本信息表:姓名,编号,联系电话 班级基本信息表:编号,名称,年级,人数,教师姓名学生基本信息表属性类型
27、长度是否可以为空简单描述姓名Varchar10否学生姓名性别Varchar5否学生性别学号Char15否学生学号班级Varchar20否学生班级家庭住址Varchar50否学生家庭住址联系电话Char15否学生联系电话注册时间Date否初次注册时间登录次数Int是登录次数登录日期Date是最近一次登录日期学生登录基本信息表属性类型长度是否可以为空简单描述学号Char15否学生学号登录密码Char10否登录密码管理员登陆基本信息属性类型长度是否可以为空简单描述管理员编号Char15否管理员编号登录密码Char10否登录密码管理员基本信息表属性类型长度是否可以为空简单描述姓名Varchar15否管
28、理员姓名编号Char15否管理员编号联系电话Char15否管理员联系电话班级基本信息表属性类型长度是否可以为空简单描述编号Char10否班级编号名称Varchar20否班级全称年级Varchar20否所在年级人数Int否班级人数教师姓名Varchar10是班级导师姓名2.逻辑结构设计所需E-R图:图3.11逻辑结构设计所需E-R图第四章 详细设计4.1详细设计概述详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。4.2详细设计目标详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。4.3详细设计范围本文档定义了
29、系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。4.4详细设计主要内容:本文档的详细设计主要是用流程框图、NS图、PAD图、判定表和判定树以及PDL语言。为下一步的编码提供基础。4.4.1流程框图图4.1修改密码程序流程图图4.2存读取文件程序流程图图4.3查询模块图4.4添加模块图4.5删除模块图4.6修改密码4.4.2盒图(NS图)图4.7修改密码图4.8读/存取文件 图4.9查询模块图4.10添加模块图4.11删除模块图4.12排序模块4.4.3问题分析图(PAD图)图4.13修改密码登录模块图4.14文件操作模块图4.15查询模块图4.16添加模块图4.17
30、删除模块图4.18排序模块4.4.5判定表查询功能12345条件用户名TTTTF密码TTTF查询操作TTF操作是否成功TF动作成功查询重复查询操作选定查询按钮重新输入密码重新输入信息并登录添加12345条件用户名TTTTF密码TTTF添加操作TTF操作是否成功TF动作添加删除重复添加操作选定添加按钮重新输入密码重新输入信息并登录删除功能12345条件用户名TTTTF密码TTTF删除操作TTF操作是否成功TF动作成功删除重复删除操作选定删除按钮重新输入密码重新输入信息并登录排序功能12345条件用户名TTTTF密码TTTF排序操作TTF操作是否成功TF动作排序删除重复排序操作选定排序按钮重新输入
31、密码重新输入信息并登录4.4.6伪码(PDL语言)1.查询功能stud*search(stud*head,int*th)int xz;char xuehao10,xingming9;stud*p;*th=1;ifwhile(p!=NULL&strcmp(xingming,p-name)!=0)p=-next;(*th)+;elsewhile(p!=NULL&strcmp(xuehao.p=num)!=0)p=p-next;(*th)+;2.添加模块void insert(stud*stud)char an,xuehao10,xingming9,banji11,dianhua8;stud*p,*
32、q;dowhile(p-next!=NULL)&(strcmp(xuehao,p-nxet-num)=0)p=p-next;q=(stud*)malloc(sizeof(stud);printf(“是否继续?”);an=toupper(getchar();getchar();while(an=Y);3.删除模块del_person() ofstream outData(temp.txt, ios:out); coutendl这个人的信息已经从你的通迅录中删除!endlendl; system(pause); 4.排序模块sort_personifstream inData(pbook.txt,
33、ios:in); cout”所有需要排序的信息已全部排列完毕!”endl;system(pause);第五章 编码5.1添加功能void Student:add()/添加函数 coutendl; coutendl; coutendl; system(color 81); cout * 欢迎进入班级通讯录管理系统 *endlendl; cout *endlendl; cout * 添加功能:*endl; coutS; coutendl; coutStun.sex; coutendl; coutStun.num; coutendl; coutStun.classroom; cout
34、endl; coutStun.number; coutendl; coutStun.addr; coutendl; coutStun.email; coutendl; n+; char m; coutm; if (m=y) add(); 5.2显示功能void Student:show()/显示函数 system(color 81);/颜色调用 char l; coutendl; coutendl; coutendl; cout * 欢迎进入班级通讯录管理系统*endlendl; cout *endl; cout *通讯录全部人员:*endl; coutendl; cout姓名 性别 学号 班
35、级 电话号码 地址 Emailendl; for(int i=0;in;i+) coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; /71 coutendl; coutendl; cout退出请按y/返回请按nl; if(l=y) exit(0);/退出程序结构语 5.3查询功能void Student:search()/查询函数 system(color 81);/颜色调用 coutendl; coutendl; coutendl; cout * 欢迎
36、进入班级通讯录管理系统* endlendl; cout *endl; cout *查询功能: *endl; cout * 按姓名查询*endl; cout * 按学号查询*endl; cout * 按电话号码查询*endl; cout * 退出 *endl; coutselect; switch(select) case 1:/按姓名查询 cout请输入想要查询的姓名:name1;/输入查询姓名 loop: for( i=0;i=n;i+)/ if(S=name1) cout以下是你要查询的联系人:endl; cout姓名 性别 学号 班级 电话号码 地址 Emailendl;
37、 coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; break; if(S!=name1)/找不到该联系人 cout该学生不存在,请重新输入。退出请按yname1; if(name1=y) search(); else goto loop; break; case 2:/按学号查询 cout请输入想要查询的学号:num1;/输入学号 loop1: for( i=0;i=n;i+) if(Stui.num=num1) cout以下是你要查
38、询的联系人:endl; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; break; if(Stui.num!=num1) cout学生不存在,请重新输入。退出请按1num1; if(num1=1) search(); else goto loop1; break; case 3:/按电话号码查询 cout请输入想要查询的电话号码:number1; loop3: for( i=0;
39、i=n;i+) if(Stui.number=number1) cout以下是你要查询的联系人:endl; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; break; if(Stui.number!=number1)cout该学生不存在,请重新输入。退出请按1number1; if(number1=1) search(); else goto loop3; break; /150
40、 5.4删除功能void Student:delect()/删除函数 system(color 81);/颜色调用 coutendl; coutendl; coutendl; cout* 欢迎进入班级通讯录管理系统* endlendl; cout*endl; cout *删除功能: *endl; cout * 输入姓名删除 *endl; cout *输入学号删除 *endl; cout *输入电话号码删除*endl; cout *退出*endl; coutselect; switch(select) case 1: string name2;/定义一个姓名 char k; cout请输入想要删
41、除的姓名:name2;/输入要删除的姓名 loop1: cout确认要删除该联系人吗?(y:是/n:不是)k; if(k=n) delect();if(k=y) for(int i=0;i=n;i+) if(S=name2) for(int j=i;j=n;j+) Stui=Stuj+1; n-; cout已删除该联系人。endl; break; if(S!=name2) cout不存在该联系人,请重新输入。退出请按yname2; if(name2=y) delect(); else goto loop1; break; case 2: int num2; ch
42、ar k; cout请输入想要删除的学号:num2; loop2: cout确认要删除该联系人吗?(y:是/n:不是)k; if(k=n) delect(); if(k=y) for(int i=0;i=n;i+) if(Stui.num=num2) for(int j=i;j=n;j+) Stui=Stuj+1; n-; cout已删除该联系人。endl; break; if(Stui.num!=num2) cout不存在该联系人,请重新输入。退出请按1num2; if(num2=1) delect(); else goto loop2; break; case 3: int number2
43、; char k; cout请输入想要删除的电话号码:number2; loop3: cout确认要删除该联系人吗?(y:是/n:不是)k; if(k=n) delect(); if(k=y) for(int i=0;i=n;i+) if(Stui.number=number2) for(int j=i;j=n;j+) Stui=Stuj+1; n-; cout已删除该联系人。endl; break; if(Stui.number!=number2) cout不存在该联系人,请重新输入。退出请按1number2; if(number2=1) delect(); else goto loop3;
44、 break; case 4: break; 5.5排序功能 void Student:sort() /排序函数 system(color 81); int i,j; char l; Student t; int select; loop: coutendl; coutendl; cout * 欢迎进入班级通讯录管理系统* endlendl; cout *endl; cout *排序功能:*endl; cout * 按姓名排序*endl; cout *按学号排序*endl; cout * 按电话号码排序*endl; cout *退出*endl; coutendl; cout请选择你排序的方式:
45、select; switch(select) case 1:/按姓名排序 for(j=0;jn-1;j+) for(i=0;iStui+1.name) t=Stui; Stui=Stui+1; Stui+1=t; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; for(int i=0;in;i+) coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; cout退出请按y/返回请按nl; if(l=n) goto loop; break
46、; case 2:/按学号排序 for(j=0;jn-1;j+) for(i=0;iStui+1.num) t=Stui;Stui=Stui+1;Stui+1=t; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; for(int i=0;in;i+) coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; cout退出请按y/返回请按nl; if(l=n) goto loop;break; case 3:/按电话号码排序 for(j=0
47、;jn-1;j+) for(i=0;iStui+1.number) t=Stui;Stui=Stui+1;Stui+1=t; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; for(int i=0;in;i+) coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.email endl; cout*endl; cout退出请按y/返回请按nl; if(l=n) goto loop; break; 5.6读取文件void Student:load()/读取文件 system(col
48、or 81); coutendl; coutendl; cout * 欢迎进入班级通讯录管理系统* endlendl; cout *endl;/80 coutendl; coutendl; cout * 读取通讯录文件: *endl; coutendl; coutendl; ifstream my_file (d:通讯录.txt,ios:in); my_file.seekg(0,ios:end); streampos lof = my_file.tellg(); my_file.seekg(0,ios:beg); if(!my_file) cout对不起,无法从已有通讯录输入!endl可能是因
49、为原通讯录不存在或为空endl建议你检查你的通讯录文挡!endl; return; cout姓名 性别 学号 班级 电话号码 地址 Emailendl; FILE *fp; if(fp=fopen(d:通讯录.txt,r)=NULL)/判断文件是否存在 cout找不到该文件,读取失败!endl; char ch; ch=fgetc(fp); while(ch!=EOF) putchar(ch); ch=fgetc(fp); for(int i=n;iSStui.sexStui.numStui.classroomStui.numberStui.addrStui.email; my
50、_file.close(); 5.7存储文件功能void Student:save()/存储通讯录文件 system(color 81); coutendl; coutendl; cout * 欢迎进入班级通讯录管理系统* endlendl; cout *endl;/80 coutendl; coutendl; cout *储存通讯录文件: *endl; coutendl; coutendl; coutendl; ifstream ifs(d:通讯录.txt); ifs.seekg(0,ios:end); streampos lof = ifs.tellg(); ofstream file(d
51、:通讯录.txt,ios:app); if(!file) cout通讯录没有联系人,请添加:endl; add(); cout姓名 性别 学号 班级 电话号码 地址 Emailendl; int i;for (i=0;in;i+) coutS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.emailendl; fileS Stui.sex Stui.num Stui.classroom Stui.number Stui.addr Stui.emailendl; 第六章 调试程序6.1调试出
52、现的错误与修改图6.1调试出现的错误类型一 头文件定义的缺失。经查找处理发现头文件没有定义完全,在定义上缺失#include,字符串的声明。2.类型二 “;”的缺失。每条语句的后面都要有“;”结束,在编写程序时往往容易漏掉这一点。类型三 “ ”的对应。由于不熟练,没有一个良好的编程习惯,往往写了“”后就没有及时的写“”,后面也忘记了,就容易缺失了。4.类型四缺失结束语句,导致无限循环,结束语句我们经常用的是break,在需要提前退出语句要有相应的退出语句。第七章 软件测试7.1测试目标 测试的根本目标是尽可能多发现并排除软件中潜在的错误,最终开发一个高质量的软件系统交给用户。 由于在编写中可能考虑不周或者忽略某些因素导致软件不能高质量运行,就拿班级通讯录管理系统来说,虽然经过编码调试,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年国家开发银行(陕西分行)人员招聘考试备考题库及答案详解
- 2026年邵阳市中医医院医护人员招聘笔试参考试题及答案详解
- 2026年青海省藏医院医护人员招聘考试备考试题及答案详解
- 2026年黑龙江省第四医院医护人员招聘笔试备考题库及答案详解
- 2026年淮安市第二人民医院医护人员招聘考试参考题库及答案详解
- 2026年中山大学附属汕头医院医护人员招聘笔试参考试题及答案详解
- 2026年廊坊市人民医院医护人员招聘考试参考题库及答案详解
- 2026年漳州市中医院医护人员招聘笔试参考试题及答案详解
- 2026年武汉市第四医院医护人员招聘考试备考试题及答案详解
- 2026年济宁市第一人民医院医护人员招聘笔试备考题库及答案详解
- 2026全国一卷语文真题 (回忆版)
- 2025年贵州省黔南州事业单位遴选笔试真题及参考答案
- 2026年河南六级下半2026年考试试题及答案
- 2026二季度重庆巫山县事业单位公开考调25人笔试备考题库及答案解析
- 2026年六年级下册古文古诗断句专项题目及答案(部编版)
- 安徽省皖江名校联盟2026年5月高三最后一卷地理+答案
- 2026-2030中国电热合金行业发展分析及发展战略研究报告
- 2026年超声诊断仪行业分析报告及未来发展趋势报告
- 2025湖南省长沙市中考英语真题(解析版)
- 2026年陕西省基层法律服务工作者执业核准考试综合能力测试题及答案二
- 辽宁省沈阳126中学2026届初中英语毕业考试模拟冲刺卷含答案
评论
0/150
提交评论