北邮计算机复试软件工程试题A附答案
- 格式:doc
- 大小:63.68 KB
- 文档页数:10
北邮复试上机网研的题目第一题:查找输入数组长度n输入数组 a[1...n]输入查找个数m输入查找数字b[1...m]输出YES or NO 查找有则YES 否则NO如(括号内容为注释)输入:5(数组长度)1 52 4 3(数组)3(查找个数)2 5 6(查找具体数字)输出:YESYESNO#include <stdio.h>#include <stdlib.h>int main(){int n,m,i,j,a[2001]={0},b[2001]={0},flag=0;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);scanf("%d",&m);for(i=0;i<m;i++)scanf("%d",&b[i]);for(i=0;i<m;i++){for(j=0;j<n;j++){if(b[i]==a[j]){flag=1;printf("YES\n");break;}}if(flag!=1)printf("NO\n");flag=0;}// // system("PAUSE");return 0;}第二题:查找第K小数查找一个数组的第K小的数,注意同样大小算一样大如 2 1 3 4 5 2 第三小数为3如(括号内容为注释)输入:6(数组长度n)2 13 5 2 2(数组)3(K 即为第三小数)输出:3Code#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){int n,k,i,j,a[1001],temp,m=1;scanf("%d %d",&n,&k);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}for(i=0;i<n-1;i++)if((a[i]==a[i+1])&&(i<k))k++;printf("%d\n",a[k-1]);// system("PAUSE");return 0;∙}第三题:打牌牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌规则:出牌牌型有5种[1]一张如4 则5...9可压过[2]两张如44 则55,66,77,...,99可压过[3]三张如444 规则如[2][4]四张如4444 规则如[2][5]五张牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大压过输出YES 否则NO如(括号内容为注释)输入:12233445566677(手中牌)33(出牌)输出:YESProblem Id: 1820Submit time: 2010-04-25 20:28:36User_id: jyjyjy1989Memory:204K Time:19MSLanguage:G++ Result:Accepted∙Code∙#include<iostream>∙#include<string.h>∙using namespace std;∙∙int main(void)∙{∙char str1[100],str2[5];∙scanf("%s",str1);∙char ch;ch=getchar();∙scanf("%s",str2);∙int i=0;int count[10]={0};∙while(str1[i]!='\n')∙{∙if((str1[i]-'1')==0)count[0]++;∙else if((str1[i]-'1')==1)count[1]++; ∙else if((str1[i]-'1')==2)count[2]++; ∙else if((str1[i]-'1')==3)count[3]++; ∙else if((str1[i]-'1')==4)count[4]++; ∙else if((str1[i]-'1')==5)count[5]++; ∙else if((str1[i]-'1')==6)count[6]++; ∙else if((str1[i]-'1')==7)count[7]++; ∙else if((str1[i]-'1')==8)count[8]++; ∙else break;∙i++;∙}∙int s1,s2,s3,s4,s5;int flag=1;∙if(strlen(str2)==1)∙{s1=*str2-'1';∙for(;s1<9;s1++)∙if(count[s1+1]>0)∙{printf("YES\n",s1);flag=0;break;}∙}∙else if(strlen(str2)==2){s2=*str2-'1';for(;s2<9;s2++)if(co unt[s2+1]>=2){printf("YES\n",s2);flag=0;break;}}∙else if(strlen(str2)==3){s3=*str2-'1';for(;s3<9;s3++)if(co unt[s3+1]>=3){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==4){s4=*str2-'1';for(;s4<9;s4++)if(co unt[s4+1]>=4){printf("YES\n");flag=0;break;}}∙else if(strlen(str2)==5){s5=*str2-'1';for(;s5<9;s5++)if(co unt[s5+5]>0&&count[s5+1]>0&&count[s5+2]>0&&count[s5+3]>0&&count [s5+4]>0&&((s5+5)<9)){printf("YES\n");flag=0;break;}}∙if(flag==1)printf("NO\n");∙//system("PAUSE");∙return EXIT_SUCCESS;∙}第四题:树查找简单说就是一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY,具体描述得借助图形比较好,懒得写了,基本就是这个样子的。
《软件工程》综合练习题第一章一、单项选择题1、软件是一种逻辑产品,软件产品具有无形性,它是通过()体现它的功能和作用的。
A、复制B、计算机的执行C、开发和研制D、软件费用2、同一软件的大量软件产品的生产主要是通过()而得到A、研究B、复制C、开发D、研制3、作坊式小团体合作生产方式的时代是()时代。
A、程序设计B、软件生产自动化C、程序系统D、软件工程4、软件工程是计算机科学中的一个分支,其主要思想是在软件生产中用()的方法代替传统手工方法。
A、工程化B、现代化C、科学D、智能化5、软件工程与计算机科学性质不同,软件工程着重于()A、理论研究B、原理探讨C、如何建造软件系统D、原理的理论6、将每个模块的控制结构转换成计算机可接受的程序代码是()阶段的任务。
A、编码B、需求分析C、详细设计D、测试7、软件工程要用()的方法建立软件开发中的各种模式和各种算法A、管理B、工程C、数学D、计算机8、软件开发费用只占整个软件系统费用的()A、1/2B、1/3C、1/4D、2/39、软件开发中大约要付出()%的工作量进行测试和排错A、20B、30C、40D、5010、()方法是一种面向数据结构的开发方法。
A、结构化B、JacksonC、维也纳开发D、面向对象开发11、准确地解决“软件系统必须做什么”是()阶段的任务:A、可行性研究B、需求分析C、详细设计D、编码12、软件生存周期中时间最长的是()阶段A、需求分析B、概要设计C、测试D、维护13、()方法是以数据结构为驱动的、适合于小规模的项目。
A、JSPB、JSDC、VDMD、Jackson14、软件是一种()产品A、物质B、逻辑C、有形D、消耗二、填空题1、软件与物质产品有很大的区别,软件产品是一种产品。
2、软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于。
3、概要设计主要是把各项功能需求转换成系统的。
4、最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是。
北邮网院软件工程与软件测试阶段作业题和答案本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March提示: 试题分值: 5.0 得分:[5知识点: 第一章 软件工程介绍学生答案:[B;]提示: 试题分值: 5.0 得分:[5知识点: 第一章 软件工程介绍学生答案:[A;]提示: 试题分值: 5.0 得分:[5知识点: 第一章 软件工程介绍学生答案:[B;]一、判断题 (共 8 道小题,共 40.0 分)1. 一般情况下,如果软件的行为与它的设计者的目标是一致的,那软件才成功。
A. 正 确B. 错 误2. 大部分软件开发项目首先设法满足一些企业的需要。
A. 正 确B. 错 误3. 所谓“新经济”的笼罩在 90 年代的商业和金融死亡,不再影响的企业和软件工程师的决定。
A. 正 确B. 错 误提示: 试题分值: 5.0 得分:[5知识点: 第二章 过程综述学生答案:[A;]提示: 试题分值: 5.0 得分:[5知识点: 第三章 过程模型学生答案:[A;]提示: 试题分值: 5.0得分:[5知识点: 第四章 敏捷视角下的过程学生答案:[A;]4. 软件过程可以在预先已有的软件模式之外被构造出来,以更好地满足软件工程的需要。
A. 正 确B. 错 误5. 在统一过程模型中,需求被迭代德确定,而且可能跨越一个以上的过程阶段。
A. 正 确B. 错 误6. 所有的敏捷过程模型或多或少不同程度上符合了敏捷的“软件开发宣言”的原则。
A. 正 确B. 错 误提示: 试题分值: 5.0 得分:[5知识点: 第五章 软件工程实践综述学生答案:[B;]提示:试题分值: 5.0 得分:[5知识点: 第五章 软件工程实践综述学生答案:[A;]提示: 试题分值: 5.0 得分:[5知识点: 第一章 软件工程介绍学生答案:[C;]7. 每个沟通会议应该有一个推动者,以确保客户不能去控制会议议项。
计算机二级考试软件工程题库及答案为了帮助考生更好地备考计算机二级考试,我们精心整理了一份软件工程题库及答案,涵盖了大量实际问题与案例分析,旨在帮助考生深入理解软件工程的基本概念、原理和技术。
以下是题库的部分内容。
一、选择题1. 软件工程的主要目标是()A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列关于软件需求分析的说法中,错误的是()A. 需求分析是软件开发过程中的重要环节B. 需求分析的主要任务是确定用户需求C. 需求分析的结果是软件需求规格说明书D. 需求分析应在软件设计之前完成答案:C3. 在软件开发过程中,项目管理的主要任务不包括()A. 人员组织与协调B. 进度控制C. 质量控制D. 软件测试答案:D4. 下列关于结构化分析方法的描述中,错误的是()A. 结构化分析方法是一种面向数据的分析方法B. 结构化分析方法主要包括数据流图、实体关系图等工具C. 结构化分析方法适用于大型复杂系统的分析D. 结构化分析方法不适用于小型系统的分析答案:D5. 在软件测试过程中,下列说法正确的是()A. 测试应贯穿整个软件开发过程B. 测试的目的是发现并修复软件缺陷C. 测试过程应遵循逐步细化、逐步展开的原则D. 测试用例的设计应考虑输入条件、操作步骤和预期结果答案:D二、填空题1. 软件工程的三级生命周期模型包括________、________和________。
答案:需求分析、设计、实现与维护2. 软件需求规格说明书是________阶段的成果,其主要作用是________。
答案:需求分析;描述软件的功能、性能和约束条件3. 结构化分析方法的核心思想是________,其基本工具包括________和________。
答案:模块化;数据流图、实体关系图4. 软件测试的过程分为________、________、________和________四个阶段。
北京邮电大学2009 2010学年第二学期•、判断题(共10题,每题1分,共10分)1. 软件是就是程序,程序就是软件。
(X )2. 螺旋模型最大的特点是加入了对软件成本的控制。
(X )3. 结构化需求分析需要对系统的数据、 功能和行为进行建模。
(V )4. 软件模块划分得越小,总的软件开发成本就越小。
(X )5. 面向对象分析(OOA )和面向对象设计(OOD )分别采用不同的概念 和表示法。
(X )6. 软件测试目的在于发现错误。
(V )7. 白盒测试不能应用穷举法,黑盒测试可以应用。
(X )8. 在项目面临进度延期的情况下,总是可以通过增加人力在后期跟 上进度。
(X ) 9. 领域模型就是用来描述业务领域重要概念及其相互关系的模型, 一般用UML 的类图来表达。
(V )10. 面向对象设计中最关键的活动是找到对象并给对象分配职责(V )•名姓《软件工程》期末考试试题 A 卷:号序内班:号学:级班A. 改正性维护 C. 完善性维护B. 适应性维护 D. 预防性维护、单项选择题(共 10 题,每题 1 分,共 10 分)1、下面关于软件生命周期模型的描述正确的是( C )A •软件生命周期是指从软件需求分析到上线运行的全过程B •原型方法只能用于软件的需求分析阶段C. 按照瀑布模型开发系统时,必须完成需求分析才能开始系统设计D. 增量模型又叫做迭代模型2、 下面哪一个不是数据词典的构成之一( C )。
A. 数据流词条描述B. 数据文件词条描述C. 数据流层次词条描述D. 加工逻辑词条描述3、 为了提高模块的独立性,模块最好是(B )A. 逻辑内聚B. 功能内聚C. 过程内聚D. 信息内聚4、OOA 所要完成的工作不包括(D )A.建立用例模型B.建立领域模型C.建立操作契约D.定义完善的类的属性和操作 位的标准建模语言。
6、 结构化程序设计采用的三种基本控制结构是( D ) A. 顺序、分支、选择 B. 选择、循环、重复 C. 输入、变换、输出 D. 顺序、选择、重复 7、 下面哪一个不属于 UML 中的图( D )。
1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
2022年北京邮电大学世纪学院软件工程专业《操作系统》科目期末试卷A(有答案)一、选择题1、某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。
假设一个缓冲区与一个磁盘块人小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs.CPU对一块数据进行分析的时间为50us。
在单缓冲区和双缓冲区结构ド,读入并分析完该文件的时间分别是()。
Α.1500μs,1000μsB.1550μs,1100μsC.1550μs,1550μsD.2000μs,2000μs2、在某页式存储管理系统中,页表内容见表。
若页面的大小为4KB,则地址转换机构将逻辑地址0转换成的物理地址是()A.8192B.8193C.2048D.20493、考虑页面替换算法,系统有m个页帧(Frame)供调度,初始时全空:引用串(Reference String)长度为p.包含了n个不同的页号,无论用什么算法,缺页次数不会少于()A.mB.pC.nD.min(m,n)4、在一个请求分页系统中,采用LRU页面置换算法时,加入一个作业的页面走向为:1,3,2,1,1,3,5,1,3,2,1,5。
当分配给该作业的物理块数分别为3和4时,在访问过程中所发生的缺页率为()。
A.25%,33%B.25%,100%C.50%,33%D.50%,75%5、下面有关外层页表的叙述中错误的是()。
A.反映在磁盘上页面存放的物理位置B.外层页表是指页表的页表C.为不连续(离散)分配的页表再建立一个页表D.若有了外层页表,则需要一个外层页表寄存器就能实现地址变换6、与早期的操作系统相比,采用微内核结构的操作系统具有很多优点,但是这些优点不,包括()。
A.提高了系统的可扩展性B.提高了操作系统的运行效率C.增强了系统的可靠性D.使操作系统的可移植性更好7、下列关于批处理系统的叙述中,正确的是()I.批处理系统允许多个用户与计算机直接交互II.批处理系统分为单道批处理系统和多道批处理系统III.中断技术使得多道批处理系统的1/O设备可与CPU并行工作A.仅II、IIIB.仅IIC.仅I、IID. 仅I、III8、下面关于目录检索的论述中,正确的是()。
北邮计算机统考试题及答案1. 数据结构与算法1.1 简述栈和队列的定义及其主要特点。
栈是一种数据结构,遵循后进先出(LIFO)的原则。
其主要特点是只能在栈顶进行插入和删除操作。
栈的插入操作称为入栈(push),删除操作称为出栈(pop)。
例如,在程序执行中,函数调用和递归调用的栈帧可以通过栈的方式实现。
队列也是一种数据结构,遵循先进先出(FIFO)的原则。
它的主要特点是只能在队尾进行插入操作,在队头进行删除操作。
队列的插入操作称为入队(enqueue),删除操作称为出队(dequeue)。
例如,在操作系统的进程调度中,可以使用队列来实现进程的排队执行。
1.2 常见的排序算法有哪些?简单描述它们的实现原理。
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。
冒泡排序是通过相邻元素的比较和交换来实现的,每次循环找出当前未排序部分的最大值,并将其放置在已排序部分的末尾。
选择排序通过在未排序部分选择最小(或最大)的元素,将其与未排序部分的第一个元素交换位置,实现逐渐将未排序部分的最小(或最大)元素放置到已排序部分的末尾。
插入排序通过将未排序部分的元素逐个插入到已排序部分的适当位置来实现排序。
可以将未排序部分的元素与已排序部分的元素逐个比较并移动,直到找到合适的位置。
快速排序通过选择一个基准元素,将数组分成两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于基准元素。
然后递归地对两个子数组进行快速排序。
归并排序是将两个有序子数组合并成一个有序数组的过程。
通过不断地将数组进行二分,直到只剩下一个元素。
然后将两个只有一个元素的子数组进行合并,直到最终完成整个数组的排序。
1.3 列举几种常用的查找算法,并简述它们的实现原理。
常用的查找算法有线性查找、二分查找、哈希查找和二叉查找树。
线性查找是从列表的开头开始,逐个比较每个元素,直到找到目标元素或遍历完整个列表。
二分查找是在有序数组中通过比较目标值和数组中间元素的大小来实现的。
--------------------学年第二学期2008 2007 ——北京邮电大学--- -:---名---姓- A卷《软件工程》期末考试试题一、学生参加考试须带学生证或学院证明,未带者不准进入场。
学生必须按照监考教师指定座位就坐二、书本、参考资料、书包等与考试无关东西一律放到考场定位置三、学生不得另行携带、使用稿纸,要遵守《北京邮电大学,有考场违纪或作弊行为者,按相应规定严肃处理场规则上,做在试卷、草四、学生必须将答题内容做在专用答题..纸上一律无效。
交卷时将答题纸与试卷一同上交考试时软件工20061课题总满3510103015得-阅卷-- - --教师- -- -- ---一、单项选择题(共10题,每题1分,共10分)--- -1、需求规格说明书作用不包括(C)-- --:-A.软件验收依据--号--B.用户与开发人员对软件要做什么共同理解-学----C.软件可行性研究依据D.软件设计依据--- -、2、软件结构图中,模块框之间若有直线连接,表示它们之间存在(A )装-- A、调用关系B、组成关系C、链接关系D、顺序执行关系--- -3、下面关于DFD中加工描述正确是( C ) -- ---A. 每个加工只能有一个输入流和一个输出流--- -:B. 每个加工最多有一个输入流,可以有多个输出流---级-C. 每个加工至少有一个输入流和一个输出流--班---D. 每个加工都是对输入流进行变换,得到输出流-- --4、在基于数据库信息管理系统中,数据库概念模型设计对应于系统开- --- -发(B)阶段。
---- A、需求分析B、概要设计----- 、程序设计D 、详细设计C -------------5、为了提高模块独立性,模块之间最好是( D )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合6、下列关于效率说法不正确是( B )A. 效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率根本途径在于采用高效算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序效率与程序算法有关7、测试关键问题是( D )A. 如何组织对软件评审B. 如何验证程序正确性C. 如何采用综合策略D. 如何选择测试用例8、某企业软件系统希望从Windows平台移植到Linux平台上,软件开发厂商为了满足企业要求进行维护属于(B )A. 改正性维护B. 适应性维护C. 完善性维护D. 预防性维护9、软件测试目是(C )A.为了表明程序没有错误B.为了说明程序能正确地执行C.为了发现程序中错误D.为了评价程序质量10、用白盒测试法设计测试用例方法包括(C)A.错误推测B.因果图C.基本路径测试D.边界值分析二、判断题(共10题,每题1分,共10分)1.软件是一种逻辑实体,由可执行代码构成。
(错)用例模型是用来说明系统应该具备功能描述。
(对)2.软件质量主要通过软件功能测试来保证。
(错 3.)UML4.中顺序图和协作图不仅能用来表示对象之间动态行为,也能表示对象内部状态变化。
(错)单元测试中只能使用白盒测试方法。
5.(错)软件能力成熟度模型是衡量软件项目管理水平标准。
(错) 6.软件维护周期远远大于软件开发周期。
(对)7.领域模型是面向对象分析和设计一个组成部分,因而它也是待构8.建软件模型一个部分。
(错)在顺序图中,一个对象A9.发送了一条创建另一个对象B消息,那么表明对象B具备了处理该条消息职责。
(错)在进行软件类设计过程中可以应用10.GRASP中“信息专家”模式决定类中方法。
(对)三、简答题(共3题,每题5分,共15分)1、简述面向对象开发方法中OOA和OOD要完成工作。
OOA:建立用例图、写用例文本描述、创建领域模型、绘制顺序图(可、创建操作契约。
选).:软件体系结构设计、用例实现设计(用协作图寻找参与用例对OOD 象,对对象职责进行分配,并生成设计类图)、用户界面设计。
2、说明软件测试步骤?简述每个步骤测试对象和测试依据。
测试依据测试步骤测试对象详细设计说明书、源代码程序模块单元测试系统概要设计说明已测试模集成测系统需求规格说明已集成软确认测系统其他元系统测已确认软件3、什么是软件项目管理?制定项目计划时包含项目管理过程有哪些?软件项目管理就是为了实现软件项目目标,使软件项目获得成功而对软件开发项目工作范围、可能遇到风险、需要资源(人力、硬件和软件)、要完成任务、经历里程碑、花费工作量(成本)以及进度安排等进行管理过程。
制定项目计划是建立项目行动指南基准,包括对软件项目估算、风险分析、进度安排、人员选择与配备等。
四、应用题(3题,共35分)1、电子表除了能显示时间外,还具有闹钟功能,并且电子表上具有三个按钮:1.第一个是模式按钮,用以切换时间显示和时间调节模式,在调节模式下用以切换小时和分钟位置;2.第二个按钮用来调节小时和分钟,且只能以+1方式进行调节;3.第三个按钮用于结束闹表响铃,仅按下一次是临时结束响铃,一分钟之后又开始响铃;连续按二次彻底结束响铃。
问题:要求给出电子表有关闹钟功能状态迁移图(10分)评分要点:1、四个状态,每个状态1分,共4分2、按钮1状态迁移条件2分,按钮2状态迁移条件2分,按钮3及Timer迁移条件2分,共6分2、北京邮电大学计算计学院属于北京邮电大学除了行政单位之外下属18个院级教学单位中一个;计科院内部由院党委、行政、教学和科研及学生组成;其中教学单位又分为5个中心;计科院学生由本科生、硕士研究生组成,其中本科生分为四个年级,每个年级有三个大班,每个大班有5个小班;硕士研究生分为三个年级且分别属于教学单位5个中心。
问题:请给出以上内容领域模型(10分)评分要点:1、确定概念类,重点在于计算机学院内部概念类,原则上少一个概念类扣0.5分;共5分。
2、建立概念类之间关系,重点在于组合、聚合以及“学生-年级”关联关系和“学生与研究生、本科生继承关系”,原则上一个关系错误扣0.5分;共5分。
3、测试用例设计(输入年、月、日,判断下一天日期)有一程序要求分别输入年、月和日三个整数类型数据,年份数据范围是1900-2099;月份数据范围是1-12;日期数据范围是1-31;系统功能可根据公历历法给出第二天日期。
问题:请根据等价类划分原则给出等价类表(15分)输入条件有效等价类无效等价类<1900(2),>2099(3年份)《1900-2099》(1)<1(月份 5),>12(6)《1-12》(4)<1(11),>3130日(12),29(13),8)1-28《》(7,29(),30(14),31 10319),()(15)(评分要点:1、输入条件、有效等价类、无效等价类各占5分2、输入条件除上述基本内容外,可有自己定义条件,如有错误扣1.5分3、有效和无效等价类中如果缺少标号扣1.5分4、有效和无效等价类中内容缺少一个扣1分五、综合题(1题,共30分)问题描述:有一个医院期望开发一个《医院挂号和问诊管理系统》,该系统要求能够实现挂号与医院科室医生排队情况相结合,做到合理安排病人排队次序,达到高效就诊管理效果。
要求挂号时能够将病人病历(电子病历)与挂号医生相关联,一旦挂号完成医生能够实时查看到新病人到来;同时也要兼顾病人对已熟知医生挂号要求。
然后根据医生级别以及相应收费规则(假定有:排队时间最短,收费最少,指定医生)确定本次挂号费用,并完成收取挂号费,记录挂号信息和打印挂号单。
已知:现有经过初步分析得到领域模型和系统顺序图,1.SSD第一条消息,系统返回挂号单流水号、时间和挂号员工号。
2.SSD第二条消息,系统根据病人提供病历号返回病人姓名、年龄、性别等基本信息。
3.SSD第三条消息,挂号员根据病人信息向系统提供科室、医生及支付策略选择,系统返回本次挂号所需要挂号费用。
4.SSD第四条消息,病人支付挂号金额,系统返回要找赎金额、打印挂号单完成一次挂号。
病例病人挂号支付处方挂号单医院挂号员医生科室挂号处挂号规则图5-1领域模型: 医院挂号系统: 挂号人1.StartNewRegistration(2.GetPatientInfo(PatientId3.Select(Section,Doctor,PaymentPolicies4.Paymen 图5-2系统顺序图问题一:请给出上述内容用例图,并给出“挂号”用例用例说明(5分)评分要点:1、用例图总共2分2、重点在于“挂号”和“查看队列”用例,缺少一个扣1分3、“挂号”用例后包含用例作为选项考查用例名称:挂号主要角色:挂号员前置条件:挂号员必须已经登陆到系统中后置条件:为病人分配合适科室和医生;生成挂号单;收取挂号费。
主要成功场景:1.病人来到挂号处,申请挂号,开始挂号用例;2.根据病人提供病例号,调用“病历管理”用例(检验有效性并在系统中填写病例号);3.根据病人病情基本信息或者提供科室和医生请求,调用“队列管理”用例(确定科室和医生及相应排队号);4.确定本次挂号费用,并提示给病人,收取病人挂号费用;5.打印挂号单,并将挂号单交给病人;6.系统记录本次挂号信息;7.系统返回到下一个挂号处理状态。
备选场景:2.1。
如果有效性检查没有通过或者病人没有提供病例号,挂号人员将给病人建立新病例号;3.1.如果病人请求科室或者医生已经达到当前最大排队数,则询问病人是否有其他选择,再进行科室和医生选择。
3.2.如果科室和医生排队情况已经达到当天最大数,则退出本次挂号请求,返回到7。
A*。
在收取挂号费之前任何时刻,病人都有权利请求退出本次挂号。
评分要点:1、用例说明占3分;2、正确书写成功场景给2分;如有部分错误扣1分;3、正确书写备选场景给1分;缺少扣1分;问题二:请根据以上顺序图并结合相应领域模型给出每一条系统事件对应操作契约后置条件。
(10分)操作名称StartNewRegistration挂号交叉引用挂号人员登录到系统前置条件1、创建挂号实例以及挂号单实例后置条件2、建立挂号单之间关联3、为属性挂号单流水号、挂号单时间及挂号人员赋值操作名称GetPatientInfo(PatientID)交叉引用挂号前置条件挂号人员登录到系统后置条件创建病历实例(可以没有,认为病历是被初始化、1.对象)2、建立挂号单与病历之间关联3、为属性病人姓名、年龄、性别等基本信息赋值操作名称Select(Section, Doctor, PaymentPolicies)挂号交叉引挂号人员登录到系前置条后置条创建科室、医生实例(可以没有,认为病历是初始化对象建立挂号与医生之间关为属性挂号费用赋操作名Payment交叉引用挂号前置条件挂号人员登录到系统后置条件1、创建挂号支付实例2建立挂号与支付之间关联、为属性应找赎金额赋值、3 删除挂号及挂号单实例4、评分要点:1、每个操作契约2.5分,共10分2、后置条件不完整扣1-2分3、其中,创建实例1分,建立关联关系1分,属性赋值0.5分4、Payment操作契约中缺少删除实例扣1分;问题三:请根据以上基本信息确定参与“StartNewRegistration”系统消息对象,根据GRASP“信息专家”模式绘制出相应设计模型交互图并给出分)15(对象所对应类方法。