实验3、黑盒测试:决策表测试方法
- 格式:doc
- 大小:2.69 MB
- 文档页数:14
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
软件工程中软件测试方法软件测试是软件工程中非常重要的环节,它用于验证和评估软件系统是否满足预期的需求,并发现其中的错误和缺陷。
在软件测试过程中,可以采用多种不同的测试方法来确保软件的质量和稳定性。
以下是一些常见的软件测试方法:1. 黑盒测试:这种测试方法着重于测试软件系统的功能性,而不考虑内部的实现细节。
测试人员只关注输入和输出之间的关系,通过输入不同的数据,检查系统的响应和输出是否符合预期。
黑盒测试通常包括等价类划分、边界值分析、决策表等技术来设计测试用例。
2. 白盒测试:与黑盒测试相反,白盒测试关注软件系统的内部结构和实现。
测试人员需要了解代码的逻辑和结构,在此基础上设计相关的测试用例。
白盒测试通常包括语句覆盖、分支覆盖、路径覆盖等技术,以确保代码的全面覆盖率。
3. 灰盒测试:灰盒测试是黑盒测试和白盒测试的结合,既考虑系统的功能性,也考虑内部的实现。
测试人员在设计测试用例时,会兼顾输入输出关系和代码结构等因素。
4. 冒烟测试:冒烟测试也称为可靠性测试或基本功能测试,用于验证软件系统的基本功能是否正常工作。
在软件开发过程中的早期阶段,进行冒烟测试可以尽早发现严重的错误和缺陷。
5. 性能测试:性能测试用于评估软件系统在不同负载下的性能表现,包括响应时间、吞吐量、并发性能等指标。
通过性能测试,可以确定系统在实际使用场景下的性能瓶颈,并进行性能优化。
6. 安全测试:安全测试用于评估软件系统的安全性,包括数据安全、身份认证、访问控制等方面。
通过安全测试,可以发现系统中的安全漏洞和弱点,并提供相应的安全防护措施。
7. 兼容性测试:兼容性测试用于验证软件系统在不同的操作系统、浏览器、设备等环境下的兼容性。
通过兼容性测试,可以确保软件在各种环境下都能正常运行。
以上是软件工程中常见的软件测试方法,每种方法都有其特定的应用场景和测试目标。
在实际项目中,通常会根据需求和资源的情况,选择合适的测试方法来保证软件的质量和稳定性。
软件测试(14)--黑盒测试案例设计技术--基于决策表的测试决策表,也叫判定表。
在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
人们使用两种密切关联的方法:因果图法和决策表格法。
与决策表相比,这两种方法使用起来更麻烦,并且全冗余。
决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。
在程序设计发展的初期,决策表就已被用作编写程序的辅助工具了。
它可以把复杂的逻辑关系和多种条件组合的情况表达得比较明确。
1、决策表的组成决策表通常由4个部分组成,如下图:●条件桩(condition stub):列出了问题的所有条件。
通常认为列出的条件的次序无关紧要。
●动作桩(action stub):列出了问题规定可能采取的操作。
这些操作的排列顺序没有约束。
●条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
●动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
●规则:任何一个条件组合的特定取值及其相应要执行的操作。
在决策表中贯穿条件项和动作项的一列就是一条规则。
显然,决策表中列出多少组条件取值,也就有多少规则,条件项和动作项就有多少列。
2、决策表建立决策表的建立应该根据软件规格说明,步骤如下:①确定规则的个数。
假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
②列出所有的条件桩和动作桩。
③输入条件项。
④填入动作项。
制定初始决策表。
⑤简化。
合并相似规则或者相同动作。
Beizer(《Software Testing Techniques》的作者)指出了适合使用决策表设计测试用例的条件:①规格说明以决策表的形式给出,或很容易转换成决策表。
②条件的排列顺序不影响执行哪些操作。
③规则的排列顺序不影响执行哪些操作。
④当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。
黑盒测试常用的方法黑盒测试是一种软件测试方法,它是在不考虑内部逻辑的情况下对软件进行测试。
黑盒测试方法主要关注软件的功能和性能,以验证软件是否符合预期的行为和需求。
以下是常用的黑盒测试方法:1. 等价类划分:这是一种常用的测试方法,它将输入域划分为多个等价类,每个等价类代表相同的输入条件。
然后,从每个等价类中选择一个测试用例进行测试,以覆盖整个输入域。
2. 边界值分析:这种方法使用输入域的边界值作为测试用例,因为通常边界值处容易出现错误。
通过测试输入域的最小值、最大值和所有边界值,可以发现可能存在的边界条件错误。
3. 错误推测:根据软件的规格说明或需求文档,分析可能的错误,然后设计测试用例来验证这些错误是否已正确处理。
例如,输入非法数据时是否有适当的错误提示。
4. 决策表测试:使用决策表来测试软件的各种输入组合。
决策表列出了所有可能的输入和它们对应的输出,通过测试这些组合可以检查软件的正确性。
5. 回归测试:当软件发生变更时,为了确保修改不会引入新的错误或破坏已有的功能,使用回归测试来重新执行一部分或全部之前的测试用例。
6. 状态转换测试:对软件的不同状态进行测试,例如登录状态、注销状态、错误状态等。
通过切换软件的状态并测试其相应的行为,可以验证软件是否正确地在不同状态之间转换。
7. 用户界面测试:测试软件的用户界面,包括布局、颜色、字体等方面。
通过测试用户界面的各个组件和功能,可以确保用户能够正常地操作软件。
8. 性能测试:测试软件的性能和响应时间。
通过模拟高负载和并发用户,并监测软件的响应时间和资源使用情况,可以评估软件的性能是否满足需求。
9. 安全测试:测试软件的安全性,如是否存在漏洞、是否能够抵御攻击等。
通过测试软件的鉴权、加密、防护等机制,可以确保软件的安全性。
10. 兼容性测试:测试软件在不同操作系统、浏览器、设备等平台上的兼容性。
通过测试软件在各种环境下的功能和性能,可以确保软件在不同平台上的可用性。
黑盒测试常用的五种测试方法在软件开发中,黑盒测试是一种测试方法,它主要关注于测试软件的功能,而无需了解其内部结构或代码细节。
黑盒测试的目的是验证软件在用户输入条件下的预期行为是否符合要求。
在进行黑盒测试时,测试人员通常不了解软件的实现细节,而是通过输入有效和无效的数据来检查软件的输出。
在本文中,我们将介绍黑盒测试中常用的五种测试方法。
1. 等价类划分等价类划分是一种常用的黑盒测试方法,它将输入数据划分为多个等价类,并选择代表每个等价类的测试用例进行测试。
例如,如果一个输入要求在 1 到 100的范围内,我们可以将输入数据划分为三个等价类:小于 1 的无效数据、1 到 100的有效数据和大于 100 的无效数据。
通过选择每个等价类的代表性测试用例来进行测试,可以有效地覆盖不同情况下的输入。
2. 边界值分析边界值分析是一种黑盒测试方法,它专注于测试软件边界条件下的行为。
在边界值分析中,测试人员选择接近边界的测试用例来进行测试,以确保软件在边界条件下能够正确处理输入。
例如,如果一个输入要求在 1 到 100 的范围内,边界值分析会测试 1 和 100 的情况,以确保软件在边界值处的行为符合预期。
3. 因果图法因果图法是一种黑盒测试方法,它通过绘制因果图来识别软件功能之间的因果关系,并选择适当的测试用例进行测试。
在因果图法中,测试人员将软件功能表示为节点,将功能之间的因果关系表示为边,然后根据因果图选择测试路径进行测试。
这种方法可以帮助测试人员有效地发现功能之间的关联,并生成全面的测试用例。
4. 决策表测试决策表测试是一种黑盒测试方法,它通过定义软件的决策表来确定测试用例。
在决策表中,列出了软件在不同条件下的决策和对应的操作,测试人员可以根据这些条件和操作来选择测试用例。
通过决策表测试,测试人员可以全面地覆盖软件的各种情况,并验证软件在不同决策条件下的行为是否正确。
5. 状态转换测试状态转换测试是一种黑盒测试方法,它主要用于测试软件在不同状态下的过渡和行为。
黑盒测试的四种方法有哪些黑盒测试是软件测试中重要的一种测试方法,它是在不需要了解内部实现细节的情况下对软件进行测试的技术。
黑盒测试的本质是从用户的角度出发,检查软件是否符合需求。
在进行黑盒测试时,测试人员只关心软件的输入和输出,而不关心其内部实现逻辑。
在实际的黑盒测试中,有多种测试方法可以被应用。
下面将介绍黑盒测试的四种主要方法:1. 等价类划分测试等价类划分测试是一种常用的黑盒测试方法,通过将输入数据划分成几个等价类,然后选择一些典型的数据进行测试。
这种方法能够有效地减少测试用例的数量,提高测试的效率。
在等价类划分测试中,通常会选择一个代表性的数据来代表每个等价类,以确保每种情况都被测试到。
2. 边界值测试边界值测试是一种黑盒测试方法,通过在输入数据的边界值处进行测试来发现潜在的错误。
在软件开发中,常常会出现一些在边界值处容易出错的情况,如数组的最大索引、输入的最大长度等。
通过边界值测试,可以有效地发现这些隐藏的问题,提高软件的质量。
3. 因果图测试因果图测试是一种黑盒测试方法,通过分析软件的功能并确定输入和输出之间的因果关系来设计测试用例。
在因果图测试中,测试人员首先要了解软件的功能,并绘制出因果图,然后根据因果图设计测试用例,以验证软件是否按照功能规范来运行。
4. 决策表测试决策表测试是一种黑盒测试方法,通过构建决策表来设计测试用例。
决策表是描述输入条件和输出结论之间关系的一种工具,可以帮助测试人员理清软件功能的复杂逻辑关系,并设计出完备的测试用例。
通过决策表测试,可以有效地发现软件中潜在的逻辑错误。
总的来说,黑盒测试是一种重要的测试方法,在软件开发过程中起着至关重要的作用。
不同的黑盒测试方法可以互相补充,帮助测试人员更好地发现潜在的问题,提高软件的质量和稳定性。
在实际的测试工作中,可以根据具体的情况选择不同的黑盒测试方法,以确保软件的功能和性能得到充分的验证。
黑盒测试方法主要包括哪四种在软件测试领域中,测试的方法可以分为黑盒测试和白盒测试两种。
黑盒测试是一种测试方法,测试人员在执行测试时只关注程序的功能和功能是否符合需求,而不考虑程序内部的实现细节。
在黑盒测试中,测试人员不需要了解程序的代码和结构,只需了解程序的输入和输出以及其功能。
黑盒测试方法主要包括以下四种:1. 等价类划分等价类划分是一种黑盒测试方法,它将输入数据划分为不同的等价类,以确保程序对每个等价类的处理是一致的。
在等价类划分测试中,只需从每个等价类中选择一组典型的测试数据进行测试,而不需要测试每个可能的输入值。
2. 边界值分析边界值分析是一种黑盒测试方法,它针对程序的边界情况进行测试。
在边界值分析测试中,测试人员会针对输入数据的边界值进行测试,以确保程序在边界值处能够正确处理输入。
通过测试边界值,可以有效地发现程序中可能存在的错误。
3. 因果图法因果图法是一种黑盒测试方法,它通过绘制因果图来分析程序中的输入和输出之间的因果关系。
在因果图法测试中,测试人员会根据程序的逻辑结构和功能特性绘制因果图,以帮助设计测试用例和确定测试的重点。
4. 决策表测试决策表测试是一种黑盒测试方法,它通过设计决策表来确定测试用例。
在决策表测试中,测试人员会分析程序的决策条件和动作,然后设计一个表格来表示这些条件和动作之间的关系。
通过设计决策表,可以有效地生成全面而有效的测试用例。
综上所述,黑盒测试方法主要包括等价类划分、边界值分析、因果图法和决策表测试四种方法。
这些方法结合起来可以帮助测试人员设计全面而高效的测试用例,确保软件程序的功能符合需求,并提高软件质量。
实验3、黑盒测试:决策表法、因果图法及测试用例设计
一、实验目的
1、掌握决策表法、因果图的概念。
2、掌握决策表法、因果图测试用例设计法。
二、实验内容
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
用程序模拟该自动售货机(注:用屏幕输入、输出来模拟售货机的动作),然后用因果图法测试该程序。
三、实验步骤:
1)分析原因与结果
2)画出因果图
3)转化为决策表
4)根据决策表设计测试用例,得到测试用例表
代码:
#include <stdio.h>
main(){
float i;
char j;
printf("请投入硬币:\n");
scanf("%f",&i);
printf("请选择所需饮料:\na:橙汁 or b:啤酒\n");
scanf("%s",&j);
if(i==0.5){
printf("出货成功");
}
else{
printf("找零%.2f元\n出货成功",i-0.5);
}
}
答:。
三角形问题的三种测试方式--边界值测试,等价类测试、决策表测试一.方法简介1. 定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2. 与等价划分的区别1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3. 边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4. 常见的边界值1) 对16-bit 的整数而言32767 和-32768 是边界2) 屏幕上光标在最左上、最右下位置3) 报表的第一行和最后一行4) 数组元素的第一个和最后一个5) 循环的第0 次、第1 次和倒数第2 次、最后一次5. 边界值分析1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。
2) 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
20 15 — 20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 5 月 17 日实验题目实验3、黑盒测试:决策表测试方法实验目的1、掌握决策表的概念2、掌握决策表测试用例设计法。
实验内容1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day 和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
实验步骤:1)构造决策表●M1={月份:30天/月},M2={月份: 31天/月,12月除外},M3={月份: 12月},M4={月份: 2月}●D1={日期:1<=日<=27},D2={日期:日=28},D3={日期:日=29} ,D4={日期:日=30},D5={日期:日=31}●Y1={年:闰年},Y2={年:平年}注:二月:平年28天,闰年29天条件桩:●C1:月份在{M1,M2,M3,M4}中之一●C2:日期在{D1,D2,D3,D4 ,D5}中之一●C3:年在{Y1,Y2}中之一动作桩:●A1:不可能●A2:日期增1●A3:日期复位(置1)●A4:月份增1●A5:月份复位(置1)●A6:年增11 2 3 4 5 6 7 8 9 10C1:月M1 M1 M1 M1 M1 M2 M2 M2 M2 M2C2:日D1 D2 D3 D4 D5 D1 D2 D3 D4 D5C3:年A1:不可能√A2:日期+1 √√√√√√√A3:日期复位√√(置1)A4:月份+1 √√A5:月份复位(置1 )A6:年+111 12 13 14 15 16 17 18 19 20 21 22C1:月M3 M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4C2:日D1 D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5C3:年Y1 Y2 Y1 Y2 A1:不可能√√√A2: 日期+1 √√√√√√√√√A3: 日期复位(置1)A4: 月份+1 √√√A5: 月份复位(置1 )A6: 年+1 √2)根据决策表设计测试用例,得到测试用例表(测试用例表格式同实验1)。
用例编号月日年预期输出1--3 4 12/28/29 2001 2001年4月13/29/30日4 4 30 2001 2001年5月1日5 4 31 2001 不可能2001 2001年1月16/29/30/31日6--9 1 15/28/29/310 1 31 2001 2001年2月1日11-14 12 15/28/29/32001 2001年12月16/29/30/31日15 12 31 2001 2002年1月1日16 2 15 2001 2001年2月16日17 2 28 2004 2004年2月29日18 2 28 2001 2001年3月1日19 2 29 2005 2005年3月1日20 2 29 2001 不可能21,22 2 30/31 2001 不可能3)执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
缺陷编号001 用例编号1—3 缺陷类型严重级别严重优先级优先缺陷状态New测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入非数字字符,运行出现死循环预期结果报告输入格式错误重现步骤备注按照步骤打开程序,输入非字符,运行以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日缺陷编号001 用例编号缺陷类型缺陷编号002 用例编号9 缺陷类型严重级别一般优先级优先缺陷状态New 测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入2012.1.30,出现两次2012.2.1预期结果出现一次2012.2.1重现步骤备注按照步骤打开程序,输入2012.1.30,出现两次2012.2.1以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日缺陷编号003 用例编号12 缺陷类型严重级别严重优先级优先缺陷状态New测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入2012.12.31出现2011.12.33预期结果应该出现2013.1.2重现步骤备注按照步骤打开程序,输入2012.12.31出现2011.12.33以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日测试代码(C语言实现)#include <iostream>using namespace std;void NextDate(int year,int month,int day);void main(){int year=0,month=0,day=0;NextDate(year,month,day);}void NextDate(int year,int month,int day){cout<<"请输入年份:"<<endl;cin>>year;while(!(year>=1811 && year<=2013)){cout<<"年份超过界限,请重新输入"<<endl;cin>>year;}cout<<"请输入月份:"<<endl;cin>>month;while (month>12||month<1){cout<<"月份输入有误,请重新输入"<<endl;cin>>month;}cout<<"请输入日期:"<<endl;cin>>day;while (day>31||day<1){cout<<"日期输入有误,请重新输入"<<endl;cin>>day;}if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年;{int i=0;i=day-29;while(month==2&&i>0){cout<<"本月是闰月,请在1-29之间从新输入日期"<<endl;cin>>day;}if(month==2&&day==28){month=3;day=1;}else if(month==2&&day==29){month=3;day=2;}else day=day+2;}else day=day+2;//月底计算;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:if (day==32){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if (day==33){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 2:if(day==29){month=3;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==30){month=3;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 4:case 6:case 9:case 11:if(day==31){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==32){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 12:if(day==32){year++;month=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;}cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}2、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
假设一个中国的航空公司规定:●中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。