软件课程设计第四阶段实验报告
erp课程设计实验报告
erp课程设计实验报告一、课程目标知识目标:1. 理解ERP(企业资源计划)系统的基本概念、功能模块及其在企业运营中的应用。
2. 掌握ERP系统中财务管理、供应链管理、生产管理等核心模块的操作流程。
3. 了解ERP系统实施的基本步骤、关键因素和常见问题。
技能目标:1. 能够独立进行ERP系统的基本操作,包括数据录入、查询、修改等。
2. 能够运用ERP系统进行简单的数据分析,为企业决策提供参考。
3. 培养学生团队协作、沟通表达及解决问题的能力。
情感态度价值观目标:1. 培养学生对ERP系统及企业信息化建设的兴趣,激发学习热情。
2. 增强学生的责任感,使其认识到ERP系统在企业运营中的重要性。
3. 培养学生严谨、务实、创新的工作态度,为将来从事相关工作奠定基础。
课程性质分析:本课程为实验课,旨在让学生在实际操作中掌握ERP系统的相关知识,提高实际应用能力。
学生特点分析:学生为高年级本科生,已具备一定的企业管理知识和计算机操作能力,具有较强的学习能力和实践欲望。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 采用案例教学,让学生在具体情境中学习ERP系统的应用。
3. 强化团队合作,培养学生解决实际问题的能力。
二、教学内容1. ERP系统概述:介绍ERP系统的定义、发展历程、主要功能模块及其在企业运营中的价值。
教材章节:第一章 企业资源计划概述2. ERP系统核心模块:详细讲解财务管理、供应链管理、生产管理等模块的功能、操作流程及相互关系。
教材章节:第二章至第四章 财务管理、供应链管理、生产管理3. ERP系统实施:分析ERP系统实施的基本步骤、关键因素和常见问题,探讨如何提高ERP系统实施成功率。
教材章节:第五章 ERP系统实施4. ERP系统案例分析:通过分析典型企业ERP系统实施案例,让学生了解ERP 系统在实际工作中的运用。
教材章节:第六章 ERP系统案例分析5. ERP系统操作实践:组织学生进行ERP系统模拟操作,包括基础数据录入、业务流程处理等。
软件课程设计实验报告
软件课程设计实验报告软件课程设计实验报告1在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。
我们小组由3个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园文件管理系统。
我们也随即做了分工,。
我们的项目也正式开始了。
需求调研和分析对于软件开发过程至关重要。
我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。
我们在项目的开发中便遇到了这样的问题。
我们开始自己随意的计划整个系统的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。
我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。
如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。
所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。
对于一个项目,它的需求设计也非常重要。
在我们的文件管理系统开发的过程中,遇到了一些问题,出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。
还好,我们能及时地发现问题,通过相互沟通讨论,问题也得到了解决。
通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。
如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。
软件工程实验报告
软件工程实验报告一、实验目的。
本实验旨在通过对软件工程的实际操作,加深对软件工程理论知识的理解,提高学生的软件开发能力。
具体目的包括:1. 熟悉软件工程的基本概念和原理;2. 掌握软件需求分析、设计、编码、测试等基本方法和技术;3. 提高团队协作能力和项目管理能力。
二、实验内容。
本次实验内容主要包括以下几个方面:1. 软件需求分析,通过对一个实际问题的需求收集和分析,明确软件的功能和性能需求;2. 软件设计,根据需求分析的结果,进行软件系统的总体设计和详细设计;3. 软件编码,根据设计文档,进行软件的编码工作;4. 软件测试,对编码完成的软件进行测试,确保软件的质量和稳定性。
三、实验过程。
1. 软件需求分析阶段。
在软件需求分析阶段,我们小组首先进行了需求的收集和整理工作。
通过与用户的沟通和调研,我们明确了软件的功能需求和性能需求,并对其进行了详细的文档记录。
在需求分析的过程中,我们也发现了一些需求之间的冲突和不完整之处,因此进行了进一步的讨论和修正。
2. 软件设计阶段。
在需求分析阶段完成后,我们进行了软件系统的总体设计和详细设计工作。
在总体设计阶段,我们确定了软件的整体架构和模块划分,明确了各个模块之间的接口和关系。
在详细设计阶段,我们对每个模块进行了具体的设计,包括算法、数据结构、接口等方面的设计。
3. 软件编码阶段。
在软件设计完成后,我们开始了软件的编码工作。
在编码阶段,我们严格按照设计文档的要求进行编码,注重代码的规范和可读性。
在编码过程中,我们也进行了一些单元测试,确保编码的正确性和稳定性。
4. 软件测试阶段。
在软件编码完成后,我们进行了软件的测试工作。
在测试阶段,我们采用了黑盒测试和白盒测试相结合的方法,对软件进行了功能测试、性能测试、安全测试等多方面的测试。
在测试过程中,我们发现了一些问题并及时进行了修复。
四、实验总结。
通过本次实验,我们深刻地体会到了软件工程理论知识在实际项目中的应用,提高了我们的团队协作能力和项目管理能力。
软件设计过程实验报告
软件开发过程实验一软件需求分析一、目的和意义对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。
为下面的实习奠定基础。
二、实习内容1、确定软件题目(学生可自己拟定,也可在本书附录2中选择);2、分析软件需求以及人工模式下的工作流程;3、编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考);4、完成形式:以文档的形式完成软件的需求规格说明书。
纸张型号为A4。
三、实习指导1、在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。
2、提交文档的格式如下:第一页的格式为:软件名称:文档编号版本号文档名称:项目名称:项目负责人:编写时间审核时间批准时间开发单位第二页之后的内容为:●编写目的:阐明编写该文档的目的,指出读者对象●项目背景:项目的委托单位、开发单位、该软件系统与其他系统的关系。
●参考资料软件需求规格说明的书写原则①任务概述:软硬件环境、条件和限制(软件的使用条件和限制)。
②数据描述:输入数据、输出数据、数据库设计和建立数据词典。
③功能需求:功能划分和功能描述④性能需求:数据精度、时间特性、适应性(操作方式、与其他软件的接口、开发计划变化时,软件应具有的适应能力。
)。
⑤运行要求:用户界面、硬件接口(如:连接打印机)、软件接口(如:是否为其他项目的子项目)、故障处理。
⑥其他需求:可使用性、安全保密性、可维护性、可移植性等。
模板参考第一页:软件名称:教务管理软件文档编号 001版本号 Ver 1.0文档名称:需求规格说明书项目名称:课表编排系统项目负责人:屈艳编写:刘楠、叶艺、赵春、马燕时间: 2005-2-14审核:屈艳时间: 2005-2-16批准:王湘桃时间: 2005-2-20开发单位:冰雪五人组第二页之后的内容:编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。
便于开发小组成员对系统整体功能的认识。
项目背景:高校的课表编排一直是一个烦琐的工作,为了解决这个问题,某某高校教务处委托我们开发该软件。
软件课程设计实验报告(3篇)
软件课程设计实验报告(3篇)【导语】软件课程设计试验报告怎么写出亮点?整理了3篇优秀的《软件课程设计试验报告》通用版范文,有规范的开头结尾写法和标准的书写格式。
是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。
【第1篇】软件课程设计试验报告一、目的、要求通过该课程设计要使同学树立起剧烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,同学在对所开发的系统进行软件方案、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使同学具备实际软件项目分析、设计、实现和测试的基本力量。
二、主要内容要求同学把握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。
每个同学选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华高校出版社出版),根据软件工程的生命周期,完成软件方案、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的`文档。
详细的方法可以选用传统的软件工程方法或者面对对象的方法,开发环境和工具不限。
三、进度方案略四、设计成果要求1.至少提交4个文档,包括软件方案、软件需求规格说明书、软件设计说明书、软件测试方案,要求文档格式规范、规律性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式(1)提交的文档规范,工作量大,文档规律性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》试验报告评分表)占60%(2)系统验收、讲解、答辩占25% (3)考勤占15%软件课程设计试验报告【第2篇】应用软件课程设计报告计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的进展战略讨论报告中也指出:计算机专业的人才应当被分为科学型、工程型、应用型三类,而绝大多数应当是工程型和应用型的。
软件工程课程设计实验报告
重庆邮电大学软件工程课程设计实验报告——网上选课系统姓名:**学号:********专业:计算机科学与技术班级:0410801指导老师:**教室:S331-A时间:2011-5-30~2011-6-3一、实验题目:网上选课系统主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。
用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。
用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。
最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。
二、实验目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。
通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。
三、实验要求1.一人一组。
2.熟悉Rose开发环境。
3.掌握UML的基本模型元素(如角色、用例、类等)。
4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Classdiagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
5.进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,建立完整的系统数据库的逻辑模型。
软件工程实验报告
软件工程实验报告在当今科技日新月异的时代,软件工程成为各行各业中不可或缺的一环。
为了更好地培养学生的软件工程能力,各大高校开设了相关课程,并在其中加入了实验环节。
本篇文章将对软件工程实验报告的撰写进行探讨。
首先,软件工程实验报告的撰写应该贴近实验过程。
这意味着在实验之前,我们应该对实验内容有足够的了解,并对实验的目标有清晰的认识;在实验中,我们应该认真观察并记录实验过程中发生的所有细节;在实验之后,我们应该对结果进行分析,并对实验中存在的问题进行思考和归纳。
只有在真正深入实验过程,并对实验经过有全面的掌握后,我们才能写出一份优秀的实验报告。
其次,软件工程实验报告的撰写应该具备科学的逻辑性和清晰的表达能力。
在撰写实验报告时,我们应该先明确实验的目的,并在实验结果中体现出来;同时,我们需要将实验中所遇到的所有问题和解决方案进行详细的阐述,以便读者更好地理解实验过程和结果。
此外,在写实验报告时,我们应该注意语言的简洁明了,句式的条理清晰,以及格式的规范统一。
最后,在软件工程实验报告的撰写中,引用和参考文献的使用也是非常重要的。
我们应该在实验报告中注明所使用的软件和工具的名称、版本号等信息,以便读者对结果进行验证和复现。
同时,在实验报告中,我们还应该引用相关的文献,为实验结果提供支撑和佐证。
总之,软件工程实验报告的撰写是一个非常重要的环节,它能够反映出我们在实验过程中的观察能力、思考能力、分析能力、表达能力等多方面的能力。
因此,我们应该认真对待实验报告的撰写,力求做到准确、明确、清晰。
只有这样,我们才能更好地掌握软件工程知识,为将来的学习和工作打下坚实的基础。
软件课程设计实验报告
软件课程设计实验报告课题:网络流量监控班级:电信0901班作者:王焕学号:U200914332指导老师:课设评价:课设成绩:课题背景随着构建网络基础技术和网络应用的迅速发展以及用户对网络性能要求的提高,使得网络管理成为迫切需要解决的问题,有效的网络管理能够保证网络的稳定运行和持续发展,更重要的是,随着网络规模的扩大和黑客技术的发展,入侵和攻击的案例日益增多,对稳定的网络服务、信息安全、互联网秩序都提出了严峻的挑战,网络安全管理在整个网络管理系统里扮演起更为重要的角色。
目前,在网络应用不断深入和技术频繁升级的同时,非法访问、恶意攻击等安全威胁也在不断推陈出新,愈演愈烈。
防火墙、VPN、IDS、防病毒、身份认证、数据加密、安全审计等安全防护和管理系统在网络中得到了广泛应用。
从网络安全专业管理人员的角度来说,最直接的需求就是根据分类在统一的界面中监视网络中各种运行性能状态,获取相关数据信息、日志信息和报警信息等,并进行分类汇总、分析和审计;同时完成攻击事件报警、响应等功能。
因此,用户的网络管理需要不断健全整体网络安全管理解决方案,从统一安全管理平台总体调控配置到多层面、分布式的安全系统,实现对各种网络安全资源的集中监控、策略管理、审计及多种安全功能模块之间的互动,从而有效简化网络安全管理工作,提升网络的安全水平和可用性、可控制性、可管理性。
项目描述互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。
在研究网络数据包捕获、TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。
该系统在VisualC++6.0环境下进行开发,综合采用了Winpcap、窗口编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。
软件过程实验报告总结(3篇)
第1篇一、实验背景随着信息技术的飞速发展,软件工程已成为计算机科学的重要分支。
软件过程是软件生命周期中各个阶段的活动,它包括需求分析、设计、编码、测试和维护等环节。
为了提高软件开发的效率和软件质量,软件过程管理显得尤为重要。
本实验旨在通过实践操作,加深对软件过程的理解,掌握软件过程管理的相关知识。
二、实验目的1. 理解软件过程的各个阶段及其相互关系;2. 掌握软件过程管理的基本方法;3. 提高软件开发的效率和质量;4. 培养团队协作能力。
三、实验内容1. 软件过程概述首先,我们对软件过程进行了概述,介绍了软件过程的定义、特点、作用以及软件过程模型。
通过学习,我们了解到软件过程是软件开发的基本框架,是保证软件开发质量的关键。
2. 需求分析需求分析是软件开发的第一步,也是最为关键的一步。
我们通过案例学习,了解了需求分析的方法和技巧。
在实验中,我们采用用户故事、用例图等方法对需求进行分析,确保需求完整、一致、可测试。
3. 设计设计是软件开发的核心环节,包括系统设计、模块设计和数据库设计等。
在实验中,我们学习了设计模式、架构风格等设计原则,通过UML图对系统进行设计,确保系统的可扩展性和可维护性。
4. 编码编码是软件开发的具体实施阶段,也是实现设计的过程。
我们学习了编程语言、代码规范等知识,通过编写代码实现设计。
在实验过程中,我们注重代码的可读性、可维护性和可测试性。
5. 测试测试是保证软件质量的关键环节。
我们学习了测试方法、测试用例设计等知识,通过编写测试用例对软件进行测试,确保软件满足需求。
6. 维护维护是软件生命周期的重要组成部分,包括软件的升级、修复、优化等。
我们学习了维护方法,了解了软件维护的重要性。
四、实验过程1. 组建团队我们将学生分成若干小组,每个小组负责完成一个软件项目的开发。
在小组内部分工合作,明确各自职责。
2. 需求分析各小组对项目进行需求分析,编写需求规格说明书,确保需求完整、一致、可测试。
软件工程实验报告1
软件工程实验报告1软件工程实验报告1实验目标本实验的目标是介绍软件工程的基本概念和实践,以及软件生命周期的各个阶段。
实验内容1. 软件工程的概念和基本原理2. 软件开发过程和方法3. 软件需求分析和规格说明4. 软件设计和实现5. 软件测试和维护实验步骤步骤一:软件工程的概念和基本原理在本实验的第一步,我们将介绍软件工程的概念和基本原理。
软件工程是一门研究如何开发和维护高质量软件的学科,它涉及到一系列的活动和技术,包括需求分析、设计、编码、测试和维护等。
步骤二:软件开发过程和方法在本实验的第二步,我们将介绍软件开发过程和方法。
软件开发过程是指一系列的活动和任务,用于将软件需求转化为可执行的软件系统。
软件开发方法是指在软件开发过程中使用的具体技术和方法。
步骤三:软件需求分析和规格说明在本实验的第三步,我们将介绍软件需求分析和规格说明。
软件需求分析是指对软件系统的需求进行收集、整理和分析的过程。
软件规格说明是对软件系统需求的详细描述和规定。
步骤四:软件设计和实现在本实验的第四步,我们将介绍软件设计和实现。
软件设计是将软件规格说明转化为可执行的软件系统的过程。
软件实现是根据设计要求将软件系统实现为可执行的程序。
步骤五:软件测试和维护在本实验的第五步,我们将介绍软件测试和维护。
软件测试是对软件系统的功能性和性能进行验证的过程。
软件维护是对软件系统的修改和更新的过程。
实验结果与讨论经过本实验的学习,我对软件工程的基本原理和实践有了更深入的了解。
我了解到软件工程是一门综合性的学科,涉及到多个阶段和技术。
我也了解到软件开发过程和方法对于软件的质量和可维护性非常重要。
实验通过本实验,我对软件工程的基本概念和实践有了更深入的了解。
我明白了软件开发过程和方法对于软件的质量和可维护性的重要性。
我还学会了如何进行软件需求分析和规格说明,软件设计和实现,软件测试和维护等关键步骤。
,本实验对我的软件工程学习提供了很好的指导和帮助,我相信我在今后的学习和实践中会更加深入地理解和运用这些知识。
《程序设计课程设计》实验报告
《程序设计》课程设计姓名:学号:班级:软件工程14 班指导教师:成绩:1.消除类游戏1.1【问题描述】消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。
当有多处可以被消除时,这些地方的棋子将同时被消除。
1.2【基本要求】现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。
请注意:一个棋子可能在某一行和某一列同时被消除。
输入数据格式:输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。
接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。
颜色使用1至9编号。
输出数据格式:输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。
如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。
1.3【测试数据】为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。
测试数据一输出说明:棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。
棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。
1.4【功能实现】#include <iostream>#include <windows.h>using namespace std;int main(){int m, n, i ,j;int temp;cin >> n >> m;temp = m;m = n;n = temp;int * map = new int[m * n];int * mark = new int[m * n];int * tmap = map;int * tmark = mark;int dif = 0;//输入for ( i = 0 ; i < m ; i++ )for (j = 0; j < n; j++)cin >> *(tmap + i * n + j);for (i = 0; i < m; i++)for (j = 0; j < n; j++){//横行if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0)if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)){dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + 1) = 0;*(tmark + dif + 2) = 0;}//竖列if (tmap + 2 * n - map < m * n || tmap + n - map < m * n)if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) {dif = tmap - map;*(tmark + dif) = 0;*(tmark + dif + n) = 0;*(tmark + dif + 2 * n) = 0;}tmap = map + (j+1) + i * n;}//输出cout << endl;tmap = map;for (i = 0; i < m; i++)for (j = 0; j < n; j++)if (* (tmark + i * n + j) == 0)*(tmap + i * n + j) = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++)cout<< *(tmap + i * n + j)<<" ";cout << endl;}system("pause");return 0;}1.5【结果和截图】1.6【心得体会】通过这次试验,我对c语言编译器和对棋盘类游戏中的棋子行列删除有了更加深刻的认识和了解。
软件工程实验报告
软件工程实验报告摘要:本报告通过对软件工程实验的实施和分析,总结了在软件工程领域中的实际应用,包括需求分析、系统设计、编码与测试、项目管理等方面的实践经验。
具体内容包括实验目的、实验步骤、实验结果以及对实验结果的分析和总结。
通过本次实验,我们对软件工程的理论知识进行了实际操作,并深入体验了软件开发中的流程和方法。
实验结果的分析表明,在正确的方法指导下,软件工程的实践可以有效提高软件质量和开发效率。
第一部分:引言在现代社会中,软件已经成为各个行业中不可或缺的一部分。
然而,由于软件的复杂性和开发的技术挑战,开发高质量软件变得越来越困难。
为了满足用户需求并确保软件质量,软件工程的概念和方法应运而生。
软件工程是对工程的原则和方法运用于软件开发的一种应用。
通过对软件工程的学习和实践,可以提高软件开发的效率和质量。
本实验旨在通过实际操作,深入理解和应用软件工程的方法和流程。
第二部分:实验目的本次实验的目的是通过实际操作,了解软件工程的实际应用,并掌握软件工程在需求分析、系统设计、编码与测试、项目管理等方面的方法和技巧。
实验内容包括以下方面:1. 需求分析:了解用户需求,进行需求分析和规格说明。
2. 系统设计:根据需求分析结果,进行系统设计,包括系统结构、模块划分等。
3. 编码与测试:基于系统设计,进行软件编码,同时进行单元测试和集成测试,确保软件的正确性和稳定性。
4. 项目管理:对软件项目进行管理,包括进度控制、团队协作、风险管理等。
第三部分:实验步骤1. 需求分析:与用户进行沟通,了解需求,并编写需求规格说明书。
2. 系统设计:根据需求规格说明书,进行系统结构设计和模块划分。
3. 编码与测试:根据系统设计,进行软件编码,并编写单元测试和集成测试用例。
4. 项目管理:创建项目计划,包括进度安排、成本控制等,并组织团队进行工作。
第四部分:实验结果通过本次实验,我们成功完成了需求分析、系统设计、编码与测试以及项目管理的任务。
《软件课程设计》实验报告
编号:()字号《软件课程设计》报告班级:姓名:学号:指导老师:职称:计算机科学与技术学院二〇〇八年月软件课程设计任务书专业年级:学生姓名:任务下达日期:课程设计日期:课程设计题目:面向过程题目七:一.需求分析设计任务:1.将输入的罗马数据化为10进制数。
假设罗马数据中只使用如下7个“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。
如,罗马数据LXXXVII表示10进制的87.2.将输入的10进制正整数转换为罗马数据。
假设罗马数据中只使用“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。
主要界面为:输入1或2可以选择功能。
输出的形式如上所示:当输入大写或小写的阿拉伯字母时.程序能计算出十进制.程序所能达到的功能测试的数据:当输入mvii罗马数字时输出十进制1007当输入十进制数4535时相应输出MMMMDXXXV。
二.概要设计程序中主要在开头用了一个死循环来实现功能的不断循环。
通过exit函数退出程序.主程序的流程以及各程序模块之间的层次(调用)关系.三.详细设计实现概要设计中定义的数据类型和操作。
以增加程序的可读性,关键算法部分画出程序流程图.主函数的流程图如右图示:四.调试分析实验时遇到的问题有:获得字符的c=getchar()。
时出错。
由于自己第一次用到该语句时是在判断他不是’\n’,但是自己忘记使用他,便对他进行第二次的赋值。
从而使最后总是出错.最后通过仔细检查,发现问题,通过解决。
问题不再有。
五.用户使用说明A.选择1或2后按回车键便可选择相应的功能,1是罗马转化为十进制,2是十进制转化为罗马数字。
B。
如果选择A这时输入罗马字母后按回车,程序便输出相应的十进制数.C。
如果选择B这时输入十进制数后按回车,程序便输出相应的罗马数字。
D.输入0后,便可以安全退出程序.六.设计体会在这个实验中,自己学会了用while(1)来实现功能的不断实现。
软件实验报告
软件实验报告软件实验报告引言在当今数字化时代,软件的应用已经渗透到我们生活的方方面面。
为了提高软件开发人员的技能和能力,软件实验成为了必不可少的一环。
本文将对我所参与的软件实验进行详细的报告和分析。
实验目的本次实验的目的是通过实际操作,加深对软件开发过程中的各个环节的理解,包括需求分析、设计、编码和测试等。
通过实验,我们将学习到如何使用特定的软件开发工具和技术,提高软件开发的效率和质量。
实验内容本次实验的主要内容是开发一个简单的学生管理系统。
该系统需要实现学生信息的录入、查询和修改功能。
通过这个实验,我们将学习到如何进行需求分析和系统设计,以及如何使用特定的编程语言和开发工具进行编码和测试。
需求分析在开始编写代码之前,我们首先需要进行需求分析。
通过和用户的沟通和了解,我们明确了系统的功能和性能要求。
例如,用户希望能够方便地录入学生信息,并能够通过学号或姓名进行查询。
同时,系统需要具备良好的用户界面和友好的交互体验。
系统设计在需求分析的基础上,我们进行了系统设计。
我们将系统分为三个模块:学生信息录入模块、学生信息查询模块和学生信息修改模块。
通过模块化的设计,我们可以更好地管理和维护代码,并且提高代码的复用性。
编码和测试在系统设计完成后,我们开始进行编码和测试。
我们选择了Java作为开发语言,并使用了Eclipse作为开发工具。
通过编写代码,我们实现了系统的各个功能模块,并进行了单元测试和集成测试。
在测试过程中,我们发现了一些问题并进行了修复,确保系统的稳定性和可靠性。
实验结果与分析经过一段时间的努力,我们成功地完成了学生管理系统的开发。
该系统具备了学生信息的录入、查询和修改功能,并且具有良好的用户界面和交互体验。
通过实验,我们不仅学到了软件开发的基本流程和技术,还培养了团队合作和解决问题的能力。
结论通过本次实验,我们深入学习了软件开发的各个环节,包括需求分析、系统设计、编码和测试等。
我们通过实际操作,提高了软件开发的技能和能力。
软件工程实验报告(总)
软件工程实验报告(总)信息工程学院软件工程实验报告专业:班级:学号:姓名:指导老师:实验一:软件开发的过程计划实验课时:2课时一、实验目的项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。
⑴估计项目的总体规模、工作量和成本。
⑵制定项目计划,重点放在产品生命周期中的主要关键任务。
⑶制定项目时间表和预算。
二、实验环境1.硬件环境P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。
2.软件环境操作系统:Windows XP数据库:Sql Server 2000以上或Access 2003以上3.通用工具软件通用绘图工具:MicroSoft Visio 2003以上文本编辑工具:MicroSoft Word 2003以上4.CASE工具UML建模工具:Rational Rose 2000三、实验要求、实验内容1、实验要求:在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。
2、实验内容熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM 公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。
学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。
四、思考题1、项目开发首先要做的事是什么?答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。
2、你认为该软件应具备的最重要的特性是什么。
答:安全性、实用性、灵活性。
3、你认为怎样分工是最合理的?答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工作员有问题的话,内部自己解决,只要按时汇报工作就可以了。
软件工程实验报告
《软件工程》课程实验报告实验名称:教务管理系统之子系统——学院课程安排姓名:院(系):软件学院专业班级:学号:指导教师:地点:成绩:时间:2012 年10月日至2012 年11月8 日1.实验目的确定项目的可实施性,获取项目的需求,并在此基础上完成系统的逻辑功能模型的建立,了解软件工程中需求分析阶段的主要活动和需求分析文档描述的主要内容,掌握利用数据流图描述系统功能需求的方法,正确应用数据字典。
增进对软件工程的理解,学会系统的分析软件的构成,掌握并理解软件从确立到测试等一系列过程。
2.实验内容1.系统简介每个学期的期中,学校教务处向各个学院发出下各学期的教学计划,包括课程名称、课程代码、课时、班级类别(本科、专科、成人教育、研究生)、班号等;学院教学主管人员根据教学任务和要求给出各个课程的相关限制(如:任课教师的职称、上课的班数、最高和最低周学时数等);任课教师自报本人授课计划,经所在教研室协调任可,将教学计划上交学院主管教学计划的人员,批准后上报学校教务处,最终由教务处给出下个学期全学院教师的教学任务书。
假设上述排课过程全部由人工操作,现要求为上述过程实现计算机自动处理过程。
2.限定条件a)每位教师的主讲课程门数不超过2门/学期:讲师以下职称的教师不能承担学院定主课的主讲任务。
b)学院中层干部的主讲课时不能超过4学时/周。
c)本学期出现严重教学事故的教师不能承担下各学期的主讲任务。
d)本系统的输入项至少包括:教务处布置的教学计划,学院教师自报的授课计划和学院定的有关授课限制条件。
e)本系统的输出项至少包括:教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。
项目数据流图系统的分析“教务管理系统之子系统——学院课程安排”的组成、结构和实现步骤,明白项目的业务流程图,绘制数据流图(DFD),数据模型(ER),编写数据字典(DD),数据加工处理的描述,撰写需求规格说明书3.实验步骤1.对图书管理系统进行分析,整合用户权限和操作2.根据用户操作流程画出系统流程图3.对系统做出概要分析,拟定开发流程4.绘制出甘特图5.绘制线性时间图4总结与回顾通过这次实验,我学到了很多东西,教务管理系统是学校的管理核心,管理应涉及到学校的专业设置、学藉管理、成绩管理、网上注册、开课管理、选课管理、师资管理等,在数据库一级建立强有力的安全系统,管理人员可以在互联网的任何地方办工,真正实现学校网上管理。
软件课程设计实验报告个人报告
软件课程设计实验报告(个人报告)课题:音乐播放器设计班级:电信1103班成员:成俊文学号:U201113148指导老师:许毅平老师课设评价:课设成绩:一、需求分析1)引言 (3)2)预期功能 (3)3)设计目标 (4)二、界面方案设计说明1)拟选用的开发平台和工具介绍 (4)2)系统框图 (5)3)软件各功能模块划分 (6)4)模块间的相互关系 (8)5)开发计划 (8)三、详细设计说明1)主界面轮廓设计及初始化 (8)2)界面外框和关闭最小化等的实现 (10)3)菜单添加歌曲设计 (13)菜单界面设计:4)播放列表list的实现 (13)播放列表的界面设计5)播放的控制部分 (14)播放按钮、进度条等的控制面板设计:6)歌名、歌词、目录显示的部分 (16)歌词界面设计(含有全部显示和滚动两部分):四、测试过程说明1)测试用例说明 (18)2)测试情况说明 (20)3)测试经历与想法 (21)五、功能模块使用说明 (22)六、开发总结 (24)一、需求分析1)引言本课程《软件课程设计》,旨在运用所学课程中有关数据结构、操作系统、数据库系统知识来进行本课程设计,熟练掌握高级程序设计技术,加深对课程内容的理解、提高软件应用设计能力及编程和调试能力。
同时加强学生的自我学习能力和团队协作能力,让同学学会面对问题,并学会独立去解决问题,也能触发学生的创新能力。
此次,我们班抽的任务是任选一门自己熟悉或擅长喜欢的语言设计一个基于windows平台的音乐播放器软件,要能实现对音乐库的管理和基本播放功能。
随着信息时代的到来以及网络的日益发展,音乐播放器软件随处可见,人人都在使用自己喜欢的播放应用软件。
其中也不乏一些优秀的成品,如酷狗、天天动听、qq音乐播放器等。
对于各色各样的播放器,用户心中都有自己的评价,如今我们作为它们的使用者,以用户的角度重新来设计一个音乐播放器,不仅要实现播放等最基本功能,最重要的是要提供一个良好的用户体验,即给使用者简洁,明了,方便,功能丰富的感受。
软件课程设计 第四阶段实验报告
软件课程设计第四阶段实验报告编号:()字号《软件课程设计》报告中国矿业大学计算机科学与技术学院年月1软件课程设计任务书专业年级:学生姓名:任务下达日期: 200 年月日课程设计日期: 200 年月日至 200年月日课程设计题目:数据结构类别数据结构题目序号 1顺序栈和链表栈的基本操作5 统计选票问题成绩2软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月3日目录七、数据结构1----- 顺序栈和链表栈的基本操作(第四阶段第一题顺序栈和链表栈.cpp)7.1 需求分析 (4)7.2 概要设计....................................................................................5 7.3 详细设计与编码...........................................................................6 7.4 调试分析....................................................................................14 7.5 用户使用说明............................................................................16 7.6 设计心得 (16)八、数据结构4----统计选票问题(第四阶段第四题统计选票问题.cpp)8.1 需求分析 (17)8.2 概要设计....................................................................................17 8.3 详细设计与编码...........................................................................17 8.4 调试分析....................................................................................20 8.5 用户使用说明...........................................................................21 8.6 设计心得 (21)7.1需求分析本程序是通过类的构造方法编写两种栈:顺序表栈和链表栈,以这顺序表和单向链表为基本构架,实现栈的基本操作:判空、.取栈顶元素、查找、.入栈、出栈、输出栈、求栈中元素个数。
软件工程课程设计实验报告
重庆邮电大学软件工程课程设计实验报告——网上选课系统姓名:雷雷学号:08500329专业:计算机科学与技术班级:0410801指导老师:邹洋教室:S331-A时间:2011-5-30~2011-6-3一、实验题目:网上选课系统主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。
用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。
用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。
最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。
二、实验目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。
通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。
三、实验要求1.一人一组。
2.熟悉Rose开发环境。
3.掌握UML的基本模型元素(如角色、用例、类等)。
4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
5.进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,建立完整的系统数据库的逻辑模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编号:()字号《软件课程设计》报告班级:信科10--2姓名:潘寿岭学号: 08103502指导老师:王志晓2012年01 月第四阶段六、数据结构设计题46.1需求分析1、设计一个统计选票的算法,输出每个候选人的得票结果2、假设采用单链表存放选票,候选人编号依次为1,2,3,……,N,且每张选票选且只选一人3、以单链表存放选票,每个结点的data域存放该选票所选的候选人。
用一个数组a统计得票结果。
6.2概要设计用函数CreateList ( )动态建立一个单链表,链表中每个节点的data域为空,返回头节点。
Statistics( )函数统计各个后选人所得票数。
在主函数中先输入候选人数n,然后动态建立一维数组a[n]来存放每个候选人所得票数(如a[i]表示第i+1号候选人所得票数),统计选票时调用Statistics( )函数,将整个单链表全部遍历一遍,将各个候选人的得票个数计入到数组a[n]中,最后输出各个候选人的得票情况。
6.3详细设计与编码流程图程序代码#include <iostream>using namespace std;typedef struct node{int data;struct node *next;}LNode;int n;LNode *CreateList() //构建单链表,每投一票插入一个节点,节点data域存放所选的候选人号码{LNode *L,*p,*t;int m,i;L=new LNode;L->next=NULL;L->data=NULL; //头结点data域中为空t=L;cout<<"输入投选票的张数:";cin>>m;cout<<"请投选票:"<<endl;for(i=0;i<m;i++){p=new LNode;cout<<"请输入要投第几号候选人:";cin>>p->data;p->next=NULL;t->next=p;t=p;}return L; //返回头结点}void Statistics(LNode *L,int *a) //统计投票情况{LNode *p;p=L->next;while(p!=NULL){a[p->data-1]++; //a[i]中存放第i+1号候选人的得票个数p=p->next;}}void main(){int i;LNode *L;cout<<"请输入候选人人数:";cin>>n;int *a=new int[n]; //动态建立数组,用来存放候选人得票个数for(i=0;i<n;i++)a[i]=0;L=CreateList(); //构建单链表,返回头结点Statistics(L,a); //统计投票情况for(i=0;i<n;i++) //输出得票结果cout<<"第"<<i+1<<"个候选人的得票数为:"<<a[i]<<endl;}运行结果6.4调试分析由于候选人数不确定,所以要根据输入的候选人人数动态建立数组来存放得票情况。
在动态建立单链表的过程中系统出现过内存分配错误的问题,所以在建立链表时要保证尾节点的指针域始终为空,另设一个指针始终指向插入的节点,为下一个节点的插入做准备。
创建单链表的函数返回头节点的地址,所以函数类型为指针类型。
6.5用户使用说明用户进入界面后,先输入候选人数,在输入要投票数,接着开始投票,每输入一个号码后按回车,最终得到投票结果。
6.6设计心得本题是一道简单的数据结构链表创建和遍历问题。
通过本题的练习和思考,使我了解和掌握了单链表和循环链表的创建以及创建链表时应该注意的问题,了解了链表在解决一些问题时的优越性。
七、数据结构设计题97.1需求分析1、从一副扑克牌(54张)中任意抽出27张(不重复),摆放在不同的三行上(每行9张),用户“暗记”某张纸牌,输入所“暗记”的那张纸牌处于哪一行。
2、之后计算机再两次将纸牌重新摆放,并让用户再回答两次相同的提问(那张纸牌在重新摆放后又处在哪一行上)。
3将用户所“暗记”的那张纸牌给挑出来,显示到屏幕上。
7.2概要设计定义一个结构体pk,pk中存放扑克牌的数码和花色;成员函数有display( ),用来输出扑克牌的布局;int_char1( )函数用来将随机生成的整数转化为扑克牌的数码;int_char2 ( )函数用来将随机生成的整数转化为扑克牌的花色;move ( )函数用来重新摆放扑克牌,整数1—15对应的扑克牌数码依此为A 1 2 3 4 5 6 7 8 9 10 J Q K X Z,整数1—4对应扑克牌花色依此为a b c d (红桃、黑桃、梅花、方块)。
在主函数中定义结构体数组p[27]用来存放取出的27张牌的数码和花色。
先自动生成一张牌,之后每生成一张牌都要与前几张生成的牌进行比较,如果相同均要重新生成,直至生成27张不同的扑克牌为止;然后分三行显示这27张牌。
之后调用move ( )函数,用户暗记一张牌并输入改牌所在的行数,然后计算机根据用户输入的行数决定重新洗牌的方式,洗完牌后将重新摆放的扑克牌布局显示到屏幕上,用户继续输入所记扑克牌的行数,计算机第二次将牌重新摆放,输出摆放的布局,用户再次回答提问,最终计算机将用户暗记的牌挑出来显示到屏幕上。
7.3详细设计与编码流程图程序代码#include<iostream> #include<iomanip> using namespace std;struct pk{char data; //扑克牌上的数码char hs; //扑克牌的花色};void display(pk); //输出扑克牌的摆放情况char int_char1(int); //将随机生成的数字转化为扑克牌上的数码char int_char2(int); //将随机生成的数字转化为扑克牌上的花色void move(pk*); //重新摆放扑克牌void main(){pk p[27];for(;;){p[0].data=int_char1(rand()%15+1); //生成第1 张扑克牌的数码p[0].hs=int_char2(rand()%4+1); //生成第1 张扑克牌的花色for(int i=1;i<27;){pk g;g.data=int_char1(rand()%15+1); //生成第i+1 张扑克牌的数码g.hs=int_char2(rand()%4+1); //生成第i+1 张扑克牌的花色bool prime=true;for(int j=0;j<i;j++) //将生成的扑克牌与前i张进行比较,出现相同的则重新生成扑克牌{if((g.data==p[j].data&&g.hs==p[j].hs)||g.data=='X'&&p[j].data=='X'||g.data=='Z'&&p[j].data =='Z'){prime=false;break;}}if(prime){p[i].data=g.data;p[i].hs=g.hs;i++;}}int l=1;int k;cout<<"--------------------------------------------------------------"<<endl;for( k=0;k<27;k++){if(k==0||k==9||k==18){cout<<"Line"<<l<<" ";l++;}display(p[k]); //将扑克牌分行显示在屏幕上if((k+1)%9==0)cout<<endl;}move(p);char a;cout<<"是否继续游戏?(y/n)";cin>>a;while(a!='y'&&a!='n'){cout<<"输入错误请从新输入(继续输入y,退出输入n):";cin>>a;}if(a=='n')break;}}char int_char1(int i){char p;switch(i) // 将随机生成的数字转化为扑克牌上的数码,大小王为X和Z {case 1:p='A';break;case 2:p='2';break;case 3:p='3';break;case 4:p='4';break;case 5:p='5';break;case 6:p='6';break;case 7:p='7';break;case 8:p='8';break;case 9:p='9';break;case 10:p='W';break;case 11:p='J';break;case 12:p='Q';break;case 13:p='K';break;case 14:p='X';break;case 15:p='Z';break;}return p;}char int_char2(int i){char p;switch(i) //将随机生成的数字转化为扑克牌上的数码{case 1:p='a';break;case 2:p='b';break;case 3:p='c';break;case 4:p='d';break;}return p;}void display(pk h) //除了大小王,其余扑克牌均要输出数码和花色{if(h.data=='X')cout<<setw(8)<<"KING2";else if(h.data=='Z')cout<<setw(8)<<"KING1";else if(h.data=='W')cout<<setw(4)<<h.hs<<"-"<<"10";else cout<<setw(4)<<h.hs<<"-"<<h.data;}void move(pk *p){int i;pk k[27];pk k2[27];int line;int line2;int line3;cout<<"--------------------------------------------------------------"<<endl;cout<<"Remember a card, and tell me what line it reside in(1/2/3):"; //用户暗记一张牌,输入该牌在第几行cin>>line;switch(line) //根据输入的行数,选择相应的重新洗牌方式{case 1: for(i=0;i<3;i++){k[i]=p[i];k[i+9]=p[i+3];k[i+18]=p[i+6];}for(i=3;i<6;i++){k[i]=p[i+6];k[i+9]=p[i+9];k[i+18]=p[i+12];}for(i=6;i<9;i++){k[i]=p[i+12];k[i+9]=p[i+15];k[i+18]=p[i+18];}break;case 2:for(i=0;i<3;i++){k[i]=p[i+9];k[i+9]=p[i+12];k[i+18]=p[i+15];}for(i=3;i<6;i++){k[i]=p[i-3];k[i+9]=p[i];k[i+18]=p[i+3];}for(i=6;i<9;i++){k[i]=p[i+12];k[i+9]=p[i+15];k[i+18]=p[i+18];}break;case 3: for(i=0;i<3;i++){k[i]=p[i+18];k[i+9]=p[i+21];k[i+18]=p[i+24];}for(i=3;i<6;i++){k[i]=p[i+6];k[i+9]=p[i+9];k[i+18]=p[i+12];}for(i=6;i<9;i++){k[i]=p[i-6];k[i+9]=p[i-3];k[i+18]=p[i];}break;}int l=1;cout<<"----------------------------------------------------------"<<endl;for(i=0;i<27;i++){if(i==0||i==9||i==18){cout<<"Line"<<l<<" ";l++;}display(k[i]); //将扑克牌分行显示在屏幕上if((i+1)%9==0)cout<<endl;}cout<<"--------------------------------------------------------------"<<endl;cout<<"What line the card you remembered reside in now (1/2/3) :"; //输入暗记的牌所在行数cin>>line2;switch(line2) //根据输入的行数,选择相应的重新洗牌方式{case 1: k2[8]=k[0];k2[17]=k[1];k2[26]=k[2];for(i=9;i<=16;i++)k2[i]=k[i];for(i=18;i<=25;i++)k2[i]=k[i];k2[0]=k[8];k2[1]=k[17];k2[2]=k[26];for(i=3;i<=7;i++)k2[i]=k[i];break;case 2: k2[8]=k[9];k2[17]=k[10];k2[26]=k[11];for(i=0;i<=7;i++)k2[i]=k[i];for(i=18;i<=25;i++)k2[i]=k[i];k2[9]=k[8];k2[10]=k[26];k2[11]=k[17];for(i=12;i<=16;i++)k2[i]=k[i];break;case 3: k2[8]=k[18];k2[17]=k[19];k2[26]=k[20];for(i=0;i<=7;i++)k2[i]=k[i];for(i=9;i<=16;i++)k2[i]=k[i];k2[18]=k[8];k2[19]=k[17];k2[20]=k[26];for(i=21;i<=25;i++)k2[i]=k[i];}l=1;cout<<"----------------------------------------------------------"<<endl; for(i=0;i<27;i++){if(i==0||i==9||i==18){cout<<"Line"<<l<<" ";l++;}display(k2[i]); //将扑克牌分行显示在屏幕上if((i+1)%9==0)cout<<endl;}cout<<"--------------------------------------------------------------"<<endl;cout<<"What line the card you remembered reside in now (1/2/3) :"; //输入暗记的牌所在行数pk R;cin>>line3;switch(line3) //根据输入的行数,最终确认用户暗记的扑克牌{case 1:R=k2[8];break;case 2:R=k2[17];break;case 3:R=k2[26];break;}cout<<"----------------------------------"<<endl;cout<<"Your remembered card is :";display(R);cout<<endl;}运行结果7.4调试分析刚开始发现随机抽出的27张牌有一些是重复的,应为程序没有在生成牌的时候将新牌与已生成的牌进行比较。